Skip to content

Conversation

zsystm
Copy link
Contributor

@zsystm zsystm commented Jul 15, 2025

Description

Closes: #104

Test Coverage

Foundry

  • Uniswap v3 deployment
    • Note: Batch deployment isn’t supported yet, so we’re using the --slow flag for now. Full batch deployment will be possible once app-side mempool is implemented — tracked in Scope App-Side Mempool #214.
  • Cast-based tests
    • Network info queries (eth_chainId, net_version, etc.)
    • Read ERC-20 state (totalSupply, balanceOf, etc.)
    • Send ERC-20 transfer and validate balances
    • Over-balance transfer and revert check
  • Forge scripts and unit tests
    • ERC-20 & counter tests (*.t.sol)
    • Scripts for querying, deploying, reading, transferring, and reverting

Hardhat

  • Deploy ERC-20 and Uniswap via Hardhat script
  • Call contract functions and log state (e.g. totalSupply, balanceOf)
  • Send transactions and confirm state changes
  • Handle revert cases

SDK

  • viem
    • Client config, ERC-20 read/write, edge case testing
  • web3.js
    • Provider setup, read/write, revert check and logging
  • ethers.js

Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • tackled an existing issue or discussed with a team member
  • left instructions on how to review the changes
  • targeted the main branch

Reviewers Checklist

All items are required.
Please add a note if the item is not applicable
and please add your handle next to the items reviewed
if you only reviewed selected items.

I have...

  • added a relevant changelog entry to the Unreleased section in CHANGELOG.md
  • confirmed all author checklist items have been addressed
  • confirmed that this PR does not change production code
  • reviewed content
  • tested instructions (if applicable)
  • confirmed all CI checks have passed

@zsystm zsystm force-pushed the tests/evm-tools-compatibility branch 2 times, most recently from 66aa894 to acd05af Compare July 15, 2025 07:16
@zsystm zsystm self-assigned this Jul 15, 2025
@zsystm zsystm force-pushed the tests/evm-tools-compatibility branch 4 times, most recently from aa4b7bc to abec6e8 Compare July 15, 2025 09:07
@zsystm zsystm force-pushed the tests/evm-tools-compatibility branch from 6e590a1 to eeb6cff Compare July 15, 2025 10:13
@zsystm zsystm force-pushed the tests/evm-tools-compatibility branch from df6969d to 2eb1207 Compare July 16, 2025 15:17
@zsystm zsystm force-pushed the tests/evm-tools-compatibility branch from f6641fa to 30d7d15 Compare July 17, 2025 00:05
@zsystm zsystm force-pushed the tests/evm-tools-compatibility branch from 8bca57f to 893d36a Compare July 17, 2025 08:45
@zsystm zsystm marked this pull request as ready for review July 17, 2025 09:27
@zsystm zsystm marked this pull request as draft July 17, 2025 09:35
@zsystm zsystm force-pushed the tests/evm-tools-compatibility branch from d917f8a to 9a2f4f0 Compare July 17, 2025 09:40
@zsystm zsystm marked this pull request as ready for review July 17, 2025 10:10
@zsystm zsystm requested review from vladjdk and cloudgray July 18, 2025 00:06
Copy link
Contributor

@cloudgray cloudgray left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with some trivial comments

const { expect } = require("chai");
const tokenArtifact = require("./contractABI/TokenExample.json");

describe("Web3.js Compatibility Test", function () {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is file name typo
web3js_compatability.test.js -> web3js_compatibility.test.js

Copy link
Contributor Author

@zsystm zsystm Aug 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cloudgray
Applied in def7f8b

CUSTOM_RPC=http://127.0.0.1:8545
# private key for tx broadcast (PUBLIC TEST KEY - NOT A SECRET)
# Split to avoid false positive secret detection
PRIVATE_KEY_PART1=0x8a36c69d940a92fcea94b36d0f2928c7a0ee19a90
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think committing .env is not good idea altough the secrets in it is actually already written down in other scripts.

I think there are many alternatives.
For example, we can use .toml file instead, empty secrets, let developers set their secrets, or in case of github-ci job, we can use secrets set in github repo config.

If it is thought that it will take bunch of time, how about create issue instead and revisit?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cloudgray
I understand your concern, but in this case the .env file is only used for testing, and we have made it clear in the comments what it contains. The usual reason .env is considered a bad practice is when it contains sensitive production values, which is not the case here.

Since replacing it would require extra effort without clear benefit, I’m not sure I agree with making this change for this particular scenario.

@aljo242
Copy link
Contributor

aljo242 commented Jul 28, 2025

@almk-dev to review once ready

@zsystm we have a conflict since super-linter is removed now

@zsystm zsystm requested review from a team as code owners August 12, 2025 08:25
@zsystm zsystm requested review from almk-dev and cloudgray August 12, 2025 09:13
@zsystm
Copy link
Contributor Author

zsystm commented Aug 12, 2025

@almk-dev
Hey, could you review this PR?

@aljo242 aljo242 added the v0.5.x targeting v0.5.x label Aug 14, 2025
Copy link
Member

@almk-dev almk-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zsystm Could you take a look at the TestAllowedTxSize failure?

@almk-dev almk-dev added this pull request to the merge queue Aug 17, 2025
Merged via the queue into cosmos:main with commit 204ff4e Aug 17, 2025
21 checks passed
mmsqe pushed a commit to mmsqe/evm that referenced this pull request Sep 1, 2025
Solution:
- change address conversion in middleware

fix build

fix lint

change erc20 callback

Squashed commit of the following:

commit d8e3baa
Merge: f6b7337 ec57b96
Author: yihuang <[email protected]>
Date:   Mon Sep 1 14:43:35 2025 +0800

    Merge branch 'main' into ibc-hex-address

commit f6b7337
Author: yihuang <[email protected]>
Date:   Mon Sep 1 14:43:21 2025 +0800

    cleanup

commit 3f331c3
Author: yihuang <[email protected]>
Date:   Mon Sep 1 14:41:31 2025 +0800

    fix GetTransferSenderRecipient

commit ec57b96
Author: Antonio Pitasi <[email protected]>
Date:   Fri Aug 29 22:23:47 2025 +0200

    fix: CometBlockResultByNumber when height is 0 (cosmos#416)

    * fix TendermintBlockResultByNumber when height is 0

    Signed-off-by: Antonio Pitasi <[email protected]>

    * add changelog entry

    Signed-off-by: Antonio Pitasi <[email protected]>

    ---------

    Signed-off-by: Antonio Pitasi <[email protected]>
    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit 4be8aba
Author: yihuang <[email protected]>
Date:   Sat Aug 30 04:22:35 2025 +0800

    feat: AddPrecompileFn on stateObject not needed (cosmos#511)

    * Problem: AddPrecompileFn on stateObject not needed

    what is does is only add a journal entry, not related to the state
    object at all.

    Solution:
    - remove the method, move the logic to statedb directly.

    * remove unused parameter

    * changelog

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit 2a0eb3a
Author: Vlad J <[email protected]>
Date:   Fri Aug 29 16:18:45 2025 -0400

    perf: optimize gas estimation (cosmos#538)

    * Fix error semantics

    * changelog

    * Add benchmark (cosmos#542)

    Co-authored-by: Alex | Interchain Labs <[email protected]>

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>
    Co-authored-by: Eric Warehime <[email protected]>

commit af53a0f
Author: Vlad J <[email protected]>
Date:   Fri Aug 29 15:09:36 2025 -0400

    docs(migration): boilerplate v0.5.0 migration docs with mempool migra… (cosmos#540)

    * docs(migration): boilerplate v0.5.0 migration docs with mempool migration

    * shorten line

    * Update docs/migrations/v0.4.0_to_v0.5.0_UNRELEASED.md

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit 2fff19e
Author: Antonio Pitasi <[email protected]>
Date:   Fri Aug 29 20:58:21 2025 +0200

    fix(evmd): remove pebble replace directive (cosmos#574)

commit 5ffe3cc
Author: mmsqe <[email protected]>
Date:   Sat Aug 30 02:52:41 2025 +0800

    chore: check if mempool is not nil before accepting nonce gap error tx (cosmos#572)

commit ce05fc6
Author: yihuang <[email protected]>
Date:   Fri Aug 29 10:35:22 2025 +0800

    change erc20 callback

commit 9d2c924
Author: yihuang <[email protected]>
Date:   Fri Aug 29 10:26:25 2025 +0800

    fix lint

commit abe2870
Author: yihuang <[email protected]>
Date:   Fri Aug 29 10:17:12 2025 +0800

    fix build

commit e12e02d
Author: yihuang <[email protected]>
Date:   Fri Aug 29 10:09:52 2025 +0800

    Problem: ibc transfer don't support hex address

    Solution:
    - change address conversion in middleware

commit 3e37931
Author: Tyler <[email protected]>
Date:   Wed Aug 27 21:30:00 2025 -0700

    add pr title job (cosmos#541)

commit 83ae83d
Author: Tyler <[email protected]>
Date:   Wed Aug 27 16:25:29 2025 -0700

    docs: update contrib guide (cosmos#539)

    * update contrib guide

    * fix number

commit 0032812
Author: Abdul Malek <[email protected]>
Date:   Wed Aug 27 11:32:19 2025 -0400

    fix: allow mempool interrupt while it is still ongoing (cosmos#495)

    * add context cancel

    * simplify channel cases

    * add changelog

    * revert config change

    * add minimal change set for sigint

    * rename

    * offload server shutdown go goroutine

    * remove goroutine in favor of timeout

    * use short timeout

commit 68436ec
Author: mmsqe <[email protected]>
Date:   Wed Aug 27 23:07:02 2025 +0800

    fix: allow value with slashes when query token_pairs (cosmos#509)

    * chore: allow value with slashes when query token_pairs

    * add doc

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit bcc17d4
Author: zchn <[email protected]>
Date:   Tue Aug 26 14:40:46 2025 -0400

    refactor: replace TestEncodingConfig with production Config (cosmos#513)

    * refactor: replace TestEncodingConfig with production EncodingConfig

    Replace the usage of sdktestutil.TestEncodingConfig with a proper
    production-ready EncodingConfig struct. This removes the dependency
    on test utilities in production code while maintaining full compatibility.

    Changes:
    - Define custom EncodingConfig struct with same fields as TestEncodingConfig
    - Remove import of cosmos-sdk/types/module/testutil
    - Update MakeConfig return type to use the new production struct

    This improves code quality by avoiding test dependencies in production code.

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

    * chore: fix golangci-lint errors

    - Fix import ordering (gci)
    - Rename EncodingConfig to Config to avoid stuttering (revive)

    The type name change from EncodingConfig to Config addresses the
    lint warning about stuttering (encoding.EncodingConfig). Since the
    struct is only used as a return value from MakeConfig(), this
    change maintains backward compatibility.

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

    * test: update ledger tests to use encoding.Config

    Update the ledger test files to use the new encoding.Config type
    instead of sdktestutil.TestEncodingConfig, following the changes
    made to the encoding package.

    Changes:
    - Update encCfg variable type from TestEncodingConfig to Config
    - Update NewKeyringAndCtxs parameter type to use Config
    - Add encoding import to evmosd_suite_test.go
    - Remove unused sdktestutil import

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

    * docs: add CHANGELOG entry for encoding config refactor

    Add CHANGELOG.md entry documenting the replacement of TestEncodingConfig
    with production EncodingConfig in PR cosmos#513.

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

    ---------

    Co-authored-by: Kevin Kz <[email protected]>
    Co-authored-by: Claude <[email protected]>

commit 750d77d
Author: mmsqe <[email protected]>
Date:   Tue Aug 26 02:23:56 2025 +0800

    chore: cleanup deprecated BalanceChangeEntry (cosmos#506)

    * chore: align balance change reason for tracing

    for more info, https://github.com/ethereum/go-ethereum/blob/v1.16.2/core/evm.go#L143

    * cleanup deprecated BalanceChangeEntry

    for more info, https://github.com/cosmos/evm/pull/201/files

    * Revert "chore: align balance change reason for tracing"

    This reverts commit 07a628c.

commit 2d3df2b
Author: Tyler <[email protected]>
Date:   Fri Aug 22 14:12:27 2025 -0700

    ci: workflow fails when feat, fix, or refactor PRs do not have changelog entry (cosmos#499)

    * attempt fix

    * test

    * read granularity

    * remove all conditions

    * default af

    * some more

    * try this

    * making a change

    * ok this should make it pass

    * and if i change it back it should fail

    * remove all go code cahnges to see if wf passes

    * re adding go code changes should trigger it

    * only run on specific types of PRs

    * an update

    * revert that

    * when its edited too

    * revert go code change

commit e01cc50
Author: Vlad J <[email protected]>
Date:   Fri Aug 22 16:37:40 2025 -0400

    (chore):Simplify Mempool Config (cosmos#496)

    * refactor mempool initialization to accept configs instead of objects

    * clean

    * add changelog

commit 48e3c83
Author: Tyler <[email protected]>
Date:   Fri Aug 22 13:35:52 2025 -0700

    test: v0.4.1 -> main upgrade test (cosmos#498)

    * wip upgrade test

    * upgrade test complete

    * make script

    * fix the order

    * remove that

    * fixes

    * fetch tags

commit 03083a8
Author: Abdul Malek <[email protected]>
Date:   Thu Aug 21 13:14:59 2025 -0400

    fix: duplicate case switch to avoid empty execution block (cosmos#492)

    * duplicate switch

    * add changelog

commit 4d93f2d
Author: Abdul Malek <[email protected]>
Date:   Thu Aug 21 11:37:31 2025 -0400

    feature: Add eth_createAccessList method and implementation (cosmos#346)

    * apply 3eb2135

    * apply 4f9b8c2

    * apply 0e7fd50

    * apply 5cfe96d

    * apply 0e7fd50: fix lint workflow

    * apply 679305d

    * Fix middleware test

    * Format

    * apply 9fae984: fix conflicts

    * consolidate diverging test suite structures

    * apply 9fae984: fix conflicts

    * consolidate diverging test suite structures

    * apply b9a4d41

    * apply 96ad38f

    * fix lint

    * apply b9a4d41

    * apply 96ad38f

    * apply 578b346

    * apply fd7badc

    * apply f7a3922

    * apply 0e511d3

    * apply 09e1895

    * apply fb7e407

    * apply 8cd184f

    * apply 9b96d1f

    * apply 029ed3b

    * apply e6fe094

    * apply 76d8d10

    * apply 0517dcf

    * apply af6f8d4

    * apply 17cb0d5

    * apply cb64292

    * apply cbae613

    * apply e57a44e

    * apply 66dd661

    * apply 16ec2d0

    * apply ec1a928

    * apply 058eb6d

    * apply 82a7981

    * apply 71d26cf

    * apply 4c27407

    * apply bda7ad0

    * apply bb811f4

    * apply 6644e35

    * apply 8d21baf

    * apply ebcaefa

    * apply 4913831

    * apply 76819ba

    * apply cd9cd1a

    * apply 60a6cd2

    * apply 2518c1b

    * apply bb9d02e

    * apply 5e7359e

    * apply a8112f4

    * apply 388b5c0

    * apply 727407e

    * apply a5ddd15

    * apply 03ede6c

    * apply 9ad7d66

    * apply e921750

    * apply 17c65a7

    * apply 9ddd976

    * apply cffad65

    * apply 6085578

    * apply 099f44e

    * apply 2934281

    * apply f9ca3ea

    * apply b826e3a

    * apply 5024129

    * apply bfa2f05

    * apply fb20472

    * apply 4b0d478

    * apply b065764

    * apply ebc4b6c

    * apply 0f22f9f

    * clean up gh workflows

    * add-test-chain-id

    * pointer to precise bank keeper

    * cover all

    * apply balance handler patch

    * fix lint

    * fix solidity test

    * add evmd tests fix

    * add omitted fractional balance clear

    * fix lint

    * clean up panic message

    * try 16 core depot

    * try 8 core

    * Add debug flags to init-node.sh

    * More logging

    * Fix denom

    * Remove logging additions

    * default runner

    * update hardhat config

    * fix

    * re-opening branch to merge into main

    * add solidity to push group

    * regen contracts and fix solidity group

    * use default runner for solidity (again)

    * rebase and add stubs

    * add trace call with accesslist tracer config

    * fix lint:

    * conform to auto registration

    * revert tracer logic

    * fix signatures

    * fix nil pointer issues

    * rev local node pruning settings

    * remove custom pruning settings

    * rename var to be clearer

    * fix typo

    * remove unsigned tx logic from tests

    * group vars

    * add debug logs

    * update test pointer

    * fix nil gas

    * clean up traceTx conditional handling

    * fix vmerr

    * fix lint

    * add debug logs

    * add error and info logs

    * add test suite with actual backend mock

    * lint: add helper marker

    * standardize vars

    * remove unnecessary flag in run json compat

    * add back to exclusion

    * add godocs

    * add permalink

    * clarify auth checks

    * add changelog

    ---------

    Co-authored-by: Vlad J <[email protected]>
    Co-authored-by: Eric Warehime <[email protected]>
    Co-authored-by: Alex | Interchain Labs <[email protected]>
    Co-authored-by: Aditya <[email protected]>
    Co-authored-by: Haber <[email protected]>
    Co-authored-by: Hyunwoo Lee <[email protected]>

commit 642c8e9
Author: mmsqe <[email protected]>
Date:   Thu Aug 21 22:37:32 2025 +0800

    fix: notify new block for mempool in time to avoid insufficient funds error (cosmos#471)

    * fix: avoid insufficient funds error when fund and send tx within same block

    get SpendableCoin from sdk ctx to reflect uncommitted balance change

    * wrong hash

    * fix test

    * cleanup doc

    * notify

    * revert

    * cleanup

    * doc

    * unsubscribe

    * lint

    * cleanup

    * align shutdown timeout to avoid stuck on closing JSON-RPC

    * cleanup

    * Apply suggestions from code review

    * Apply suggestions from code review

    * lint

    * lint

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit 2cf6593
Author: Facundo Medica <[email protected]>
Date:   Thu Aug 21 15:48:37 2025 +0200

    feat: allow PostTxProcessing to run on failures and persist data (cosmos#479)

    * feat: allow PostProcessingTx to run on failures and persist data

    * linf fix

    * add check for hooks

    ---------

    Co-authored-by: Vlad J <[email protected]>

commit 1f22f19
Author: yihuang <[email protected]>
Date:   Thu Aug 21 21:46:24 2025 +0800

    Problem: IsStorageEmpty is not implemented (cosmos#490)

    * Problem: IsStorageEmpty is not implemented

    Closes: cosmos#486

    * update deps

commit 3991c2c
Author: Haber <[email protected]>
Date:   Thu Aug 21 03:43:08 2025 +0900

    tests: add revert error e2e tests for contract and precompile calls (cosmos#476)

    * update launch script path & remove duplicate

    We should use only one launch script. Managing both is extra un-necessary overhead

    * chore: add private keys info in local_node.sh

    * add bech32 and bank e2e tests

    * add undelegate test

    * faster local node and udpate delegate test

    * add create validator tc

    * update delegate tc

    include event checking also

    * update test codes

    added event checking to undelegate tc

    receipt has hash field instead of transactionHash

    * chore: remove un-used variable

    * add edit validator tc

    * add cancel unbonding tc

    * chore: format test files

    * add redelegate tc

    * skip gas estimation for faster tests

    * add redelegations query test

    * chore: refactor variable names

    * chore: change filename

    * add validators query test and fix gov interface

    * add set withdraw address tc

    * order test sequences and add withdraw delegator reward tc

    * add claim rewards tc

    * add withdraw validator commission

    * add fund community pool tc

    * add deposit validator rewards pool tc

    * add validator queries tc

    * chore: unify convention

    * add erc20 tc

    * update local node script

    it should contains every precompiles by default

    * fix slashing query and add e2e tests for it

    * fix: decode bech32 consensus address before converting to bytes

    The consensus address was previously used in its bech32-encoded form (a 52-character string), which is incorrect. This led to attempts to interpret a bech32 string directly as a 20-byte address, resulting in invalid conversions and data loss.

    This fix ensures the bech32 consensus address is properly decoded into its original 20-byte form before further processing, preserving the correct address representation expected in EVM-compatible byte format.

    * add gov tc

    * add more tcs to gov precompile (should fix cancel)

    * fix cancel proposal tc

    * add p256 tc

    * remove un-used variables

    * add werc20 tc

    * more timeout and verbose log

    * fix local_node.sh

    * add edgecase test for staking precompile and lint local node script

    * revert solidity test script change

    * chore: trim comments

    * p256 happy case

    * refactoring

    * refactor: make findEvent as common

    * check delegation shares and balance also

    * add checking user balance for withdraw delegator reward test

    * add checking user balance for claim rewards tc

    * strict balance check

    * add user balance check for fund community pool tc

    * add user balance check for deposit validator rewards pool tc

    * should use owner, not contract address itself

    * add event checks for erc20 precompile tc

    * add balance checks for werc20 tc

    * add balance check for gov deposit tc

    * add balance check for gov cancel proposal tc

    * add revert e2e test cases

    * lint: unused variable

    * chore(tests): set default evm chain id - 262144

    * WIP: test: enhance revert test

    * WIP: test: enhance revert test

    * WIP: test: enhance revert test

    * test: enhance revert test

    * chore(tests): refine code

    * chore: update changelog

    * chore: add semi-colon

    ---------

    Co-authored-by: zsystm <[email protected]>
    Co-authored-by: Vlad J <[email protected]>
    Co-authored-by: Hyunwoo Lee <[email protected]>
    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit befde4f
Author: LEE JUNSEO <[email protected]>
Date:   Thu Aug 21 01:25:25 2025 +0900

    feat: Delete EVM instance in AnteHandler (cosmos#352)

    * test: adjusts GasTipCap to equal GasFeeCap when it exceeds the maximum fee cap

    * ensures adequate fees for bank msg send

    * Optimize CanTransfer AnteHandler

    * refactor(antehandler): remove stateDB allocation

    * chore: replace GlobalEVMMempool by passing to JSONRPC on initiate (cosmos#467)

    * chore: ensure SetGlobalEVMMempool is thread-safe and only set once

    keep singleton behavior on concurrent initialization

    * doc

    * keep reset

    * pass in mempool

    * cleanup

    ---------

    Co-authored-by: Vlad J <[email protected]>
    Co-authored-by: Alex | Interchain Labs <[email protected]>

    * Problem: eip-2935 is not implemented (cosmos#407)

    * Problem: eip-2935 is not implemented

    Solution:
    - adapt the implementation from geth

    * change BLOCKHASH opcode to query contract storage

    * commit statedb

    * fix panic

    * temp

    * just emulate the contract behavior with native code

    * fix test

    * fix lint

    * fix lint

    * revert unneeded changes

    * fix test

    * revert

    * only set contract storage if it's deployed

    * fix build

    * add history serve window parameter

    * cleanup

    * fix lint

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>
    Co-authored-by: Vlad J <[email protected]>

    * fix : EVMKeeper GetBalance missed when version upgrades

    * add CHANGELOG

    ---------

    Co-authored-by: mmsqe <[email protected]>
    Co-authored-by: Alex | Interchain Labs <[email protected]>
    Co-authored-by: Vlad J <[email protected]>
    Co-authored-by: yihuang <[email protected]>

commit 7451d9b
Author: Alex | Interchain Labs <[email protected]>
Date:   Wed Aug 20 11:37:26 2025 -0400

    set-up (cosmos#491)

commit 8903f9d
Author: yoosah <[email protected]>
Date:   Wed Aug 20 23:20:55 2025 +0900

    refactor: decouple keeper using interface on precompile (cosmos#477)

    * refactor: decouple keeper using interface on precompile

    - Define a set of keeper interfaces in precompiles/common/interfaces.go
     that specify the exact methods required by the precompiles.
    - Update all precompile constructors and internal structs to use these
     new interfaces.
    - Modifie the precompile assembly in `evmd/precompiles.go` to inject
     the concrete `MsgServer` and `Querier` implementations, which satisfy
     the required interfaces.
    - Removed unnecessary keeper dependencies from the function signatures
     of several precompiles

    * docs: add changelog

commit f164197
Author: yihuang <[email protected]>
Date:   Wed Aug 20 09:00:09 2025 +0800

    Problem: eip-2935 is not implemented (cosmos#407)

    * Problem: eip-2935 is not implemented

    Solution:
    - adapt the implementation from geth

    * change BLOCKHASH opcode to query contract storage

    * commit statedb

    * fix panic

    * temp

    * just emulate the contract behavior with native code

    * fix test

    * fix lint

    * fix lint

    * revert unneeded changes

    * fix test

    * revert

    * only set contract storage if it's deployed

    * fix build

    * add history serve window parameter

    * cleanup

    * fix lint

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>
    Co-authored-by: Vlad J <[email protected]>

commit aa9a834
Author: mmsqe <[email protected]>
Date:   Wed Aug 20 05:48:45 2025 +0800

    chore: replace GlobalEVMMempool by passing to JSONRPC on initiate (cosmos#467)

    * chore: ensure SetGlobalEVMMempool is thread-safe and only set once

    keep singleton behavior on concurrent initialization

    * doc

    * keep reset

    * pass in mempool

    * cleanup

    ---------

    Co-authored-by: Vlad J <[email protected]>
    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit dda0fb1
Author: aljo242 <[email protected]>
Date:   Tue Aug 19 17:04:01 2025 -0400

    add thanks

commit a9cb401
Author: Cordt Hanson <[email protected]>
Date:   Tue Aug 19 14:17:19 2025 -0600

    add erc20 migration guide (cosmos#485)

commit 1d8b9e1
Author: Sujong Lee <[email protected]>
Date:   Wed Aug 20 02:30:07 2025 +0900

    feat: remove allow-unprotected-txs(non eip-155) from x/vm params (cosmos#415)

    * feat: remove allow-unprotected-txs(non eip-155) from x/vm params

    * fix: build

    ---------

    Co-authored-by: Vlad J <[email protected]>
    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit 47b43b4
Author: Abdul Malek <[email protected]>
Date:   Tue Aug 19 13:18:44 2025 -0400

    add comments (cosmos#489)

commit 144922a
Author: Cordt Hanson <[email protected]>
Date:   Tue Aug 19 08:28:41 2025 -0600

    revert auto-fix for markdown linting (cosmos#483)

commit 7dc893d
Author: mmsqe <[email protected]>
Date:   Tue Aug 19 03:51:14 2025 +0800

    fix: add pagination flags to token-pairs query (cosmos#468)

    * fix: add pagination flags to token-pairs query

    * doc

    ---------

    Co-authored-by: Vlad J <[email protected]>

commit 909c8e2
Author: Vlad J <[email protected]>
Date:   Mon Aug 18 15:40:06 2025 -0400

    (docs):Add SetClientCtx instructions to migration guide (cosmos#481)

    * fix annoying md lints

    * add setclientctx instructions

    w

    * Auto-fix markdown lint issues

    * improve the look of the comments

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit 29c1fac
Author: Haber <[email protected]>
Date:   Tue Aug 19 03:57:24 2025 +0900

    fix: precisebank & werc20 precompile (cosmos#457)

    * feat(x/precisebank): add FracionalBalanceChange event

    * feat(precmopile/common): Add FractionalBalanceChangeEvent to balanceHandler

    * feat(precompilse): apply changed balance handler

    * fix(precompiles/common): balance handler logic

    * test(precompiles): apply changed balance handler to evmd & integration test suite

    * test(precompiles/werc20): fix integration test

    * test(x/precisebank): fix integration tests

    * test(precompiles/werc20): fix integration tests

    * chore(x/precisebank): modify method name

    * chore: fix lint

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit ab1cd0c
Author: Haber <[email protected]>
Date:   Tue Aug 19 03:15:57 2025 +0900

    test(jsonrpc): add jsonrpc compatibility test (cosmos#419)

    * test(rpc-compat): add test simulator

    * refactor(tests): jsonrpc test

    * test(jsonprc): refactor test suite

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): add network start/stop scripts of evmd and geth

    * test(jsonrpc): fix api counting in report

    * test(jsonrpc): refactor result format

    * test(jsonrpc): refactor

    * test(jsonrpc): add state generator

    * test(jsonrpc): refactor simulator

    * test(jsonrpc): refactor

    * test(jsonrpc): setup geth dev mode

    * test(jsonrpc): clean unused code

    * test(jsonrpc): setup initial state

    * test(jsonrpc): add tx metadata for test

    * WIP: test(jsonrpc): fix some failing tests of eth_ apis

    * test(jsonrpc): fix eth test

    * WIP: test(jsonrpc): fix debug api test cases

    * test(jsonrpc): set pruning config as nothing for testing

    * test(jsonrpc): enhance debug testing

    * test(jsonrpc): fix net test case

    * chore: update working history

    * test(jsonrpc): skip personal apis

    * test(jsonrpc): add websocket api test

    * jsonrpc(test): fix personal apis

    * test(jsonrpc): add missing debug apis

    * test(jsonrpc): update working history

    * test(jsonrpc): fix eth_sign / eth_signTransaction test

    * test(jsonrpc): refactor simulator

    * test(jsonrpc): refactor simulator

    * test(jsonrpc): refactor simulator

    * test(jsonrpc): refactor simulator

    * test(jsonrpc): refactor simulator

    * test(jsonrpc): refactor simulator

    * test(jsonrpc): refactor simulator

    * test(jsonrpc): update working history

    * WIP: add type check between responses from evmd and geth

    * WIP: add type check between responses from evmd and geth

    * WIP: test(jsonrpc): add type check between responses from evmd and geth

    * test(jsonrpc): modify test

    * test(jsonrpc): add debug apis

    * test(jsonrpc): fix failing tests

    * test(jsonrpc): fix failing test

    * test(jsonrpc): fix test

    * test(jsonrpc): fix test

    * test(jsonrpc): remove unnecessary files

    * chore: add compatibility test github ci job

    * chore: update github-ci job

    * chore: fix jsonrpc-compatibility test githib-ci job

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): refactor

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): fix github-ci

    * test(jsonrpc): refactor test suite

    * fix github-ci

    * fix github-ci

    * fix github-ci

    * fix: github-ci

    * fix: github-ci

    * test(jsonrpc): add eth tests

    * WIP: chore: debugging github-ci failure

    * fix: github-ci

    * test(jsonrpc): add missing debug tests

    * fix github-ci

    * test(jsonrpc): add eth_pendingtransaction test

    * fix: github-ci

    * test(jsonrpc): add missing debug tests

    * Revert "test(jsonrpc): add missing debug tests"

    This reverts commit 790cce7.

    * Revert "fix: github-ci"

    This reverts commit b3a777a.

    * fix: github-ci

    * fix: github-ci

    * WIP: fix: github-ci

    * WIP: fix github0-ci

    * test(jsonrpc): refactor test suite

    * fix: github-ci

    * chore: add debug code for github-ci

    * chore: add debug code for github-ci

    * fix: github-ci

    * fix: github-ci

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): fix github-ci

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * fix github-ci

    * test(jsonrpc): fix eth_getProof api

    * fix eth_getProof api

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * test(jsonrpc): fix api test

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * fix: github-ci

    * test(jsonrpc): modify test script

    * fix: github-ci

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): refactor test suite

    * test(jsonrpc): fix websocket api tests

    * chore: update README.md for jsonrpc test

    * chore: remove binary file

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit b9bdbe6
Author: Haber <[email protected]>
Date:   Tue Aug 19 01:02:44 2025 +0900

    chore: update contracts-compile script (cosmos#475)

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit 810e9ef
Author: mmsqe <[email protected]>
Date:   Mon Aug 18 23:07:19 2025 +0800

    Problem: query decimals get reverted when Display doesn't match with DenomUnit for ibc token (cosmos#397)

    * Problem: query decimals get reverted when Display doesn't match with DenomUnit for ibc token

    * add test

    ---------

    Co-authored-by: Vlad J <[email protected]>

commit 39ddca4
Author: Tyler <[email protected]>
Date:   Mon Aug 18 07:17:31 2025 -0700

    feat: local_node.sh upgrades (cosmos#470)

    * upgrade script

    * some comments

    * allow mnemonics file input

    * fix script

    * add in the dev0-dev3s info

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit 6492ef5
Author: yihuang <[email protected]>
Date:   Mon Aug 18 22:16:35 2025 +0800

    feat: re-use tx validation rules from go-ethereum (cosmos#286)

    * feat: re-use tx validation rules from go-ethereum

    * fix format

    * fix lint

    * add missing gas rules

    * fix test

    * fix build

    * don't check tx gas

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>
    Co-authored-by: Vlad J <[email protected]>

commit 1bdd7d2
Author: mmsqe <[email protected]>
Date:   Mon Aug 18 22:16:09 2025 +0800

    chore: cleanup deprecated increaseAllowance and decreaseAllowance (cosmos#472)

    non-standard methods have been removed after audit

commit 204ff4e
Author: Hyunwoo Lee <[email protected]>
Date:   Mon Aug 18 05:19:32 2025 +0900

    tests: evm tools compatibility (cosmos#287)

    * add foundry uniswap v3 deploy test cases

    * add gitignore for foundry

    * exclude sol files in compatibility dir

    * add verbose flag to debug

    * fix script and ci yml

    * remove verbose tag

    * fix ci

    * add checking logic at testing script

    * shfmt ci-foundry-uniswap

    * bash lint

    * add foundry  tc

    * clean deps

    * revert version

    * add tc for cast

    * lint

    * lint

    * add sdk viem tc

    * fix viem workflow

    * add web3 tc

    * add hardhat tc

    * lint

    * refactor: script and action file names

    * clean up

    * chore: fix typo at filename

    * fix typo and update chain-id

    * udpate chain id in tc

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>
    Co-authored-by: Abdul Malek <[email protected]>

commit a259976
Author: Tyler <[email protected]>
Date:   Fri Aug 15 00:15:39 2025 -0700

    fix rpc accessability (cosmos#469)

commit 384ea4a
Author: Alex | Interchain Labs <[email protected]>
Date:   Thu Aug 14 14:40:31 2025 -0400

    retract (cosmos#464)

commit dd448d2
Author: Alex | Interchain Labs <[email protected]>
Date:   Thu Aug 14 14:14:03 2025 -0400

    update-mergify (cosmos#463)

commit 41199a7
Author: Vlad J <[email protected]>
Date:   Thu Aug 14 13:19:52 2025 -0400

    Mempool Readme (cosmos#462)

    * initial doc

    * add diagram and description

    * add transaction flow diagram

    * reorganizing

    * Auto-fix markdown lint issues

    * add links to tools and an example script link

    * Warning callout

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit ae319ac
Author: Alex | Interchain Labs <[email protected]>
Date:   Thu Aug 14 12:53:27 2025 -0400

    chore: update log package to support go v1.25 (cosmos#459)

    * update log package

    * cl

commit 491b574
Author: Cordt Hanson <[email protected]>
Date:   Thu Aug 14 08:53:17 2025 -0600

    fix solidity examples in precompile readmes (cosmos#458)

commit e2930f6
Author: mmsqe <[email protected]>
Date:   Thu Aug 14 22:16:12 2025 +0800

    fix: avoid nil pointer by checking error in gov precompile FromResponse (cosmos#442)

    * fix: avoid nil pointer by checking error in gov precompile FromResponse

    * doc

    * add test

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

commit 43f1521
Author: Alex | Interchain Labs <[email protected]>
Date:   Thu Aug 14 10:10:14 2025 -0400

    chore: add migration guide (cosmos#448)

    * add guide

    * callout

    * Auto-fix markdown lint issues

    * fix-nit

    diff --git c/docs/migrations/v0.3.0_to_v0.4.0.md i/docs/migrations/v0.3.0_to_v0.4.0.md
    index 222b9e2..a5308d1 100644
    --- c/docs/migrations/v0.3.0_to_v0.4.0.md
    +++ i/docs/migrations/v0.3.0_to_v0.4.0.md
    @@ -33,7 +33,7 @@ Bump the `cosmos/evm` dependency in `go.mod` and tidy modules:

     ### 1.2 Transitive bumps (observed in `go.sum`)

    -Check for minor dependency bumps such as minor bumps (e.g., `google.golang.org/protobuf`, `github.com/gofrs/flock`, `github.com/consensys/gnark-crypto`). Run the following commands:
    +Check for minor dependency bumps (e.g., `google.golang.org/protobuf`, `github.com/gofrs/flock`, `github.com/consensys/gnark-crypto`). Run the following commands:

     ```bash
     go mod tidy

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit 11e8be0
Author: mmsqe <[email protected]>
Date:   Thu Aug 14 22:05:13 2025 +0800

    fix: cleanup unused cancel function in filter (cosmos#452)

    * fix: cleanup unused cancel function in filter

    * doc

    * test

    ---------

    Co-authored-by: Vlad J <[email protected]>

commit eb60af8
Author: mmsqe <[email protected]>
Date:   Thu Aug 14 21:33:58 2025 +0800

    fix: apply multi decode functions instead of string contains check in HexAddressFromBech32String (cosmos#454)

    * fix: apply multi decode functions instead of string contains check in HexAddressFromBech32String

    * align for account, validator, and consensus addresses like sdk
    * https://github.com/cosmos/cosmos-sdk/blob/release/v0.53.x/client/debug/main.go#L262

    * test

commit 6acac06
Author: Hyunwoo Lee <[email protected]>
Date:   Thu Aug 14 22:03:09 2025 +0900

    feat: remove deprecated apis (cosmos#456)

    * remove deprecated apis (removed from geth)

    * add changelog

    * chore: fix link

commit 99abc7f
Author: Vlad J <[email protected]>
Date:   Wed Aug 13 16:15:44 2025 -0400

    (feat):Appside Mempool (cosmos#387)

    * wip

    * wip: iterator

    * nil check

    * wip: selectby

    * add todo

    * pointer

    * pointer 2

    * remove impl, type assertions

    * add txpool locally

    * change statedb types to interface

    * fix tests

    * scaffold app setup

    * Add initial tests to ExtMempool

    * real priority nonce mempool + fixes

    * improve test for wrong denom ordering

    * move initialization to mempool

    * ok

    * Nonce gap tx test

    * revert

    * bloom parsing dumb

    * redundant

    * ignore this dir for markdown linting

    * Cleanup + Test SelectBy

    * implement blockchain

    * update systemtest test tag

    * add subscription

    * fix tests

    * wiring and bug fixes and todos and etc

    * wip

    * fix

    * WIP on vlad/mempool

    * Auto stash before checking out "origin/vlad/mempool"

    * rpc no error

    * clean up logging

    * verification

    * Add broadcasting

    * add retries to tx results

    * feature: Add txpool namespace stubs ahead of app-side mempool implementation (cosmos#344)

    * add txpool implementation stubs

    * update interface

    * fix lint

    ---------

    Co-authored-by: Alex | Interchain Labs <[email protected]>

    * txpool endpoint

    * wip refactor

    * do not allow block 1 submission

    * fix some tests

    * fix more tests

    * fix last remaining evmd test

    * add second registry for testing

    * wip: integration tests

    * wip: functional tests

    time to add more test cases

    * fix tests and chain

    * demo ready

    todo: fix removals

    * fix removals (out of gas errors should be skipped)

    * add gas to config

    * attempt to fix flakes

    * strict equalities

    * FIXED FLAKES

    * reformat tests into original structure

    * nonce gap tests

    * add demo test and fix prev system case

    * remove done todos and the other mempool

    * add instructions to remove mempool

    * remove mocks

    * lint fixes

    * review test cases

    * add some more test cases

    * fix scripts

    * add more backoff for testing

    * remove logs from simplesends

    * fix systest CI

    * skip test for now see if main one works

    * Update .markdownlintignore

    Co-authored-by: Alex | Interchain Labs <[email protected]>

    * Update evmd/tests/integration/create_app.go

    Co-authored-by: Eric Warehime <[email protected]>

    * Refactor: Rename 'nonce' to 'accountNonce' in IncrementNonce function

    * refactor app.go imports

    * extract atest to constant

    * fix nonce name test

    * use actual release

    * evmd use release tag

    * refactor ctx -> getCtxCallback

    * rename errors2 and types2 to sdkerrors and sdktypes

    * group vars in mempool init

    * privatize newBlockchain

    * enhance mempool init readability on nil checks

    * move txPool checks to right after initialization

    * use errors.Is for nonce gap errors in rpc

    * group vars

    * Update tests/systemtests/.gitignore

    * refactor iterator to make it more readable

    * refactor iterator to make it more readable

    * rename blocked -> queued and runnable -> pending

    * explain some questionable naming choices

    * add some status constants

    * add logging

    * move custom endblocker to vm

    * fix rpc error compare

    * fix system tests

    * lints

    * fixed from main merge

    * rename mempool to experimental

    * Auto-fix markdown lint issues

    * we tidy

    * overflow comment

    * add changelog entry

    * Update evmd/app.go

    Co-authored-by: Hyunwoo Lee <[email protected]>

    * remove comment

    * initialize txpool unconditionally

    * sort by effective gas tips instead of fees on cosmos

    * lints

    * small test cleanup

    ---------

    Co-authored-by: Tyler <[email protected]>
    Co-authored-by: Alex | Interchain Labs <[email protected]>
    Co-authored-by: Abdul Malek <[email protected]>
    Co-authored-by: Eric Warehime <[email protected]>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Hyunwoo Lee <[email protected]>

commit 20dea4b
Author: Alex | Interchain Labs <[email protected]>
Date:   Wed Aug 13 14:14:22 2025 -0400

    chore: move `evmd` ante options to `evm` lib (cosmos#443)

    * fix

    * move-to-lib

    * godoc

    * cl

    * Auto-fix markdown lint issues

    * bump for ci

    * bump for ci

    * fix

    * fix

    * fix

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit a6d5dea
Author: mmsqe <[email protected]>
Date:   Wed Aug 13 22:52:35 2025 +0800

    feat: enforce app creator returning application implement AppWithPendingTxStream in build time (cosmos#440)

    * feat: enforce app creator returning application implementing AppWithPendingTxStream in build time

    * update application interface and app creator wiring for EVM server integration
    * use cosmosevmserver.Application interface instead of servertypes.Application with assertion
    * add new Application interface and AppCreator type to support pending tx stream

    * add doc

commit c5ca267
Author: mmsqe <[email protected]>
Date:   Wed Aug 13 22:48:56 2025 +0800

    fix: align precompiles map with available static check (cosmos#441)

    * fix: align precompiles map with available static check

    for more info, https://github.com/cosmos/evm/blob/be2c215481ef1466328811d878675be75c90edf3/x/vm/keeper/static_precompiles.go#L46

    * add doc
fix GetTransferSenderRecipient

cleanup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v0.5.x targeting v0.5.x
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate Compatibility Tests to Cosmos/EVM Repo
4 participants