Skip to content

chore: upgrade cosmos/evm v0.6.0 → v0.6.2 on develop - #51

Merged
0xNilesh merged 14 commits into
developfrom
chore/evm-0.6.2
Aug 27, 2026
Merged

chore: upgrade cosmos/evm v0.6.0 → v0.6.2 on develop#51
0xNilesh merged 14 commits into
developfrom
chore/evm-0.6.2

Conversation

@0xNilesh

Copy link
Copy Markdown
Member

Brings develop from cosmos/evm v0.6.0 to v0.6.2 (13 upstream commits).

No migration required

  • no .proto changes
  • no migration or upgrade files
  • no ConsensusVersion bumps
  • no store-key or Params changes

This is a code-only upgrade. On the node side it is a replace pin bump (not in this PR).

Merge

One conflict, contracts/solidity/ContractCreationTester.sol — purely line-wrapping of the same
statement; kept the branch's formatting. Everything else auto-merged.

⚠️ Module accounts may no longer receive EVM balance

The v0.6.1 security merge (3524ebc6, private fork merge) adds to 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)
    }
}

The guard runs before the delta computation, so it errors even when the balance is unchanged, and
statedb.Commit calls SetAccount (→ SetAccountBalanceSetBalanceWithLocked) for every dirty
account. Upstream moved their own test helpers off module-account deployers for this reason
(changelog cosmos#1243: "the EVM commit path may not write a module account's balance").

This does not surface in this repo's tests (0 guard hits), but push-chain-node makes EVM calls FROM the
ue-module account
(isModuleSender=true, 4 sites in x/uexecutor/keeper/evm.go). Those paths must be
exercised before the node pin is bumped. Node-side work is deliberately out of scope here.

Tests

  • go build ./... clean
  • ./x/vm/... ./x/erc20/... ./x/feemarket/... ./precompiles/... — 15 packages ok, 0 fail
  • evmd/tests/integration — the only failures are pre-existing on develop: verified by running the
    same suite on unmodified origin/develop and diffing the failing assertions, which are identical
    (TestPreciseBank*, reserve expecting 2 integer coins, getting 1). Zero not allowed to receive funds
    errors in either run.

vladjdk and others added 14 commits March 25, 2026 13:12
* align gas calculation

* changelog

* lint

* fix tests

* fix test

* Revert "fix test"

This reverts commit 11147e5.

* solhint

* lint

* make systemtest time 3s instead of 5s to hit blocktime
…smos#1187) (cosmos#1190)

* fix(statedb): snapshot locked balance on statedb account  (cosmos#1187)

* snapshot locked balance on statedb account creation to calculate spendable + locked bank balance after locked balance changes via precompile

* lint formatting

* modify x/erc20 registering code hash to not silently drop existing accounts locked balacne

* update comments

* Update x/vm/keeper/statedb.go

Co-authored-by: Vlad J <vladjdk@gmail.com>

---------

Co-authored-by: Vlad J <vladjdk@gmail.com>
(cherry picked from commit 008c171)

# Conflicts:
#	tests/integration/precompiles/staking/test_staking.go
#	x/vm/keeper/statedb.go
#	x/vm/statedb/state_object.go

* fix conflicts

* bump sol

---------

Co-authored-by: mattac21 <matt@cosmoslabs.io>
Co-authored-by: Vlad <vladjdk@gmail.com>
align v2 with main so failed native-ERC20 conversion surfaces as failure result
* chore(erc20/v2): align ack validation with ibc-go. (cosmos#1232)

* After code review

* Apply suggestion from @dianab-cl

* After code review
* fix

* tests

---------

Co-authored-by: Eric Warehime <eric.warehime@gmail.com>
fix(erc20): propagate conversion ack in v2 ibc OnRecvPacket
…mos#1243) (cosmos#1256)

* fix: Move tests to use eoa instead of module account as deployer

* Lint

* Apply suggestion from @dianab-cl

Co-authored-by: dianab-cl <diana@cosmoslabs.io>
* Merge of changes (cosmos#1259)

(cherry picked from commit 430eaed)

# Conflicts:
#	evmd/mempool.go
#	x/feemarket/keeper/abci.go

* fix conflicts

* align gte logic

* Fix merge conflict

* Fix mempool

---------

Co-authored-by: Eric Warehime <eric.warehime@gmail.com>
Co-authored-by: Matt Acciai <matt@cosmoslabs.io>
…s#1176) (cosmos#1253)

* fix: harden statedb balance and event amount handling (cosmos#1176)

* fix: harden statedb balance and event amount handling

Guard StateDB balance subtraction against underflow and make precompile balance-event parsing denom-aware for base vs extended denom paths. Also add regression tests and document that only 18-decimal EVM gas-token chains are supported.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(vm): enforce 18-decimal coin configuration

Reject non-18 decimal EVM coin configs in both runtime and test configurators, align affected tests, and temporarily exclude precisebank packages from root unit-test targets until precisebank removal lands.

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: remove obsolete precisebank test package filters

Now that contrib/x/precisebank is removed on main, package selection no longer needs explicit exclusions and can rely on the standard simulation/e2e filters.

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: fix formatter ordering in scaling tests

Apply golangci formatter output for scaling tests so gci/gofumpt checks pass in CI.

Co-authored-by: Cursor <cursoragent@cursor.com>

* test: align integration suites with 18-decimal-only config

Remove non-18-decimal integration cases and fee checks that now fail by design under enforced 18-decimal EVM coin configuration.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
(cherry picked from commit 264aa70)

# Conflicts:
#	README.md
#	x/vm/statedb/state_object.go
#	x/vm/types/denom_config.go
#	x/vm/wrappers/feemarket_test.go

* fix conflicts

* fix formatting

* remove the requirement that the EVM coin be configured with 18 decimals

* sum the base and extended denom amounts when parsing balance change events

---------

Co-authored-by: Alex | Cosmos Labs <alex@cosmoslabs.io>
Co-authored-by: Matt Acciai <matt@cosmoslabs.io>
* prep changelog for release

* fix
# Conflicts:
#	contracts/solidity/ContractCreationTester.sol
@0xNilesh
0xNilesh merged commit f6a1ba7 into develop Aug 27, 2026
18 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants