chore: adapt push-chain-node to cosmos/evm v0.6.0 - #339
Merged
Conversation
v0.6.0 removes cosmos/evm's custom x/ibc/transfer wrapper and adds stateDB / callFromPrecompile to CallEVM. Cherry-picked from #272 with the pin retargeted and one newer call site fixed; no upgrade handler (fresh-genesis branch).
…nd mocks Pin moves off the PR-branch commit onto evm audit-fixes (89c7e52b), which carries v0.6.0 plus every merged audit fix. build_revert_outbound_test.go arrived after this branch was opened and mocked the pre-v0.6.0 CallEVM signature: v0.6.0 inserts stateDB, so the mock needed NewStateDB and the method-name matcher moved to index 8.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Node-side half of the cosmos/evm v0.6.0 upgrade for the
audit-fixesline. Pairs with pushchain/push-chain-evm#47.Important
Merge order. push-chain-evm#47 must merge first, and the pin here must then be re-pointed at the resulting
audit-fixescommit. Right nowgo.modpoints at9031914con the PR branchchore/evm-0.6.0-on-audit-fixes, which is not a merged commit. Do not merge this before that is corrected.Why
audit-fixes(and somain/mainnet) sits on the evm v0.5.1 line whiledevelopandtestnet/donuthave run v0.6.0 since 2026-06-27. That gap is what F-2026-18785 reports; evm#47 closes it. This PR is what makes the node compile and pass against it.What changed
v0.6.0 makes two breaking changes that reach the node:
1. cosmos/evm removed its custom
x/ibc/transferwrapper. Imports move to standard ibc-go, the keeper no longer takes anErc20Keeper, and the ERC-20↔IBC conversion that wrapper used to do is now performed by the erc20 IBC middleware wrapped around the transfer stack:2.
CallEVMgainedstateDBandcallFromPrecompileparameters — touchingx/uexecutor/keeper/evm.go,gas_fee.go,expected_keepers.go, the generated EVM-keeper mock, and every call site in tests.How it was produced
Cherry-picked
46c77ca4("feat: evm 0.6.0 adjustment changes") from #272, which did this same adaptation ondevelop. It applied with no conflicts. Three deviations, all deliberate:06c83206andff085772— feat: evm 0.6.0 adjustment changes #272 added an evm-v0.6.0 upgrade handler and then reverted it in the same PR, because the handler belongs ontestnet/donut(that landed separately as chore: evm v0.6.0 upgrade handler (donut) #282).audit-fixesis a fresh-genesis branch, so no handler here. Same reasoning as fix: F-2026-18197 | [Dual Defense] Nested Message Dispatch Bypasses EVM Ante for MsgEthereumTx #317 dropping its remove-group handler.46c77ca4leftgithub.com/cosmos/evm => ../evm, a local filesystem replace that feat: evm 0.6.0 adjustment changes #272's later commit97f779aecleaned up. Replaced with the real pseudo-version for evm#47's merge commit.test/integration/uexecutor/inbound_multicall_outbound_atomicity_test.go:460was added toaudit-fixesafter feat: evm 0.6.0 adjustment changes #272 was authored and still used the oldCallEVMsignature. Adapted to match the form its sibling files already use.Tests
Full suite against the v0.6.0 pin, run serially to avoid local disk contention:
21 packages green, no failures.
go build ./...andgo mod tidyclean.The integration run is the meaningful one —
test/integration/uexecutoris where theCallEVMsignature change actually bites, and it is where the one real breakage surfaced and was fixed.Scope
This is a version bump plus the mechanical adaptation. No behavioural change is intended on the node side, and no upgrade handler is included. The single audit finding closed by the upgrade (F-2026-18785) is fixed in the evm repo, not here — see evm#47 for that analysis and for which evm-attributed findings the upgrade does not address.