PoC to improve accessibility of same-slot messaging #117
+543
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Signaler.sol
contains logic that is meant to be attached to EOAs via EIP-7702. The idea is to add a post-execution hook to EOAs that writes relevant data to the L1SignalService
contract.The motivation is that while the
SignalService
contract enables same-slot L1->L2 messaging, the messages are limited to what is written to the L1SignalService
contract. Ideally the L2 can synchronously read all L1 data. Unfortunately, this seems to require either ToB execution to read arbitrary data from the latest L1 slot (as described by Gwyneth’s Ultra TXs) or EIP-7814 which allows the L1 state to be introspected and passed to the L2, during the L1’s execution.This PoC is a hacky shortcut to get closer to the end goal, by making it more seamless to populate the
SignalService
contract with signals.To illustrate this, we can look to an oracle example: Assume ChainLink just posted the latest pricefeed to the L1.
Signaler.sol
: Oracle delegates EOA logic toSignaler
contract via EIP-7702. Upon posting the price, the related IO is automatically sent as a signal to theSignalService
contract making the price available to L2 contracts.In summary, if wallets adopt
Signaler.sol
it will vastly increase the breadth of data that can be passed from L1->L2 in the same slot, potentially allowing more synchronous composability use-cases before we have nice things like EIP-7814.