Skip to content

Tac/v0.53.6#3

Closed
AkKoks wants to merge 4 commits into
tac/mainfrom
tac/v0.53.6
Closed

Tac/v0.53.6#3
AkKoks wants to merge 4 commits into
tac/mainfrom
tac/v0.53.6

Conversation

@AkKoks

@AkKoks AkKoks commented May 13, 2026

Copy link
Copy Markdown

Major upgrade to Cosmos SDK v0.53.6

This PR hard-rebases our TAC Cosmos SDK fork onto upstream cosmos-sdk v0.53.6 and re-applies the TAC-specific LSM changes on top of the new SDK base.

Summary:

  • Upgrade SDK base to upstream cosmos-sdk v0.53.6
  • Re-adapt TAC LSM patches for the v0.53.6 staking/distribution architecture
  • Port LSM behavior from iqlusioninc/liquidity-staking-module where applicable
  • Restore LSM genesis import/export handling for tokenize share records, locks, and liquid staking counters
  • Fix expired tokenize-share lock cleanup in staking BeginBlocker
  • Harden tokenize-share reward withdrawal handling in x/distribution
  • Add/extend regression tests for migrated LSM behavior

AkKoks added 2 commits May 4, 2026 16:26
Squashed changes vs upstream v0.53.6:

* LSM (Liquid Staking Module) integration in x/staking
  - new messages: TokenizeShares, RedeemTokensForShares,
    TransferTokenizeShareRecord, ValidatorBond,
    EnableTokenizeShares, DisableTokenizeShares
  - liquid_stake.go, tokenize_share_record.go, params,
    keys, errors, events, hooks, expected_keepers
  - regenerated proto (genesis, query, tx, staking)
  - originally backported by PixelPlex on v0.50, adapted to
    v0.53.6 API: math.Int / math.LegacyDec, context.Context,
    KVStoreService, AddressCodec
* Mocks regenerated with go.uber.org/mock v0.6.0
* Makefile: bump mockgen to v0.6.0 (Go 1.25 compatibility)
* types/coin_test.go: TestQuoIntCoins uses semantic Coins.Equal
  instead of reflect.DeepEqual (Go 1.25 big.Int internal change)
* Lint, gci/gofumpt, test fixes (gas usage in staking queries,
  api test diff, changelog)

@github-advanced-security github-advanced-security AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gosec found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Squash LSM audit fixes and regressions after the v0.53.6 TAC fork.

- restore LSM staking state during InitGenesis and add genesis validation/regression coverage

- clean expired tokenize-share locks in BeginBlocker and fix unlock queue handling

- return explicit errors for invalid tokenized-share reward withdrawals and tolerate missing final module delegation during reward cleanup

- validate LSM staking params

- preserve proto, Amino, interface, REST and generated metadata for LSM messages and queries while keeping CLI/AutoCLI tokenized-share support unsupported by design

- harden global and validator liquid-staking cap checks, amount/dust handling, and total-liquid-staked refresh error propagation

- remove the unused local module-address helper and keep the original 32-byte liquid-staker heuristic

- fix tokenized-share REST denom lookup for slash denoms

- maintain liquid shares and validator-bond shares across delegate, redelegate, undelegate, cancel-unbonding, validator slash, and redelegation slash paths

- preserve upstream BeginRedelegate missing-destination error semantics after adding LSM accounting

- add focused regression tests for fixed LSM paths
Add an in-memory staking keeper allowlist for MsgTokenizeShares delegators. By default the allowlist is empty and preserves unrestricted SDK behavior; TAC can wire LiquidStakeProxyAcc as the only allowed delegator at app construction time.\n\nReject unauthorized tokenization attempts in the msg server and cover unrestricted, denied, and allowed paths with a regression test.
@AkKoks AkKoks closed this Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants