Releases: cosmos/evm
Releases · cosmos/evm
v0.5.0
v0.5.0
Major feature upgrades
- EIP-7702 Support and Testing
- JSON-RPC Compatibility aligned with
go-ethereum v1.16.3- Inputs and outputs match
- Added
debug_traceCall,eth_createAccessList,eth_getHeaderByHash,eth_getHeaderByNumber - Fixed compatibility for
eth_getBlockByHash,eth_getBlockByNumber,eth_getTransactionByHash,eth_getTransactionByBlockHashAndIndex,eth_getTransactionByBlockNumberAndIndex - Added state overrides to various tracing functions
- IBC OnRecvPacket now supports recipient 0x addresses
- Added
go-ethereummetrics to Cosmos metrics server
Major quality of life improvements
- Configuration improvements
- EvmAppOptions was removed
- Coin information was moved to genesis
- EVM Chain ID is now possible to set as flags in the start command or tomls
- Testing configs were deduplicated
- EVM mempool can now be configured from the config tomls
- Most config files moved out from
/evmdand set as defaults found in the repo, making the simapp folder smaller - Added precompile builder for app.go
- Refactored precompiles and removed transaction execution boilerplate code
For migrating from v0.4.x, please refer to the migration guide.
What's Changed
- chore: set up backport rules for v0.4.x by @aljo242 in #463
- chore: retract by @aljo242 in #464
- fix: rpc accessibility in docker by @technicallyty in #469
- tests: evm tools compatibility by @zsystm in #287
- feat: re-use tx validation rules from go-ethereum by @yihuang in #286
- chore: cleanup deprecated increaseAllowance and decreaseAllowance by @mmsqe in #472
- feat: local_node.sh upgrades by @technicallyty in #470
- Problem: query decimals get reverted when Display doesn't match with DenomUnit for ibc token by @mmsqe in #397
- chore: update contracts-compile script by @cloudgray in #475
- test(jsonrpc): add jsonrpc compatibility test by @cloudgray in #419
- fix: precisebank & werc20 precompile by @cloudgray in #457
- (docs):Add SetClientCtx instructions to migration guide by @vladjdk in #481
- fix: add pagination flags to token-pairs query by @mmsqe in #468
- revert auto-fix for markdown linting by @Cordtus in #483
- add comments clarifying TokenPair meaning by @almk-dev in #489
- feat: remove allow-unprotected-txs(non eip-155) from x/vm params by @dudong2 in #415
- docs: Add ERC20 precompiles migration guide (#424) by @Cordtus in #485
- chore: replace GlobalEVMMempool by passing to JSONRPC on initiate by @mmsqe in #467
- Problem: eip-2935 is not implemented by @yihuang in #407
- refactor: decouple keeper using interface on precompile by @yoosah in #477
- chore: set up changelog properly post (v0.4.x) by @aljo242 in #491
- feat: Delete EVM instance in AnteHandler by @heijiLee in #352
- tests: add revert error e2e tests for contract and precompile calls by @cloudgray in #476
- Problem: IsStorageEmpty is not implemented by @yihuang in #490
- feat: allow PostTxProcessing to run on failures and persist data by @facundomedica in #479
- fix: notify new block for mempool in time to avoid insufficient funds error by @mmsqe in #471
- feature: Add eth_createAccessList method and implementation by @almk-dev in #346
- fix: duplicate case switch to avoid empty execution block by @almk-dev in #492
- test: v0.4.1 -> main upgrade test by @technicallyty in #498
- (chore):Simplify Mempool Config by @vladjdk in #496
- ci: workflow fails when feat, fix, or refactor PRs do not have changelog entry by @technicallyty in #499
- chore: cleanup deprecated BalanceChangeEntry by @mmsqe in #506
- refactor: replace TestEncodingConfig with production Config by @zchn in #513
- fix: allow value with slashes when query token_pairs by @mmsqe in #509
- fix: allow mempool interrupt while it is still ongoing by @almk-dev in #495
- docs: update contrib guide by @technicallyty in #539
- ci: add workflow to enforce conventional commit PR titles by @technicallyty in #541
- chore: check if mempool is not nil before accepting nonce gap error tx by @mmsqe in #572
- fix(evmd): remove pebble replace directive by @Pitasi in #574
- docs(migration): boilerplate v0.5.0 migration docs with mempool migra… by @vladjdk in #540
- perf: optimize gas estimation by @vladjdk in #538
- feat: AddPrecompileFn on stateObject not needed by @yihuang in #511
- fix: CometBlockResultByNumber when height is 0 by @Pitasi in #416
- feat: add block time in derived logs by @yihuang in #502
- feat: avoid unnecessary block notifications when the event bus is already set up by @mmsqe in #568
- feat: don't emit EVM logs into cosmos-sdk events by @mmsqe in #576
- fix: use zero constructor to avoid nil pointer panic when BaseFee is 0 by @almk-dev in #585
- test(mempool): add integration test by @cloudgray in #512
- feat: add block max_gas and min_tip ingestion to app.go mempool config by @almk-dev in #582
- chore: bump to ibc-go v10.3.0 by @gjermundgaraba in #592
- fix(crypto): invalid type of PubKey.Address() method by @cloudgray in #600
- docs: add d2 tool to repo and mempool arch diagram by @almk-dev in #597
- test: add nested precompile reversion test case by @vladjdk in #535
- perf: reduce number of query context calls by @vladjdk in #598
- test: mock bank keeper is outdated by @mmsqe in #606
- feat: emit geth metrics on cosmos SDK metrics server by @technicallyty in #588
- fix(mempool): checkTxHandler to handle invalid sequence tx by @cloudgray in #591
- perf: cache precompile abis by @vladjdk in #631
- feat: fill block hash and timestamp in tx response by @mmsqe in #584
- fix: align tx not found in get_transaction_receipt by @mmsqe in #533
- chore: cleanup unnecessary fix-revert-gas-refund-height by @mmsqe in #624
- feat: separate geth metrics server by @technicallyty in #633
- refactor: move default precompiles out of evmd config by @vladjdk in #635
- refactor: make erc20keeper optional in x/vm by @gjermundgaraba in #609
- test(systemtests): add appside mempool e2e test by @cloudgray in #580
- fix: evmd instruction seed phrase by @vladjdk in #640
- feat!: remove boilerplate code from stateful precompiles by @yihuang in #577
- docs: Update README.md by @merkletreeibc in #638
- fix: align bank keeper for correct decimal conversion by @mmsqe in #645
- fix: source flag for key add by @mmsqe in #643
- chore: relocate all ante logic to
evmfromevmdby @aljo242 in #648 - chore: move tests to remove circular dependency by @vladjdk in #654
- fix: simplify sed scripts in local_node.sh by @Pitasi in #653
- refactor: Move configs out of EVMD and deduplicate configs by @vladjdk in #659
- fix!: Fix race condition in mempool blockchain impl by @Eric-Warehime in #656
- fix: Fix race condition in legacypool when removing txs by @mattac21 in #658
- chore: Add race detection to test builds by @Eric-Warehime in #662
- fix: add SetQueryGasLimit to baseapp options by @vladjdk in #641
- perf: avoid duplicated feemarket params load by @mmsqe in #630
- test: add EIP-7702 integration test by @cloudgray in #664
- fix: indexer service can't quit by signal by @mmsqe in #687
- te...
v0.4.2
v0.3.2
v0.4.1
v0.4.1
Cosmos EVM v0.4.1 is a minor version update with major feature additions and several quality of life improvements. For complete documentation on the latest version, refer to the docs.
Major feature upgrades:
- Upgrades Go-Ethereum v1.16.2
- EVM Callbacks, allowing OnReceive messages to be executed on IBC receipts
- (Experimental) EVM-Compatible Appside Mempool (Integration and Architecture Docs)
- Adds the
txpoolnamespace
- Adds the
- Preinstall message handler for adding preinstalled smart contracts at specified addresses
Major quality of life improvements
- Improved StateDB balance handling
- JSON-RPC alignment with Go-Ethereum
- Fully decoupled /evmd from /evm
- Cleaned up EvmAppOptions
- Fixed keyring options
- Multi-node testing infrastructure
For migrating from v0.3.x, please refer to the migration guide.
What's Changed
- Consolidate EVM Chain ID by @vladjdk in #192
- Fix keyring options in add command by @Eric-Warehime in #196
- chore: update to
golangci-lintv2 by @aljo242 in #202 - EVM Callbacks by @AdityaSripal in #150
- refactor(precompiles): apply journal-based revert approach by @cloudgray in #205
- tests: refactoring by @zsystm in #198
- tests: exclude generated and irrelevant files from coverage report by @zsystm in #213
- fix unmarshalling of uint64 for "0x..." strings by @vladjdk in #216
- chore: Return default feemarket params when unset by @Eric-Warehime in #207
- chore: add address equivalence test by @aljo242 in #203
- chore: clean up deps by @aljo242 in #230
- fix(ics20): correct balance accounting issue with test coverage by @zsystm in #219
- Fixes typo in gov precompile IGov.sol by @Cordtus in #237
- refactor: fully decouple evm from evmd by @zsystm in #229
- chore: remove
gosecworkflow by @aljo242 in #238 - feat: preinstalls by @gjermundgaraba in #226
- feat: Add Preinstall Message Handler by @Eric-Warehime in #251
- feat(x/vm): apply stack-based StateDB snapshot mechamism for precompile call by @cloudgray in #244
- fix(precompiles): return data for revert by @cloudgray in #224
- Revert "(chore): move feemarket update BaseFee to EndBlock (#190)" by @mmsqe in #255
- feat(precompiles): add BalanceHandler to handle native balance change by @cloudgray in #201
- chore: reset consensus version to 1 by @cloudgray in #278
- fix: align eth_feeHistory with geth by @mmsqe in #246
- fix: align filter block tag with geth by @mmsqe in #247
- fix: pad ECDSA signature fields to 32 bytes in signMsg to prevent intermittent P256 precompile test failures by @zsystm in #274
- fix(precompiles/slashing): decode bech32 consensus address before converting to bytes by @zsystm in #267
- fix: non-eip-155 tx panic when get signer by @yihuang in #282
- feat: set no-op router to EvidenceKeeper for evmd by @zsystm in #271
- test: cleanup EvmAppOptions related config by @mmsqe in #263
- fix: align BytesToAddress in parseHexAddress by @mmsqe in #276
- chore: minor update transientStorage by @songgaoye in #257
- chore: rm unused file by @songgaoye in #264
- Problem: no dependency conflicts between cosmos-db and go-ethereum by @mmsqe in #279
- fix: test case use large gas price by @yihuang in #292
- feat: support build tag with rocksdb by @mmsqe in #200
- fix: align revert reason with go ethereum that expects hex-encoded result by @mmsqe in #289
- fix: use address codecs in precompiles by @technicallyty in #291
- chore: remove dead file by @aljo242 in #302
- EVM-131: Add enforcement of a single EVM tx per Cosmos tx by @almk-dev in #294
- chore: more cleanup by @aljo242 in #303
- Update CODEOWNERS by @aljo242 in #310
- chore: remove super linter by @technicallyty in #309
- Update README.md by @aljo242 in #295
- feat!: remove evidence precompile by @zsystm in #305
- chore: minor deps bump by @aljo242 in #299
- ci: add merge_group to ci jobs by @technicallyty in #311
- feat: 4 node localnet infra by @technicallyty in #301
- chore: evm access_list prealloc by @songgaoye in #307
- feat: add systemtest capabilities by @technicallyty in #304
- fix(grpc): add sanity check to trace_tx by @thomas-nguy in #296
- Fix compile issue in start.go by @NotJeremyLiu in #179
- fix: use owner address instead of precompile in EmitApprovalEvent by @zsystm in #317
- fix: include missing EvmUnitAnteTestSuite by @zsystm in #327
- fix: make p256 test deterministic by @technicallyty in #332
- fix: p256 flaky test by @songgaoye in #350
- fix: properly bubble up errors in BlockHash rpcs and fix flaky tests by @almk-dev in #330
- fix: use PriorityMempool with signer extractor to prevent missing signers error in tx execution by @mmsqe in #245
- chore: update .mergify.yml by @aljo242 in #361
- fix: add break label in ws loop to properly escape outer loop by @almk-dev in #347
- feature: Add txpool namespace stubs ahead of app-side mempool implementation by @almk-dev in #344
- fix: estimate gas missing fields for new tx type by @yihuang in #316
- feat(github actions): add workflow triggering docs update on release by @Cordtus in #357
- chore: add audit final report by @aljo242 in #365
- docs: audit by @aljo242 in #366
- tests: add precompile solidity e2e tests by @zsystm in #253
- use bigger depo runners for tests by @beengud in #370
- audit: revert to fork commit by @almk-dev in #369
- audit: apply final patch from evm-internal by @almk-dev in #373
- Re-apply 388b5c0 (fix merge groups) by @almk-dev in #377
- fix: update new precompile stucture in local node script by @almk-dev in #376
- post-audit: batch 1 by @almk-dev in #382
- post-audit: batch 2 by @almk-dev in #388
- post-audit: batch 3 by @almk-dev in #389
- post-audit: batch 4 by @almk-dev in #398
- post-audit: batch 5 (final) by @almk-dev in #392
- fix: debug_traceTrasaction fail with block height mismatch by @yihuang in #384
- test: avoid invalid gas cap & fee rounding error in BenchmarkAnteHandler by @mmsqe in #345
- fix: align filter rule for debug trace block by @mmsqe in #335
- chore(deps): bump tiny-secp256k1 from 1.1.6 to 1.1.7 in /tests/solidity by @dependabot[bot] in #367
- docs: Create contributing guide by @aljo242 in #323
- fix: typo in comment by @yihuang in #386
- fix: wait for graceful shutdown before restart by @mmsqe in #313
- feat: update go-ethereum to 1.16 by @yihuang in #315
- [EVM-186] Enforce EIP-2681 - nonce upper bound in ante handler by @Cordtus in #408
- fix: correct RPC address parameter in StartJSONRPC call by @mmsqe in #409
- fix: avoid unnecessary block result in header related api call by @mmsqe in #340
- feat: add limit for batch request and response size by @mmsqe in #249
- Adds readme docs for all precompiles by @Cordtus in #414
- test: add nonce gap tx test by @technic...
v0.3.1
Cosmos EVM v0.3.1 is a patch update with some minor quality of life changes and dependency updates.
What's Changed
- chore: update dependencies on
v0.3.xby @aljo242 in #359 - bug: add evm-chain-id to toml.go by @dudong2 in #403
- chore: fix local node script by @canu0205 in #395
New Contributors
Full Changelog: v0.3.0...v0.3.1
v0.3.0
This release has been audited by Sherlock. A link to the final audit report can be found here.
The v0.3.0 release includes:
- Upgraded GETH to v1.15
- Permissionless ERC20 registrations on x/bank
- Support for IBC v2 & IBC-Go
v10 - Support for Cosmos SDK
v0.53.x - Integrated Kava's x/precisebank to handle varying decimals for gas tokens
- Feemarket for Dynamic Fee transaction support (EIP-1559)
- Removal of the x/authz dependency on precompiles
- Changed erc20/ prefix to erc20: to support IBC v2 specification
- Testing refactor
- Separate Cosmos and EVM chain IDs (no longer required to merge these into one chain-id string)
- x/gov precompile now supports all messages including proposal submission
Our priorities for the next v0.4.0 release are:
- Getting the application-side mempool working
- Spiking all remaining EVM-equivalence unknowns (and fixing high priority ones)
- Setting up a proper benchmarking framework and perform load-testing