Skip to content

chore: bump cosmos/evm pin to v0.6.2 - #352

Merged
0xNilesh merged 1 commit into
developfrom
chore/evm-0.6.2-node
Aug 27, 2026
Merged

chore: bump cosmos/evm pin to v0.6.2#352
0xNilesh merged 1 commit into
developfrom
chore/evm-0.6.2-node

Conversation

@0xNilesh

Copy link
Copy Markdown
Member

Points the evm replace at push-chain-evm develop f6a1ba72 (cosmos/evm v0.6.2), up from
2d248e1881bb (v0.6.0).

Changes required: none

go.mod + go.sum only — 2 files, 3 lines. No node code changes were needed. No migration, no proto
change, no ConsensusVersion bump (the evm side had none either).

Tests

go build ./... clean.

go test -p 1 -count=1 -tags="ledger test_ledger_mock test" ./x/... ./test/integration/...
exit 0, 17 packages ok, 0 FAIL, including test/integration/uexecutor (15.0s).

The thing this PR was really checking: the module-account guard

cosmos/evm v0.6.1 added a security guard (private fork merge 3524ebc6) in SetBalanceWithLocked:

if acct := k.accountKeeper.GetAccount(ctx, cosmosAddr); acct != nil {
    if _, isModule := acct.(sdk.ModuleAccountI); isModule {
        return errorsmod.Wrapf(errortypes.ErrUnauthorized, "%s is not allowed to receive funds", cosmosAddr)
    }
}

This mattered because Push makes EVM calls from the ue module account (isModuleSender=true, 4 sites
in x/uexecutor/keeper/evm.go), ue is a genuine ModuleAccountI (GetModuleAccount(ctx, "ue"),
registered Minter+Burner at app/app.go:267), and statedb.CommitSetAccountSetAccountBalance
runs for every dirty account.

Empirically it does not fire. Verified:

  • the guard IS present in the pinned module (x/vm/keeper/statedb.go:164) — this is not a case of the fix
    being absent
  • 0 occurrences of not allowed to receive funds across the whole suite
  • 86 passing inbound/deposit subtests in test/integration/uexecutor

Inferred mechanism, not proven: SetBalanceWithLocked starts with if amount == nil { return nil },
above the guard, so a dirty account whose balance was never read or written skips it. That fits a module
sender that only bumps its nonce and sends value=0.

⚠️ Because the mechanism is inferred rather than proven, a localnet run exercising a real inbound deposit
is worth doing before this reaches a live network.

Note on scope

This is the develop line, which pins cosmos-sdk v0.53.7. The audit-fixes line pins v0.50.10 and a
different evm commit; it is unaffected by this PR.

Points the evm replace at push-chain-evm develop f6a1ba72, which is
cosmos/evm v0.6.2. No node code changes were required.
@0xNilesh
0xNilesh merged commit b6529dd into develop Aug 27, 2026
7 checks passed
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.

1 participant