fix: use synched block number to sync notes#10545
Conversation
spalladino
left a comment
There was a problem hiding this comment.
I'm not sure about this as a fix. Given it's a Circuit execution failed we're seeing, I'd expect the fix to be part of the pxe itself, rather than having the caller wait for the sync to finish.
If we want to throw this in as a temporary measure so we can reenable the 2_pxes tests, then I'm fine, but if we do I'd open an issue to investigate the Circuit execution failed.
| expectedBalance: bigint, | ||
| logger: DebugLogger, | ||
| ) { | ||
| // Check if the wallet |
There was a problem hiding this comment.
Whoops, didn't save the file properly.
To address the overall comment, the Circuit execution failed error seems to happen when validating a read request in the kernel, so I assumed it's because we haven't synched the balances properly (kernel verification happens with a stale header). Even if PXE
You made me think, hope you're happy. The problem is in a misalignment between what's read in the simulation (that uses notes seen up to aztecNode.getBlockNumber()) and the kernels (that checks read requests up to synchronizer.getSynchedBlockNumber). I'm gonna test this theory by forcing simulation to use only the synched blockNumber!
There was a problem hiding this comment.
Sorry, I had missed the description of the PR. Let's merge this then, but not mark #10296 as fixed (or open a new one instead).
… gj/deflate_e2e_2_pxes
…c-packages into gj/deflate_e2e_2_pxes
… gj/deflate_e2e_2_pxes
… gj/deflate_e2e_2_pxes
…c-packages into gj/deflate_e2e_2_pxes
|
Closing in favor of: #10613 |
Closes: #10296
Testing out a theory: simulation was using more notes than were available to the kernels (
aztecNode.getBlockNumbervs.synchronizer.getSynchedBlockNumber). That might have led to a situation in which the kernel fails even if simulation succeeds (as @spalladino found in the linked issue)