forked from evmos/ethermint
-
Notifications
You must be signed in to change notification settings - Fork 0
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
feat(RPC): debug_traceCall #1
Open
XinyuCRO
wants to merge
57
commits into
calvinaco:feature/debug_tracecall-debug
Choose a base branch
from
XinyuCRO:feature/debug_tracecall-debug
base: feature/debug_tracecall-debug
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat(RPC): debug_traceCall #1
XinyuCRO
wants to merge
57
commits into
calvinaco:feature/debug_tracecall-debug
from
XinyuCRO:feature/debug_tracecall-debug
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Problem: state overrides are not supported in eth_call Closes: evmos#368 Solution: - add the feature * Update CHANGELOG.md Signed-off-by: yihuang <[email protected]> * integration test * fix build * revert renaming * fix unmarshal * fix build * fix integration test * Update tests/integration_tests/test_call.py Signed-off-by: mmsqe <[email protected]> * fix lint and test * fix lint --------- Signed-off-by: yihuang <[email protected]> Signed-off-by: mmsqe <[email protected]> Co-authored-by: mmsqe <[email protected]>
* Problem: state override not replacing the whole state Solution: - fix SetStorage semantics * test state override * fix lint * Update tests/integration_tests/test_call.py Signed-off-by: yihuang <[email protected]> --------- Signed-off-by: yihuang <[email protected]>
* Problem: precompiles don't have access to statedb Solution: - add statedb pointer into sdk.Context * Update CHANGELOG.md Signed-off-by: yihuang <[email protected]> --------- Signed-off-by: yihuang <[email protected]>
…feature/debug_tracecall-debug
* Problem: internal websocket connection is heavy and unstable (evmos#373) * Problem: internal websocket connection is heavy and unstable Solution: - use local node client directly. * ignore duplicate subscriptions, it's possible in concurrency * bigger start timeout * handle error * fix lint * fix unit test * rename * fix test * remove test * add buffer * Problem: channels are not efficient for broadcasting scenario (evmos#374) * implement stream * rpc stream * websocket use stream * filter apis use stream * cleanup * move modules * cleanup * fix cond race * fix lint * nit * fix build * fix lint * err return * fix empty logs * fix filter initial offset * fix filter * fix filter * fix test * changelog * add comments
…feature/debug_tracecall-debug
* Problem: go-ethereum is not updated replace PrepareAccessList to Prepare update deps * skip nil value * add jsonrpc version for invalid request * fill gasUsed * pass intrinsic gas check * fix migrate keep params_v4 * fix grocksdb * pin nix version * more retries * Apply suggestions from code review Co-authored-by: yihuang <[email protected]> Signed-off-by: mmsqe <[email protected]> * clean up * fix crosscheck * fix mining without etherbase * fix eth config * rm evm with table * enable shanghai fork --------- Signed-off-by: mmsqe <[email protected]> Co-authored-by: yihuang <[email protected]>
add wait to avoid block not found err
…feature/debug_tracecall-debug # Conflicts: # go.mod # proto/ethermint/evm/v1/evm.proto # tests/integration_tests/expected_constants.py # x/evm/types/evm.pb.go # x/evm/types/query.pb.go
…g response data from EVM
…evmos#380) * Problem: no easy way to set chain config for precompile contract * fix install nix
* Problem: tracer config is not aligned with go-ethereum for more info, see https://github.com/ethereum/go-ethereum/blob/v1.11.2/eth/tracers/native/call.go#L109 * add crosscheck * Update CHANGELOG.md Signed-off-by: mmsqe <[email protected]> * keep json str * keep json str --------- Signed-off-by: mmsqe <[email protected]>
* Problem: no access to ctx params in precompile * Update CHANGELOG.md Signed-off-by: mmsqe <[email protected]> --------- Signed-off-by: mmsqe <[email protected]>
…feature/debug_tracecall-debug # Conflicts: # proto/ethermint/evm/v1/trace_config.proto # rpc/backend/backend.go # rpc/backend/tracing_test.go # tests/integration_tests/test_tracers.py # x/evm/keeper/grpc_query.go
* Problem: latest v1.11.x change is not included * rm msg, EIP150Hash, debug * for more info: https://github.com/ethereum/go-ethereum/pull/25977/files https://github.com/ethereum/go-ethereum/pull/27087/files https://github.com/ethereum/go-ethereum/pull/27048/files * retry once when tx included in next blk * update geth * update deps * fix lint
…vmos#387) * Problem: f.cancel nil is not checked * Update CHANGELOG.md * cleanup --------- Signed-off-by: mmsqe <[email protected]>
* Problem: no int64 check in error msg * Update CHANGELOG.md --------- Signed-off-by: mmsqe <[email protected]>
…feature/debug_tracecall-debug # Conflicts: # x/evm/keeper/grpc_query.go # x/evm/keeper/state_transition.go
…thermint into feature/debug_tracecall-debug # Conflicts: # tests/integration_tests/test_tracers.py
Co-authored-by: mmsqe <[email protected]> Signed-off-by: Xinyu <[email protected]>
Co-authored-by: mmsqe <[email protected]> Signed-off-by: Xinyu <[email protected]>
Co-authored-by: mmsqe <[email protected]> Signed-off-by: Xinyu <[email protected]>
Co-authored-by: mmsqe <[email protected]> Signed-off-by: Xinyu <[email protected]>
…thermint into feature/debug_tracecall-debug
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why a simpler transfer gas cost is not 21000?
According to evmos#1085, ethermint won't refund all gas unused, if we don't specify gasLimit and it it's a lot bigger than 21000, a simple transfer tx will cost more than 21000 gas
Why gasUsed in callTracer is 0?
The callTracer in the
go-ethereum
version we depend on didn't implement theCaptureTxStart
andCaptureTxEnd
transaction level hooks, so the gas used is not recordedPS.
debug
can be retrieved viaevm.Config.Debug
, so no need to add a new parameter