You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 25, 2024. It is now read-only.
Repository navigation
This repository was archived by the owner on Oct 25, 2024. It is now read-only.
Currently we are copying the state every time we are about to apply a bundle, as multi-tx bundles can't be handled with a revert to snapshort.
It should be beneficial to have a special case for single-tx bundles that avoids the state copy.
I'm looking into this issue, and I hope I can contribute somehow :)
I have a question please. I can't wrap my head around why it doesn't work to take a snapshot of the state before applying any bundle transactions and then revert to this snapshot if any one of the transactions fail. Why do we copy the state n times, right before applying every transaction?
why it doesn't work to take a snapshot of the state before applying any bundle transactions and then revert to this snapshot if any one of the transactions fail
It could, but geth only allows reverts before you commit. So you'd have to not commit any of the intermediate transactions, and either revert or commit at the end. I think it's the best way, but there are a couple of corner cases (deleting empty objects in particular).
Try it out and see where it fails right now!
Activity
simon-saliba commentedon Nov 25, 2022
Hello !
I'm looking into this issue, and I hope I can contribute somehow :)
I have a question please. I can't wrap my head around why it doesn't work to take a snapshot of the state before applying any bundle transactions and then revert to this snapshot if any one of the transactions fail. Why do we copy the state n times, right before applying every transaction?
Thanks :)
Ruteri commentedon Nov 28, 2022
Hello :)
It could, but geth only allows reverts before you commit. So you'd have to not commit any of the intermediate transactions, and either revert or commit at the end. I think it's the best way, but there are a couple of corner cases (deleting empty objects in particular).
Try it out and see where it fails right now!
Validate that the proposer payment has no calldata and its gas usage (#6
Merge changes from validation (#4)
Merge changes from validation (#4)
Merge changes from validation (#4)
Merge changes from validation (#4)
Merge changes from validation (#4)
Merge changes from validation (#4)