-
Notifications
You must be signed in to change notification settings - Fork 113
refactor(precompiles): apply journal-based revert approach #205
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(precompiles): apply journal-based revert approach #205
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! This looks better in terms of preserving the rollback of the multistore while being much more idiomatic to how the evm journal/statedb handle failures.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work :) LGTM
commit 6da91be7d6aa437ec72bb24b20a447030cd08e89
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Tue Jul 8 09:53:15 2025 +0900
chore: fix lint
commit 7b2332537fac21ead05b6f193cb2a27588f0bfaa
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Mon Jul 7 23:23:08 2025 +0900
test(precompiles/gov): modify test case for audit issue
Co-Authored-By: zsystm <actor93kor@gmail.com>
Co-Authored-By: Vlad J <vladjdk@gmail.com>
commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
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 <actor93kor@gmail.com>
Co-Authored-By: Vlad J <vladjdk@gmail.com>
commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <kyuhyeon@bharvest.io>
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 <actor93kor@gmail.com>
Co-authored-by: Vlad J <vladjdk@gmail.com>
commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <kyuhyeon@bharvest.io>
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
commit 43cff363c5b90c9652960da00e62b737681804c2
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
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 <kyuhyeon@bharvest.io>
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 <bluejet1104@gmail.com>
Date: Thu Jul 10 19:45:25 2025 +0900
fix(precompiles/common): hex address parsing method
commit 5a937ecd545703515993e6af47def0574a398897
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Tue Jul 8 09:49:35 2025 +0900
chore: fix lint
commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
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 <actor93kor@gmail.com>
Co-Authored-By: Vlad J <vladjdk@gmail.com>
commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <kyuhyeon@bharvest.io>
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 <actor93kor@gmail.com>
Co-authored-by: Vlad J <vladjdk@gmail.com>
commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <kyuhyeon@bharvest.io>
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
commit 3b20e2b727685443693838ffcbd5851b2e4c26b8
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
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 <bluejet1104@gmail.com>
Date: Fri Jul 11 09:56:24 2025 +0900
chore: reset consensusVersion of modules to 1
commit 25eb3afa5ff4b96dcb1f8a69d9eb7a326695dc89
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Fri Jul 11 09:41:48 2025 +0900
chore(precompiles/common): fix comment
commit a7cdcc537e0a33f36e8de36f0247bfe3a2a1d9dc
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Thu Jul 10 19:45:25 2025 +0900
fix(precompiles/common): hex address parsing method
commit 5a937ecd545703515993e6af47def0574a398897
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Tue Jul 8 09:49:35 2025 +0900
chore: fix lint
commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
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 <actor93kor@gmail.com>
Co-Authored-By: Vlad J <vladjdk@gmail.com>
commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <kyuhyeon@bharvest.io>
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 <actor93kor@gmail.com>
Co-authored-by: Vlad J <vladjdk@gmail.com>
commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <kyuhyeon@bharvest.io>
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
commit 3b20e2b727685443693838ffcbd5851b2e4c26b8
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
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 <bluejet1104@gmail.com>
Date: Fri Jul 11 09:56:24 2025 +0900
chore: reset consensusVersion of modules to 1
commit 25eb3afa5ff4b96dcb1f8a69d9eb7a326695dc89
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Fri Jul 11 09:41:48 2025 +0900
chore(precompiles/common): fix comment
commit a7cdcc537e0a33f36e8de36f0247bfe3a2a1d9dc
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Thu Jul 10 19:45:25 2025 +0900
fix(precompiles/common): hex address parsing method
commit 5a937ecd545703515993e6af47def0574a398897
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Tue Jul 8 09:49:35 2025 +0900
chore: fix lint
commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
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 <actor93kor@gmail.com>
Co-Authored-By: Vlad J <vladjdk@gmail.com>
commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <kyuhyeon@bharvest.io>
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 <actor93kor@gmail.com>
Co-authored-by: Vlad J <vladjdk@gmail.com>
commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <kyuhyeon@bharvest.io>
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
commit 3dbee41fca3beda2778ed7e2431800086fe3ea04
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Fri Jul 11 09:56:24 2025 +0900
chore: reset consensusVersion of modules to 1
commit 25eb3afa5ff4b96dcb1f8a69d9eb7a326695dc89
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Fri Jul 11 09:41:48 2025 +0900
chore(precompiles/common): fix comment
commit a7cdcc537e0a33f36e8de36f0247bfe3a2a1d9dc
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Thu Jul 10 19:45:25 2025 +0900
fix(precompiles/common): hex address parsing method
commit 5a937ecd545703515993e6af47def0574a398897
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
Date: Tue Jul 8 09:49:35 2025 +0900
chore: fix lint
commit c32a6e5128c592d5fc791fc13733fc52e18553bc
Author: Kyuhyeon Choi <bluejet1104@gmail.com>
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 <actor93kor@gmail.com>
Co-Authored-By: Vlad J <vladjdk@gmail.com>
commit 37e0f9a8cdd362c78d411bc4291e61b64bbc3dbc
Author: Haber <kyuhyeon@bharvest.io>
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 <actor93kor@gmail.com>
Co-authored-by: Vlad J <vladjdk@gmail.com>
commit a5bf7d1f255ab43a28ac19d3348d56f20d3dbe29
Author: Haber <kyuhyeon@bharvest.io>
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
* refactor(precompiles): apply journal-based revert approach * refactor: remove unused Snapshot type * chore: fix lint
Description
Closes: #204
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...
mainbranchReviewers 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...
Unreleasedsection inCHANGELOG.md