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
CURRENT BEHAVIOUR:
If can_relay() fails (return non-zero), the relay() method throws, causing the relay to pay for the transaction.
(NOTE: can_relay() is called directly by the relay before submitting the transaction, so the only case where the relay will attempt to create the transaction is if can_relay() succeeded when called off-chain)
In order to let the relays easily find such historical cases (where contract caused any relay to pay for unprocessed transaction) this should be fixed:
SUGGESTED BEHAVIOUR
The relay() function should be "nothrow": in case can_relay() fails, it should emit TransactionFailed( sender,target,relay, can_relay_result ) event, and exit.
Note that even if can_relay reverts, this event should be created.
With this fix, Issue #76 becomes must simpler to implement
The text was updated successfully, but these errors were encountered:
CURRENT BEHAVIOUR:
If
can_relay()
fails (return non-zero), therelay()
method throws, causing the relay to pay for the transaction.(NOTE:
can_relay()
is called directly by the relay before submitting the transaction, so the only case where the relay will attempt to create the transaction is ifcan_relay()
succeeded when called off-chain)In order to let the relays easily find such historical cases (where contract caused any relay to pay for unprocessed transaction) this should be fixed:
SUGGESTED BEHAVIOUR
The
relay()
function should be "nothrow": in casecan_relay()
fails, it should emitTransactionFailed( sender,target,relay, can_relay_result )
event, and exit.Note that even if
can_relay
reverts, this event should be created.With this fix, Issue #76 becomes must simpler to implement
The text was updated successfully, but these errors were encountered: