Skip to content

chore: bring cosmos/evm v0.6.2 onto testnet/donut - #353

Merged
0xNilesh merged 3 commits into
testnet/donutfrom
chore/evm-0.6.2-donut
Aug 27, 2026
Merged

chore: bring cosmos/evm v0.6.2 onto testnet/donut#353
0xNilesh merged 3 commits into
testnet/donutfrom
chore/evm-0.6.2-donut

Conversation

@0xNilesh

Copy link
Copy Markdown
Member

Brings develop (now on cosmos/evm v0.6.2) onto testnet/donut.

Branch was cut from develop, then testnet/donut merged into it, so this PR lands clean.

Contents

Two commits from develop:

Net effect on donut is the replace pin: 2d248e1881bb (v0.6.0) → f6a1ba7250e2 (v0.6.2).

Verified locally

  • merged clean — no conflicts (go.mod/go.sum resolved by the merge direction)
  • evm pin on the result is v0.6.2
  • all 40 donut upgrade handlers preserved, evmv060.NewUpgrade() included
  • go build ./... clean

Full suite left to CI.

Behavioural notes for donut

No state migration. No proto change, no ConsensusVersion bump, no store keys added/removed on either
side of v0.6.0 → v0.6.2.

What actually changes at runtime:

  1. SubBalance now panics on underflow instead of wrapping silently. This is the upstream equivalent of
    our F-2026-18201 statedb fix. A panic in a tx fails that tx (no halt), but any flow currently
    underflowing silently would start failing visibly.
  2. Module accounts can no longer have their EVM balance written (v0.6.1 security merge 3524ebc6).
    Verified not to affect Push: all module-sender EVM calls pass value=0, and the
    CallExecuteUniversalTx + DeductGasFeesFromReceipt combination in the inbound path is exercised by
    TestInboundCEAGasAndPayload / TestInboundCEAFundsAndPayload with 0 occurrences of
    not allowed to receive funds. DeductAndBurnFees uses the bank keeper, which never enters the EVM
    statedb path at all.
  3. Precompile OOG now propagates as vm.ErrOutOfGas — different error on calls that were already
    running out of gas; no repricing, succeeding txs consume identical gas.
  4. Extended-denom accounting: no-op here. Donut sets ExtendedDenom == Denom == upc, and the new code
    is guarded by if GetEVMCoinExtendedDenom() != GetEVMCoinDenom().
  5. IBC v2 erc20 ack changes: no-op here. Push wires no IBC v2 stack.

Still to do before deployment (not in this PR)

  • an evm-v0.6.2 upgrade handler, following the evm-v0.6.0 precedent (empty StoreUpgrades, named plan
    only so cosmovisor has something to switch on)
  • localnet upgrade simulation across the height

Points the evm replace at push-chain-evm develop f6a1ba72, which is
cosmos/evm v0.6.2. No node code changes were required.
chore: bump cosmos/evm pin to v0.6.2
@0xNilesh
0xNilesh merged commit ff021b6 into testnet/donut 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