Closed RnkSngh closed 1 month ago
This pull request introduces significant changes to the contracts related to the SequencerSoloClient
and SequencerSignatureVerifier
. The OptimisticProofVerifier
contract has been renamed to SequencerSignatureVerifier
, reflecting its new purpose of verifying ECDSA signatures from a sequencer. The SequencerSoloClient
contract has been updated to include new error handling, additional parameters, and validation logic for L1 block origins. New methods have been added to facilitate interaction with the L1 block provider, and corresponding tests have been introduced to validate these changes.
File | Change Summary |
---|---|
contracts/core/SequencerSignatureVerifier.sol |
Contract renamed from OptimisticProofVerifier to SequencerSignatureVerifier . Documentation updated; no changes to internal logic or functionality. |
contracts/core/SequencerSoloClient.sol |
New import for L1Block , added InvalidL1Origin error type, updated constructor to accept L1Block , modified updateClient function to include L1 block validation, and introduced _updateClient function. |
src/evm/contracts/SequencerSoloClient.ts |
Added l1BlockProvider method to SequencerSoloClientInterface and SequencerSoloClient , updated getFunction , encodeFunctionData , and decodeFunctionResult methods. |
src/evm/contracts/factories/SequencerSignatureVerifier__factory.ts |
Updated bytecode for SequencerSignatureVerifier , no changes to ABI or constructor parameters. |
src/evm/contracts/factories/SequencerSoloClient__factory.ts |
Updated constructor and method signatures to include _l1BlockProvider , added l1BlockProvider method, and introduced InvalidL1Origin error type. |
test/SequencerSoloClient.t.sol |
Added OptimisticLightClientWithRealVerifierTest contract to validate SequencerSoloClient functionality with tests for valid and invalid states. |
test/payload/l1_block_ancestor.json |
New JSON file added for structured JSON-RPC response representing a blockchain block. |
test/payload/l1_block_child.json |
New JSON file added for structured JSON-RPC response related to a blockchain block. |
test/utils/Dispatcher.base.t.sol |
Updated instantiation of sequencerLightClient to include l1BlockProvider parameter in constructor. |
test/utils/SigningClient.base.t.sol |
Introduced new state variables and public functions for handling L1 block data, updated constructor to initialize new variables. |
bindings/go/sequencersoloclient/SequencerSoloClient.go |
Updated ABI to include new constructor parameter _l1BlockProvider and added l1BlockProvider function. |
SequencerSignatureVerifier
contract, which is related to the functionality of verifying signatures. This aligns with the focus on contract deployment and testing in the fork unit testing PR.SequencerSignatureVerifier
contract's functionality.SequencerSignatureVerifier
contract as it may involve interactions with the contract's ABI and deployment processes.SequencerSignatureVerifier
as it involves contract interactions.SequencerSignatureVerifier
contract's functionality.Dispatcher
contract may have implications for the SequencerSignatureVerifier
in terms of how contracts interact within the broader system.SequencerSignatureVerifier
if it involves transaction fees associated with signature verification.SequencerSignatureVerifier
as it deals with state updates and verification processes.SequencerSignatureVerifier
, as both involve signature verification and state updates.bug
🐇 In the meadow where contracts play,
A new verifier hops in today.
With L1 checks and signatures bright,
Sequencer's path is clearer in sight.
Hooray for changes, let’s dance and cheer,
For a future where blocks are crystal clear! 🌟
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?
Summary by CodeRabbit
Release Notes
New Features
OptimisticProofVerifier
contract has been renamed toSequencerSignatureVerifier
, now focusing on ECDSA signature verification.SequencerSoloClient
contract has been enhanced with a new error typeInvalidL1Origin
and a new immutable state variable for L1 block validation.l1BlockProvider
to retrieve the address of the L1 block provider.Bug Fixes
Tests
SequencerSoloClient
.Documentation