zemse / hardhat-tracer

🕵️ allows you to see internal calls, events and storage operations in the console
MIT License
351 stars 36 forks source link

Transaction not found on rpc #21

Open VasilyGerrans opened 1 year ago

VasilyGerrans commented 1 year ago

Here is a repository illustrating a proof-of-concept contract which causes the hardhat-tracer plugin to crash: https://github.com/VasilyGerrans/hardhat-tracer-bug

I am aware that this occurs on various operating systems.

VasilyGerrans commented 1 year ago

I've noticed this has already been mentioned here: https://github.com/zemse/hardhat-tracer/issues/12

But I'll keep this here in case the linked repo might help debug the issue.

zemse commented 1 year ago

This problem had been there for long because it used hardhat's debug_traceTransaction. It seems to be resolved in a rewrite I've been working on for a while. Please checkout the v2-beta branch.

npm i hardhat-tracer@beta
VasilyGerrans commented 1 year ago

This problem had been there for long because it used hardhat's debug_traceTransaction. It seems to be resolved in a rewrite I've been working on for a while. Please checkout the v2-beta branch.

npm i hardhat-tracer@beta

Great! I've checked it, and it certainly fixes the issue in the example repository.

I've also checked it with hash tracing on a Hardhat fork transaction, and it comes back with errors whether I pass it a --network or a --rpc argument. Would you like me to submit a code example of that?

In general, how long do you think it might take before the tracing is stable on complex transactions on both test tracing and hash tracing?

zemse commented 1 year ago

There's currently some issues with --network flag since it makes network calls (and does not locally execute the code). Hence --rpc should work.

I've also checked it with hash tracing on a Hardhat fork transaction, and it comes back with errors whether I pass it a --network or a --rpc argument.

What is the RPC? Is it an archive node or a locally running hardhat node? I'd like to reproduce the problem.

In general, how long do you think it might take before the tracing is stable on complex transactions on both test tracing and hash tracing?

I've tested the test, hash, and call tracing for complex transactions in many scenarios. There might be some edge cases (like the one you pointed out), aiming to get them resolved by next month.

VasilyGerrans commented 1 year ago

@zemse The RPC is https://api.avax.network/ext/bc/C/rpc, the main RPC offered by Avalanche. I'm not sure whether it is an archive node, but it is definitely a fully-synced mainnet node. I run local Hardhat tests on a fork of this RPC, which is where I get the issue.

I've updated the hardhat-tracer-bug repo with a minimalistic example. I describe the steps to reproduce it in the README.md file.