Closed RnkSngh closed 1 month ago
The pull request introduces several modifications across various smart contracts and their corresponding bindings. Key changes include the addition of new functions such as getLightClientType
and consensusStates
in the DummyLightClient
contract and its Go bindings; updates to the ABI; and the introduction of new contracts like SequencerSignatureVerifier
and SequencerSoloClient
. Additionally, existing contracts have been updated to enhance proof loading mechanisms and improve testing capabilities for state updates and sequencer signatures.
File Path | Change Summary |
---|---|
bindings/go/dummylightclient/DummyLightClient.go | Added getLightClientType and consensusStates functions to the DummyLightClient ABI and Go bindings; updated method signatures. |
contracts/core/SequencerSignatureVerifier.sol | Introduced a new contract for verifying sequencer signatures with methods for state update verification. |
contracts/core/SequencerSoloClient.sol | Added a light client contract for sequencer operations with multiple key functions for state management. |
contracts/interfaces/ISignatureVerifier.sol | Introduced a new interface for signature verification specific to light clients. |
contracts/utils/DummyLightClient.sol | Added getLightClientType function to retrieve the light client type. |
src/evm/contracts/DummyLightClient.ts | Updated interface and contract to include getLightClientType and consensusStates methods. |
src/evm/contracts/factories/DummyLightClient__factory.ts | Added consensusStates and getLightClientType to the factory ABI. |
test/Dispatcher/Dispatcher.multiclient.sol | Updated proof loading to include specific light client addresses. |
test/Dispatcher/Dispatcher.proof.t.sol | Enhanced IBC protocol tests with new channels and connection logic. |
test/Fork/Dispatcher.deploy.t.sol | Modified proof loading to include light client address. |
test/SequencerVerifier.t.sol | Introduced tests for the sigVerifier contract focusing on sequencer signature verification. |
test/utils/Dispatcher.base.t.sol | Updated proof loading method to accept different light client addresses. |
test/utils/Proof.base.t.sol | Added state variables for sequencer address and private key. |
test/utils/SigningClient.base.t.sol | Introduced a new contract for testing signing processes with sequencer interactions. |
DummyLightClient
and OptimisticLightClient
in the main PR.DummyLightClient
contract's ABI and its corresponding Go bindings in the main PR.DummyLightClient
and OptimisticLightClient
in the main PR.GeneralMiddleware
and Dispatcher
contracts, which relates to the acknowledgment handling in the DummyLightClient
and OptimisticLightClient
in the main PR.bug
🐇 In the meadow where the code does play,
New functions hop and dance all day.
Light clients prance with types so bright,
Sequencers sing, bringing joy and light.
With every change, our code takes flight,
A rabbit's cheer for a future so bright! 🌟
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
This also made me realize that I don't think we need the L1StateRoot in the SignedData.
When doing origin consistency check in the future we will do it by either proving that the L1BlockHash in the SignedData is the same blockHash that the destination chain has in its L1BlockInfo contract or that it is an ancestor of the destination chain L1BlockInfo (provide headers linking back from the L1BlockInfo in destination chain to the L1BlockHash in peptide's SignedData) or by providing that the EIP-4788 contract on the destination EVM chain has as a member a beacon root that commits to the L1BlockHash in the SignedData).
I don't think we need to access the L1StateRoot in either case.
sure thing, can get rid of the L1StateRoot
merging this to unblock @nicopernas
Summary by CodeRabbit
getLightClientType
andconsensusStates
functions for theDummyLightClient
contract.SequencerSignatureVerifier
contract for validating sequencer signatures in state updates.SequencerSoloClient
for enhanced blockchain interactions with light client functionality.ISignatureVerifier
interface for abstracting proof verification logic.