Skip to content

Conversation

cloudgray
Copy link
Contributor

Description

By tracking native balance changes from SDK events, native balance changes that occur during the execution of a precompile method are accurately handled.

  • Add balance handler that records native balance change events and calls stateDB.AddBalance / stateDB.SubBalance.
  • Call balance handler methods (BeforeBalanceChange / AfterBalanceChange) before and after precompile execution.

Closes: #185


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

@cloudgray cloudgray self-assigned this Jun 10, 2025
@cloudgray cloudgray added the enhancement New feature or request label Jun 10, 2025
@cloudgray cloudgray marked this pull request as ready for review June 26, 2025 13:21
Copy link
Contributor

@zsystm zsystm left a comment

Choose a reason for hiding this comment

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

Just a couple of minor comments for now — I’ll take a closer look a bit later.

I think we can refactor to fully eliminate any manual balance handling logic.
When you get a chance, please take a look at the suggestion I left in the PR: cloudgray#1

require.NoError(t, configurator.WithEVMCoinInfo(testconstants.ExampleChainCoinInfo[testconstants.ExampleChainID]).Configure())
}

func TestParseHexAddress(t *testing.T) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it make sense to turn this into a table-driven test? Since it includes both success and failure cases, I think a table test format would help improve maintainability and readability.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

applied! b532fd5

require.Error(t, err)
}

func TestParseAmount(t *testing.T) {
Copy link
Contributor

@zsystm zsystm Jul 3, 2025

Choose a reason for hiding this comment

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

Ditto

Copy link
Contributor Author

Choose a reason for hiding this comment

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

applied! b532fd5

Copy link
Member

@vladjdk vladjdk left a comment

Choose a reason for hiding this comment

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

Lgtm, this is already way simpler than what we had before. Great work!

@cloudgray cloudgray merged commit af6f8d4 into cosmos:main Jul 7, 2025
18 of 19 checks passed
@yihuang
Copy link
Contributor

yihuang commented Jul 8, 2025

it don't support recursive calls like precompile -> evm -> precompile, right? or does it?

@cloudgray
Copy link
Contributor Author

@yihuang

it don't support recursive calls like precompile -> evm -> precompile, right? or does it?

Currently, there are no precompiles that call evm.Call from within another precompile, so we haven’t tested that scenario.

Do you have any specific concerns? Or is there a scenario where a precompile → evm → precompile call chain could occur that I’m not aware of?

cc. @vladjdk @zsystm

@yihuang
Copy link
Contributor

yihuang commented Jul 9, 2025

@yihuang

it don't support recursive calls like precompile -> evm -> precompile, right? or does it?

Currently, there are no precompiles that call evm.Call from within another precompile, so we haven’t tested that scenario.

Do you have any specific concerns? Or is there a scenario where a precompile → evm → precompile call chain could occur that I’m not aware of?

cc. @vladjdk @zsystm

Yeah, the current precompiles under the ./precompiles directory looks fine. it's just care need to be taken to avoid recursion like that when people wrap more messages into precompiles.

@cloudgray
Copy link
Contributor Author

@yihuang
Yes — if a chain integrating Cosmos/EVM implements a custom precompile that enables recursive calls like precompile → EVM → precompile, then we can’t guarantee there won’t be issues.

I think we should add some guidance on this, either in the docs or as a README.md under /precompiles, and plan to include test cases and benchmark tests for it in the future.

cc. @zsystm @vladjdk @Cordtus

Eric-Warehime added a commit that referenced this pull request Jul 17, 2025
commit 6da91be7d6aa437ec72bb24b20a447030cd08e89
Author: Kyuhyeon Choi <[email protected]>
Date:   Tue Jul 8 09:53:15 2025 +0900

    chore: fix lint

commit 7b2332537fac21ead05b6f193cb2a27588f0bfaa
Author: Kyuhyeon Choi <[email protected]>
Date:   Mon Jul 7 23:23:08 2025 +0900

    test(precompiles/gov): modify test case for audit issue

    Co-Authored-By: zsystm <[email protected]>
    Co-Authored-By: Vlad J <[email protected]>

commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <[email protected]>
Date:   Mon Jul 7 23:09:24 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

    Co-Authored-By: zsystm <[email protected]>
    Co-Authored-By: Vlad J <[email protected]>

commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <[email protected]>
Date:   Mon Jul 7 10:28:01 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

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

commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <[email protected]>
Date:   Thu Jun 12 11:17:44 2025 +0900

    refactor(precompiles): apply journal-based revert approach (#205)

    * refactor(precompiles): apply journal-based revert approach

    * refactor: remove unused Snapshot type

    * chore: fix lint
Eric-Warehime pushed a commit that referenced this pull request Jul 17, 2025
commit 43cff363c5b90c9652960da00e62b737681804c2
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 12:41:09 2025 +0900

    test(precmopiles): apply revert reason check

    This commit is for resolving cherry-pick conflict.

commit ec5a79edcc32c211e79ef04220153d60f68a9472
Author: Haber <[email protected]>
Date:   Sat Jul 5 05:37:53 2025 +0900

    fix(precompiles): return data for revert (#224)

    * fix(vm/keeper): add return data of ApplyMessageWithConfig for ErrExecutionReverted

    * fix(precompile): modify return data of distribution precompile for revert error

    * test: remove redundant test case

    * chore(precompiles/staking): modify description for integration test case

    * chore: fix lint

    * fix(precompiles): modify return data of precompiles for revert error

    * fix: broken test cases after modifying precompile err to revert err

    * refactor:(precompiles) convert error that precompile.Run returns to ErrExecutionReverted

    * wip: test(precompiles/staking): fix test cases

    * chore: compile latest test contracts

    * fix(precompiles/staking): check revert reason or integration test cases

    * test(precompiles/staking): fix unit test

    * test(precompiles/distribution): improve integration test

    * test(precompiles/erc20): improve integration test

    * test(precompiles/ics20): improve integration test

    * test(precompiles/slashing): add slashing integration test for proof of audit issue fix

    * chore: fix lint

    * chore: fix lint

commit a7cdcc537e0a33f36e8de36f0247bfe3a2a1d9dc
Author: Kyuhyeon Choi <[email protected]>
Date:   Thu Jul 10 19:45:25 2025 +0900

    fix(precompiles/common): hex address parsing method

commit 5a937ecd545703515993e6af47def0574a398897
Author: Kyuhyeon Choi <[email protected]>
Date:   Tue Jul 8 09:49:35 2025 +0900

    chore: fix lint

commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <[email protected]>
Date:   Mon Jul 7 23:09:24 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

    Co-Authored-By: zsystm <[email protected]>
    Co-Authored-By: Vlad J <[email protected]>

commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <[email protected]>
Date:   Mon Jul 7 10:28:01 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

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

commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <[email protected]>
Date:   Thu Jun 12 11:17:44 2025 +0900

    refactor(precompiles): apply journal-based revert approach (#205)

    * refactor(precompiles): apply journal-based revert approach

    * refactor: remove unused Snapshot type

    * chore: fix lint
Eric-Warehime pushed a commit that referenced this pull request Jul 17, 2025
commit 3b20e2b727685443693838ffcbd5851b2e4c26b8
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 14:56:44 2025 +0900

    feat(x/vm): apply stack-based StateDB snapshot mechanism for precompile call

    This commit is backport of cosmos/evm [PR#244](#244)

commit 3dbee41fca3beda2778ed7e2431800086fe3ea04
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 09:56:24 2025 +0900

    chore: reset consensusVersion of modules to 1

commit 25eb3afa5ff4b96dcb1f8a69d9eb7a326695dc89
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 09:41:48 2025 +0900

    chore(precompiles/common): fix comment

commit a7cdcc537e0a33f36e8de36f0247bfe3a2a1d9dc
Author: Kyuhyeon Choi <[email protected]>
Date:   Thu Jul 10 19:45:25 2025 +0900

    fix(precompiles/common): hex address parsing method

commit 5a937ecd545703515993e6af47def0574a398897
Author: Kyuhyeon Choi <[email protected]>
Date:   Tue Jul 8 09:49:35 2025 +0900

    chore: fix lint

commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <[email protected]>
Date:   Mon Jul 7 23:09:24 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

    Co-Authored-By: zsystm <[email protected]>
    Co-Authored-By: Vlad J <[email protected]>

commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <[email protected]>
Date:   Mon Jul 7 10:28:01 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

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

commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <[email protected]>
Date:   Thu Jun 12 11:17:44 2025 +0900

    refactor(precompiles): apply journal-based revert approach (#205)

    * refactor(precompiles): apply journal-based revert approach

    * refactor: remove unused Snapshot type

    * chore: fix lint
Eric-Warehime added a commit that referenced this pull request Jul 17, 2025
commit 3b20e2b727685443693838ffcbd5851b2e4c26b8
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 14:56:44 2025 +0900

    feat(x/vm): apply stack-based StateDB snapshot mechanism for precompile call

    This commit is backport of cosmos/evm [PR#244](#244)

commit 3dbee41fca3beda2778ed7e2431800086fe3ea04
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 09:56:24 2025 +0900

    chore: reset consensusVersion of modules to 1

commit 25eb3afa5ff4b96dcb1f8a69d9eb7a326695dc89
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 09:41:48 2025 +0900

    chore(precompiles/common): fix comment

commit a7cdcc537e0a33f36e8de36f0247bfe3a2a1d9dc
Author: Kyuhyeon Choi <[email protected]>
Date:   Thu Jul 10 19:45:25 2025 +0900

    fix(precompiles/common): hex address parsing method

commit 5a937ecd545703515993e6af47def0574a398897
Author: Kyuhyeon Choi <[email protected]>
Date:   Tue Jul 8 09:49:35 2025 +0900

    chore: fix lint

commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <[email protected]>
Date:   Mon Jul 7 23:09:24 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

    Co-Authored-By: zsystm <[email protected]>
    Co-Authored-By: Vlad J <[email protected]>

commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <[email protected]>
Date:   Mon Jul 7 10:28:01 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

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

commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <[email protected]>
Date:   Thu Jun 12 11:17:44 2025 +0900

    refactor(precompiles): apply journal-based revert approach (#205)

    * refactor(precompiles): apply journal-based revert approach

    * refactor: remove unused Snapshot type

    * chore: fix lint
Eric-Warehime added a commit that referenced this pull request Jul 17, 2025
commit 3dbee41fca3beda2778ed7e2431800086fe3ea04
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 09:56:24 2025 +0900

    chore: reset consensusVersion of modules to 1

commit 25eb3afa5ff4b96dcb1f8a69d9eb7a326695dc89
Author: Kyuhyeon Choi <[email protected]>
Date:   Fri Jul 11 09:41:48 2025 +0900

    chore(precompiles/common): fix comment

commit a7cdcc537e0a33f36e8de36f0247bfe3a2a1d9dc
Author: Kyuhyeon Choi <[email protected]>
Date:   Thu Jul 10 19:45:25 2025 +0900

    fix(precompiles/common): hex address parsing method

commit 5a937ecd545703515993e6af47def0574a398897
Author: Kyuhyeon Choi <[email protected]>
Date:   Tue Jul 8 09:49:35 2025 +0900

    chore: fix lint

commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <[email protected]>
Date:   Mon Jul 7 23:09:24 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

    Co-Authored-By: zsystm <[email protected]>
    Co-Authored-By: Vlad J <[email protected]>

commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <[email protected]>
Date:   Mon Jul 7 10:28:01 2025 +0900

    feat(precompiles): add BalanceHandler to handle native balance change (#201)

    * feat(precompiles): add BalanceHandler to handle native balance change

    * refactor: remove parts of calling SetBalanceChangeEntries

    * chore: fix lint

    * chore(precompiles/distribution): remove unused helper function

    * chore(precompiles): modify comments

    * chore: restore modification to be applied later

    * chore: fix typo

    * chore: resolve conflict

    * chore: fix lint

    * test(precompiles/common) add unit test cases

    * chore: fix lint

    * fix(test): precompile test case that intermittently fails

    * refactor: move mock evm keeper to x/vm/types/mocks

    * chore: add KVStoreKeys() method to mock evmKeeper

    * refactoring balance handling

    * test(precompile/common): improve unit test for balance handler

    * refactor(precompiles): separate common logic

    * Revert "refactor(precompiles): separate common logic"

    This reverts commit 25b89f3.

    * Revert "Merge pull request #1 from zsystm/poc/precompiles-balance-handler"

    This reverts commit 46cd527, reversing
    changes made to b532fd5.

    ---------

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

commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <[email protected]>
Date:   Thu Jun 12 11:17:44 2025 +0900

    refactor(precompiles): apply journal-based revert approach (#205)

    * refactor(precompiles): apply journal-based revert approach

    * refactor: remove unused Snapshot type

    * chore: fix lint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Native Balance Handling Enhancement
4 participants