blockchain-etl / ethereum-etl

Python scripts for ETL (extract, transform and load) jobs for Ethereum blocks, transactions, ERC20 / ERC721 tokens, transfers, receipts, logs, contracts, internal transactions. Data is available in Google BigQuery https://goo.gl/oY5BCQ
https://t.me/BlockchainETL
MIT License
2.93k stars 838 forks source link

Include stateDiff in traces #201

Open richardpringle opened 4 years ago

richardpringle commented 4 years ago

Hey @medvedev1088, looks like you're the one maintaining this repo. Please point me in the right direction if there's a better place to make this feature request as this would break what's currently in BigQuery but it would be amazing to see state-diffs in the data output by the trace. I'm not too familiar with the python web3 library, but the 'stateDiff' is one of the possible params for the parity trace_replayBlockTransactionns which is what's being called by web3.parity.trace. Otherwise, calculating the internal transfers and miner rewards can be a bit of a pain.

Here's an example of state-diff info from a contract call: https://etherscan.io/tx/0x99bf85201956a1cf3df8d40eea404a931417225261386610d18f8ab7866e4813#statechange

Thanks in advance!

medvedev1088 commented 4 years ago

Hi Richard,

You mentioned you need state diffs for calculating the miner rewards. Can't you use the traces table and filter by trace_type=reward for this? I've used the traces table to calculate balances of all addresses including miners https://medium.com/google-cloud/how-to-query-balances-for-all-ethereum-addresses-in-bigquery-fb594e4034a7 .

Otherwise feel free to submit an issue on GitHub.

Best Regards, Evgeny Medvedev.

On Tue, Feb 25, 2020 at 4:48 AM Richard Pringle notifications@github.com wrote:

Hey @medvedev1088 https://github.com/medvedev1088, looks like you're the one maintaining this repo. Please point me in the right direction if there's a better place to make this feature request as this would break what's currently in BigQuery but it would be amazing to see state-diffs in the data output by the trace. I'm not too familiar with the python web3 library, but the 'stateDiff' is one of the possible params for the parity trace_replayBlockTransactionns which is what's being called by web3.parity.trace. Otherwise, calculating the miner rewards can be a bit of a pain.

Here's an example of state-diff info from a contract call: https://etherscan.io/tx/0x99bf85201956a1cf3df8d40eea404a931417225261386610d18f8ab7866e4813#statechange

Thanks in advance!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/blockchain-etl/ethereum-etl/issues/201?email_source=notifications&email_token=AAHDGKZI7AKQPIA7AZ2AQ63REQ6EPA5CNFSM4K2TKWS2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IP4CQBQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHDGK4NJFVBXV622WNZCKTREQ6EPANCNFSM4K2TKWSQ .