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
When pallet ethereum executes Ethereum transactions submitted to its transact extrinsic, the correct flow is as follows.
Execute the transaction against the EVM,
Insert the transaction hash along with its receipt and status in the Pending item
On block finalization, include the transaction hash in the EndBlock digest
On block import write the transaction metadata to aux storage.
But when transactions revert, they are never inserted into the Pending storage item, and the rest of the flow is skipped. From an end user perspective, this means I cannot query for transaction receipts for reverted transactions.
When pallet ethereum executes Ethereum transactions submitted to its
transact
extrinsic, the correct flow is as follows.Execute the transaction against the EVM,
Insert the transaction hash along with its receipt and status in the
Pending
itemOn block finalization, include the transaction hash in the EndBlock digest
On block import write the transaction metadata to aux storage.
But when transactions revert, they are never inserted into the
Pending
storage item, and the rest of the flow is skipped. From an end user perspective, this means I cannot query for transaction receipts for reverted transactions.The problem is that the
transact
function returns early when a revert happens thanks to the?
on this line https://github.com/paritytech/frontier/blob/bb79f231ea5d3785d9f543aa9d9a4454cf5b59b1/frame/ethereum/src/lib.rs#L169-L177As a concrete test case, I've been using this simple contract deploy which will always fail
The text was updated successfully, but these errors were encountered: