Replies: 2 comments
-
A simple implementation would be to simply allow dropping of failed transactions. When the transaction is applied twice, the second one will fail, which today leads to the bundle not being included. With an option to drop failed ones, the rest of the bundle can still turn out to be profitable and pay the miner as intended. |
Beta Was this translation helpful? Give feedback.
-
One of my worries is introducing unnecessary complexity to order types. There is a challenge of balancing simplicity with expressibility. Are there more generic ways of expressing dependence on the behavior of other transactions? |
Beta Was this translation helpful? Give feedback.
-
Similar to the
revertingTxHashes
array in a bundle, add another element likealreadyIncludedTxHashes
specifying transactions that may have already been included earlier in the block or confirmed in a previous block. Such transactions would simply be skipped and dropped from the bundle.Motivation example: multiple opportunities after an oracle update confirms or after a big multi-DEX trade.
A more advanced version would allow specifying one or more sets of "at least one of these txs must have already been included, else include the first one". For example, the list of bundle transactions could be enriched to something like
would mean to the miner building the block:
So this bundle on chain would have 2 or 3 transactions, either [txA, txE] or [txA, txB, txE], depending on what came earlier.
Motivation example: ability to handle prerequisite transactions with multiple pending variants at the same {from,nonce}.
Beta Was this translation helpful? Give feedback.
All reactions