9
votes
Trying to understand the difference between trace_call and debug_traceCall methods
API methods trace_* namespace was originally used in the openethereum client (which is currently unmaintained), some other clients such as erigon also provide this namespace.
While debug_* namespace ...
5
votes
Trying to understand the difference between trace_call and debug_traceCall methods
trace_call is an API method that allows you to execute the given call and returns the number of possible traces for it. These traces include transactions that have been mined or hypothetical ones not ...
4
votes
Accepted
Parity Node: Different results from trace_rawTransaction and trace_replayTransaction rpc calls
This behaviour is admittedly a little weird, but is kind of explained in the wiki, and can be verified by looking at the code.
https://wiki.parity.io/JSONRPC-trace-module#the-ad-hoc-tracing-api
...
3
votes
Accepted
"DELEGATECALL" with value
no need to share any debugs, the parent call already received the value so it is on the balance of the calling contract already. using msg.value with delegate call has no meaning at all since the ...
3
votes
Accepted
Revert reason and Parity trace
I ended up just ignoring the first part of the output and took the part starting with 204f6e6c... The first byte is the length of the string, the rest is the string itself.
UPDATE:
(from the official ...
2
votes
Accepted
trace_transaction and error in traces
On the Etherscan interface everything is marked as red, as everything was reverted.
Etherscan knows that it needs to mark all as errored as the tracing action where the traceAddress is [0] errored. ...
2
votes
ganache modify code of smart contract after fork?
This is not easily possible judging by https://github.com/trufflesuite/ganache/issues/649
You can pipe in a custom db and adjust the contract storage there, but this requires knowledge about ganache ...
2
votes
Accepted
How can I tell if the node I am using is exposing the Parity trace methods?
You can try running a trace cURL in your terminal to the node, like:
curl --data '{"method":"trace_transaction","params":["0x99ac150336f74125702bb87598677c97474c5783a9258049d98377ab0773f73d"],"id":1,"...
2
votes
2
votes
Accepted
Tracing old transactions with Geth
In order to have available all of the information you need to sync your node with --syncmode full
1
vote
Accepted
What is the difference between transaction revert and status:0?
They both mean that the transaction fails. But there are slight differences in transaction revert and status: 0 how they are labelled.
transaction revert
transaction revert happends when a tx fails ...
1
vote
Accepted
what does "op":"STOP" in StructLogs in debug_traceTransaction mean
No, the transaction did not fail. Actually this response shows, that the transaction was successful. The STOP basically says that the transaction has finished - in case of an error you would see the ...
1
vote
How does the PUSH instruction get its input?
"All EVM instructions take their parameter from the stack, except for PUSHx, which takes their parameters from the code."
1
vote
Accepted
Decoding Storage From trace_call (stateDiff)
0x03e5bce0671ceb85a9355530f54e34b1e23f58e03b8a4bb2dac84399d45da206 and 0xfb16c5559f3de6ff269cf27b0716d0aae93e66f8a2b0c58671322b7b60443200 should be the storage slots on the smart contract where the ...
1
vote
Accepted
Why do I not see CREATE or CREATE2 opcodes in traces of contract creating transactions?
Why do I not see CREATE or CREATE2 opcodes in traces of contract creating transactions?
because this contract is NOT created using CREATE or CREATE2 opcode, it is created by sending nil in the 'To' ...
1
vote
What do the gas values mean in debug_traceTransaction?
a little bit complex, you can have a try.
the total gas cost of the transaction is calculated by looping through the struct logs and summing the gasCost values of all the opcodes in the called ...
1
vote
Trying to understand the difference between trace_call and debug_traceCall methods
Function of these methods:
trace_call & debug_traceCall: These methods execute the given call and return a number of possible traces for it.
Differences
Here are some of the differences between ...
1
vote
get final changed state of a transacion
you can execute an "eth_call" and get all the state changes due to it using the stateDiff option of the trace_call method. You can access this method using Alchemy's trace_call endpoint:
...
1
vote
Geth trace transaction int old block
gcmode=archive only collects block data forward from the point at which it was enabled. There's no way for it to go backwards.
When you do a fast sync, you download the block data for every block (...
1
vote
How to Make Geth 1.9+ Full Node to Trace Ancient Blocks?
You need to run an archive node, rather than just a full one. Use --gcmode archive command line option. See documentation for details.
1
vote
gasCost of opcode "STATICCALL" in Geth VM Trace
Gas , refers to the amount of gas remaining after the execution of the STATICCALL function while gasCost is the cost of static call. The former is available for other calls in the transaction and ...
1
vote
Accepted
What's the difference between 'type' and 'callType' in parity trace?
To get an answer to this question we can look at the source code for Parity-Ethereum and the documentation for the trace module.
There are two distinct definitions in the source:
Action
/// Action
#...
1
vote
Accepted
Transaction cannot found when using debug.traceTransaction
Is it because on my local machine I haven't "synced" that block? Thanks.
Yes. It looks like you've synced up to block 694850, but the transaction you're looking for occurs in block 2469395. You'll ...
1
vote
Accepted
Are failed ether transfers tx also written to the block?
The only case where transfer between EOAs could fail is when the sender doesn't have enough balance to cover value + transaction fee. In that particular case the transaction isn't processed it will ...
1
vote
Accepted
Dealing with ethereum LOG1-2-3-4 opcodes: How to parse them correctly?
From the Yellow paper documentation of the LOG opcodes the format is:
stack[0] pointer memory
stack[1] size memory
stack[2] first topic
stack[3] second topic & so on
From your capture the stack ...
1
vote
Accepted
Is there a way to analyze the contract trancsaction trace result like Etherscan?
What you have is part of the solution.
You also have to look at events from that transaction.
So eth_getTransactionReceipt will return the logs (and other data that will be useful for you.).
also look ...
1
vote
Is there a way to analyze the contract trancsaction trace result like Etherscan?
Truffle Plugin Debugger (formerly Truffle Teams) can help: https://github.com/trufflesuite/truffle-plugin-debugger
1
vote
How to parse trace output using ABI & web3?
In your code for
contract.decode_function_input
Your contract object is of the token in question or of the router?
E.g. on BSC (BinanceSmartChain), you need to use the PancakeSwapRouter Version2 ...
1
vote
Accepted
Unclear description on Etherscan
You are correct, a transaction can only start from an EOA, and never from a contract. You should poke Etherscan to fix their texts.
1
vote
Accepted
Save stack traces while syncing
Run multiple nodes doing debug_traceBlockByHash
Split the work across multiple nodes e.g. by a block number
Reconcialiate the results at the end to a database
I believe this is how EtherScan ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
transaction-trace × 47go-ethereum × 18
openethereum × 12
transactions × 8
geth-debugging × 7
evm × 5
trace × 5
json-rpc × 4
opcode × 4
internal-transactions × 4
solidity × 3
contract-debugging × 3
ether × 2
events × 2
nodes × 2
error × 2
failed-transaction × 2
decoding × 2
alchemy × 2
contract-development × 1
blockchain × 1
tokens × 1
contract-deployment × 1
wallets × 1
etherscan × 1