-
Notifications
You must be signed in to change notification settings - Fork 37
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
Retrieving transaction for interaction
hangs
#738
Comments
Hey @ianthpun, does the That check is that the sent transaction is in the mempool. We have a retry mechanism (with 10 retries) for infrastructure providers that load balance their mempools. So Ignition sends the transaction to the mempool and checks it has been accepted. If the first attempt to lookup the transaction in the mempool fails that might suggest Ignition is have a problem calling the transaction lookup RPC call on the flow node. |
when I first run it, it'll go through all 10 attempts and it'll return saying the transaction was dropped and that i would need to run it again on the subsequent runs, it gets stuck at attempt 1/10, which i assume whats happening is that since its already logged with the transactionhash on the second run, it attempts to grab the transaction from the txHash but somewhere it blocks. I haven't been able to find where exactly its happening though, as that is the last debug message |
This sounds like there is something different about the flow node. Are you able to do a deploy against a local Hardhat node and ethereum testnet like sepolia? To eliminate your setup/Ignition module as the source. |
yes correct, the deployment works on the local hardhat node, as well as Base. I suspect its someting wrong with the flow node, but its been hard to decypher just which query against the client is causing the hang |
Can I ask you to rerun the deploy with verbose logging turned on: https://hardhat.org/hardhat-runner/docs/troubleshooting/verbose-logging If we now which call is hanging, we can enhance the logging in Ignition to give you a better idea of what the flow node is responding with. Are you able to do a contract deploy from a Hardhat script via either |
@kanej @ianthpun @nvdtf I have found the root cause of this, and it comes from this condition. hardhat-ignition:onchain-interaction-monitor Confirmations: 1 +1ms
hardhat-ignition:onchain-interaction-monitor Required Confirmations: 5 +0ms It seems to me that this assignment: const confirmations = block.number - receipt.blockNumber + 1; Is always going to assign the value |
The assumption of that code is that you are in one of two cases:
What is the flow chain doing? Are blocks not minted until there is enough demand? |
In Flow, an EVM block is minted after an EVM transaction or a batch of EVM transactions is/are executed. Any suggestions on what can be done to work around this? The notion of confirmations on Flow EVM isn't the same as Ethereum because Flow is not using Ethereum's native consensus. |
It sounds as if the default of waiting for 5 confirmations is inappropriate for flow. You could set the number of confirmations to 1, to avoid waiting after the deployment transaction is minted into a block. The required confirmations config setting is covered here: https://hardhat.org/ignition/docs/config#requiredconfirmations |
@kanej You the best 🙌 All I had to do is: ignition: {
requiredConfirmations: 1,
}, And it worked perfectly: ➜ hardhat-testing npx hardhat ignition deploy ./ignition/modules/Apollo.js --network flowevm --verbose --show-stack-traces
Hardhat Ignition 🚀
Deploying [ Apollo ]
Batch #1
Executing Apollo#Rocket...
hardhat-ignition:onchain-interaction-monitor Retrieving transaction for interaction Apollo#Rocket/1 from mempool (attempt 1/10) +0ms
hardhat-ignition:onchain-interaction-monitor Transaction lookup for Apollo#Rocket/1 not found in mempool, waiting 1000 sBatch #1
Executed Apollo#Rocket
Batch #2
Executing Apollo#Rocket.launch...
hardhat-ignition:onchain-interaction-monitor Retrieving transaction for interaction Apollo#Rocket.launch/1 from mempool (attempt 1/10) +229ms
hardhat-ignition:onchain-interaction-monitor Transaction lookup for Apollo#Rocket.launch/1 not found in mempool, waitingBatch #2
Executed Apollo#Rocket.launch
[ Apollo ] successfully deployed 🚀
Deployed Addresses
Apollo#Rocket - 0x50aC67b41B4610657F895f2f80a3Fc2816ca172C
hardhat:core:cli Killing Hardhat after successfully running task deploy +0ms |
I am going to close this issue with the advice that ignition: {
requiredConfirmations: 1,
}, |
Hi there,
im having some trouble attempting to deploy on the Flow EVM.
With verbose on, this is what i see
my config looks something like this
The journal.jsonl shows this
txHash itself is queryable, as noted from a CURL command:
I figured it must be somewhere else down the processor that its not able to save the contract address, however the lack of debug messages isn't helping me find where it is blocking
The text was updated successfully, but these errors were encountered: