Skip to main content
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 ...
hack3r-0m's user avatar
  • 1,929
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 ...
Yongjian P.'s user avatar
  • 4,308
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 ...
Joshua Mir's user avatar
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 ...
Nulik's user avatar
  • 4,116
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 ...
ulu's user avatar
  • 730
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. ...
Richard's user avatar
  • 5,144
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 ...
Richard's user avatar
  • 5,144
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,"...
haxsyn's user avatar
  • 76
2 votes

Tracing old transactions with Geth

You must set gcmode=archive when start geth.
蒋心健's user avatar
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
Daniel Luca CleanUnicorn's user avatar
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 ...
timsntech's user avatar
  • 868
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 ...
timsntech's user avatar
  • 868
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."
Vegard Stikbakke's user avatar
1 vote
Accepted

Decoding Storage From trace_call (stateDiff)

0x03e5bce0671ceb85a9355530f54e34b1e23f58e03b8a4bb2dac84399d45da206 and 0xfb16c5559f3de6ff269cf27b0716d0aae93e66f8a2b0c58671322b7b60443200 should be the storage slots on the smart contract where the ...
shankar's user avatar
  • 109
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' ...
Nulik's user avatar
  • 4,116
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 ...
david fnck's user avatar
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 ...
Sahil Aujla's user avatar
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: ...
Sahil Aujla's user avatar
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 (...
AusIV's user avatar
  • 640
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.
Mikhail Vladimirov's user avatar
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 ...
0xsegfault's user avatar
  • 1,260
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 #...
Shawn Tabrizi's user avatar
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 ...
user19510's user avatar
  • 28.1k
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 ...
Ismael's user avatar
  • 30.3k
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 ...
Ismael's user avatar
  • 30.3k
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 ...
Andriy Lysak's user avatar
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
ferit's user avatar
  • 519
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 ...
Penko_Mlakar's user avatar
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.
Lauri Peltonen's user avatar
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 ...
Mikko Ohtamaa's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible