Skip to content

chore: evm derived-tx gas price fix + upgrade handler (donut) - #299

Merged
0xNilesh merged 6 commits into
testnet/donutfrom
chore/evm-gas-price-donut-handler
Aug 3, 2026
Merged

chore: evm derived-tx gas price fix + upgrade handler (donut)#299
0xNilesh merged 6 commits into
testnet/donutfrom
chore/evm-gas-price-donut-handler

Conversation

@0xNilesh

@0xNilesh 0xNilesh commented Aug 3, 2026

Copy link
Copy Markdown
Member

Brings the cosmos/evm derived-tx gas-price fix to testnet/donut, with the upgrade handler
needed to coordinate the binary swap.

What this changes

1. The evm bump (already merged to develop via #298)

- github.com/cosmos/evm => github.com/pushchain/evm v1.0.0-rc2.0.20260627105801-6c22ba0b1e9e
+ github.com/cosmos/evm => github.com/pushchain/evm v1.0.0-rc2.0.20260803072921-2d248e1881bb

Picks up push-chain-evm#37. Blocks whose only
content is derived transactions currently render a negative block reward in explorers: derived
txs are rebuilt from ABCI events with GasFeeCap = GasTipCap = 0, so the EIP-1559 formula reports
gasPrice = 0 while gasUsed > 0. Reproduced on live donut (block 0x13a5ce8):

effectiveGasPrice 0x0 · gasUsed 0xb2dc · baseFeePerGas 0x3b9aca00
Blockscout reward = 45788×0 − 1e9×45788 = -45,788,000,000,000

The fix reports the block base fee for derived txs, so the arithmetic nets to zero. JSON-RPC
reporting only — no consensus or state changes.

2. The evm-derived-gas-price upgrade handler

No-op: RunMigrations with empty StoreUpgrades. Appended after sdkv053; all 38 historical
handlers are preserved (the merge conflict in app/upgrades.go was resolved by keeping donut's full
list and appending, not by taking the develop side, which has an empty Upgrades slice).

⚠️ This also carries the develop → donut sync

testnet/donut was 4 commits behind develop, so this PR necessarily brings the
uclient refactor (#297) along with it —
package renames (universalClient/chains/pushuniversalClient/pushwatcher) and the TSS package
reshuffle. That is the bulk of the 66-file diff; only go.mod/go.sum and the two handler files
relate to this change.

Worth a look if the uclient refactor wasn't already intended for donut.

Validation

Upgrade simulation release/v1.1.38-donut (= current testnet/donut, 71d3a569) → this branch:

halt @ 328     UPGRADE "evm-derived-gas-price" NEEDED
               cosmovisor swap → current -> evm-derived-gas-price
               applying upgrade "evm-derived-gas-price" at height: 328
               🔧 Running upgrade: name=evm-derived-gas-price
resumed        height 377
verified       q upgrade applied → 328
               eth_blockNumber → 0x18a  (JSON-RPC alive)
               bank send code:0 @395, balance delta confirmed

go build ./... clean.

Not covered by the simulation: the local testnet has no derived transactions (they come from
uexecutor cross-chain activity), so the gas-price fix itself wasn't observable there. The fix is
validated separately by the unit tests in push-chain-evm#37 and by the live-donut reproduction above.

Aman035 and others added 6 commits July 28, 2026 16:59
…ckages

- universalClient/chains -> universalClient/externalchains (external chains only)
- universalClient/chains/push -> universalClient/pushwatcher, owned by core
  instead of the chains manager (no more ensurePushChain, fake ChainConfig,
  or ChainClient interface stubs)
- core opens the push chain DB once and shares it with the TSS node
refactor(uclient): split push client out of chains manager; rename packages
Picks up pushchain/push-chain-evm#37 — derived txs now report the block
base fee as gasPrice/effectiveGasPrice instead of 0.
chore: bump cosmos/evm to derived-tx gas price fix
No-op handler (RunMigrations, empty StoreUpgrades) for the cosmos/evm bump
picking up the derived-tx gas price fix.
Resolves app/upgrades.go by keeping donut's full historical handler list
and appending evm-derived-gas-price.
@0xNilesh
0xNilesh merged commit e0ee38f into testnet/donut Aug 3, 2026
7 checks passed
@0xNilesh
0xNilesh deleted the chore/evm-gas-price-donut-handler branch August 3, 2026 10:11
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