From 5e10969344ccc73c9f2a21e84dad613b9de1005b Mon Sep 17 00:00:00 2001 From: roger-bai-coinbase Date: Mon, 8 Jun 2026 09:24:41 -0400 Subject: [PATCH 01/19] Allow preemptively revoking certs (#329) * allow preemptively revoking certs --- .../L1/proofs/tee/INitroEnclaveVerifier.sol | 13 ++-- snapshots/abi/NitroEnclaveVerifier.json | 11 ---- snapshots/semver-lock.json | 4 +- src/L1/proofs/tee/NitroEnclaveVerifier.sol | 16 ++--- test/L1/proofs/NitroEnclaveVerifier.t.sol | 64 +++++++++++++++++-- 5 files changed, 72 insertions(+), 36 deletions(-) diff --git a/interfaces/L1/proofs/tee/INitroEnclaveVerifier.sol b/interfaces/L1/proofs/tee/INitroEnclaveVerifier.sol index cffe9388f..2d3ea68b8 100644 --- a/interfaces/L1/proofs/tee/INitroEnclaveVerifier.sol +++ b/interfaces/L1/proofs/tee/INitroEnclaveVerifier.sol @@ -281,18 +281,17 @@ interface INitroEnclaveVerifier { external; /** - * @dev Revokes a trusted intermediate certificate. + * @dev Revokes an intermediate certificate, whether or not it has been cached as trusted. * @param _certHash Hash of the certificate to revoke * * Requirements: * - Only callable by contract owner or revoker - * - Certificate must exist in the trusted set * - * In addition to clearing the cached entry, this flips a persistent - * revocation sentinel that survives later cache writes. Subsequent - * verifications whose chain traverses the revoked hash are rejected - * regardless of the journal-supplied `trustedCertsPrefixLen`. Re-trust - * requires an explicit `unrevokeCert` call. + * In addition to clearing any cached entry, this flips a persistent revocation + * sentinel that survives later cache writes. Certificates never seen on-chain can + * be revoked preemptively. Subsequent verifications whose chain traverses the + * revoked hash are rejected regardless of the journal-supplied + * `trustedCertsPrefixLen`. Re-trust requires an explicit `unrevokeCert` call. */ function revokeCert(bytes32 _certHash) external; diff --git a/snapshots/abi/NitroEnclaveVerifier.json b/snapshots/abi/NitroEnclaveVerifier.json index 830264985..2d59ea314 100644 --- a/snapshots/abi/NitroEnclaveVerifier.json +++ b/snapshots/abi/NitroEnclaveVerifier.json @@ -1125,17 +1125,6 @@ "name": "CertExpiriesLengthMismatch", "type": "error" }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "certHash", - "type": "bytes32" - } - ], - "name": "CertificateNotFound", - "type": "error" - }, { "inputs": [ { diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index a89f35117..28787c836 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -44,8 +44,8 @@ "sourceCodeHash": "0x62ff0209cffa08e5aaaaac47e0f22d89ea1fa6a0ea8773a162ab7230e50806ee" }, "src/L1/proofs/tee/NitroEnclaveVerifier.sol:NitroEnclaveVerifier": { - "initCodeHash": "0x1be3b9418c022094fb60ea68d025910c69e95c7a2314bf1b57c740f601b7cb0e", - "sourceCodeHash": "0xa0bb07f71960cda20c3b3a46c8cc24842f991c00469a9e90ce8d9a1c26e7a8d6" + "initCodeHash": "0xf79cd59d23f6a5ad78960b664e20779592d73bfcf52527c3e03adda04edd9645", + "sourceCodeHash": "0x87c59e16167407772ce33d735d7174ce947adb77809c234841bb5f5b9af249ba" }, "src/L1/proofs/tee/TEEProverRegistry.sol:TEEProverRegistry": { "initCodeHash": "0xfd1942e1c2f59b0aa72b33d698a948a53b6e4cf1040106f173fb5d89f63f57b0", diff --git a/src/L1/proofs/tee/NitroEnclaveVerifier.sol b/src/L1/proofs/tee/NitroEnclaveVerifier.sol index 56b0d043e..27d23c5fe 100644 --- a/src/L1/proofs/tee/NitroEnclaveVerifier.sol +++ b/src/L1/proofs/tee/NitroEnclaveVerifier.sol @@ -97,9 +97,6 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { /// @dev Thrown when a caller other than the authorized proof submitter calls verify or batchVerify error CallerNotProofSubmitter(); - /// @dev Thrown when a certificate hash is not found in the trusted intermediate certificates set - error CertificateNotFound(bytes32 certHash); - /// @dev Thrown when a program ID argument is bytes32(0) error ZeroProgramId(); @@ -356,15 +353,17 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { } /** - * @dev Revokes a trusted intermediate certificate. + * @dev Revokes an intermediate certificate, whether or not it has been cached as trusted. * @param certHash Hash of the certificate to revoke * * Requirements: * - Only callable by contract owner or revoker - * - Certificate must exist in the trusted intermediate certificates set * - * This function allows the owner or revoker to revoke compromised intermediate certificates - * without affecting the root certificate or other trusted certificates. + * Certificates that have never been seen on-chain can be revoked preemptively; the + * persistent `revokedCerts` sentinel blocks them from being trusted on first + * verification. This function allows the owner or revoker to revoke compromised + * intermediate certificates without affecting the root certificate or other trusted + * certificates. * * Durability: in addition to clearing `trustedIntermediateCerts[certHash]`, this * function flips the persistent `revokedCerts[certHash]` sentinel. The sentinel @@ -375,9 +374,6 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { * explicit `unrevokeCert` call by the owner. */ function revokeCert(bytes32 certHash) external onlyOwnerOrRevoker { - if (trustedIntermediateCerts[certHash] == 0) { - revert CertificateNotFound(certHash); - } delete trustedIntermediateCerts[certHash]; revokedCerts[certHash] = true; emit CertRevoked(certHash); diff --git a/test/L1/proofs/NitroEnclaveVerifier.t.sol b/test/L1/proofs/NitroEnclaveVerifier.t.sol index f62afdd13..f1bfe1d85 100644 --- a/test/L1/proofs/NitroEnclaveVerifier.t.sol +++ b/test/L1/proofs/NitroEnclaveVerifier.t.sol @@ -205,12 +205,6 @@ contract NitroEnclaveVerifierTest is Test { assertEq(verifier.trustedIntermediateCerts(INTERMEDIATE_CERT_1), 0); } - function testRevokeCertRevertsIfNotTrusted() public { - bytes32 unknown = keccak256("unknown-cert"); - vm.expectRevert(abi.encodeWithSelector(NitroEnclaveVerifier.CertificateNotFound.selector, unknown)); - verifier.revokeCert(unknown); - } - function testRevokeCertRevertsIfNotOwnerOrRevoker() public { vm.prank(submitter); vm.expectRevert(NitroEnclaveVerifier.CallerNotOwnerOrRevoker.selector); @@ -223,6 +217,64 @@ contract NitroEnclaveVerifierTest is Test { assertTrue(verifier.revokedCerts(INTERMEDIATE_CERT_1)); } + function testRevokeCertPreemptiveUnknownCert() public { + bytes32 unknown = keccak256("unknown-cert"); + assertEq(verifier.trustedIntermediateCerts(unknown), 0); + assertFalse(verifier.revokedCerts(unknown)); + + vm.expectEmit(false, false, false, true); + emit NitroEnclaveVerifier.CertRevoked(unknown); + verifier.revokeCert(unknown); + + assertTrue(verifier.revokedCerts(unknown)); + assertEq(verifier.trustedIntermediateCerts(unknown), 0); + } + + function testVerifyRejectsPreemptivelyRevokedCertInSuffix() public { + _setUpRiscZeroConfig(); + bytes32 unknown = keccak256("unknown-compromised-intermediate"); + verifier.revokeCert(unknown); + + VerifierJournal memory journal = _createSuccessJournal(); + bytes32[] memory certs = new bytes32[](3); + certs[0] = ROOT_CERT; + certs[1] = unknown; // preemptively revoked, lives in the suffix + certs[2] = keccak256("attacker-leaf"); + journal.certs = certs; + + uint64[] memory expiries = new uint64[](3); + expiries[0] = ROOT_CERT_EXPIRY; + expiries[1] = NEW_LEAF_CERT_EXPIRY; + expiries[2] = NEW_LEAF_CERT_EXPIRY; + journal.certExpiries = expiries; + journal.trustedCertsPrefixLen = 1; + + bytes memory output = abi.encode(journal); + bytes memory proofBytes = abi.encodePacked(bytes4(0), bytes32(0)); + _mockRiscZeroVerify(VERIFIER_ID, output, proofBytes); + + vm.prank(submitter); + VerifierJournal memory result = verifier.verify(output, ZkCoProcessorType.RiscZero, proofBytes); + + assertEq(uint8(result.result), uint8(VerificationResult.IntermediateCertsNotTrusted)); + assertEq(verifier.trustedIntermediateCerts(unknown), 0); + assertTrue(verifier.revokedCerts(unknown)); + } + + function testCheckTrustedIntermediateCertsBreaksAtPreemptivelyRevokedEntry() public { + bytes32 unknown = keccak256("unknown-compromised-intermediate"); + verifier.revokeCert(unknown); + + bytes32[][] memory reportCerts = new bytes32[][](1); + reportCerts[0] = new bytes32[](3); + reportCerts[0][0] = ROOT_CERT; + reportCerts[0][1] = unknown; + reportCerts[0][2] = keccak256("leaf"); + + uint8[] memory prefixLens = verifier.checkTrustedIntermediateCerts(reportCerts); + assertEq(prefixLens[0], 1); + } + // ============ unrevokeCert Tests ============ function testUnrevokeCertClearsSentinel() public { From 506a54e0905cf07efe7e862bca645145f1b5201c Mon Sep 17 00:00:00 2001 From: Jack Chuma Date: Mon, 8 Jun 2026 18:16:27 -0400 Subject: [PATCH 02/19] docs(tee): update Nitro verifier NatSpec comments (#330) * docs(tee): update Nitro verifier NatSpec comments * fix snapshots --- .../L1/proofs/tee/INitroEnclaveVerifier.sol | 432 +++++++-------- snapshots/semver-lock.json | 2 +- src/L1/proofs/tee/NitroEnclaveVerifier.sol | 512 ++++++++---------- 3 files changed, 418 insertions(+), 528 deletions(-) diff --git a/interfaces/L1/proofs/tee/INitroEnclaveVerifier.sol b/interfaces/L1/proofs/tee/INitroEnclaveVerifier.sol index 2d3ea68b8..a17b715f9 100644 --- a/interfaces/L1/proofs/tee/INitroEnclaveVerifier.sol +++ b/interfaces/L1/proofs/tee/INitroEnclaveVerifier.sol @@ -9,10 +9,8 @@ pragma solidity ^0.8.0; /// - Errors and events moved to the implementation contract /// - Adds new admin functions -/** - * @dev Enumeration of supported zero-knowledge proof coprocessor types - * Used to specify which proving system to use for attestation verification - */ +/// @dev Enumeration of supported zero-knowledge proof coprocessor types +/// Used to specify which proving system to use for attestation verification enum ZkCoProcessorType { Unknown, // RISC Zero zkVM proving system @@ -21,10 +19,8 @@ enum ZkCoProcessorType { Succinct } -/** - * @dev Configuration parameters for a specific zero-knowledge coprocessor - * Contains all necessary identifiers and addresses for ZK proof verification - */ +/// @dev Configuration parameters for a specific zero-knowledge coprocessor +/// Contains all necessary identifiers and addresses for ZK proof verification struct ZkCoProcessorConfig { // Latest program ID for single attestation verification bytes32 verifierId; @@ -34,10 +30,8 @@ struct ZkCoProcessorConfig { address zkVerifier; } -/** - * @dev Input structure for attestation report verification - * Contains the raw attestation data and trusted certificate chain length - */ +/// @dev Input structure for attestation report verification +/// Contains the raw attestation data and trusted certificate chain length struct VerifierInput { // Number of trusted certificates in the chain uint8 trustedCertsPrefixLen; @@ -45,10 +39,8 @@ struct VerifierInput { bytes attestationReport; } -/** - * @dev Output structure containing verified attestation data and metadata - * This represents the journal/output from zero-knowledge proof verification - */ +/// @dev Output structure containing verified attestation data and metadata +/// This represents the journal/output from zero-knowledge proof verification struct VerifierJournal { // Overall verification result status VerificationResult result; @@ -72,10 +64,8 @@ struct VerifierJournal { string moduleId; } -/** - * @dev Public value (journal) structure for batch verification operations - * Contains the aggregated results of multiple attestation verifications - */ +/// @dev Public value (journal) structure for batch verification operations +/// Contains the aggregated results of multiple attestation verifications struct BatchVerifierJournal { // Verification key that was used for batch verification bytes32 verifierVk; @@ -83,19 +73,15 @@ struct BatchVerifierJournal { VerifierJournal[] outputs; } -/** - * @dev 48-byte data structure for storing PCR values - * Split into two parts due to Solidity's 32-byte word limitation - */ +/// @dev 48-byte data structure for storing PCR values +/// Split into two parts due to Solidity's 32-byte word limitation struct Bytes48 { bytes32 first; bytes16 second; } -/** - * @dev Platform Configuration Register (PCR) entry - * PCRs contain cryptographic measurements of the enclave's runtime state - */ +/// @dev Platform Configuration Register (PCR) entry +/// PCRs contain cryptographic measurements of the enclave's runtime state struct Pcr { // PCR index number (0-23 for AWS Nitro Enclaves) uint64 index; @@ -103,13 +89,11 @@ struct Pcr { Bytes48 value; } -/** - * @dev Enumeration of possible attestation verification results - * Indicates the outcome of the verification process - * - * Note: Unknown is intentionally placed at index 0 so that uninitialized enum - * variables default to a failure state rather than Success (fail-closed). - */ +/// @dev Enumeration of possible attestation verification results +/// Indicates the outcome of the verification process +/// +/// Note: Unknown is intentionally placed at index 0 so that uninitialized enum +/// variables default to a failure state rather than Success (fail-closed). enum VerificationResult { // Default/uninitialized value — treated as a verification failure Unknown, @@ -123,156 +107,124 @@ enum VerificationResult { InvalidTimestamp } -/** - * @title INitroEnclaveVerifier - * @dev Interface for AWS Nitro Enclave attestation verification using zero-knowledge proofs - * - * This interface defines the contract for verifying AWS Nitro Enclave attestation reports - * on-chain using zero-knowledge proof systems (RISC Zero or Succinct SP1). The verifier - * validates the cryptographic integrity of attestation reports while maintaining privacy - * and reducing gas costs through ZK proofs. - * - * Key features: - * - Single and batch attestation verification - * - Support for multiple ZK proving systems - * - Route-based verifier configuration - * - Certificate chain management and revocation - * - Timestamp validation with configurable tolerance - * - Platform Configuration Register (PCR) verification - */ +/// @title INitroEnclaveVerifier +/// @dev Interface for AWS Nitro Enclave attestation verification using zero-knowledge proofs +/// +/// This interface defines the contract for verifying AWS Nitro Enclave attestation reports +/// onchain using zero-knowledge proof systems (RISC Zero or Succinct SP1). The verifier +/// validates the cryptographic integrity of attestation reports while maintaining privacy +/// and reducing gas costs through ZK proofs. +/// +/// Key features: +/// - Single and batch attestation verification +/// - Support for multiple ZK proving systems +/// - Route-based verifier configuration +/// - Certificate chain management and revocation +/// - Timestamp validation with configurable tolerance +/// - Platform Configuration Register (PCR) verification interface INitroEnclaveVerifier { // ============ Query Functions ============ - /** - * @dev Returns the maximum allowed time difference for attestation timestamp validation - * @return Maximum time difference in seconds between attestation time and current block time - */ + /// @dev Returns the maximum allowed time difference for attestation timestamp validation + /// @return Maximum time difference in seconds between attestation time and current block time function maxTimeDiff() external view returns (uint64); - /** - * @dev Returns the hash of the trusted root certificate - * @return Hash of the AWS Nitro Enclave root certificate - */ + /// @dev Returns the hash of the trusted root certificate + /// @return Hash of the AWS Nitro Enclave root certificate function rootCert() external view returns (bytes32); - /** - * @dev Returns the address of the proof submitter - * @return Address of the proof submitter - */ + /// @dev Returns the address of the proof submitter + /// @return Address of the proof submitter function proofSubmitter() external view returns (address); - /** - * @dev Returns the address authorized to revoke intermediate certificates - * @return Address of the revoker (address(0) if disabled) - */ + /// @dev Returns the address authorized to revoke intermediate certificates + /// @return Address of the revoker (address(0) if disabled) function revoker() external view returns (address); - /** - * @dev Returns whether the given intermediate certificate hash has been revoked. - * @param _certHash Hash of the certificate - * @return `true` if the certificate is currently marked as revoked - * - * The revocation sentinel is persistent across `_cacheNewCert` overwrites and - * blocks both verification (via `_verifyJournal`) and the off-chain - * `checkTrustedIntermediateCerts` helper from re-trusting the hash. Re-trust - * requires an explicit `unrevokeCert` call. - */ + /// @dev Returns whether the given intermediate certificate hash has been revoked. + /// @param _certHash Hash of the certificate + /// @return `true` if the certificate is currently marked as revoked + /// + /// The revocation sentinel is persistent across `_cacheNewCert` overwrites and + /// blocks both verification (via `_verifyJournal`) and the offchain + /// `checkTrustedIntermediateCerts` helper from re-trusting the hash. Re-trust + /// requires an explicit `unrevokeCert` call. function revokedCerts(bytes32 _certHash) external view returns (bool); - /** - * @dev Returns the cached `notAfter` timestamp (seconds) for an intermediate certificate. - * @param _certHash Hash of the certificate - * @return Cached expiry timestamp; `0` indicates the certificate is not currently - * cached (either never seen, expired-and-evicted, or revoked). - */ + /// @dev Returns the cached `notAfter` timestamp (seconds) for an intermediate certificate. + /// @param _certHash Hash of the certificate + /// @return Cached expiry timestamp; `0` indicates the certificate is not currently + /// cached (either never seen, expired-and-evicted, or revoked). function trustedIntermediateCerts(bytes32 _certHash) external view returns (uint64); - /** - * @dev Retrieves the configuration for a specific coprocessor - * @param _zkCoProcessor Type of ZK coprocessor (RiscZero or Succinct) - * @return ZkCoProcessorConfig Configuration parameters including program IDs and verifier address - */ + /// @dev Retrieves the configuration for a specific coprocessor + /// @param _zkCoProcessor Type of ZK coprocessor (RiscZero or Succinct) + /// @return ZkCoProcessorConfig Configuration parameters including program IDs and verifier address function getZkConfig(ZkCoProcessorType _zkCoProcessor) external view returns (ZkCoProcessorConfig memory); - /** - * @dev Gets the verifier address for a specific route - * @param _zkCoProcessor Type of ZK coprocessor - * @param _selector Proof selector - * @return Verifier address (route-specific or default fallback) - * - * Note: Reverts if the route is frozen - */ + /// @dev Gets the verifier address for a specific route + /// @param _zkCoProcessor Type of ZK coprocessor + /// @param _selector Proof selector + /// @return Verifier address (route-specific or default fallback) + /// + /// Note: Reverts if the route is frozen function getZkVerifier(ZkCoProcessorType _zkCoProcessor, bytes4 _selector) external view returns (address); - /** - * @dev Returns the verifierProofId for a given ZkCoProcessorType - * @param _zkCoProcessor Type of ZK coprocessor - * @return The corresponding verifierProofId - */ + /// @dev Returns the verifierProofId for a given ZkCoProcessorType + /// @param _zkCoProcessor Type of ZK coprocessor + /// @return The corresponding verifierProofId function getVerifierProofId(ZkCoProcessorType _zkCoProcessor) external view returns (bytes32); - /** - * @dev Checks how many certificates in each report are trusted - * @param _report_certs Array of certificate chains, each containing certificate hashes - * @return Array indicating the number of trusted certificates in each chain - * - * For each certificate chain: - * - Validates that the first certificate matches the root certificate - * - Counts consecutive trusted certificates starting from the root - * - Returns the count of trusted certificates for each chain - */ + /// @dev Checks how many certificates in each report are trusted + /// @param _report_certs Array of certificate chains, each containing certificate hashes + /// @return Array indicating the number of trusted certificates in each chain + /// + /// For each certificate chain: + /// - Validates that the first certificate matches the root certificate + /// - Counts consecutive trusted certificates starting from the root + /// - Returns the count of trusted certificates for each chain function checkTrustedIntermediateCerts(bytes32[][] calldata _report_certs) external view returns (uint8[] memory); // ============ Admin Functions ============ - /** - * @dev Sets the trusted root certificate hash - * @param _rootCert Hash of the new root certificate - * - * Requirements: - * - Only callable by contract owner - */ + /// @dev Sets the trusted root certificate hash + /// @param _rootCert Hash of the new root certificate + /// + /// Requirements: + /// - Only callable by contract owner function setRootCert(bytes32 _rootCert) external; - /** - * @dev Updates the maximum allowed time difference for attestation timestamp validation - * @param _maxTimeDiff New maximum time difference in seconds - * - * Requirements: - * - Only callable by contract owner - * - Must be greater than zero - */ + /// @dev Updates the maximum allowed time difference for attestation timestamp validation + /// @param _maxTimeDiff New maximum time difference in seconds + /// + /// Requirements: + /// - Only callable by contract owner + /// - Must be greater than zero function setMaxTimeDiff(uint64 _maxTimeDiff) external; - /** - * @dev Sets the proof submitter address - * @param _proofSubmitter The address of the proof submitter - * - * Requirements: - * - Only callable by contract owner - * - Address must not be zero - */ + /// @dev Sets the proof submitter address + /// @param _proofSubmitter The address of the proof submitter + /// + /// Requirements: + /// - Only callable by contract owner + /// - Address must not be zero function setProofSubmitter(address _proofSubmitter) external; - /** - * @dev Updates the revoker address - * @param _newRevoker New revoker address (can be address(0) to disable the revoker role) - * - * Requirements: - * - Only callable by contract owner - */ + /// @dev Updates the revoker address + /// @param _newRevoker New revoker address (can be address(0) to disable the revoker role) + /// + /// Requirements: + /// - Only callable by contract owner function setRevoker(address _newRevoker) external; - /** - * @dev Configures the zero-knowledge verification parameters for a specific coprocessor - * @param _zkCoProcessor Type of ZK coprocessor (RiscZero or Succinct) - * @param _config Configuration parameters including program IDs and verifier address - * @param _verifierProofId The verifierProofId corresponding to the verifierId in config - * - * Requirements: - * - Only callable by contract owner - * - Must specify valid coprocessor type and configuration - */ + /// @dev Configures the zero-knowledge verification parameters for a specific coprocessor + /// @param _zkCoProcessor Type of ZK coprocessor (RiscZero or Succinct) + /// @param _config Configuration parameters including program IDs and verifier address + /// @param _verifierProofId The verifierProofId corresponding to the verifierId in config + /// + /// Requirements: + /// - Only callable by contract owner + /// - Must specify valid coprocessor type and configuration function setZkConfiguration( ZkCoProcessorType _zkCoProcessor, ZkCoProcessorConfig memory _config, @@ -280,46 +232,40 @@ interface INitroEnclaveVerifier { ) external; - /** - * @dev Revokes an intermediate certificate, whether or not it has been cached as trusted. - * @param _certHash Hash of the certificate to revoke - * - * Requirements: - * - Only callable by contract owner or revoker - * - * In addition to clearing any cached entry, this flips a persistent revocation - * sentinel that survives later cache writes. Certificates never seen on-chain can - * be revoked preemptively. Subsequent verifications whose chain traverses the - * revoked hash are rejected regardless of the journal-supplied - * `trustedCertsPrefixLen`. Re-trust requires an explicit `unrevokeCert` call. - */ + /// @dev Revokes an intermediate certificate, whether or not it has been cached as trusted. + /// @param _certHash Hash of the certificate to revoke + /// + /// Requirements: + /// - Only callable by contract owner or revoker + /// + /// In addition to clearing any cached entry, this flips a persistent revocation + /// sentinel that survives later cache writes. Certificates never seen onchain can + /// be revoked preemptively. Subsequent verifications whose chain traverses the + /// revoked hash are rejected regardless of the journal-supplied + /// `trustedCertsPrefixLen`. Re-trust requires an explicit `unrevokeCert` call. function revokeCert(bytes32 _certHash) external; - /** - * @dev Explicitly re-trusts a previously revoked intermediate certificate. - * @param _certHash Hash of the certificate to un-revoke - * - * Requirements: - * - Only callable by contract owner - * - Certificate must currently be marked as revoked - * - * Clears the persistent revocation sentinel. The cached expiry is not - * restored here; the next successful verification whose chain traverses - * `_certHash` will re-cache it via `_cacheNewCert` with the journal-supplied - * `notAfter` timestamp. - */ + /// @dev Explicitly re-trusts a previously revoked intermediate certificate. + /// @param _certHash Hash of the certificate to un-revoke + /// + /// Requirements: + /// - Only callable by contract owner + /// - Certificate must currently be marked as revoked + /// + /// Clears the persistent revocation sentinel. The cached expiry is not + /// restored here; the next successful verification whose chain traverses + /// `_certHash` will re-cache it via `_cacheNewCert` with the journal-supplied + /// `notAfter` timestamp. function unrevokeCert(bytes32 _certHash) external; - /** - * @dev Updates the verifier program ID, adding the new version to the supported set - * @param _zkCoProcessor Type of ZK coprocessor - * @param _newVerifierId New verifier program ID to set as latest - * @param _newVerifierProofId New verifier proof ID (used in batch verification) - * - * Requirements: - * - Only callable by contract owner - * - New ID must be different from current latest - */ + /// @dev Updates the verifier program ID, adding the new version to the supported set + /// @param _zkCoProcessor Type of ZK coprocessor + /// @param _newVerifierId New verifier program ID to set as latest + /// @param _newVerifierProofId New verifier proof ID (used in batch verification) + /// + /// Requirements: + /// - Only callable by contract owner + /// - New ID must be different from current latest function updateVerifierId( ZkCoProcessorType _zkCoProcessor, bytes32 _newVerifierId, @@ -327,60 +273,52 @@ interface INitroEnclaveVerifier { ) external; - /** - * @dev Updates the aggregator program ID, adding the new version to the supported set - * @param _zkCoProcessor Type of ZK coprocessor - * @param _newAggregatorId New aggregator program ID to set as latest - * - * Requirements: - * - Only callable by contract owner - * - New ID must be different from current latest - */ + /// @dev Updates the aggregator program ID, adding the new version to the supported set + /// @param _zkCoProcessor Type of ZK coprocessor + /// @param _newAggregatorId New aggregator program ID to set as latest + /// + /// Requirements: + /// - Only callable by contract owner + /// - New ID must be different from current latest function updateAggregatorId(ZkCoProcessorType _zkCoProcessor, bytes32 _newAggregatorId) external; - /** - * @dev Adds a route-specific verifier override - * @param _zkCoProcessor Type of ZK coprocessor - * @param _selector Proof selector (first 4 bytes of proof data) - * @param _verifier Address of the verifier contract for this route - * - * Requirements: - * - Only callable by contract owner - * - Route must not be frozen - * - Verifier address must not be zero - */ + /// @dev Adds a route-specific verifier override + /// @param _zkCoProcessor Type of ZK coprocessor + /// @param _selector Proof selector (first 4 bytes of proof data) + /// @param _verifier Address of the verifier contract for this route + /// + /// Requirements: + /// - Only callable by contract owner + /// - Route must not be frozen + /// - Verifier address must not be zero function addVerifyRoute(ZkCoProcessorType _zkCoProcessor, bytes4 _selector, address _verifier) external; - /** - * @dev Permanently freezes a verification route - * @param _zkCoProcessor Type of ZK coprocessor - * @param _selector Proof selector to freeze - * - * Requirements: - * - Only callable by contract owner - * - Route must not already be frozen - * - * WARNING: This action is IRREVERSIBLE - */ + /// @dev Permanently freezes a verification route + /// @param _zkCoProcessor Type of ZK coprocessor + /// @param _selector Proof selector to freeze + /// + /// Requirements: + /// - Only callable by contract owner + /// - Route must not already be frozen + /// + /// WARNING: This action is IRREVERSIBLE function freezeVerifyRoute(ZkCoProcessorType _zkCoProcessor, bytes4 _selector) external; // ============ Verification Functions ============ - /** - * @dev Verifies a single attestation report using zero-knowledge proof - * @param output Encoded VerifierJournal containing the verification result - * @param zkCoprocessor Type of ZK coprocessor used to generate the proof - * @param proofBytes Zero-knowledge proof data for the attestation - * @return VerifierJournal containing the verification result and extracted data - * - * This function: - * 1. Verifies the ZK proof using the specified coprocessor - * 2. Decodes the verification result - * 3. Validates the certificate chain against trusted certificates - * 4. Checks timestamp validity within the allowed time difference - * 5. Caches newly discovered trusted certificates - * 6. Returns the complete verification result - */ + /// @dev Verifies a single attestation report using zero-knowledge proof + /// @param output Encoded VerifierJournal containing the verification result + /// @param zkCoprocessor Type of ZK coprocessor used to generate the proof + /// @param proofBytes Zero-knowledge proof data for the attestation + /// @return VerifierJournal containing the verification result and extracted data + /// + /// This function: + /// 1. Verifies the ZK proof using the specified coprocessor + /// 2. Decodes the verification result + /// 3. Validates the certificate chain against trusted certificates + /// 4. Checks timestamp validity within the allowed time difference + /// 5. Caches newly discovered trusted certificates + /// 6. Returns the complete verification result function verify( bytes calldata output, ZkCoProcessorType zkCoprocessor, @@ -389,20 +327,18 @@ interface INitroEnclaveVerifier { external returns (VerifierJournal memory); - /** - * @dev Verifies multiple attestation reports in a single batch operation - * @param output Encoded BatchVerifierJournal containing aggregated verification results - * @param zkCoprocessor Type of ZK coprocessor used to generate the proof - * @param proofBytes Zero-knowledge proof data for batch verification - * @return Array of VerifierJournal results, one for each attestation in the batch - * - * This function: - * 1. Verifies the ZK proof using the specified coprocessor - * 2. Decodes the batch verification results - * 3. Validates each attestation's certificate chain and timestamp - * 4. Caches newly discovered trusted certificates - * 5. Returns the verification results for all attestations - */ + /// @dev Verifies multiple attestation reports in a single batch operation + /// @param output Encoded BatchVerifierJournal containing aggregated verification results + /// @param zkCoprocessor Type of ZK coprocessor used to generate the proof + /// @param proofBytes Zero-knowledge proof data for batch verification + /// @return Array of VerifierJournal results, one for each attestation in the batch + /// + /// This function: + /// 1. Verifies the ZK proof using the specified coprocessor + /// 2. Decodes the batch verification results + /// 3. Validates each attestation's certificate chain and timestamp + /// 4. Caches newly discovered trusted certificates + /// 5. Returns the verification results for all attestations function batchVerify( bytes calldata output, ZkCoProcessorType zkCoprocessor, diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 28787c836..38f529108 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -45,7 +45,7 @@ }, "src/L1/proofs/tee/NitroEnclaveVerifier.sol:NitroEnclaveVerifier": { "initCodeHash": "0xf79cd59d23f6a5ad78960b664e20779592d73bfcf52527c3e03adda04edd9645", - "sourceCodeHash": "0x87c59e16167407772ce33d735d7174ce947adb77809c234841bb5f5b9af249ba" + "sourceCodeHash": "0x03c164216b27f82ee13064ace6079d5e24e187d888f41bd01c8daffa60c575d6" }, "src/L1/proofs/tee/TEEProverRegistry.sol:TEEProverRegistry": { "initCodeHash": "0xfd1942e1c2f59b0aa72b33d698a948a53b6e4cf1040106f173fb5d89f63f57b0", diff --git a/src/L1/proofs/tee/NitroEnclaveVerifier.sol b/src/L1/proofs/tee/NitroEnclaveVerifier.sol index 27d23c5fe..40cfc03a7 100644 --- a/src/L1/proofs/tee/NitroEnclaveVerifier.sol +++ b/src/L1/proofs/tee/NitroEnclaveVerifier.sol @@ -14,34 +14,32 @@ import { IRiscZeroVerifier } from "lib/risc0-ethereum/contracts/src/IRiscZeroVer import { ISP1Verifier } from "interfaces/L1/proofs/zk/ISP1Verifier.sol"; import { ISemver } from "interfaces/universal/ISemver.sol"; -/** - * @title NitroEnclaveVerifier - * @dev Implementation contract for AWS Nitro Enclave attestation verification using zero-knowledge proofs - * @dev Custom version of Automata's NitroEnclaveVerifier contract at - * https://github.com/automata-network/aws-nitro-enclave-attestation/tree/26c90565cb009e6539643a0956f9502a12ade672 - * - * Differences from the upstream Automata contract: - * - Verification of ZK proofs is restricted to an authorized proof submitter address - * - All privileged actions emit events for monitoring - * - Removes verification-with-explicit-program-ID and Pico logic - * - * This contract provides on-chain verification of AWS Nitro Enclave attestation reports by validating - * zero-knowledge proofs generated off-chain. It supports both single and batch verification modes - * and can work with multiple ZK proof systems (RISC Zero and Succinct SP1). - * - * Key features: - * - Certificate chain management with automatic caching of newly discovered certificates - * - Timestamp validation with configurable time tolerance - * - Certificate revocation capabilities for compromised intermediate certificates - * - Gas-efficient batch verification for multiple attestations - * - Support for both RISC Zero and SP1 proving systems - * - * Security considerations: - * - Only the contract owner can manage certificates and configurations - * - Root certificate is immutable once set (requires owner to change) - * - Intermediate certificates are automatically cached but can be revoked - * - Timestamp validation prevents replay attacks within the configured time window - */ +/// @title NitroEnclaveVerifier +/// @dev Implementation contract for AWS Nitro Enclave attestation verification using zero-knowledge proofs +/// @dev Custom version of Automata's NitroEnclaveVerifier contract at +/// https://github.com/automata-network/aws-nitro-enclave-attestation/tree/26c90565cb009e6539643a0956f9502a12ade672 +/// +/// Differences from the upstream Automata contract: +/// - Verification of ZK proofs is restricted to an authorized proof submitter address +/// - All privileged actions emit events for monitoring +/// - Removes verification-with-explicit-program-ID and Pico logic +/// +/// This contract provides onchain verification of AWS Nitro Enclave attestation reports by validating +/// zero-knowledge proofs generated offchain. It supports both single and batch verification modes +/// and can work with multiple ZK proof systems (RISC Zero and Succinct SP1). +/// +/// Key features: +/// - Certificate chain management with automatic caching of newly discovered certificates +/// - Timestamp validation with configurable time tolerance +/// - Certificate revocation capabilities for compromised intermediate certificates +/// - Gas-efficient batch verification for multiple attestations +/// - Support for both RISC Zero and SP1 proving systems +/// +/// Security considerations: +/// - Only the contract owner can manage certificates and configurations +/// - Root certificate is immutable once set (requires owner to change) +/// - Intermediate certificates are automatically cached but can be revoked +/// - Timestamp validation prevents replay attacks within the configured time window contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { /// @dev Sentinel address to indicate a route has been permanently frozen address private constant FROZEN = address(0xdead); @@ -177,19 +175,17 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { _; } - /** - * @dev Initializes the contract with owner, time tolerance and initial trusted certificates - * @param owner Address to be set as the contract owner - * @param initialMaxTimeDiff Maximum time difference in seconds for timestamp validation - * @param initializeTrustedCerts Array of initial trusted intermediate certificate hashes - * @param initializeTrustedCertExpiries Array of notAfter timestamps (seconds) for each initial cert - * @param initialRootCert Hash of the AWS Nitro Enclave root certificate - * @param initialProofSubmitter Address that is authorized to submit proofs - * @param initialRevoker Address authorized to revoke intermediate certificates (can be address(0) to disable) - * @param zkCoProcessor Type of ZK coprocessor to configure (RiscZero or Succinct) - * @param config Configuration parameters for the ZK coprocessor - * @param verifierProofId The verifierProofId corresponding to the verifierId in config - */ + /// @dev Initializes the contract with owner, time tolerance and initial trusted certificates + /// @param owner Address to be set as the contract owner + /// @param initialMaxTimeDiff Maximum time difference in seconds for timestamp validation + /// @param initializeTrustedCerts Array of initial trusted intermediate certificate hashes + /// @param initializeTrustedCertExpiries Array of notAfter timestamps (seconds) for each initial cert + /// @param initialRootCert Hash of the AWS Nitro Enclave root certificate + /// @param initialProofSubmitter Address that is authorized to submit proofs + /// @param initialRevoker Address authorized to revoke intermediate certificates (can be address(0) to disable) + /// @param zkCoProcessor Type of ZK coprocessor to configure (RiscZero or Succinct) + /// @param config Configuration parameters for the ZK coprocessor + /// @param verifierProofId The verifierProofId corresponding to the verifierId in config constructor( address owner, uint64 initialMaxTimeDiff, @@ -219,21 +215,17 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { // ============ Query Functions ============ - /** - * @dev Retrieves the configuration for a specific coprocessor - * @param zkCoProcessor Type of ZK coprocessor (RiscZero or Succinct) - * @return ZkCoProcessorConfig Configuration parameters including program IDs and verifier address - */ + /// @dev Retrieves the configuration for a specific coprocessor + /// @param zkCoProcessor Type of ZK coprocessor (RiscZero or Succinct) + /// @return ZkCoProcessorConfig Configuration parameters including program IDs and verifier address function getZkConfig(ZkCoProcessorType zkCoProcessor) external view returns (ZkCoProcessorConfig memory) { return zkConfig[zkCoProcessor]; } - /** - * @dev Gets the verifier address for a specific route - * @param zkCoProcessor Type of ZK coprocessor - * @param selector Proof selector - * @return Verifier address (route-specific or default fallback) - */ + /// @dev Gets the verifier address for a specific route + /// @param zkCoProcessor Type of ZK coprocessor + /// @param selector Proof selector + /// @return Verifier address (route-specific or default fallback) function getZkVerifier(ZkCoProcessorType zkCoProcessor, bytes4 selector) external view returns (address) { address verifier = _zkVerifierRoutes[zkCoProcessor][selector]; @@ -248,29 +240,25 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { return verifier; } - /** - * @dev Returns the verifierProofId for a given ZkCoProcessorType - * @param zkCoProcessor Type of ZK coprocessor - * @return The corresponding verifierProofId - */ + /// @dev Returns the verifierProofId for a given ZkCoProcessorType + /// @param zkCoProcessor Type of ZK coprocessor + /// @return The corresponding verifierProofId function getVerifierProofId(ZkCoProcessorType zkCoProcessor) external view returns (bytes32) { return _verifierProofIds[zkCoProcessor]; } - /** - * @dev Checks the prefix length of trusted certificates in each provided certificate chain for reports - * @param reportCerts Array of certificate chains, each containing certificate hashes - * @return Array indicating the prefix length of trusted certificates in each chain - * - * For each certificate chain: - * 1. Validates that the first certificate matches the stored root certificate - * 2. Counts consecutive trusted certificates starting from the root - * 3. Stops counting when an untrusted certificate is encountered - * - * This function is used to pre-validate certificate chains before generating proofs, - * helping to optimize the proving process by determining trusted certificate lengths. - * Usually called from off-chain - */ + /// @dev Checks the prefix length of trusted certificates in each provided certificate chain for reports + /// @param reportCerts Array of certificate chains, each containing certificate hashes + /// @return Array indicating the prefix length of trusted certificates in each chain + /// + /// For each certificate chain: + /// 1. Validates that the first certificate matches the stored root certificate + /// 2. Counts consecutive trusted certificates starting from the root + /// 3. Stops counting when an untrusted certificate is encountered + /// + /// This function is used to pre-validate certificate chains before generating proofs, + /// helping to optimize the proving process by determining trusted certificate lengths. + /// Usually called from offchain function checkTrustedIntermediateCerts(bytes32[][] calldata reportCerts) public view returns (uint8[] memory) { uint8[] memory results = new uint8[](reportCerts.length); bytes32 rootCertHash = rootCert; @@ -281,7 +269,7 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { revert RootCertMismatch(rootCertHash, certs[0]); } for (uint256 j = 1; j < certs.length; j++) { - // Stop counting at any revoked entry so off-chain callers cannot derive a + // Stop counting at any revoked entry so offchain callers cannot derive a // prefix-len that walks past a revoked cert and then claim it as the trusted boundary. if (revokedCerts[certs[j]]) { break; @@ -299,48 +287,42 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { // ============ Admin Functions ============ - /** - * @dev Sets the trusted root certificate hash - * @param newRootCert Hash of the AWS Nitro Enclave root certificate - * - * Requirements: - * - Only callable by contract owner - * - * The root certificate serves as the trust anchor for all certificate chain validations. - * This should be set to the hash of AWS's root certificate for Nitro Enclaves. - */ + /// @dev Sets the trusted root certificate hash + /// @param newRootCert Hash of the AWS Nitro Enclave root certificate + /// + /// Requirements: + /// - Only callable by contract owner + /// + /// The root certificate serves as the trust anchor for all certificate chain validations. + /// This should be set to the hash of AWS's root certificate for Nitro Enclaves. function setRootCert(bytes32 newRootCert) external onlyOwner { _setRootCert(newRootCert); } - /** - * @dev Updates the maximum allowed time difference for attestation timestamp validation - * @param newMaxTimeDiff New maximum time difference in seconds - * - * Requirements: - * - Only callable by contract owner - * - Must be greater than zero - */ + /// @dev Updates the maximum allowed time difference for attestation timestamp validation + /// @param newMaxTimeDiff New maximum time difference in seconds + /// + /// Requirements: + /// - Only callable by contract owner + /// - Must be greater than zero function setMaxTimeDiff(uint64 newMaxTimeDiff) external onlyOwner { if (newMaxTimeDiff == 0) revert ZeroMaxTimeDiff(); maxTimeDiff = newMaxTimeDiff; emit MaxTimeDiffUpdated(newMaxTimeDiff); } - /** - * @dev Configures zero-knowledge verification parameters for a specific coprocessor - * @param zkCoProcessor Type of ZK coprocessor (RiscZero or Succinct) - * @param config Configuration parameters including program IDs and verifier address - * @param verifierProofId The verifierProofId corresponding to the verifierId in config - * - * Requirements: - * - Only callable by contract owner - * - * This function sets up the necessary parameters for ZK proof verification: - * - verifierId: Program ID for single attestation verification - * - aggregatorId: Program ID for batch/aggregated verification - * - zkVerifier: Address of the deployed ZK verifier contract - */ + /// @dev Configures zero-knowledge verification parameters for a specific coprocessor + /// @param zkCoProcessor Type of ZK coprocessor (RiscZero or Succinct) + /// @param config Configuration parameters including program IDs and verifier address + /// @param verifierProofId The verifierProofId corresponding to the verifierId in config + /// + /// Requirements: + /// - Only callable by contract owner + /// + /// This function sets up the necessary parameters for ZK proof verification: + /// - verifierId: Program ID for single attestation verification + /// - aggregatorId: Program ID for batch/aggregated verification + /// - zkVerifier: Address of the deployed ZK verifier contract function setZkConfiguration( ZkCoProcessorType zkCoProcessor, ZkCoProcessorConfig memory config, @@ -352,48 +334,44 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { _setZkConfiguration(zkCoProcessor, config, verifierProofId); } - /** - * @dev Revokes an intermediate certificate, whether or not it has been cached as trusted. - * @param certHash Hash of the certificate to revoke - * - * Requirements: - * - Only callable by contract owner or revoker - * - * Certificates that have never been seen on-chain can be revoked preemptively; the - * persistent `revokedCerts` sentinel blocks them from being trusted on first - * verification. This function allows the owner or revoker to revoke compromised - * intermediate certificates without affecting the root certificate or other trusted - * certificates. - * - * Durability: in addition to clearing `trustedIntermediateCerts[certHash]`, this - * function flips the persistent `revokedCerts[certHash]` sentinel. The sentinel - * survives subsequent `_cacheNewCert` overwrites and causes both `_verifyJournal` - * and `checkTrustedIntermediateCerts` to reject any chain whose suffix traverses - * the revoked hash, regardless of the journal's `trustedCertsPrefixLen`. Reproving - * the same chain therefore cannot silently restore trust; re-trust requires an - * explicit `unrevokeCert` call by the owner. - */ + /// @dev Revokes an intermediate certificate, whether or not it has been cached as trusted. + /// @param certHash Hash of the certificate to revoke + /// + /// Requirements: + /// - Only callable by contract owner or revoker + /// + /// Certificates that have never been seen onchain can be revoked preemptively; the + /// persistent `revokedCerts` sentinel blocks them from being trusted on first + /// verification. This function allows the owner or revoker to revoke compromised + /// intermediate certificates without affecting the root certificate or other trusted + /// certificates. + /// + /// Durability: in addition to clearing `trustedIntermediateCerts[certHash]`, this + /// function flips the persistent `revokedCerts[certHash]` sentinel. The sentinel + /// survives subsequent `_cacheNewCert` overwrites and causes both `_verifyJournal` + /// and `checkTrustedIntermediateCerts` to reject any chain whose suffix traverses + /// the revoked hash, regardless of the journal's `trustedCertsPrefixLen`. Reproving + /// the same chain therefore cannot silently restore trust; re-trust requires an + /// explicit `unrevokeCert` call by the owner. function revokeCert(bytes32 certHash) external onlyOwnerOrRevoker { delete trustedIntermediateCerts[certHash]; revokedCerts[certHash] = true; emit CertRevoked(certHash); } - /** - * @dev Explicitly re-trusts a previously revoked intermediate certificate. - * @param certHash Hash of the certificate to un-revoke - * - * Requirements: - * - Only callable by contract owner - * - Certificate must currently be marked as revoked - * - * Clearing the revocation sentinel does not by itself restore the cached - * expiry; the next successful verification whose chain traverses `certHash` - * will re-cache it via `_cacheNewCert`. This two-step design (admin clears - * the sentinel, verification re-caches the expiry) keeps re-trust an - * explicit, owner-only action while still letting the normal cache path - * supply the up-to-date `notAfter` timestamp. - */ + /// @dev Explicitly re-trusts a previously revoked intermediate certificate. + /// @param certHash Hash of the certificate to un-revoke + /// + /// Requirements: + /// - Only callable by contract owner + /// - Certificate must currently be marked as revoked + /// + /// Clearing the revocation sentinel does not by itself restore the cached + /// expiry; the next successful verification whose chain traverses `certHash` + /// will re-cache it via `_cacheNewCert`. This two-step design (admin clears + /// the sentinel, verification re-caches the expiry) keeps re-trust an + /// explicit, owner-only action while still letting the normal cache path + /// supply the up-to-date `notAfter` timestamp. function unrevokeCert(bytes32 certHash) external onlyOwner { if (!revokedCerts[certHash]) { revert CertificateNotRevoked(certHash); @@ -402,12 +380,10 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { emit CertUnrevoked(certHash); } - /** - * @dev Updates the verifier program ID, adding the new version to the supported set - * @param zkCoProcessor Type of ZK coprocessor - * @param newVerifierId New verifier program ID to set as latest - * @param newVerifierProofId New verifier proof ID (stored in mapping, used in batch verification) - */ + /// @dev Updates the verifier program ID, adding the new version to the supported set + /// @param zkCoProcessor Type of ZK coprocessor + /// @param newVerifierId New verifier program ID to set as latest + /// @param newVerifierProofId New verifier proof ID (stored in mapping, used in batch verification) function updateVerifierId( ZkCoProcessorType zkCoProcessor, bytes32 newVerifierId, @@ -427,11 +403,9 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { emit VerifierIdUpdated(zkCoProcessor, newVerifierId, newVerifierProofId); } - /** - * @dev Updates the aggregator program ID, adding the new version to the supported set - * @param zkCoProcessor Type of ZK coprocessor - * @param newAggregatorId New aggregator program ID to set as latest - */ + /// @dev Updates the aggregator program ID, adding the new version to the supported set + /// @param zkCoProcessor Type of ZK coprocessor + /// @param newAggregatorId New aggregator program ID to set as latest function updateAggregatorId(ZkCoProcessorType zkCoProcessor, bytes32 newAggregatorId) external onlyOwner { if (newAggregatorId == bytes32(0)) revert ZeroProgramId(); if (zkConfig[zkCoProcessor].aggregatorId == newAggregatorId) { @@ -443,12 +417,10 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { emit AggregatorIdUpdated(zkCoProcessor, newAggregatorId); } - /** - * @dev Adds a route-specific verifier override - * @param zkCoProcessor Type of ZK coprocessor - * @param selector Proof selector (first 4 bytes of proof data) - * @param verifier Address of the verifier contract for this route - */ + /// @dev Adds a route-specific verifier override + /// @param zkCoProcessor Type of ZK coprocessor + /// @param selector Proof selector (first 4 bytes of proof data) + /// @param verifier Address of the verifier contract for this route function addVerifyRoute(ZkCoProcessorType zkCoProcessor, bytes4 selector, address verifier) external onlyOwner { if (verifier == address(0)) revert ZeroVerifierAddress(); if (verifier == FROZEN) revert InvalidVerifierAddress(); @@ -461,13 +433,11 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { emit ZkRouteAdded(zkCoProcessor, selector, verifier); } - /** - * @dev Permanently freezes a verification route - * @param zkCoProcessor Type of ZK coprocessor - * @param selector Proof selector to freeze - * - * WARNING: This action is IRREVERSIBLE - */ + /// @dev Permanently freezes a verification route + /// @param zkCoProcessor Type of ZK coprocessor + /// @param selector Proof selector to freeze + /// + /// WARNING: This action is IRREVERSIBLE function freezeVerifyRoute(ZkCoProcessorType zkCoProcessor, bytes4 selector) external onlyOwner { address currentVerifier = _zkVerifierRoutes[zkCoProcessor][selector]; @@ -479,25 +449,21 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { emit ZkRouteWasFrozen(zkCoProcessor, selector); } - /** - * @dev Sets the proof submitter address - * @param submitter The address of the proof submitter - * - * Requirements: - * - Only callable by contract owner - * - Address must not be zero - */ + /// @dev Sets the proof submitter address + /// @param submitter The address of the proof submitter + /// + /// Requirements: + /// - Only callable by contract owner + /// - Address must not be zero function setProofSubmitter(address submitter) external onlyOwner { _setProofSubmitter(submitter); } - /** - * @dev Updates the revoker address - * @param newRevoker New revoker address (can be address(0) to disable the revoker role) - * - * Requirements: - * - Only callable by contract owner - */ + /// @dev Updates the revoker address + /// @param newRevoker New revoker address (can be address(0) to disable the revoker role) + /// + /// Requirements: + /// - Only callable by contract owner function setRevoker(address newRevoker) external onlyOwner { revoker = newRevoker; emit RevokerUpdated(newRevoker); @@ -505,27 +471,25 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { // ============ Verification Functions ============ - /** - * @dev Verifies a single attestation report using zero-knowledge proof - * @param output Encoded VerifierJournal containing the verification result - * @param zkCoprocessor Type of ZK coprocessor used to generate the proof - * @param proofBytes Zero-knowledge proof data for the attestation - * @return journal VerifierJournal containing the verification result and extracted data - * - * This function performs end-to-end verification of a single attestation: - * 1. Retrieves the single verification program ID from configuration - * 2. Verifies the zero-knowledge proof using the specified coprocessor - * 3. Decodes the verification journal from the output - * 4. Validates the journal through comprehensive checks - * 5. Returns the final verification result - * - * The returned journal contains all extracted attestation data including: - * - Verification status and any error conditions - * - Certificate chain information and trust levels - * - User data, nonce, and public key from the attestation - * - Platform Configuration Registers (PCRs) for integrity measurement - * - Module ID and timestamp information - */ + /// @dev Verifies a single attestation report using zero-knowledge proof + /// @param output Encoded VerifierJournal containing the verification result + /// @param zkCoprocessor Type of ZK coprocessor used to generate the proof + /// @param proofBytes Zero-knowledge proof data for the attestation + /// @return journal VerifierJournal containing the verification result and extracted data + /// + /// This function performs end-to-end verification of a single attestation: + /// 1. Retrieves the single verification program ID from configuration + /// 2. Verifies the zero-knowledge proof using the specified coprocessor + /// 3. Decodes the verification journal from the output + /// 4. Validates the journal through comprehensive checks + /// 5. Returns the final verification result + /// + /// The returned journal contains all extracted attestation data including: + /// - Verification status and any error conditions + /// - Certificate chain information and trust levels + /// - User data, nonce, and public key from the attestation + /// - Platform Configuration Registers (PCRs) for integrity measurement + /// - Module ID and timestamp information function verify( bytes calldata output, ZkCoProcessorType zkCoprocessor, @@ -542,22 +506,20 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { emit AttestationSubmitted(journal.result, zkCoprocessor, abi.encode(journal)); } - /** - * @dev Verifies multiple attestation reports in a single batch operation - * @param output Encoded BatchVerifierJournal containing aggregated verification results - * @param zkCoprocessor Type of ZK coprocessor used to generate the proof - * @param proofBytes Zero-knowledge proof data for batch verification - * @return results Array of VerifierJournal results, one for each attestation in the batch - * - * This function provides gas-efficient batch verification by: - * 1. Using the aggregator program ID for ZK proof verification - * 2. Validating the batch verifier key matches the expected value - * 3. Processing each individual attestation through standard validation - * 4. Returning comprehensive results for all attestations - * - * Batch verification is recommended when processing multiple attestations - * as it significantly reduces gas costs compared to individual verifications. - */ + /// @dev Verifies multiple attestation reports in a single batch operation + /// @param output Encoded BatchVerifierJournal containing aggregated verification results + /// @param zkCoprocessor Type of ZK coprocessor used to generate the proof + /// @param proofBytes Zero-knowledge proof data for batch verification + /// @return results Array of VerifierJournal results, one for each attestation in the batch + /// + /// This function provides gas-efficient batch verification by: + /// 1. Using the aggregator program ID for ZK proof verification + /// 2. Validating the batch verifier key matches the expected value + /// 3. Processing each individual attestation through standard validation + /// 4. Returning comprehensive results for all attestations + /// + /// Batch verification is recommended when processing multiple attestations + /// as it significantly reduces gas costs compared to individual verifications. function batchVerify( bytes calldata output, ZkCoProcessorType zkCoprocessor, @@ -613,26 +575,24 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { emit ZKConfigurationUpdated(zkCoProcessor, config, verifierProofId); } - /** - * @dev Internal function to cache newly discovered trusted certificates - * @param journal Verification journal containing certificate chain information - * - * This function automatically adds any certificates beyond the trusted length - * to the trusted intermediate certificates set. This optimizes future verifications - * by expanding the known trusted certificate set based on successful verifications. - * - * Revoked entries terminate caching: once `revokedCerts[certHash]` is set by - * `revokeCert`, no successful verification will silently restore the cache, - * regardless of the journal's `trustedCertsPrefixLen`. Because `certs[i+1]` is - * signed by `certs[i]`, every descendant of a revoked cert inherits its trust - * from a revoked parent and must not be cached either — so we `break` rather - * than `continue` on the first revoked entry, matching `checkTrustedIntermediateCerts`. - * - * Note: in current control flow this guard is unreachable because `_verifyJournal` - * Pass 2 already rejects any journal whose suffix contains a revoked digest before - * `_cacheNewCert` is invoked. The check is retained as defense-in-depth against - * future refactors. Re-trust requires an explicit `unrevokeCert`. - */ + /// @dev Internal function to cache newly discovered trusted certificates + /// @param journal Verification journal containing certificate chain information + /// + /// This function automatically adds any certificates beyond the trusted length + /// to the trusted intermediate certificates set. This optimizes future verifications + /// by expanding the known trusted certificate set based on successful verifications. + /// + /// Revoked entries terminate caching: once `revokedCerts[certHash]` is set by + /// `revokeCert`, no successful verification will silently restore the cache, + /// regardless of the journal's `trustedCertsPrefixLen`. Because `certs[i+1]` is + /// signed by `certs[i]`, every descendant of a revoked cert inherits its trust + /// from a revoked parent and must not be cached either — so we `break` rather + /// than `continue` on the first revoked entry, matching `checkTrustedIntermediateCerts`. + /// + /// Note: in current control flow this guard is unreachable because `_verifyJournal` + /// Pass 2 already rejects any journal whose suffix contains a revoked digest before + /// `_cacheNewCert` is invoked. The check is retained as defense-in-depth against + /// future refactors. Re-trust requires an explicit `unrevokeCert`. function _cacheNewCert(VerifierJournal memory journal) internal { for (uint256 i = journal.trustedCertsPrefixLen; i < journal.certs.length; i++) { bytes32 certHash = journal.certs[i]; @@ -643,35 +603,33 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { } } - /** - * @dev Internal function to verify and validate a journal entry - * @param journal Verification journal to validate - * @return Updated journal with final verification result - * - * This function performs comprehensive validation: - * 1. Checks if the initial ZK verification was successful - * 2. Validates the root certificate matches the trusted root - * 3. Ensures all trusted certificates in the prefix are still valid (not revoked, not expired) - * 4. Ensures no certificate in the suffix has been revoked, regardless of `trustedCertsPrefixLen` - * 5. Validates the attestation timestamp is within acceptable range - * 6. Caches newly discovered certificates for future use - * - * The suffix-side revocation check (step 4) is the load-bearing fix for the - * `revokeCert` durability gap exposed under the production - * `trustedCertsPrefixLen = 1` configuration. Without it, Pass 1 only walks - * the root and a journal whose chain traverses a revoked intermediate in - * the suffix would succeed and then re-cache the revoked entry via - * `_cacheNewCert`. Rejecting any suffix entry present in `revokedCerts` - * makes revocation durable independently of the journal-supplied prefix - * length. - * - * The timestamp validation converts milliseconds to seconds and checks: - * - Attestation is not too old (timestamp + maxTimeDiff > block.timestamp) - * - Attestation is not from the future (timestamp < block.timestamp) - * Note that due to truncating timestamp from milliseconds, to seconds, - * some valid attestations may be rejected. However, this ensures all invalid - * timestamps are rejected. - */ + /// @dev Internal function to verify and validate a journal entry + /// @param journal Verification journal to validate + /// @return Updated journal with final verification result + /// + /// This function performs comprehensive validation: + /// 1. Checks if the initial ZK verification was successful + /// 2. Validates the root certificate matches the trusted root + /// 3. Ensures all trusted certificates in the prefix are still valid (not revoked, not expired) + /// 4. Ensures no certificate in the suffix has been revoked, regardless of `trustedCertsPrefixLen` + /// 5. Validates the attestation timestamp is within acceptable range + /// 6. Caches newly discovered certificates for future use + /// + /// The suffix-side revocation check (step 4) is the load-bearing fix for the + /// `revokeCert` durability gap exposed under the production + /// `trustedCertsPrefixLen = 1` configuration. Without it, Pass 1 only walks + /// the root and a journal whose chain traverses a revoked intermediate in + /// the suffix would succeed and then re-cache the revoked entry via + /// `_cacheNewCert`. Rejecting any suffix entry present in `revokedCerts` + /// makes revocation durable independently of the journal-supplied prefix + /// length. + /// + /// The timestamp validation converts milliseconds to seconds and checks: + /// - Attestation is not too old (timestamp + maxTimeDiff > block.timestamp) + /// - Attestation is not from the future (timestamp < block.timestamp) + /// Note that due to truncating timestamp from milliseconds, to seconds, + /// some valid attestations may be rejected. However, this ensures all invalid + /// timestamps are rejected. function _verifyJournal(VerifierJournal memory journal) internal returns (VerifierJournal memory) { if (journal.result != VerificationResult.Success) { return journal; @@ -680,7 +638,7 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { journal.result = VerificationResult.RootCertNotTrusted; return journal; } - // Pass 1: trusted prefix — root must match the on-chain root, and every + // Pass 1: trusted prefix — root must match the onchain root, and every // intermediate must still hold a non-expired cached entry. for (uint256 i = 0; i < journal.trustedCertsPrefixLen; i++) { bytes32 certHash = journal.certs[i]; @@ -731,13 +689,11 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { return journal; } - /** - * @dev Internal function to verify zero-knowledge proofs using the appropriate coprocessor - * @param zkCoprocessor Type of ZK coprocessor (RiscZero or Succinct) - * @param programId Program identifier for the verification program - * @param output Encoded output data to verify - * @param proofBytes Zero-knowledge proof data - */ + /// @dev Internal function to verify zero-knowledge proofs using the appropriate coprocessor + /// @param zkCoprocessor Type of ZK coprocessor (RiscZero or Succinct) + /// @param programId Program identifier for the verification program + /// @param output Encoded output data to verify + /// @param proofBytes Zero-knowledge proof data function _verifyZk( ZkCoProcessorType zkCoprocessor, bytes32 programId, @@ -759,12 +715,10 @@ contract NitroEnclaveVerifier is Ownable, INitroEnclaveVerifier, ISemver { } } - /** - * @dev Internal function to resolve the ZK verifier address based on route configuration - * @param zkCoprocessor Type of ZK coprocessor - * @param proofBytes Proof data (selector extracted from first 4 bytes) - * @return Resolved verifier address - */ + /// @dev Internal function to resolve the ZK verifier address based on route configuration + /// @param zkCoprocessor Type of ZK coprocessor + /// @param proofBytes Proof data (selector extracted from first 4 bytes) + /// @return Resolved verifier address function _resolveZkVerifier( ZkCoProcessorType zkCoprocessor, bytes calldata proofBytes From 666f6ecd8bce1d4fc69c40cf95819e05405c64ec Mon Sep 17 00:00:00 2001 From: Jack Chuma Date: Wed, 10 Jun 2026 18:12:51 -0400 Subject: [PATCH 03/19] docs: update README to reflect contracts now live in this repo (#337) * docs: update README to reflect contracts now live in this repo Base no longer uses the OP Stack contracts from Optimism's repo. All contracts are maintained directly here. Update the README intro and add an overview of the src/ layout. Co-authored-by: OpenCode * docs: remove OP Stack reference and contracts layout section from README Co-authored-by: OpenCode --------- Co-authored-by: OpenCode --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 9f9ae270a..b1aa36e80 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ # contracts -This repo contains contracts and scripts for Base. -Note that Base primarily utilizes Optimism's bedrock contracts located in Optimism's repo [here](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock). +This repo contains the contracts and scripts for Base. For contract deployment artifacts, see [base-org/contract-deployments](https://github.com/base-org/contract-deployments). From bdf7ab00bd74c3e5f7909d07459c648f3d478193 Mon Sep 17 00:00:00 2001 From: roger-bai-coinbase Date: Thu, 11 Jun 2026 18:19:56 -0400 Subject: [PATCH 04/19] Fix access control in fee vaults (#339) * protect fee vault initializer * update interfaces --- interfaces/L2/IBaseFeeVault.sol | 38 +------------------ interfaces/L2/IFeeVault.sol | 4 +- interfaces/L2/IL1FeeVault.sol | 38 +------------------ interfaces/L2/IOperatorFeeVault.sol | 38 +------------------ interfaces/L2/ISequencerFeeVault.sol | 38 +------------------ scripts/L2Genesis.s.sol | 24 +++++++++--- snapshots/abi/BaseFeeVault.json | 57 ++++++++++++++++++++++++++-- snapshots/abi/L1FeeVault.json | 57 ++++++++++++++++++++++++++-- snapshots/abi/OperatorFeeVault.json | 57 ++++++++++++++++++++++++++-- snapshots/abi/SequencerFeeVault.json | 57 ++++++++++++++++++++++++++-- snapshots/semver-lock.json | 8 ++-- src/L2/FeeVault.sol | 23 +++++------ test/L2/FeeVault.t.sol | 51 +++++++++++++++++++++++-- 13 files changed, 305 insertions(+), 185 deletions(-) diff --git a/interfaces/L2/IBaseFeeVault.sol b/interfaces/L2/IBaseFeeVault.sol index 2c6c51ea6..7cb556cc8 100644 --- a/interfaces/L2/IBaseFeeVault.sol +++ b/interfaces/L2/IBaseFeeVault.sol @@ -1,42 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import { Types } from "src/libraries/Types.sol"; - -interface IBaseFeeVault { - error FeeVault_OnlyProxyAdminOwner(); - - error InvalidInitialization(); - error NotInitializing(); - - event Initialized(uint64 version); - event Withdrawal(uint256 value, address to, address from); - event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); - event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); - event RecipientUpdated(address oldRecipient, address newRecipient); - event WithdrawalNetworkUpdated( - Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork - ); - - receive() external payable; - - function initialize( - address _recipient, - uint256 _minWithdrawalAmount, - Types.WithdrawalNetwork _withdrawalNetwork - ) - external; - function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); - function RECIPIENT() external view returns (address); - function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); - function minWithdrawalAmount() external view returns (uint256); - function recipient() external view returns (address); - function totalProcessed() external view returns (uint256); - function withdraw() external returns (uint256 value_); - function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); - function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; - function setRecipient(address _newRecipient) external; - function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +import { IFeeVault } from "interfaces/L2/IFeeVault.sol"; +interface IBaseFeeVault is IFeeVault { function version() external view returns (string memory); } diff --git a/interfaces/L2/IFeeVault.sol b/interfaces/L2/IFeeVault.sol index 96f8a6687..ee6fdba41 100644 --- a/interfaces/L2/IFeeVault.sol +++ b/interfaces/L2/IFeeVault.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; +import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; import { Types } from "src/libraries/Types.sol"; -interface IFeeVault { - error FeeVault_OnlyProxyAdminOwner(); +interface IFeeVault is IProxyAdminOwnedBase { error InvalidInitialization(); error NotInitializing(); diff --git a/interfaces/L2/IL1FeeVault.sol b/interfaces/L2/IL1FeeVault.sol index 6da52552c..6d2614476 100644 --- a/interfaces/L2/IL1FeeVault.sol +++ b/interfaces/L2/IL1FeeVault.sol @@ -1,42 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import { Types } from "src/libraries/Types.sol"; - -interface IL1FeeVault { - error FeeVault_OnlyProxyAdminOwner(); - - error InvalidInitialization(); - error NotInitializing(); - - event Initialized(uint64 version); - event Withdrawal(uint256 value, address to, address from); - event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); - event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); - event RecipientUpdated(address oldRecipient, address newRecipient); - event WithdrawalNetworkUpdated( - Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork - ); - - receive() external payable; - - function initialize( - address _recipient, - uint256 _minWithdrawalAmount, - Types.WithdrawalNetwork _withdrawalNetwork - ) - external; - function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); - function RECIPIENT() external view returns (address); - function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); - function minWithdrawalAmount() external view returns (uint256); - function recipient() external view returns (address); - function totalProcessed() external view returns (uint256); - function withdraw() external returns (uint256 value_); - function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); - function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; - function setRecipient(address _newRecipient) external; - function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +import { IFeeVault } from "interfaces/L2/IFeeVault.sol"; +interface IL1FeeVault is IFeeVault { function version() external view returns (string memory); } diff --git a/interfaces/L2/IOperatorFeeVault.sol b/interfaces/L2/IOperatorFeeVault.sol index fe2789ca9..1f557e648 100644 --- a/interfaces/L2/IOperatorFeeVault.sol +++ b/interfaces/L2/IOperatorFeeVault.sol @@ -1,42 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import { Types } from "src/libraries/Types.sol"; - -interface IOperatorFeeVault { - error FeeVault_OnlyProxyAdminOwner(); - - error InvalidInitialization(); - error NotInitializing(); - - event Initialized(uint64 version); - event Withdrawal(uint256 value, address to, address from); - event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); - event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); - event RecipientUpdated(address oldRecipient, address newRecipient); - event WithdrawalNetworkUpdated( - Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork - ); - - receive() external payable; - - function initialize( - address _recipient, - uint256 _minWithdrawalAmount, - Types.WithdrawalNetwork _withdrawalNetwork - ) - external; - function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); - function RECIPIENT() external view returns (address); - function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); - function minWithdrawalAmount() external view returns (uint256); - function recipient() external view returns (address); - function totalProcessed() external view returns (uint256); - function withdraw() external returns (uint256 value_); - function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); - function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; - function setRecipient(address _newRecipient) external; - function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +import { IFeeVault } from "interfaces/L2/IFeeVault.sol"; +interface IOperatorFeeVault is IFeeVault { function version() external view returns (string memory); } diff --git a/interfaces/L2/ISequencerFeeVault.sol b/interfaces/L2/ISequencerFeeVault.sol index 1770b5126..7f9b5c440 100644 --- a/interfaces/L2/ISequencerFeeVault.sol +++ b/interfaces/L2/ISequencerFeeVault.sol @@ -1,43 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import { Types } from "src/libraries/Types.sol"; - -interface ISequencerFeeVault { - error FeeVault_OnlyProxyAdminOwner(); - - error InvalidInitialization(); - error NotInitializing(); - - event Initialized(uint64 version); - event Withdrawal(uint256 value, address to, address from); - event Withdrawal(uint256 value, address to, address from, Types.WithdrawalNetwork withdrawalNetwork); - event MinWithdrawalAmountUpdated(uint256 oldWithdrawalAmount, uint256 newWithdrawalAmount); - event RecipientUpdated(address oldRecipient, address newRecipient); - event WithdrawalNetworkUpdated( - Types.WithdrawalNetwork oldWithdrawalNetwork, Types.WithdrawalNetwork newWithdrawalNetwork - ); - - receive() external payable; - - function initialize( - address _recipient, - uint256 _minWithdrawalAmount, - Types.WithdrawalNetwork _withdrawalNetwork - ) - external; - function MIN_WITHDRAWAL_AMOUNT() external view returns (uint256); - function RECIPIENT() external view returns (address); - function WITHDRAWAL_NETWORK() external view returns (Types.WithdrawalNetwork); - function minWithdrawalAmount() external view returns (uint256); - function recipient() external view returns (address); - function totalProcessed() external view returns (uint256); - function withdraw() external returns (uint256 value_); - function withdrawalNetwork() external view returns (Types.WithdrawalNetwork); - function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external; - function setRecipient(address _newRecipient) external; - function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external; +import { IFeeVault } from "interfaces/L2/IFeeVault.sol"; +interface ISequencerFeeVault is IFeeVault { function version() external view returns (string memory); function l1FeeWallet() external view returns (address); } diff --git a/scripts/L2Genesis.s.sol b/scripts/L2Genesis.s.sol index d002645af..bf1412b4e 100644 --- a/scripts/L2Genesis.s.sol +++ b/scripts/L2Genesis.s.sol @@ -168,13 +168,15 @@ contract L2Genesis is Script { // 8,9,A,B,C,D,E: legacy, not used in OP-Stack. setGasPriceOracle(); // f setL2StandardBridge(_input.l1StandardBridgeProxy); // 10 + // ProxyAdmin must be configured before fee vault initialization, which requires + // the ProxyAdmin owner via ProxyAdminOwnedBase. + setProxyAdmin(_input); // 18 setSequencerFeeVault(_input); // 11 setOptimismMintableERC20Factory(); // 12 setL2ERC721Bridge(_input.l1ERC721BridgeProxy); // 14 setL1Block(); // 15 setL2ToL1MessagePasser(); // 16 setOptimismMintableERC721Factory(_input); // 17 - setProxyAdmin(_input); // 18 setBaseFeeVault(_input); // 19 setL1FeeVault(_input); // 1A setOperatorFeeVault(_input); // 1B @@ -232,7 +234,8 @@ contract L2Genesis is Script { _vaultAddr: Predeploys.SEQUENCER_FEE_WALLET, _recipient: _input.sequencerFeeVaultRecipient, _minWithdrawalAmount: _input.sequencerFeeVaultMinimumWithdrawalAmount, - _withdrawalNetwork: Types.WithdrawalNetwork(_input.sequencerFeeVaultWithdrawalNetwork) + _withdrawalNetwork: Types.WithdrawalNetwork(_input.sequencerFeeVaultWithdrawalNetwork), + _proxyAdminOwner: _input.opChainProxyAdminOwner }); } @@ -283,7 +286,8 @@ contract L2Genesis is Script { _vaultAddr: Predeploys.BASE_FEE_VAULT, _recipient: _input.baseFeeVaultRecipient, _minWithdrawalAmount: _input.baseFeeVaultMinimumWithdrawalAmount, - _withdrawalNetwork: Types.WithdrawalNetwork(_input.baseFeeVaultWithdrawalNetwork) + _withdrawalNetwork: Types.WithdrawalNetwork(_input.baseFeeVaultWithdrawalNetwork), + _proxyAdminOwner: _input.opChainProxyAdminOwner }); } @@ -293,7 +297,8 @@ contract L2Genesis is Script { _vaultAddr: Predeploys.L1_FEE_VAULT, _recipient: _input.l1FeeVaultRecipient, _minWithdrawalAmount: _input.l1FeeVaultMinimumWithdrawalAmount, - _withdrawalNetwork: Types.WithdrawalNetwork(_input.l1FeeVaultWithdrawalNetwork) + _withdrawalNetwork: Types.WithdrawalNetwork(_input.l1FeeVaultWithdrawalNetwork), + _proxyAdminOwner: _input.opChainProxyAdminOwner }); } @@ -303,7 +308,8 @@ contract L2Genesis is Script { _vaultAddr: Predeploys.OPERATOR_FEE_VAULT, _recipient: _input.operatorFeeVaultRecipient, _minWithdrawalAmount: _input.operatorFeeVaultMinimumWithdrawalAmount, - _withdrawalNetwork: Types.WithdrawalNetwork(_input.operatorFeeVaultWithdrawalNetwork) + _withdrawalNetwork: Types.WithdrawalNetwork(_input.operatorFeeVaultWithdrawalNetwork), + _proxyAdminOwner: _input.opChainProxyAdminOwner }); } @@ -371,12 +377,17 @@ contract L2Genesis is Script { address _vaultAddr, address _recipient, uint256 _minWithdrawalAmount, - Types.WithdrawalNetwork _withdrawalNetwork + Types.WithdrawalNetwork _withdrawalNetwork, + address _proxyAdminOwner ) internal { address impl = _setImplementationCode(_vaultAddr); + // Allow ProxyAdminOwnedBase access checks during implementation initialization. + EIP1967Helper.setAdmin(impl, Predeploys.PROXY_ADMIN); + + vm.startPrank(_proxyAdminOwner); /// Initialize the implementation using max value for min withdrawal amount to make it unusable IFeeVault(payable(impl)).initialize(address(0), type(uint256).max, Types.WithdrawalNetwork.L1); // Initialize the predeploy @@ -386,6 +397,7 @@ contract L2Genesis is Script { _minWithdrawalAmount: _minWithdrawalAmount, _withdrawalNetwork: _withdrawalNetwork }); + vm.stopPrank(); } /// @notice Funds the default dev accounts with ether diff --git a/snapshots/abi/BaseFeeVault.json b/snapshots/abi/BaseFeeVault.json index 63f770b27..abf0d79c0 100644 --- a/snapshots/abi/BaseFeeVault.json +++ b/snapshots/abi/BaseFeeVault.json @@ -78,6 +78,32 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proxyAdmin", + "outputs": [ + { + "internalType": "contract IProxyAdmin", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxyAdminOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "recipient", @@ -310,17 +336,42 @@ }, { "inputs": [], - "name": "FeeVault_OnlyProxyAdminOwner", + "name": "InvalidInitialization", "type": "error" }, { "inputs": [], - "name": "InvalidInitialization", + "name": "NotInitializing", "type": "error" }, { "inputs": [], - "name": "NotInitializing", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", "type": "error" } ] \ No newline at end of file diff --git a/snapshots/abi/L1FeeVault.json b/snapshots/abi/L1FeeVault.json index 63f770b27..abf0d79c0 100644 --- a/snapshots/abi/L1FeeVault.json +++ b/snapshots/abi/L1FeeVault.json @@ -78,6 +78,32 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proxyAdmin", + "outputs": [ + { + "internalType": "contract IProxyAdmin", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxyAdminOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "recipient", @@ -310,17 +336,42 @@ }, { "inputs": [], - "name": "FeeVault_OnlyProxyAdminOwner", + "name": "InvalidInitialization", "type": "error" }, { "inputs": [], - "name": "InvalidInitialization", + "name": "NotInitializing", "type": "error" }, { "inputs": [], - "name": "NotInitializing", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", "type": "error" } ] \ No newline at end of file diff --git a/snapshots/abi/OperatorFeeVault.json b/snapshots/abi/OperatorFeeVault.json index 63f770b27..abf0d79c0 100644 --- a/snapshots/abi/OperatorFeeVault.json +++ b/snapshots/abi/OperatorFeeVault.json @@ -78,6 +78,32 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proxyAdmin", + "outputs": [ + { + "internalType": "contract IProxyAdmin", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxyAdminOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "recipient", @@ -310,17 +336,42 @@ }, { "inputs": [], - "name": "FeeVault_OnlyProxyAdminOwner", + "name": "InvalidInitialization", "type": "error" }, { "inputs": [], - "name": "InvalidInitialization", + "name": "NotInitializing", "type": "error" }, { "inputs": [], - "name": "NotInitializing", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", "type": "error" } ] \ No newline at end of file diff --git a/snapshots/abi/SequencerFeeVault.json b/snapshots/abi/SequencerFeeVault.json index 0b3563dcc..13d85d3a0 100644 --- a/snapshots/abi/SequencerFeeVault.json +++ b/snapshots/abi/SequencerFeeVault.json @@ -91,6 +91,32 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proxyAdmin", + "outputs": [ + { + "internalType": "contract IProxyAdmin", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxyAdminOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "recipient", @@ -323,17 +349,42 @@ }, { "inputs": [], - "name": "FeeVault_OnlyProxyAdminOwner", + "name": "InvalidInitialization", "type": "error" }, { "inputs": [], - "name": "InvalidInitialization", + "name": "NotInitializing", "type": "error" }, { "inputs": [], - "name": "NotInitializing", + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", "type": "error" } ] \ No newline at end of file diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 38f529108..a0b3f4d4e 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -60,7 +60,7 @@ "sourceCodeHash": "0xf90e23a22c2e31d6bb11f9a8a9f7cb1c4eb0f20600d2d9aebf87023d1779972c" }, "src/L2/BaseFeeVault.sol:BaseFeeVault": { - "initCodeHash": "0x838bbd7f381e84e21887f72bd1da605bfc4588b3c39aed96cbce67c09335b3ee", + "initCodeHash": "0x812f8ec3945f0b2e2a9615cd7c5cdd60dbe8927f41e606cb2bd488c5e6dec02a", "sourceCodeHash": "0xcb329746df0baddd3dc03c6c88da5d6bdc0f0a96d30e6dc78d0891bb1e935032" }, "src/L2/FeeDisburser.sol:FeeDisburser": { @@ -76,7 +76,7 @@ "sourceCodeHash": "0x6551be49dcb0e2a80e9c1042e7964dc41f70bcb08f9ceefd0c0156de9c14cf2d" }, "src/L2/L1FeeVault.sol:L1FeeVault": { - "initCodeHash": "0x838bbd7f381e84e21887f72bd1da605bfc4588b3c39aed96cbce67c09335b3ee", + "initCodeHash": "0x812f8ec3945f0b2e2a9615cd7c5cdd60dbe8927f41e606cb2bd488c5e6dec02a", "sourceCodeHash": "0x34186bcab29963237b4e0d7575b0a1cff7caf42ccdb55d4b2b2c767db3279189" }, "src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger": { @@ -96,7 +96,7 @@ "sourceCodeHash": "0xdc7bd63134eeab163a635950f2afd16b59f40f9cf1306f2ed33ad661cc7b4962" }, "src/L2/OperatorFeeVault.sol:OperatorFeeVault": { - "initCodeHash": "0x2ebab6af089a714df25888a4dea81dadcb1fb57146be84d2e079041a9396a810", + "initCodeHash": "0x2179f8438c980cbd14c354206c1253f5704b9100446cdf91fa537a15bfc094ff", "sourceCodeHash": "0xd6e94bc9df025855916aa4184d0bc739b0fbe786dfd037b99dbb51d0d3e46918" }, "src/L2/OptimismMintableERC721.sol:OptimismMintableERC721": { @@ -108,7 +108,7 @@ "sourceCodeHash": "0xb0be3deac32956251adb37d3ca61f619ca4348a1355a41c856a3a95adde0e4ff" }, "src/L2/SequencerFeeVault.sol:SequencerFeeVault": { - "initCodeHash": "0x2cf94abac28d35065c7d361055199d5bf2bd49ec3907f8b81eefee4fcf7df484", + "initCodeHash": "0xd80f5cee90a78db1f7a506d5b6eaa22ff672a78cb2fd7ce9b7130c1ce571ffa9", "sourceCodeHash": "0x5fa147acd34a5f1c451404234d22e114c79f1255decc51afd8930d5ce99d7e02" }, "src/L2/WETH.sol:WETH": { diff --git a/src/L2/FeeVault.sol b/src/L2/FeeVault.sol index dd0768b9c..b42dd76ae 100644 --- a/src/L2/FeeVault.sol +++ b/src/L2/FeeVault.sol @@ -1,6 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.25; +// Contracts +import { ProxyAdminOwnedBase } from "src/universal/ProxyAdminOwnedBase.sol"; + // Libraries import { SafeCall } from "src/libraries/SafeCall.sol"; import { Predeploys } from "src/libraries/Predeploys.sol"; @@ -8,7 +11,6 @@ import { Types } from "src/libraries/Types.sol"; // Interfaces import { IL2ToL1MessagePasser } from "interfaces/L2/IL2ToL1MessagePasser.sol"; -import { IProxyAdmin } from "interfaces/universal/IProxyAdmin.sol"; // External import { Initializable } from "src/vendor/Initializable.sol"; @@ -16,10 +18,7 @@ import { Initializable } from "src/vendor/Initializable.sol"; /// @title FeeVault /// @notice The FeeVault contract contains the basic logic for the various different vault contracts /// used to hold fee revenue generated by the L2 system. -abstract contract FeeVault is Initializable { - /// @notice Error thrown when a function meant to be called by the ProxyAdmin owner is called by another account. - error FeeVault_OnlyProxyAdminOwner(); - +abstract contract FeeVault is ProxyAdminOwnedBase, Initializable { /// @notice The minimum gas limit for the FeeVault withdrawal transaction. uint32 internal constant _WITHDRAWAL_MIN_GAS = 400_000; @@ -78,6 +77,7 @@ abstract contract FeeVault is Initializable { } /// @notice Initializes the FeeVault contract. + /// @dev Callable only by the ProxyAdmin or its owner. /// @param _recipient Wallet that will receive the fees. /// @param _minWithdrawalAmount Minimum balance for withdrawals. /// @param _withdrawalNetwork Network which the recipient will receive fees on. @@ -89,6 +89,7 @@ abstract contract FeeVault is Initializable { external initializer { + _assertOnlyProxyAdminOrProxyAdminOwner(); recipient = _recipient; minWithdrawalAmount = _minWithdrawalAmount; withdrawalNetwork = _withdrawalNetwork; @@ -101,9 +102,7 @@ abstract contract FeeVault is Initializable { /// withdrawn. /// @param _newMinWithdrawalAmount The new minimum withdrawal amount. function setMinWithdrawalAmount(uint256 _newMinWithdrawalAmount) external { - if (msg.sender != IProxyAdmin(Predeploys.PROXY_ADMIN).owner()) { - revert FeeVault_OnlyProxyAdminOwner(); - } + _assertOnlyProxyAdminOwner(); uint256 oldWithdrawalAmount = minWithdrawalAmount; minWithdrawalAmount = _newMinWithdrawalAmount; @@ -114,9 +113,7 @@ abstract contract FeeVault is Initializable { /// @notice Updates the recipient of vault fees when they are withdrawn from the vault. /// @param _newRecipient The new recipient address. function setRecipient(address _newRecipient) external { - if (msg.sender != IProxyAdmin(Predeploys.PROXY_ADMIN).owner()) { - revert FeeVault_OnlyProxyAdminOwner(); - } + _assertOnlyProxyAdminOwner(); address oldRecipient = recipient; recipient = _newRecipient; @@ -129,9 +126,7 @@ abstract contract FeeVault is Initializable { /// withdraw them to an address on the same chain. /// @param _newWithdrawalNetwork The new withdrawal network. function setWithdrawalNetwork(Types.WithdrawalNetwork _newWithdrawalNetwork) external { - if (msg.sender != IProxyAdmin(Predeploys.PROXY_ADMIN).owner()) { - revert FeeVault_OnlyProxyAdminOwner(); - } + _assertOnlyProxyAdminOwner(); Types.WithdrawalNetwork oldWithdrawalNetwork = withdrawalNetwork; withdrawalNetwork = _newWithdrawalNetwork; diff --git a/test/L2/FeeVault.t.sol b/test/L2/FeeVault.t.sol index d424c4c2c..6fae688cd 100644 --- a/test/L2/FeeVault.t.sol +++ b/test/L2/FeeVault.t.sol @@ -4,10 +4,18 @@ pragma solidity 0.8.15; // Testing import { CommonTest } from "test/setup/CommonTest.sol"; import { Reverter } from "test/mocks/Callers.sol"; +import { EIP1967Helper } from "test/mocks/EIP1967Helper.sol"; + +// Scripts +import { DeployUtils } from "scripts/libraries/DeployUtils.sol"; + +// Contracts +import { Proxy } from "src/universal/Proxy.sol"; // Interfaces import { IFeeVault } from "interfaces/L2/IFeeVault.sol"; import { IL2ToL1MessagePasser } from "interfaces/L2/IL2ToL1MessagePasser.sol"; +import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; // Libraries import { Hashing } from "src/libraries/Hashing.sol"; @@ -41,8 +49,19 @@ abstract contract FeeVault_Uncategorized_Test is CommonTest { emit Withdrawal(_amount, _recipient, address(this), _network); } + /// @notice Deploys an uninitialized fee vault proxy for initialize access-control tests. + function _deployFeeVaultProxy() internal returns (IFeeVault vault_) { + string memory cname = Predeploys.getName(address(feeVault)); + bytes memory constructorArgs = DeployUtils.encodeConstructor(abi.encodeCall(IFeeVault.__constructor__, ())); + address impl = DeployUtils.create1({ _name: cname, _args: constructorArgs }); + address vault = address(new Proxy(Predeploys.PROXY_ADMIN)); + EIP1967Helper.setImplementation(vault, impl); + vault_ = IFeeVault(payable(vault)); + } + /// @notice Tests that the initialize function succeeds. function test_initialize_succeeds() external view { + assertEq(IProxyAdminOwnedBase(address(feeVault)).proxyAdminOwner(), proxyAdminOwner); assertEq(feeVault.recipient(), recipient); assertEq(feeVault.minWithdrawalAmount(), minWithdrawalAmount); assertEq(uint8(feeVault.withdrawalNetwork()), uint8(withdrawalNetwork)); @@ -52,10 +71,36 @@ abstract contract FeeVault_Uncategorized_Test is CommonTest { function test_initialize_reinitialization_reverts() external { _setupL2Withdrawal(); + vm.prank(proxyAdminOwner); vm.expectRevert(IFeeVault.InvalidInitialization.selector); feeVault.initialize(recipient, minWithdrawalAmount, Types.WithdrawalNetwork.L1); } + /// @notice Tests that the ProxyAdmin can initialize an uninitialized fee vault proxy. + function test_initialize_proxyAdmin_succeeds() external { + IFeeVault vault = _deployFeeVaultProxy(); + + vm.prank(Predeploys.PROXY_ADMIN); + vault.initialize(recipient, minWithdrawalAmount, withdrawalNetwork); + + assertEq(IProxyAdminOwnedBase(address(vault)).proxyAdminOwner(), proxyAdminOwner); + assertEq(vault.recipient(), recipient); + assertEq(vault.minWithdrawalAmount(), minWithdrawalAmount); + assertEq(uint8(vault.withdrawalNetwork()), uint8(withdrawalNetwork)); + } + + /// @notice Tests that initialization reverts if called by a non-proxy admin or proxy admin owner. + /// @param _sender The address of the sender to test. + function testFuzz_initialize_notProxyAdminOrProxyAdminOwner_reverts(address _sender) external { + IFeeVault vault = _deployFeeVaultProxy(); + + vm.assume(_sender != proxyAdminOwner && _sender != Predeploys.PROXY_ADMIN); + + vm.prank(_sender); + vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner.selector); + vault.initialize(recipient, minWithdrawalAmount, withdrawalNetwork); + } + /// @notice Tests that the immutable values match the storage getters. function test_immutableMatchesStorageVariables_succeeds() external view { assertEq(feeVault.RECIPIENT(), feeVault.recipient()); @@ -182,7 +227,7 @@ abstract contract FeeVault_Uncategorized_Test is CommonTest { uint256 initialAmount = feeVault.minWithdrawalAmount(); vm.prank(_caller); - vm.expectRevert(IFeeVault.FeeVault_OnlyProxyAdminOwner.selector); + vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); feeVault.setMinWithdrawalAmount(_newAmount); assertEq(feeVault.minWithdrawalAmount(), initialAmount); @@ -203,7 +248,7 @@ abstract contract FeeVault_Uncategorized_Test is CommonTest { address initialRecipient = feeVault.recipient(); vm.prank(_caller); - vm.expectRevert(IFeeVault.FeeVault_OnlyProxyAdminOwner.selector); + vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); feeVault.setRecipient(_newRecipient); assertEq(feeVault.recipient(), initialRecipient); @@ -230,7 +275,7 @@ abstract contract FeeVault_Uncategorized_Test is CommonTest { Types.WithdrawalNetwork initialNetwork = feeVault.withdrawalNetwork(); vm.prank(_caller); - vm.expectRevert(IFeeVault.FeeVault_OnlyProxyAdminOwner.selector); + vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); feeVault.setWithdrawalNetwork(newNetwork); assertEq(uint8(feeVault.withdrawalNetwork()), uint8(initialNetwork)); From d51bc64037d4fd03079c574e61e004a5bdecbbd3 Mon Sep 17 00:00:00 2001 From: Alexis Williams <148368153+awilliams1-cb@users.noreply.github.com> Date: Wed, 24 Jun 2026 11:27:39 -0400 Subject: [PATCH 05/19] chore: Add audit reports (#351) --- audits/README.md | 11 +++++++++++ ...tina_coinbase_aggregateverifier_apr2026.pdf | Bin 0 -> 502454 bytes audits/cantina_coinbase_multiproof_mar2026.pdf | Bin 0 -> 540781 bytes .../cantina_coinbase_nitro_enclave_apr2026.pdf | Bin 0 -> 483158 bytes .../cantina_coinbase_nitro_enclave_mar2026.pdf | Bin 0 -> 502376 bytes ...coinbase_proof_contracts_update_jun2026.pdf | Bin 0 -> 463827 bytes 6 files changed, 11 insertions(+) create mode 100644 audits/README.md create mode 100644 audits/cantina_coinbase_aggregateverifier_apr2026.pdf create mode 100644 audits/cantina_coinbase_multiproof_mar2026.pdf create mode 100644 audits/cantina_coinbase_nitro_enclave_apr2026.pdf create mode 100644 audits/cantina_coinbase_nitro_enclave_mar2026.pdf create mode 100644 audits/cantina_coinbase_proof_contracts_update_jun2026.pdf diff --git a/audits/README.md b/audits/README.md new file mode 100644 index 000000000..17f39758c --- /dev/null +++ b/audits/README.md @@ -0,0 +1,11 @@ +# Audits + +Audits of the formerly shared OP Stack components can be found in [Optimism’s repository](https://github.com/ethereum-optimism/optimism/tree/develop/docs/security-reviews). The audits of the OP Stack components through Upgrade 18 are relevant for Base. Going forward, audits of the Base Stack smart contracts and protocol can be found here. + +| Date | Reviewer | Focus and Scope | Report Link | Commit Hash | +| :---- | :---- | :---- | :---- | :---- | +| 03/17/26 | [Cantina](https://cantina.xyz/portfolio/25ba64ea-d6f3-411e-8338-419ffc385ba6) | AggregateVerifier Multiproof Contracts | [Report](./cantina_coinbase_multiproof_mar2026.pdf) | [b6c4689b8f814bf23fb915ac1d68a537d707ae4e](https://github.com/base/contracts/tree/b6c4689b8f814bf23fb915ac1d68a537d707ae4e/) | +| 03/19/26 | [Cantina](https://cantina.xyz/portfolio/423a9f33-b710-4445-a125-950b0a7771d7) | TEE Multiproof Contracts | [Report](./cantina_coinbase_nitro_enclave_mar2026.pdf) | [2421afdd332a98e9b45c6caf0a2e26b896b17e0d](https://github.com/base/contracts/tree/2421afdd332a98e9b45c6caf0a2e26b896b17e0d) | +| 04/10/26 | [Cantina](https://cantina.xyz/portfolio/a4f952cf-1c5b-4e3c-8153-c3adff899613) | TEE Multiproof Contracts 2 | [Report](./cantina_coinbase_nitro_enclave_apr2026.pdf) | [fe2af8cbffefa44bbb1a3917507f8bd8ebec7a2](https://github.com/base/contracts/tree/ffe2af8cbffefa44bbb1a3917507f8bd8ebec7a2) | +| 04/10/26 | [Cantina](https://cantina.xyz/portfolio/b72c7078-f6da-4074-a3bd-4f938f469fb7) | AggregateVerifier Multiproof Contracts 2 | [Report](./cantina_coinbase_aggregateverifier_apr2026.pdf) | [ffe2af8cbffefa44bbb1a3917507f8bd8ebec7a2](https://github.com/base/contracts/tree/ffe2af8cbffefa44bbb1a3917507f8bd8ebec7a2) | +| 06/04/26 | [Cantina](https://cantina.xyz/portfolio/6ce647dc-3b2c-448c-9421-426087341ce8) | Proof Contracts Update | [Report](./cantina_coinbase_proof_contracts_update_jun2026.pdf) | [e225648a7ed538e7e28c041d44f3b7a606ba7743](https://github.com/base/contracts/tree/e225648a7ed538e7e28c041d44f3b7a606ba7743) | \ No newline at end of file diff --git a/audits/cantina_coinbase_aggregateverifier_apr2026.pdf b/audits/cantina_coinbase_aggregateverifier_apr2026.pdf new file mode 100644 index 0000000000000000000000000000000000000000..db2acee5b3c076e8dc6bd3208a1caafe2fbbf038 GIT binary patch literal 502454 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

*-l*;+*m3Kx-n0d=ifK6 z6DX?$=&vFKRCNJ%8liy|NvW_a+3&&q2&Zns+;f^irXj2>?(wTVYNhuQss|SII6bF=kG5#aSYXIbcc0@tmLsAjNS~0Oq6bjhqb~#1wAa3q)dJ^Buy} z{^1EQupj%lw?D=RjDICH2aCGSiGww83xL(3`xQYAxdCzIDt)<7PKBdf}>6GTXq3{J*Na`%ARDF zfIpQM?I9Hsr|u+`RIOBFMy3NHuc%q`S`u}PXk1LstXTq*j2@wOY#JpSY+S1%7-g@&&hKA;sB%-Tob-J=hQpgfcL+J195wAI zv_ek%Yv{sByBnb_A~6v2H?r`+efsc=2}(Ps5fgwIGk&U&vppdWmkoGO4zZ%00;XOV ziAp76MRSs3%Oabf6`uX&O}>S1zVhMw!8v$Vs!npSk))UpDJ%#F+mJ9u+4ayKvk?S$ zk)QoQIs@RuG&f--YsT2yQ?+jD>0%Rd+Vf0c45^q;u<$Sj62OG0zZ{vN{ZQ9 zqlv&OhH9`mgu!3$9%NSMA|!*;VDKPc+KR*Dk~=5*yvJ2NV3Qxfs53KP zC%z^dO6EN`-b8`iL*L&_Rm5Ps<;h*&X!*=D>EM@fyQ*U6P(7FCQHuZ~rS~d4t@fjR zrBh)mX7f?;)?+VqdP2+XvPLh`yvTIwkiWoqo>2%yebmFF9l2oX>}Z6bhwO7wP)6OH zr-bAhN5HH#*~Be?19NX@!h%e)0Icgl@Eb?M9=3z!K*7_qQM|}DtLT@6;@^w~z<8H^ zSAn&htcy#tLSBdA;N5hKCj$rW(rFC*bG-Ars&KxU3cmKyPT&=*3t(dxS!;p0PlW#E*@_((tsoX^MJv$rP|!2#Sw@<^Z4vM97W2Zm+`Q zj+@MHOerdpn3sMF5;_#;DB@kBF8!w8jK0sKu*JTZd%zeMCE)Wfh7p~r0S_wfz5#W9 zUlH-M{E8<}|1?F!!;2j+*k=$IOIehE4OjMwEd26JwIpG$;`8Eo*t+>m*vl6nq8*7N zwFS*MB6cmK_k|O@Hjy4K#~7!&85Y_`O5>-&b~&X!TE3P&q$)5dl%nMkGHKvzkT9yh zLpMT9ccUHsKxtyp-N%ZhlH%dv#vL}%?Ccq@ltLIxy9_uvv{nQj7ie=QK76I9y;E~V zonD3fm^K~#ZDFKXa>fpdSUO406SBK-WkL3B0d0OSmTe{~$1D!q_g=)Q-wWXOvhLxj zn&v4sUkw)8$()qYwHAQEb7x|Dpm1=|zFGe@ENC$qi7iW*M6i4 zMLc|~-%Ed{x#7Nkhsp64%EL1GZlTsbIyIxmUrp>@UqAks)4^NUK|wt*etN)$owkp6 zHhI^Vy0HvB$+Z9=NM_p5M`I)fOzb0$D=s3Y?!rq}G0wk%vMc#ySQ%lLd4v zpuvNtiztoKS1<>r-L#u3)mCq*)NSL@_&ui4DG!mb9sv?EFg6a*T;!?A_`OXVQbtBPk$ zecBx!STpehVYJe?h{BECie8GcxsI-asbB6v<8H&R2ElPXw}5&j=}!V1%jBbOg+Hza z55m8JLX?&=Y>Z}lmJ0D;HuD+hbzEuZPN|HXEBh3!(VCHhD?xuk<8Vg4NF=stgJuymrk)S0oPUYL z?wba;LMrp>0592ohWLMFrcN#I%;yabfX#+&Suc6U>JKG$?yUYS^!^yZNh3RWOplkD zyDtvPlt@aT>(IDRLEx%X>(9{Ojd0NVJJTlWvU~axm*;PmVo>tQv{P7LbpH+xL2m-V ztY*X2jp-NYM0PUgGRuD@VD6N9sPPCPfCSeYxa#Z5zd-vpcBr3OM75U|!qiujkl05( zz0iI?JGepVe<{W1EVT9)4r25uUBi#U9vqQWt>5K}aexQnnl`4p`oUvMdqLQ&bsPk` z*aX8b{$Zfi&I0;iKiC2z#E+ltQyfbgW^X;NUh-cDuNb(J4xW%WT_5UG0;}xbJ4FIk zdj%N!Sn(1Hh6Ik7yNgUB`TX9Tw7r3!&^Y<~Df|C|3(4x?|j%f4`G>=6;K+lai^?&kD=HqSPN*tPLwIkgv>HcuGIqU$sQzA`$tgz^a*K(qQ}+@7O5)0|usQxYfa z*r-AmK#QD;3T>ry`NS6Nqp@6{y@lSSNMQM=8(n>QFf_QZBS;YV)Y%$*b{Pofw zD?1Ss(&{Co52}j-n(yLq<+O>P_Pv6Nq+$oX0`041^vV>5?Tql(wDR&{L602^GM7-a zlZbYITR48%2Q;1gt`UKra6jv}(S(pjvqT2$yk#61*Sf`~&C|_#q3<=aD?lZIkjPg>1ShE(~7V1EG&%DADnY0?gWObthi$$TY(Iye|GA?70hlJ!?8g;6(1 zOHyMh_6EF{AT?-^H-v5H==`s|wK@0}_bVMDB7=EJXss23fLLZP)g@$&Tg7s>R8>LJ zxLaF=F6^~)3!I+@I7s@zT*Y-YD*$tS`V+LjBLHL1eel3Qp1=SnNR69VRA3rn&1Dt| zHFS9M?Uc3!ROeadN$K0EDuFAsoUXuFO=w)p^a#*S;44%_on-HBg1zys0$S}5+;jcj z$SXR;;%$_R&m`qEXP!D?bEq!GoyN=WpG6cZJ?w{Wv^D(TsY3h00x+vcG;Ly zX*FsIMW;r<{iUG3O?UqJ`I+m+Tfw?x?}kGu(Vcc+%z%Wv6$gptOa#S~_~Qk;VO}_F z@T0B(OdvcEMZlad$oN%H=h42kE}sR0=jeju_T-6@fN^f5Jc?Mm1Zk>2r+2c_TZ(|R zcu4ZZ_i>KYOA66~8(Je*d!ZU@{L=`TpsWDV&|M&e4qMbU5K+?TPrz(&s}AYId8M%R zdQz>JyAXgWvEYWGL7Bkyfb&_s0rn188C7>*$ECTTGm`?BcI+N!|ckBxWE&%X3 zvKiFCdhbZq8~X?d%~|k`aIi3pev8JH3zow4hD4`y_l>b#HsQj`5m8b|K*^xZ9P7Q; z4gG3$T%SpKrqaWnV59aK+HO>SjGm5|$2E{AML05#-#>TKeRKx1ant6t-ZWww6s-jS z!PlL|{Od!)m8-u#fD!a0|tOT zM<(UMwRSnO2`WV05*`!!PAI1<`x73y9>CY@R1BeUy9goUjH7h5H`mP+Cc%|0)_51m zU(p))CczRr*NRl+U{A(0z}iqkAUtlvyLlOH@DGJE2ns*4nd5o$y4FUmE*k#mD=RUH zGr}sb6TCU&Z0p8!9grR(@OEpO_TXaf+fHw$ADKygX*VqG9q-?e)U z9YjNdbco+ei1^yH&|*0$z+g$>qN~r|k=1)ERRv!wxE{!8|7Z!Nzl6@N(?IOf@Wb_Mkp(kc;6*dv)c{Q1L9i*P2MvV_x_$ZM*SIWkmH=x%cwj`K4&3mfq6jIsKDHYPoB9F`21U1l?DOlv z_5|#~t#nDNgwm+H5q)s_B0Mk+4Hf(bqWx2kVE|^rA09ZF=>}cL^MJS^{U{IkqqUiC zx*Co9fQC|o*t*)9IsSz?IFNNK_SX6GVwB_pJ*r?we$;LgTV_$lEV5^G!xQwMB<0_YsrTI{{&KwSkZsa5zqRW7w$E5mQe@$rhF4T zMGR`+)wddimE4lJ(SCr<-_&?X_$^DAe=GH?mos=-!cRa!l<9m^ zGlz+}7){Ih2f;|NE&}tz^DbASr2Jt2R zAm!f?O2T)=X8tI2#?!1TUr*$fg>-X16dc0|#>EmRbhDw;U@}J-g~5kQ0)NyF?JDT^ z{oEadp;Z8e&_fy%Mnkb=(=vV}EtEI45F~0rs51HmS%iWASsydd!t>>J)?VZUL$zTw z1~vyPO8g?Qd7usfB!YBv_ZVHQ2A4h2H9#oIh%F=|HV|?IPWvDBPkXiu0U)QBYlF0^Fx%EHjp2?;-ahGZ1@`5AG4ZZ-Ae zgdu={Fr1h64J3RM6U^%BRskyi9KlA!uWC()H83__B#|tigbFZ!fBv8Tl7Pp5V((Eu z^W43?<5n}iRP;iO!jfD=67%j$Ha`^`Ga2e1_KUr2`kDvH^7r0I&`pG4#lQ&qUF zwb!4L9>jpq14z1{lJG};1>?v5J$~JPPvCTG?lC=Vy&{6EPr+ot`04f5Nj-8Li=trdKS{ABBIEiNa8 z{tDg^p>NclGQV>|*G(GzPfmC#aXze+8?f3frZil<$!h<}lvE7-wfY#rgk_5q&VJq` zx&I`Ed}2tUDeB+M>$gS0|Ct%L%}eZV{y%QseIxd5oR<$BOk50W;ij@N*bv{EBp966 zF(Irx`}_t7m)(M1FVpva4}Hb$P$`7dUXjt-nkO8A-na)=7XFwg7%r!HQCk_aJVpx5 zQCD+!1=DY#!sK(}2f`}T*WXYna3OKTVQ_t zO86OJ-M0KUFu%H$pkmg+xuE%(QQn3%P zqx%IGY~>W<$W`5krH%({ZeMo1$_O2Tup13W_HjS9ksVNJtd1XLCr;3np&2Qgfw#32 zfH}#1kDIjI?mfnmkV7J9UB2iZETMgHUk7qU@eZ-~Q1gkkelq}xYnoBIoh~t#PoDR> zcG&ouwx=XJR$@rGB7U0CIpw>QpIH_G+BMv)ZBde2fw;B$uk$$dNUGt{*drXVI!Q4w zwuV9PK*DT(EHRwFRh&2p_fXQ6+YHF9JrO%azMlGQdCufi#tFVy-HL0Dl5S89eOKn2$iOyMvV=G63l~j(M?1wUiyN*3+6_+?9&QSlz zpe{8AGoxBb=)rkyyKLKK+fnx4i!vN|10wj#P$Rl=C|@Nve&ebIKj+nRMx)N5yF42M zg%+C+HU@=~Q!{gwdQcn~@3hpK0MQuZpuj9q%}8il@_9xbmYDuBQXC^pUw+9<1G=jhOtQF^#s8nL1FX9UhT#SdWzJ`|^K+QH9 z@xP8<@H{KD++<&(fui7r4sWDaAEVkCLd*8(RBzJ>)myCTy4BaIFV)3U9=*25=uuly z$9FBd^@7NIp!|(vqoUe~%r`x@n6NqvNGB|0`){^wu#JQNjaa~B`oQDrvEsq&hE?;1 z8uN~y_-xikY?hO4mhY^0*%Yc(uH*%__N<%s-EMeua55gg+znr|$xWzQce4+OTL`_F zD3w?hE|vIM$U>-Cdon?a)#Mf@Y~RqKyVcjp_iM&iXVB7_FJ3yGBV^src zhj1A(D;YA&H#9cJUc`SH#m(m7V)J<3)f({!kL2N#^Oo=B@lRla3)Q=SU=jV}`Yaj& z=0e^2iw!vP;V=7=rg4x1V$jE@WB5&=4!Ma{OG~t;4XzmE>lYe`G`F$OQ0ekYy}Y%L z+CGEHph)vUsaJ@eco(_Ju@jSYUmu3XEZMQ6sb1~`qpnhVA8B?gZT z0o1Rx&m9j*9hfJz zGjLlo3QnqsVL`vUCD`b3UB-I~)V#PKFNg{pdvks*#erhI%ay_fCHK}xpi zTCoax%l%*{Mv$9JJE<6U+2Qhet0QlOGI)j(fE=@a8=1e?JxSu^W}m8#7qtzuZJ2Gt zY&)B6XS401xm`5DI_Y-NBrT(CbF=@G-0a~eC|AQYF0TERiu$UT#*&Yd5B_1nfuR1e ztLxmo{J8MoahA158etkM4eRDyjcKT~XZ*AEHnZY3u`E}|-$^AE99q{85OW>gyU}HK z^`qG*G5h4eABBfedzRni6&;zpk+(q;X#e9Tyuhe(;k9w0QK4~Vt@bk1{)yCqdK2EW zj$iinFF)u%Uyz&XSaJsCF5DGzB=mUd30n?j&Swlx%%#*<_IX^?ETZq?tovd+K&~`3 zFtWqtO>{wC{5OB^KqbIK-@r~CBu*;M9X<;VTi)7H6jBmHeYWX{ViJQaeQd7w&ErGF zWkpOR(#|vRwx9~W#m)=wuHlVG_pb&7169#us|6Uwsu>o1wFa*LEI&{>;Ul(T11DIb zx;~tSKN*C_6$LN0ua(KH49UD!!&BY(A$PmM1~1sXfK3jfWVTF`6Lj; z&dXRw(?s!UP3>IhhxL5T${$~H6V3=N-yMd>ah?muzxWC%(ClWu!D(VB=32*~^&^qI z;2c*T%?FCI=9h2t$(xQ8gk^e&=g(*w^BDM0G(9?;J*iT?; z!0`3NdlCV+dUMSz|7;<}v5XtJlHw_JBew?}PVK%XVzIU2>$Ls#ZOd$9W;>cN+nHcH zM{ZY-?YbJUoe8$t(l(FWX4qgq=r$+V<^Af`9sC_QoLtT4=uQlx$S&D`r5VfyG-rtrb@77VC{K!a?y|bXH+c?*iZLywcA># z2Vc!igKu2<;`~*kI0Qx03|aY-A8Jcqy>q3!CX>>CN3>lIKMyhBG>x6#XYcpmzP%M8Q9Ok3=Rv}sy(b8=!RUAwi+#YBUfI2{Z=AvmgcSW;$!poCl8;TpE9}Q znRt_MwFS6?h7yJ0Woo;c(#NPAT=uO_lN1q?ZtGvrra*NKtIDJ}X zLF$;-oi}me_dkFQVc?D$K3RcwTaT&QVe7Zc(0IaKa1{p%>V!g@HRs-6waTk>^;voG z?xXXAW3I)8{?DAx-z)#%$T$3$a9RS~fE0rDr3v>Elvtu@>-Xp*H50{Y=ugqyOPiYT zU$82F54U=$K5_BP^W=|)2Myo%J(0!;?OFhbCPL9r+HF^FyLvmSx1)MHfo~`9?OMHE ztG8*{HZ9v`;Qv2o;Bb35zTAQj-2AteE;zqCZB}rAb|X=6RwuZZWn)ldNQ3V=M&sp2 zZ01JM2A{@g1HM<#)f>;PG1ah!6WrJlGz6xs_CD#|4O#1o=7Jg+=W4J+B51vRW4Y=r z&2l{t<8alwBW|Q>$PC}Sfnq4oK`|`vuX2(~GTOLoI9yc^$0O{c%|)sfO4eWZ$M<7- z)4-o)i?jucv^AA{y~(8hwesMl;ArqaOMdn@1J}6&2f4eYpP9~C zrY`#Ozu0@r=s1=pZO|68#SATGXfayMXfZQ0Gcz-@EwY%ItrnBT%xtkN#+C0o@60_r zv%B;C+;eVco$BnY%&f?$sEmjw<8(4<08>Z(=fDj=eb>403fS9xn7GFHu>p96dx56V z?+2VPq4FRM_PFB%X(`il^#jlPk}I*Bye_vx)y$rWxCXzatGAVx&Z(}+@Z8k3m3kcI zrmD;|Q1MNtSVpxewfxJQYp&yfQXQn!Byb&EB+R=ykGr`H@(a)7^*#LbWWawSzR8cf zNb)uu_xy$5@+5)iB`-ElXn^FQ))%?d#4zVM_|agu`&m+hn*V|FZ8z^qsZQDVSBY;~ zp47z*eX2?Q{S*Yh-4eq)+VT2L?>dSuUC+8#9q1aJr|A1ojm=-u^NHqGhCWlzXewIv z_fhxj!c#)|6Ln_4t0mt+ zJe9J~_Jjta;HG~I;KIc&3b4S%{vMEkn_h;|$Ht`B8;-GW-QR*?dKS8*1q`5ta_AE| z17?dO{EBYn`|~K^R4wMphLlS?XcSbarGYB3aEgJn3ps1RH0QrN-OqcnuZI#!k83Hw#d#kt$aeEtc9-2`H1&h%9wf zjz`sQJv)hQE&RK$4i06hUkFuf*>8_Hrp9C#!lebY4asOXxK)+ej1*jDO7KEBKndbD zvYo7@qDT!?(QKq)R-vheQ&t&Klu0QFOx_%EF>@OuU;DcY&!hlO%EqKZ8)~KB6^KGR zwiM|=JGP2g-)sn`hOiwPv1-H_hdqnqlS;RrFBFFH=l4EW^hrgix#E zX*Xgx`a6i@AApNp8c?bU)CT{J5v^`8q58gs>%MJzCk9%JAu@-|E@7VsD1Rb-#fdI5 zqDVhQwK7sBWuzQTC8Z8sY41CLyv1>CiNHzn@7N9$!fcNOqRd?67H)dAJ_ydK$#4~p z#jWq8GQ9^QsKtQf4ts(W%4J|R*XWB39b|cfrHXNxvM$E=vgD$48gWSK-jw5svvldU zze7Iy`A}k(`emvJ3q9VDq^jxl81MV&w&I!E^+Qx)gAmbL2ki-g-&yu=@uLh4snv^A z%1M-puF3>dis<^4xo9L{tF+x*2eqgFjs$%KXJb+XS86nDf!e3VuKkf+`DefBH6|}w z3j2P5ZTb*j=0 z=szO*kBI&=i~ci<{xggIqv-!p^#9nR|Jb7c*rNZqOaHh_|F}#4c=Ue@;`qm-{|9vX z2Xy-XFX(jjW>>QA!k)9ui9i%Q!f=}f8*vJ#rN?O$5hM-{PLB;#h?Wv6LMgIGmg{lg zL|@Q6_E{fi(PJBSzViXIdWqU_$#u{*{r+@v`%9qq*uF-3p)xjGjoXgku*@UXXr7B9 zo$~(bv7UcI{&Dm%I;cg`qA}il(}HdMB-=Rp81>T@Sr5uSvoI&Vfm2+oWwZ5_&rlbi4D~uOW}3 z-}3=gnPyz3IXi(KfsEDsPdm?r-4&DWL(;7Ycq527vqObqs*NVvq)(X{iz5?FV>TvE zgVuJVV9f}Z$)dSt*=abxKDT#rE1YoSpG>=ylOCi@XhFAG=I*7t#KP~xc6Gd-#Qjcs zt^2$~%(y3JOT}TVK$?WBF_-EPb7Ey`NXxUr+?+B_P~S-pzsd|!!u0q*W2Q658Z!4L zvG1x^-q`|p0dz>B!LabBIRC4mg1`}@xVWJ!P?D#Vd|VYQvv7u4E{26V=_>DChc0#} z)vu20x*?~RN80Vl^6K}$-9-)6^%JJ@{9TC>x9%%0gG*%~X)J`6E#{3Y(D{@LaM>An z0>dZ`RcXLQu}UDfbdV+r*SVMu6Ix`p2Gz!W#vD;+XPu!GT4p+(nH1B;tMPdaS!8$4 z>hgI=!RAPLdMp+YZ?jkv4A8x(vCP|@1 zgOhcY_t_)do%J$JFQotDPQrl2jveV|BtTev(vZQf$kitYN2%5?Tot?)4<+tgz0b#X zK&O1JIecqdTO>}q0;f%n?WEkK$t_9&tgjzl%#hn~xKRiqb(y#ciVnF7-sB{xJ&m0? zxrvJo6Q+)+L@5hqzC_B2;j|%(9W7Fy&s4Mq#TZa9l`%9h*?Eu|5t&d z@Oy{tVQaWMmQ0F2^}b}sgR zk^L_&{OdQP(mPii4Q!q44IE8ujXVI1k^pB%mv=4+zh4nCakVfqQ4|;Yt9wNgCp#BM zBNL~;dJ%PZ7FTlqL(?Bt7%=_yB`o-dQ$_~w=XZks(DZL+|Ec880bmEd6Q}s^i!vs* zX3pjSw)Zw-7S_)1oMaTUe(zGm#K_LrT$e>_b0Y!+pv4?;S^00Z+fGh0Ioi^BNq zQI#Q#?+P$vH)x3H(@_}Lv|||BSFK~|9@Tm1DU{QOZhaNee@9%SV2G8S_&MF(`Nb*z(y?$Fgk0Y0CTAp>muOimu!B5{8D?Ted$< zT=xqL7!`|Um6U92jK9Ya8kiFD2FX%D8s*LYBq0*HI{jR6k9oN%gZUZJwI$X$2&6RrY6?K zc?Js>R_97CMJt^#nKaxq`=WmF_%#Hq<>hs~?+%n$nYHla@j_AXhTnvg%>n4a@QA(D zHr*kv=`%+{;NyFmVE9%!GAGo{bWpwC-zEgm2QYBm*%oj%jd3CmAt`4vz8;^Dj89n} zSJg9;c!Dl|w^!sEFt{p4+eOLRHn2*$goe|qE=}Z5xxWJXy(g4+4`VDo+zo@*^$^Gf zQAG|Rvp;Di? zj%%cCf7C%rHY}1%e)U74_Lj0}pB?Uorl>#0THW;JczK34fF9txP=WTT&o0eHx^bm} zw8$J&OU}{Su`;wV)viyV8Jlo|gJI$qAe>Ll$8L^RI_-Ol-MZ<5X4$EnQVVoPzPPAl zod_Pmn)dH7zC0wQTy1wy>bHpMA*}vQu&<7vOZRZ7IPnE5irDXF!OOO1MN=KRn`=E` zgWIl2N@4Wzo2hQVk}mA8?}ML&_}F-G(d1JhVW=o8e6tb_^C-~QiR&iYejUfu6{0Oi_>`dS&cr+|ey(^=5YVL>hlF@3lbgYz zQz9)tqn%3u9b>xGBRzFNpy>CtHXz6K>1P7VBB^I+g-PB8&)!;C@@LW6&+Weu8et}q z@hv@iN`bc2x#K?)5(8_qE2~H2xMGH0*3zhVefbTyRx7Y^W^~GMioOm<1uzUjbUX#l z*eDO2%k42%$R|xAN(~>XHm)ImRf!;ei=17vEzEcu=$VHEKMTQ z^OUc=(HmWy@4GvL@6Y)^G&p!d?L`Esb-+DwZFCkbBIFhv?Dn%_>7Xk+Y--aqa`z;&c&_=v-u(KGLpFZSF1>w?$n zRE9Zt-FYW*Q$^6X38{EfGi?73Lb*>a2s0#TSc8#5wLfw%GljsUw=;#p+66nTiDBHz z%$b8URMCd!R=YAb5CzFXDgrV!x=h)*M~O4B6Lmd+4WEEEtADeD+ zP}<$r<(YqJlZ-9T66CZ=or^g3UJA`~N$Lv9VF3~X$rSFa1cNDUFFCiA&IH$(xw#Fs z`5(l4BW!mHYdJjIHY4!lxo#(U2{aXGK1Lj`H4L#B*uoj~&a|PPXOap^7jg!e-nd6h zB_0HO50ri+rAJrka4cKP+wIuFG4;CmXr<6M8l25r9d)CZe;J1woupc}Yo_`=Ri6c~ zXtixv3|1m0-zSCWhMJAQgke@cxG{U?LC~*AciT&f-Lx{nL@={0(IzsQtq=2qu&W3^ z>?1~$N~Uy6yC9RBpHA?>ieHOu zKjnz5XetuA6l(?eb>9zImFD`?^f(Src~nhSN>~)Mr>|m#De*3#5c9be8D|@FHl^#< z^Z)$K`i)m(U9lXGP!LsKZ34Lh3injnr7 zHizE_t>7P}|6Ptb|CmYt8#!iXW8(Z{-TmL?xKeX8mX-r)?M`j>ld~w}uaB$@o372! zLzan0I`Jw{NwQ}o!zA7Oo(bQS9a~pV;qRAq$RombiOIh_ZtWcSjqcrb=Yg)CNK*ay zhVQ%8cS&+If>@&zEnNf|yM6o~e_Ocxh^U#ZK6ss+Wo$w%mly7TThX87TxP*LyV*Gk zi>i%c^}U%6+uQL|EAsQ!^YuUx;v!}R*`e_hzq)StzT79&bo-t3z8%42FV0jftM^a& z>!dhEMRh9M!-!?tO)A1%k~r502|OdB5Q%u_2QwWt$89w6avWUY8xLq353_xc;DCv` z!osQ~;YGvbPlO*AV^UE^g*aQO4~$mAzMDsnuIJxJ^Xz6dwwrS3ux+-Ofg0=kl&9DS3mZx z_%qt!aL^YM8+7O^1!W5?E%V;=gu>i1Y5XRM)xlulgdO$WT~!m%7~H}()D2Ub!|W=_ zEM|&df2R(vFhWGpM{;ybRm0@FX2W8OZ#3rwR!0`bi95xPOvO>Lg}?#6dWaEH%l1^K zx+*Mh@ydj&KyfAVr-8}*d1Sf-tY7A-OH1FeOb4&97O41%#ey;IlOe_Rk_kgS&c^QH z4iBnK#J-i(S$I$Ji4w^mTjf50jq;XcJLDRH$mQ}Z^L~e$`=x$q-u`O72aK!R?XNWB za#dKJM#q!!ZF+7s9%ZuxaxR0yLc!XkxAlRmq1ORqlaXnvY-3}Pc?wKpfQ+iW%1s(n z8YqFlg<(nUHcUhgw-6D!>syc_7=qkyZ5ER7qeoIfdt9>YB^9<04w_=HP}mmixZ7ll zCx=Ye-Uo=2_L{d@KQYSUN1@}&k=0Dlmz`ePY5-oYrAKh4?fty&MBsEUP}O30^lC+dC?dioH*sST4cr0Y;XgiKW#W<=PKDHBsTCw%7Asa`W^z z7^K&8q(UF@JPg6;aG)*yI*^mrYsNmL?7Irv<=%qOV9{+Hv@R>_BI9#J?UJX>hMHL5 zr2I4uuZ z6c}XvHom2zx-GV{Yg;sFrM$TD%Mr~s9h;z|!KRzhZKCE`8HCy&|FzR9PJF0BO_&(L zt{EMfMoDU8$%8H7ZM$Fng3xFp@?G9mrXeWW`e)nI$>32*h`lFl6 z6&wAo!c6ArCmF34<<_7Z8c}eq>*NNlh2g1$PPI<$l#ufJ(zPqibxo>$%yxKDFHnw2 zwukqoR%RNVV(7f&UguJDJ++F=e#dm0Vf5`nhjDMi#9=LjvE(-JMdVyl4y-uCr1h%N zB5g$m4pzT!WM6(fb+5~0>xiOw77Jes!~QMTvWoiq=XzD^E+W+yJRIbKjODBRZ){8( zG|L)Hw=V-Sqa(oPGK~Be8dmEvjMOp=T=m^fH>p)!YjT)#B6+_i&FJW>LQR2(Ie&S! zX+7T+bCg#G*{tAtKz~{jtaCT|# z_yV>tNg>h*+g=ZWJYkWV2v3T{mwIK+cd~L!E@XGXvLtgO6LK6e)lk9*wS5h-^kc`V zQJx&y81FK*KVd`+n0b$DpA0%?97xDu%7_cU4EuwdQ6_}HM3LW9;|Hd73I@K!H-}aX zS@66AetcHbm>~JG8a${1BOcBxnWu5&sMpqyM&B4zc0z-Z zqiT1&X76M*O;8y4v^|WJ;|HONm!Cx4tR|hEt&cCfbNh>2m|&w50dtU`(U7$JvaFLw zaZ(%|?>ba31vU$`9I$eQM(ttaOWh^Zs&0xtA5E>? zr3cv23j#BSy>)RK^+2cJDwCi%AS`XfW!o|Fo`hP(>`W4!&V?2H^K;mQ6Fy_Npmn)y4|w` zs-hTYA`pWAHbkkG==De@Ib4XAbpun~)Q?@6WHT~PIkOIR_z=>Aj(Nw4Mfrz$TWr>; zpb7jndm3H)I;V5nT%98w(zL1%(dc!HNPjtkvOhX_&Wxw-{dL=9H7y5SDqORy5TFfHdL%QrLZXv!kKy_vS zM{o+SqW#I3AXl74KUaiAgI@u>2PbOv8_&S6h}lHg(gXU~NtU<>9(M9Ur;$vDsxr}s zVtABV*o3nWh8>1X>)yYRequ+C7mb6nb_iXxjI*q}c}euG>QEk>FwdB1bSR}#Jo?bg z{0Nk1+xwh{gET*&)$E)7thx$AI;Bt`xgUXCWLx71ckDR^Z`v)(dmcr%r!5zSVcqzWPrq3`J7CbhLC`8RJD z+>)K~CH%D?-99>r8$rnJ=+SGFS@1J7>1<~iJ5`fWu7uDnqp$o{?$1O2-8kg>-#R(( zh$ZX)Y#hqkt+FF`KB*mkO5ciSdH#R^u1kp&uaxzOxtsj0bvCRa?DYkS8cEcmaXCd4 zyl$S>aee1vTw(XV?|5ND|Nh}ThtLDJ1^&Gv77p>dsi< z*0squnU|InRpN~8jig$yTGx$qp3Ze2cR`L1P#6Hv)=hQPVYOXfGjwIl!ZPYcLiJGI z%g)^bW6D#>0{vt6hESN-x4J`_(a>zi)gdQFw9fdCo*mGYY<>-LRtVmgIrnm7D0vSP z-bW9Y>k8i386~RdgC!5Y(fC~qN$=)%LO7SVUM-@RRKAFs;a52bS0gC8pksh%q$3X{ zXMZ3Wq0}sxbbC=;>AGm9nA&qVo}P~8n*lhDq6CTIdHAow``}Qef?m2%LuDX@Kj`dY=K_?~G+Y8~*z1O>TtEz9z?u5AsqHR-d|jZ98qadbpfZ&un4M4pKHzr+Hg#Ff9?j8Q}Y|`z5KGzQ*_X zVV>@nlu#tf4-SR{Y2ZeI%NGvLG((GvQ}OwXu`v~D>zR9tB7I5z322oE6;cBdq&#R! z+DRkW=998u8OEk`?1~x`EPAU)qY{>umd1%JFH-Cw<|(&k-XA%fYNmRu#I$d5XKY%9 za3K9c+o5~KPDg{zUP(rH?Y+_t4yssEcP}tftd^Z=;yzcTj zp!B=CA+KCyeNM~jLe%e=PA`5u-}wP6C{E*I)iA(aaV=tZHHHXViGXoiD{MARr+ z*pFRsWF8VDWt{nHInGwP<8AZ#ccNec-D1}&Lidh)J~_wEe!UoNz3IpMoA342bPy(+ zV`{~PYTR@8+y{Mi4bN>0Y4V%KVEfVX!*%zi_az;HyP_P)s~650w2wpg_efQ=ft0>x ztgoGc=Z1wMh*tIWYA@#ldI=1csZ~7R-;Bf}Up*Y^W;I?h7c*vFkCfk4;(1T|?s|g0 z%2W1c@iNa3wc3pjjE3j1jGEm@dW~IJzM@6XQh102$&Wx%(O+Y%of@}u-0rRv^H^kS zbj6e7gkE|3Ud)x>@>tf;edM3Z9`Pi2Hy%RNmx05%TY`EOLY^2F= zUTDsDu@B*+SE(d{SL%swkh_asYPpu|#6SG#cy(RdaDCcp%D1Z-7nVyJ@2(!L&qC3<~J@d&vXABxOgX! zti8% z{#Z?V(1^H$j$V;0wGxV#PHNKVxCzEQtG}ewo2}^SKv5ujwp_eoc|Rh}8Lg^6My*sU-w_+Nk;P9g)&BZ`-Pf$PaAgig^#;m7m;g^jkyF*@5=u z&RCx1@?E~UB_XKn*g4ae&r}No3I!-!0U<4@Q`V#xs38f>hs(ChKf#*~NX;m$71$Tu z7Lolr2hk3MH;D&Qb~(eKnB=xq9;lr`Xd7M}yTb5iXBI&{1112{1Y>8ONU!q=<>VL;DB@5sKeFMoegWPh%$g*B%D5<8g- zN80jnZDf~+_gy_E5&wDeJyo)M`^<$JEWNWcvlV4DklB+$)lyS7DRcu3TJumKRpAt0YBEo%?gm@XMt}2S1g`H^uqBnO?ilJNKv29eJ{+ ztid#pUyB(2;!&YXuf2tL{6|dDMH9#OmBf}ctD@Pj!`l;59`~*ZokUwWWzjKBsY_l2 z3*kW+%7&mVEGl!i_DL?H_ra=0_AluYmJVf;wlpb%cMx>h zs<+##j!$7_P*MyQgs4=k#E`Tmw|RipIO4Sq7FQK})|qy;*T0Om&!^cP$bJrVNPJ#h2Qi7O4)JHEYo z2D6P8bk`ROS0d2aRy%ojDLK}BAPRzQjRn#L$D#s>mRn}bnY*87uIp)|Y&@Fk2{7v7 zIRW7-2Z3vCKGTBk(^WeSnV+k=kG zG1KWC>3Qv@1~lf*ht65Zn%RPaylUq&6vJK({GG4DldVQ)7U>_lpSWPk`wXzbdf@I# zbQP@g>fl+H5E>D(or(SXuKWzL8Zfh{Xx!8wNyA zXV^3fRDh6BNkPA=CD3E1yZacRG_+GiR8;mhAmALcnJc_6%SPFn)x1>78X*1 zjz@kb{NT!uRL*#sV&QT%Z}j+;N71T&K1;Sqptz&hz(>NSd7$-sTLZFUYs~*OH508a z*krlJX#jFQk8Nr3sJEpa$+%ef3A4%?6$O#EW#PW!+V10{Nyz~4sIATP+FoW?6jDL0 zh(X(muvM`@(1#1PmX9w6vn3;nCoX8(Syq$stRS&F=6#{|Y$EA#)qngAmHC+M+3VzT>-eJ2tgySEN9mG|E{REl*&h#;!l# zpMchg+M#{dR*uea3_4Et)U*}pulhiM#**in>L0_8#uVbDYUk;i~SZaY63nhrE=I{^rR#80O(zoAcf?}b@mfo zlp`73tYPk$c_|8iEHVK+6R`4MRMdlwbf$e+qrzkhR=mLrexk57;iNy!d)l%2oj_<3zQj| zc{}`hI^M1BpZ4@WX*SlsX}15T&=*OY_aGMlqnd^BdmsjonfW~wL&C(u%-k8k!Or;} zQexrkq+sGGY-eL{XKP~X40taSwzIZ#RI)cPGIIA>Q?N0^s~EWG33gWPErmcdU>nYV6sc zjQGJn7$QUnXB{2v$~OX#4+8`J69w8nc=|WN?x!yhUo2{^FH{=V+>3e_Y;t%iOT=?> z>ntZ8_Icj2yW zze-TdmBRbv*B~o=Hsy67Dmr)M-(-81OJ3IeUKrof6!yBG@7^xeM!A-R_WZnY};Hq6NPEI+}ufnN?Fqg6fM zLA38>lc|p`#&$0wU)f1^M?IF016&L&@Vq?Y0dgG>EMX@)D(4eWSn~tsvwuWypRzo3i)vXkA9aX^DU#XZ$J4cm?I zhP~H#X58L(SaZKMg;L#%~C>?yN7P=FCQ)(j6R`QFoVrrOS$pSMi* zE&*uhASj2T*ztCK+Fwu#H-j?XN=#h&C2#8 z$(fpQfNYS$*W&%jcx*{{DTw$%*%7B3=xA9z@xRm&OXV@*8Q(C&Jq$Rjnn4Qu0>+#{ z*g@F*fPL)d(Tv}pz6j9?eB)p@vBw|)W*MYlC7!7Mp!h}wzvNvziP<@lbA1G!e#2bi zC|`$I6CAW>gO%9y)CF#+D~_)!C^PFyMjfd|dlG9?)n=sqtuDQnQ{G925_dE5uoBrR zS~Ajs-E3`X357$hwOq6%6&D{3tCkqB??yH-tZiJW7_USABL5KzePOZ5olG`cTQb{q zD}Cv)&7UZD$|6KFMbqDB|K-%dz}y_t(6(z-6i&^rcEq~r;Ic7)aPiU6%fS`+V*d;Gs#PbqG={#6e@93w`ux5U%w~qJH%rHq zrfD87^H$S#H$Z1fyJ~KB9-|*~Hm*IPj7U2n`ds1X?B)e#cw;iAg;l70Cb8)TmsVlS z9IHzR>4S0ttbm%58^qVz6I|H}3Krk7ZF$o!M8lv6G8JDq2YVf!V>z;cuPYBO+1cOE z`pniWvsg2=E+qrQ7IUviD)&{l0qf(`gGGR;T!~?Ng>B!GS5}uVmxRT&hUqm@?yv@QBO$@s0K_bY%RnO z7>Zb|Y%I33X9KBv@=WiKc=0JrU6cwDI;gGyQRk=QlRm56&Xg~CGo=j)@HSnMnop5P zfND5>#hFw;hrgRE3s9Mmj)nY|6d^ij78mlr{Xv|l@L{4*$v6|^z?yImV zVr{+1*?Kux#DQn{DK@YKcNlG|$9D)FH_QY`;tb4FqJ3mB5FX>v8r-99`~iF8-~rZ0 z?Iecw3=dk(wf2WtkHd5nmsNsEacYO-7?r(@0ORH$RTQfZ$5aYmI#0`x_L(Qj*>q(C zeqS(t#k={kyNzz0&-G^>>~ss?Gp1|)?aqo~wNB4wrxaQvS{y5{I<>{vP?Yd9mPwSW z5ux^YpJzA=XzGgG%$$^6j99q=y%&sZ8;?g@RT-iV)V&^f zc371G&(ZI8R!vQl!iqsqP6!?#oZZ^wyaoXo!vJ-FTuNYG-XUrczZwP;sBTD4AuREY zNJPan+{3siseX50TGP=5{1txX&jh>90UD9$WOxCc;fF@m;XIu7#_*C`{jgJmuA0qp z=<0+Zm5aqn&Od__IBf~4dMh-B122MEIv*PtH`>TI`60YaaB?8KnKQGtZ?C%R?iPu0M?B=Tcoxa-KH!eJX4-Ftk8 z;-wf08h4hAI!X*Yao3Js5VUs0L1Tc}IZ!qy+WHxlGv*p>??!fd>paMrMkvmp1}rJ7 zgQAzy2V*$Z_TG#eCbPA7IwKWxqIF!3qwTW@YtYt4-jQ1wzA&2;!M7yu-%;^Evb!pk zj3#=Jg91X;-XYeyj>SD2Ek?J=Skh2HGzD1>1Nio%9?^nf)L8S*P?wsxL;wpfrsq>s zkb3|)PWbpPW^Rqp6={Nq4)iUkAo;MHBGbE;0{iw3*Ht+vSh@v)F-$L-sr$HmLfC+G z^C)rMTn<}JPgDsp%JPq8FBd*E^;L#5Ur#9JgGB;(nf2$w-jzvD@5uScXg$=RQcQNTjg;XWb_d+<&;!ZVO)V;jrdOMEPL;uLB*SHR}4 zMp)F%*bg3Ing(^j^c!f=@gVk#YQ@OyZ#FFGphW&~D9=GktP4&lc@R~$^O1=*&B=Ov7s&o+UhcIl3Xg4eo$qC^! zQ~1V&(EJ1#`M9*SlA{I$DRWT;3Rs)urmLYfIop#u_BS)dPch}u%T*QjhJTw7wM4fI zP*23n@*yjmreKeg8#zT{A3)t`MB0cGh@L=0gOqDjJqAWK97tA$OEw`HzJkJ1B284r zcSAA54NCj{G#t@4klIB_Tbu9jLD4CT?}Ebl#9j7A_?&MGku)VquA!bF0@#-z4$G^O z^75AfK0u`Dd72%Vl{kD=ZnsC)%Aj;b$161se8ortP`k!47zmxYmV~@#g4$8D%H8&o2~eU{9895-Kv1=18Iz`fNwo*fa9eD`WGum z;3sCDAZ6!Og@$tO!_Ev;#}_RCdniGlFS7^fA}@D_fbjWl_mT>-lN?!sW$CPS#8+qQ z?#du+T;{=Vf_`fj7$CVFQ)=?0p9Rxu$!QcYScW7Bgy3mL2niA!F346<>{uBsqeMDW zmAh?+V3{?cizW9NTjDg`k!YXd(ekpWKqCFlolvdvyENe@DiPym)S$@Pw`JS`zyRPj zm$)gC1@6*R#1D> zM-IUd!SEc%u*3n90ASMr(Hsso*ochA6#^Y9ugy`styy`FAOSMRzH)W7k8`|p(>#`I zo7;gB`eD&xD?QA#EwX(iYyy*)!umuazT_D$t3PR*8l6n=^~@O1)!8zK=MnZZJsr|; zq2`SlPt;7-{1BaSHC3)6C|y3-NONURg8q`b-P?N%8IP1SuilwBc7y&TB=^n*sbTHx zfDwxcWS@EssuUY^P`w*o5E^3x(El{B>=+Ktv+!9FeWtU6;!aCmBD9iDayr|U+P~8` zMKqwj;k6fI<<18L_?#;~Q)-eb;4=*SKAA{cr$da@)DsGYx**@#)Ba^Fud{%P6&WLwI)6odk4_XEiQ$xz~hvGE&|q> z&=+O5ZG3U9ISl#?4z%cMlUizrkPP|Ij(BUStR3f`9LnP(cp^@_JhiyHpwxx$v`nSx z=rB|(HQ0q^a_922MU+>A3CK4(P76X1lFg7_wWrK|J&aq8aZq2J>avUsnvSB-p%inqrnWc5uz@o@LCFxUkF?1 zBdTR~&AB8rC(+sk_d^KsxckP@NRi=N30XucO0-%;Q;bqHs~^xXNZb;R5tpzXV_i#Yd)Q%6iisBTVZojfJy)VwR(nDk z3dsnogMP-U8Mi=j>gbD+HP(e*Qi%#T`Di z39Oph^_$a*cVmc%O$ZR9*3fg#@zRPTZ}J-EUBWP7g#PK35H9x`w@=|&QW=o$Rkvq{ z79MiP_(rb~rQlAs#^W6S+=+tQ#E~FbWn6dM@ACd4a0lG7m97#EVB%z);2sbDnV;5)LyHqz4LTR`3fa#Aq`L3g z<#;~9eS!S9CV>erPVFcBgR&;>M6%C92g`R_m|>qr#%Av1T^-6Jm~X}P=^T#@zxyI8SHh}JhXB9T53Z?9d)2Y zHUM!)NtUr5qSxffPe=FLS1nM*b1;&-o)HXkk%WUCBN$&f5t}WettsLsKa_%n)*7vD zI-{L=fUx6wTLjMTng5uXe&NKEd)%zKUnD9?48ePMRG`-}}|_afpV*1a)g7gk1RGd#0L-sU@wUCe?) zaKsl$l3f)ouh5B;i$mFnb8eb8os|pfOY}Q8Y_~hE^Iuh`1HXcGaM_DzDTvSa*9MYV z`q%T=MSNr5Fxjg~Hkv;0K5P5AS`6lVW)743Jh%AsII*d^d!7yvyrt4p??|rK4OjR_ zD7Fw5bZ87g494n@{?dBHR%7xYEqNn9B*fcOJ|1gUirB0JVlQ?M(=?=J$Me>;X%_9w z#kLN0s!0JV(VSTpg3CrD6b@XxuAWaE6dWt*?#n>h=C3Gv2VUI$>EU_Dwe!~AwWGtK zp)A6SSmWBA&r$C#*a@Eyf^=|Ew1}PTiH;##(UgIT`l{Ov?LGHLQ~Fm?`{9ull)lt* z|GDpgyFrnz@=tvgdYOCXU6Pw45}z|do3>>&yXEOBc2|nGpCI6F+DYcCw-b15ABsU& z0_6wTHD!cDY74L)`y;dzr=Q4+8-Yvs?gWXn13$YA|Wt^!+tRIBkt7=|9l=c zG3!8%4$%Q_h^OJ3UQKXA4fyS)yZotU!@}v^zqkG^5KU+J>-B3lP}xS;um^CP7SBpA z(Y^6B=V}3Pw*P|xSfdG!HNk#^_FLp_%<4HD2i#&M$-z2%SHpXKd}N1zM`74eKnhRR zYo9vkY7Lt_!GPf}{h&ra_NOQ8$*u*to0UJ9mknpPgIgo&!{n>jYaU17 zGtryT$2Sj_@YSdEAnl>$v}d9%OCpB~h=^bss-6kKpUc&}Pa7K24wuj}=}ZrC!)qnJ z3_md3+|pvc`Xn}@WBD}zcgsJ0UM9QhReQ&-$la27*C1$h8EkC9=GT2hpBjO+6*hu+ zf@0@uIYfxd5X_$UXY*f*U%aMY`~1+Il_iHz_)6?xPR!PtmtX>kT{(wL(IkG(v}-lP zs(FC{KUy)Ghuf@94I_fre)=~`l}`R=P=6&l;JXR`S2B(G7a$0f{!jEzYZ`V$e7R7(?>VO;zV-4aSSn~>8Q+)8g)xqIz8LE8u5Kie;&!!GE$~7 zdOb?q4w>QwVfz8tJ?|s#=Qt=bUk~S?3;qyqMcg#Lp8_EO3-GGJRGFEC|A=nr|MOtQ z9RXNR?&`Oah)^EI^4nNPI^9pG3m#tI)98}@fGB+H#s>=cS@7hD)csyIf�cXtLyw zUpOyheO81-$jAT8iJJ^Rk74Y5Osl}l>3tu7kjsm>%?KJxUA$fsQeYh4=?VRCZbe3bh9 z$|FDsm}x}kr*KG{`i#70SZ22(d{71Is@~^JFXDIOaF68q$w&J(6&$K| z9Hw?SL?~a7?8G5tmFL-g3&@52Vrj6o{*1?z0GQr2gyBu^p419=NL@Uf4^xmRyI%!Q zF`n9g__4z%Dc1B^_r7Pp79lrgc{T6#SH$iVbRouAH<(ZHE?Yfl9UK(6&#&ouX?P?& z;Y;ZAxHTPAO=Q=PjLSEsVJOIchq=zH{%q-+EZyaD)F1RN2?b&N?nQxVae0PAd_J#N z{aGPioTaiqcS0EXJsRs*AqMu zpD{MBMkc(R&udUOEFdZpp2MG*xi+(c$&cN z{?}j)!*g)M-*(CZyRZ>cc2AoT*aBeHSWS=`bhUlbP>xbJ{@TdS_s7T)5Jdc5j~xn9 zRa$j8olo)W#6A|EhfFmYJ+SE^f$TqUK)>CBk+UfZHNW1k%m2qU% z7IvI>xU;;W=}V~Xv;kpG$)=X>oNw1`-`8d268$&ClP1X$KS^W`W94gRHe_^J`G_;7AO#;V^WT%s{e%l(043ushurfVk1T*QB?dR z5E;4q@z+;5xT&Kkb|Q>GvPNV*2)!LbOf>m2wPFT2=5QOsaO&18zv!o~)-T#YgcFRz z`I|?FoeS}jq!Lceg(H>T&7fj_P$%2}#o1d2wH1B;qPRXOIP~4%=;BLiBafjjs3cU3DyYK$y-nsMUy*GR2Op-s&tg~nDv(`t} zPQ?7Qp0^Owg(3bv>2YTyB4TeaN@q|vbDA0(IN&b6+*A6~JOSI_`Z)xWtXV|9KQPjv*FEQ!Oj=aiyZ7Z^ zq#d%AfT^zR>})^(gSDPzD2`Bbbgg!Ds*!1UEyXE%{eV>J)&h$nRF$d)OWtv&o`ap{M`4D}Ag1)~o}O3Fkkra~!OMGv zbH9K8EJAmmmZ?`B1@?J)>2#TUa-@GNM`s=lJ!IQWFRA(PMuB@C2H~!3_yT;ZLNvFPww@JEgZcmHY*wetu<9zLg?a!~3c>Pp1%&H5RGAv<)d3oLAd!+B18d6bp zrQ^i|h0>!7xrCXJw{SG^v*h~ypM(*c%81cjHwww@Co7S6s)NkVucLa&+k%4dQ=GR$ zOTrjK_J;G`T@zSXS%9bray1u6Xk`2T?%ua3bZqKRO#A6cdt+30EsHZDfmel4$E6Ov z*@L~kcW!1><``0A!E;fiP3j4OUj#b@6Er$8PM_!;bo#RTxO*LkVEk0W!B*#22??8D z=Jb3)n5(fEHztMn_C!d05ZE{fvVPWN6{NF%YK~ z_Z%W{@q3r?WKLsIE$BCWftiMM0N!u3Tpxw?zsaOXEA80}RW7{%u@*x-P;7FcUJ0p8 z_}qzq7<1S>>9$6EXP@-LhVuHMOctwLYSSmppbIGeKK2;-lY15X5}GJQnp{K!^|Yog z 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 z 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

bS@}2Ms5v~$Upyleb0nATyzN9B; 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 aJ#9TaeF*^-HJG3f29%`cMlqGGJ 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

<<`70qd6m0l4SQS5SeeQ%*Fq=i&_! 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

  • }Lvs3V#wOj;fvZHB7 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�#`i9s3K!n9-L;Cs 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

    |(@?kX#s9#DnQE}+NA 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

    B1`ucE1}y!IHT*{1;5T4txnezdv&H=% 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

    $Y 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 QObkp6P^6?Ha-vZG188X@$N&HU literal 0 HcmV?d00001 From 0eff4c2f58dd91bc02da5f48f054325635c2dea6 Mon Sep 17 00:00:00 2001 From: roger-bai-coinbase Date: Thu, 9 Jul 2026 09:53:53 -0400 Subject: [PATCH 06/19] Lower min base fee (#361) * lower min base fee * Add sub-1-gwei tests and update ResourceMetering comment. Clarify the 0.01 gwei L1 base fee floor tradeoff and add coverage for fee collection above and below that floor. Co-authored-by: Cursor --- snapshots/semver-lock.json | 2 +- src/L1/ResourceMetering.sol | 10 ++++----- test/L1/ResourceMetering.t.sol | 39 ++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index a0b3f4d4e..8f8e8fda5 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -16,7 +16,7 @@ "sourceCodeHash": "0xd9f576a79e97bc541b3d7a2ee928f34223edaaecb074eeb9e6e2ecee857ce6a0" }, "src/L1/OptimismPortal2.sol:OptimismPortal2": { - "initCodeHash": "0x2c01bc6c0a55a1a27263224e05c1b28703ff85c61075bae7ab384b3043820ed2", + "initCodeHash": "0xdd5d13b03c015d45d0cdda512795c4fe8bbd60557e3848fed53260ee887b2df4", "sourceCodeHash": "0xa1281f5da03fa0431eabad33da23f51a8d835b0dd04554603fd59e11efe9fa51" }, "src/L1/SuperchainConfig.sol:SuperchainConfig": { diff --git a/src/L1/ResourceMetering.sol b/src/L1/ResourceMetering.sol index 465c73813..3c963e4eb 100644 --- a/src/L1/ResourceMetering.sol +++ b/src/L1/ResourceMetering.sol @@ -135,11 +135,11 @@ abstract contract ResourceMetering is Initializable { uint256 resourceCost = uint256(_amount) * uint256(params.prevBaseFee); // We currently charge for this ETH amount as an L1 gas burn, so we convert the ETH amount - // into gas by dividing by the L1 base fee. We assume a minimum base fee of 1 gwei to avoid - // division by zero for L1s that don't support 1559 or to avoid excessive gas burns during - // periods of extremely low L1 demand. One-day average gas fee hasn't dipped below 1 gwei - // during any 1 day period in the last 5 years, so should be fine. - uint256 gasCost = resourceCost / Math.max(block.basefee, 1 gwei); + // into gas by dividing by the L1 base fee. We clamp to a minimum of 0.01 gwei to avoid + // division by zero on L1s without EIP-1559 and to cap gas-burn requirements when L1 demand + // is extremely low. A higher floor reduces the gas burned per deposit but undercharges + // relative to the deposit fee market when L1 base fee is below that floor. + uint256 gasCost = resourceCost / Math.max(block.basefee, 0.01 gwei); // Give the user a refund based on the amount of gas they used to do all of the work up to // this point. Since we're at the end of the modifier, this should be pretty accurate. Acts diff --git a/test/L1/ResourceMetering.t.sol b/test/L1/ResourceMetering.t.sol index 20e8cd922..6c35cb66d 100644 --- a/test/L1/ResourceMetering.t.sol +++ b/test/L1/ResourceMetering.t.sol @@ -72,6 +72,9 @@ abstract contract ResourceMetering_TestInit is Test { /// @dev Tests are based on the default config values. It is expected that these config values are /// used in production. contract ResourceMetering_Metered_Test is ResourceMetering_TestInit { + /// @dev Gas overhead from the metering logic and `measuredUse` wrapper, excluding the burn loop. + uint256 internal constant METERING_GAS_OVERHEAD = 1000; + /// @notice Tests that updating the resource params to the same values works correctly. function test_metered_updateParamsNoChange_succeeds() external { meter.use(0); // equivalent to just updating the base fee and block number @@ -190,6 +193,42 @@ contract ResourceMetering_Metered_Test is ResourceMetering_TestInit { assertGt(prevBaseFee, 0); } + /// @notice Tests that deposits are charged the full resource cost when L1 base fee is below + /// 1 gwei but above the 0.01 gwei floor. + function test_metered_subGweiBaseFee_collectsFullResourceCost_succeeds() external { + uint64 amount = 100_000; + uint128 prevBaseFee = 1 gwei; + uint256 l1BaseFee = 0.1 gwei; + uint256 resourceCost = uint256(amount) * uint256(prevBaseFee); + uint256 expectedGasCost = resourceCost / l1BaseFee; + + meter.set(prevBaseFee, 0, uint64(block.number)); + vm.fee(l1BaseFee); + + uint256 gasConsumed = meter.measuredUse(amount); + + assertApproxEqAbs(gasConsumed, expectedGasCost, METERING_GAS_OVERHEAD); + assertApproxEqAbs(gasConsumed * l1BaseFee, resourceCost, METERING_GAS_OVERHEAD * l1BaseFee); + } + + /// @notice Tests that the 0.01 gwei floor is applied when L1 base fee falls below it. + function test_metered_belowFloorBaseFee_usesFloor_succeeds() external { + uint64 amount = 100_000; + uint128 prevBaseFee = 1 gwei; + uint256 l1BaseFee = 0.005 gwei; + uint256 floor = 0.01 gwei; + uint256 resourceCost = uint256(amount) * uint256(prevBaseFee); + uint256 expectedGasCost = resourceCost / floor; + + meter.set(prevBaseFee, 0, uint64(block.number)); + vm.fee(l1BaseFee); + + uint256 gasConsumed = meter.measuredUse(amount); + + assertApproxEqAbs(gasConsumed, expectedGasCost, METERING_GAS_OVERHEAD); + assertApproxEqAbs(gasConsumed * l1BaseFee, resourceCost / 2, METERING_GAS_OVERHEAD * l1BaseFee); + } + /// @notice Tests that base fee decreases when gas usage is below target. function test_metered_belowTargetUsage_succeeds() external { ResourceMetering.ResourceConfig memory rcfg = meter.resourceConfig(); From 14237f2f8808679abaa99a6224b83fe40bb94c56 Mon Sep 17 00:00:00 2001 From: Pelle Date: Fri, 10 Jul 2026 17:41:41 -0600 Subject: [PATCH 07/19] feat(L1): add ProtocolVersions upgrade schedule contract (#353) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(L1): add ProtocolVersions upgrade schedule contract Add the Security Council-controlled upgrade activation schedule contract, its interface, and tests. Maintains an ordered registry of upgrades and their L2 activation timestamps, committed via scheduleId. Generated with Claude Code Co-Authored-By: Claude * fix(L1): refine ProtocolVersions with reproducible scheduleId and repo conventions Replace the history-dependent rolling hash with a per-upgrade cumulative hash chain reproducible from (l2ChainId, address, ordered keys, current timestamps). When a timestamp changes, only the affected suffix is recomputed (O(n-j) bubble-up) rather than hashing the full state on every mutation. - Add MIN_NOTICE (1 hour) guard on setTimestamp; expose it in the interface - Require non-zero protocolVersion; use _protocolVersions as existence sentinel, removing the separate _upgradeIndex mapping - Move all errors and events into IProtocolVersions; add MIN_NOTICE to interface - Replace assembly in _keyFromUpgradeId with bytes32(raw) Solidity cast - Rename constructor params to leading-underscore convention - Restructure test file into grouped contracts with snake_case naming, external visibility, and @notice on each test function per repo style Generated with Claude Code Co-Authored-By: Claude * feat(L1): add getSchedule view to ProtocolVersions Returns the full ordered upgrade schedule in a single eth_call — name, activation timestamp, protocol version, and cumulative scheduleId per entry. Name is recovered from the bytes32 key at read time via _nameFromKey, avoiding a separate storage mapping. Generated with Claude Code Co-Authored-By: Claude * chore(L1): apply forge fmt and update semver-lock for ProtocolVersions Generated with Claude Code Co-Authored-By: Claude * refactor(L1): cache hash chain seed as immutable in ProtocolVersions Replace the per-call keccak256(abi.encode(l2ChainId, address(this))) in _refreshScheduleId with a cached immutable _seed set once in the constructor, saving a hash + encode on every schedule mutation. Generated with Claude Code Co-Authored-By: Claude * chore(L1): update semver-lock for ProtocolVersions Reflects bytecode change from caching hash chain seed as immutable. Generated with Claude Code Co-Authored-By: Claude * refactor(L1): simplify ProtocolVersions ownership, storage, and access control - Replace Ownable with ProxyAdminOwnedBase; drop explicit _owner constructor param and ProtocolVersions_ZeroOwner error - Replace per-upgrade protocolVersion mapping with a single latestProtocolVersion uint256 updated on each registerUpgrade call - Remove redundant storage vars: lastUpdatedAtBlock, l2ChainId immutable, _scheduleId (scheduleId() now reads the tip of _upgradeScheduleId directly) - Remove redundant view functions: upgradeCount, upgradeIdAt, upgradeIds, getProtocolVersion (getSchedule() covers all registry reads) - Inline _registerUpgrade into registerUpgrade and _applyTimestamp into setTimestamp; inline onlyChainTeam guard into delayTimestamp - Drop ScheduleIdUpdated old-scheduleId param; enforce MIN_NOTICE in delayTimestamp Generated with Claude Code Co-Authored-By: Claude * refactor(L1): switch ProtocolVersions to numeric upgrade IDs and proxy pattern Replace the string-based upgrade registry (bytes32 key from packed upgradeId) with a purely numeric scheme: each upgrade gets an ascending uint256 id equal to its registration index. Human-readable names are kept off-chain; the id is permanent and stable because the registry is strictly append-only. Convert the constructor to an initializer so the contract can be deployed behind an OP proxy. _seed is now stored (not immutable) so it can be set inside initialize() against the proxy's address(this), binding the schedule commitment to the proxy address that callers interact with. Replace the mapping-based storage (_registered, _timestamps, _upgradeScheduleId keyed by bytes32) with parallel arrays indexed by id, simplifying the hash chain and eliminating the three-mapping structure. Drop getTimestamp(string) and the duplicate-registration guard; add setLatestProtocolVersion() so the informational field can be updated independently of registrations. Add LatestProtocolVersionUpdated and ScheduleIdUpdated events; update the interface to inherit IProxyAdminOwnedBase and IReinitializableBase. Generated with Claude Code Co-Authored-By: Claude * fix(L1): apply code-review corrections to ProtocolVersions Seven findings from a multi-angle review; fixes applied: * emit LatestProtocolVersionUpdated in registerUpgrade — previously only setLatestProtocolVersion fired the event, so indexers missed every version bump that came through registration. * Guard scheduleId() before initialization — returns bytes32(0) while _seed is unset, which could be picked up as a valid schedule commitment; now reverts with ProtocolVersions_NotInitialized. * Dedicate ProtocolVersions_InsufficientNotice for setTimestamp — the MIN_NOTICE check in setTimestamp reused DelayMustBeLater with current=0 as the floor, which was misleading; a new error carries only the offending timestamp. * Split delayTimestamp compound condition — the combined || condition reported current as the floor even when only the MIN_NOTICE leg fired; each constraint now reverts independently with the correct floor value. * Extract _setTimestamp internal — setTimestamp and delayTimestamp duplicated the activation-already-passed check and the write+emit+refresh triple; _setTimestamp holds those shared invariants and each public function keeps only its distinct preconditions. * Drop redundant zero-write in registerUpgrade — push(bytes32(0)) wrote zero to a slot that _refreshScheduleId immediately overwrites; replaced with push() (no argument) to save one SSTORE. Generated with Claude Code Co-Authored-By: Claude * refactor(L1): minimumProtocolVersion, no-arg registerUpgrade, write helper, init guard Rename latestProtocolVersion → minimumProtocolVersion throughout (state variable, event, setter, interface, tests). The field represents the minimum version nodes must run, not an informational latest; the old name implied recommendation rather than a floor. Remove the protocolVersion parameter from registerUpgrade. Upgrade registration is purely a scheduling concern (assign id, extend hash chain); the minimum version is set independently via setMinimumProtocolVersion. Drops the InvalidProtocolVersion check from registerUpgrade and removes the protocolVersion field from the UpgradeRegistered event. Extract _writeTimestamp(id, newTs) as the shared write helper for setTimestamp and delayTimestamp. Each public function owns its complete validation sequence; _writeTimestamp is a pure write (store + emit TimestampSet + refreshScheduleId). Eliminates the mixed-responsibility _setTimestamp that owned some validation but not all, which caused the ActivationAlreadyPassed check to appear in two places. Guard registerUpgrade against pre-initialization calls. _seed is zero between upgradeTo and initialize; any registerUpgrade call in that window would compute hash chain links from a zero seed, permanently desynchronizing scheduleId from its reproducible derivation (l2ChainId, address(this)). Revert with NotInitialized when _seed == 0, consistent with the existing guard in scheduleId(). Regenerate ABI, storage layout, and semver-lock snapshots. Generated with Claude Code Co-Authored-By: Claude * test: exclude ProtocolVersions from initializer tracking Co-authored-by: Codex * feat(L1): deploy ProtocolVersions in standard deployment script Deploy the ProtocolVersions impl + per-chain proxy as part of SystemDeploy and initialize it via initialize(l2ChainId), rather than excluding it from initializer tracking. Adds it to Types.Implementations/DeployOutput, artifact saves, getImplementations, and _assertValidImplementations. Tags the contract @custom:proxied true so the initializer test verifies both impl and proxy, and wires it into Setup (via getAddress for fork safety). Updates the ProtocolVersions sourceCodeHash in semver-lock accordingly. Generated with Claude Code Co-Authored-By: Claude * refactor(L1): simplify ProtocolVersions schedule seed Co-authored-by: Codex * fix(L1): apply ProtocolVersions review nits Co-authored-by: Codex * refactor(L1): reduce ProtocolVersions API surface Co-authored-by: Codex * refactor(L1): rename chainTeam to incidentResponder, combine config, no-op setTimestamp Apply @jackchuma review nits on ProtocolVersions: - Rename the chainTeam role to incidentResponder; delaying a bad hardfork activation is an incident-response action. NatSpec scopes the power so the shared name doesn't imply SuperchainConfig's pause authority. - Drop the redundant chainTeam deploy config key and source the role from superchainConfigIncidentResponder (same entity). - setTimestamp: short-circuit no-op writes ahead of the change-validation guards so idempotent resubmissions succeed. Generated with Claude Code Co-Authored-By: Claude * refactor(L1): address ProtocolVersions review nits Run ProtocolVersions tests through CommonTest so they use the SystemDeploy-created proxy and implementation. Reorder ProtocolVersions members to match the Solidity style guide and restrict implementation internals to private. Co-authored-by: Codex * fix(deploy): upgrade ProtocolVersions proxy * refactor(L1): reorder IProtocolVersions members to match style guide Events before errors, and mutating externals before view getters, mirroring the ProtocolVersions contract body and the repo style-guide ordering. ABI is generator-sorted, so no snapshot or semver-lock impact. Generated with Claude Code Co-Authored-By: Claude --------- Co-authored-by: Claude Co-authored-by: Codex --- interfaces/L1/IProtocolVersions.sol | 42 ++ scripts/deploy/SystemDeploy.s.sol | 48 +- scripts/libraries/Types.sol | 4 + snapshots/abi/ProtocolVersions.json | 447 +++++++++++++ snapshots/semver-lock.json | 4 + snapshots/storageLayout/ProtocolVersions.json | 44 ++ src/L1/ProtocolVersions.sol | 286 +++++++++ test/L1/ProtocolVersions.t.sol | 598 ++++++++++++++++++ test/deploy/SystemDeploy.t.sol | 59 +- test/setup/ForkLive.s.sol | 8 +- test/setup/Setup.sol | 5 + test/vendor/Initializable.t.sol | 23 + 12 files changed, 1560 insertions(+), 8 deletions(-) create mode 100644 interfaces/L1/IProtocolVersions.sol create mode 100644 snapshots/abi/ProtocolVersions.json create mode 100644 snapshots/storageLayout/ProtocolVersions.json create mode 100644 src/L1/ProtocolVersions.sol create mode 100644 test/L1/ProtocolVersions.t.sol diff --git a/interfaces/L1/IProtocolVersions.sol b/interfaces/L1/IProtocolVersions.sol new file mode 100644 index 000000000..ccb41815d --- /dev/null +++ b/interfaces/L1/IProtocolVersions.sol @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import { ISemver } from "interfaces/universal/ISemver.sol"; +import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; +import { IReinitializableBase } from "interfaces/universal/IReinitializableBase.sol"; + +/// @title IProtocolVersions +/// @notice Interface for the ProtocolVersions upgrade schedule contract. +interface IProtocolVersions is IProxyAdminOwnedBase, ISemver, IReinitializableBase { + event UpgradeRegistered(uint256 indexed id); + event MinimumProtocolVersionUpdated(uint256 indexed protocolVersion); + event TimestampSet(uint256 indexed id, uint256 timestamp); + event ScheduleIdUpdated(bytes32 indexed newScheduleId); + event IncidentResponderUpdated(address indexed previousIncidentResponder, address indexed newIncidentResponder); + event Initialized(uint8 version); + + error ProtocolVersions_UnknownUpgrade(uint256 id); + error ProtocolVersions_InvalidProtocolVersion(); + error ProtocolVersions_ActivationAlreadyPassed(uint256 id, uint64 activationTimestamp); + error ProtocolVersions_NotIncidentResponder(); + error ProtocolVersions_NotScheduled(uint256 id); + error ProtocolVersions_DelayMustBeLater(uint64 currentTimestamp, uint64 newTimestamp); + error ProtocolVersions_NotInitialized(); + error ProtocolVersions_InsufficientNotice(uint64 timestamp); + + function initialize(address _incidentResponder) external; + function registerUpgrade(uint64 timestamp, uint256 minProtocolVersion) external returns (uint256); + function setMinimumProtocolVersion(uint256 protocolVersion) external; + function setTimestamp(uint256 id, uint64 timestamp) external; + function setIncidentResponder(address newIncidentResponder) external; + function delayTimestamp(uint256 id, uint64 newTimestamp) external; + + function MIN_NOTICE() external view returns (uint64); + function minimumProtocolVersion() external view returns (uint256); + function incidentResponder() external view returns (address); + function scheduleId() external view returns (bytes32); + function scheduleId(uint256 id) external view returns (bytes32); + function getSchedule() external view returns (uint64[] memory); + + function __constructor__() external; +} diff --git a/scripts/deploy/SystemDeploy.s.sol b/scripts/deploy/SystemDeploy.s.sol index 227d123d6..d12aa6c08 100644 --- a/scripts/deploy/SystemDeploy.s.sol +++ b/scripts/deploy/SystemDeploy.s.sol @@ -17,6 +17,7 @@ import { IL1CrossDomainMessenger } from "interfaces/L1/IL1CrossDomainMessenger.s import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol"; import { IL1StandardBridge } from "interfaces/L1/IL1StandardBridge.sol"; import { IOptimismPortal2 as IOptimismPortal } from "interfaces/L1/IOptimismPortal2.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; import { IAddressManager } from "interfaces/legacy/IAddressManager.sol"; @@ -107,6 +108,7 @@ contract SystemDeploy is Script { ISuperchainConfig superchainConfigProxy; Types.Implementations implementations; ISystemConfig systemConfigProxy; + IProtocolVersions protocolVersionsProxy; } struct UpgradeOutput { @@ -218,6 +220,7 @@ contract SystemDeploy is Script { disputeGameFactoryImpl: artifacts.mustGetAddress("DisputeGameFactoryImpl"), anchorStateRegistryImpl: artifacts.mustGetAddress("AnchorStateRegistryImpl"), delayedWETHImpl: artifacts.mustGetAddress("DelayedWETHImpl"), + protocolVersionsImpl: artifacts.mustGetAddress("ProtocolVersionsImpl"), aggregateVerifierImpl: artifacts.getAddress("AggregateVerifier"), teeProverRegistryImpl: artifacts.getAddress("TEEProverRegistryImpl"), teeVerifierImpl: artifacts.getAddress("TEEVerifier"), @@ -279,7 +282,8 @@ contract SystemDeploy is Script { opChainProxyAdminOwner: cfg.finalSystemOwner(), systemConfigOwner: cfg.finalSystemOwner(), batcher: cfg.batchSenderAddress(), - unsafeBlockSigner: cfg.p2pSequencerAddress() + unsafeBlockSigner: cfg.p2pSequencerAddress(), + incidentResponder: cfg.superchainConfigIncidentResponder() }), basefeeScalar: cfg.basefeeScalar(), blobBasefeeScalar: cfg.blobbasefeeScalar(), @@ -336,7 +340,12 @@ contract SystemDeploy is Script { revert SuperchainConfigNeedsUpgrade(); } - _upgradeOPChain(systemConfigProxy, _input.implementations); + IProtocolVersions protocolVersionsProxy = _input.protocolVersionsProxy; + if (address(protocolVersionsProxy) == address(0) && address(artifacts).code.length != 0) { + protocolVersionsProxy = IProtocolVersions(artifacts.getAddress("ProtocolVersionsProxy")); + } + + _upgradeOPChain(systemConfigProxy, _input.implementations, protocolVersionsProxy); output_.chainUpgraded = true; } @@ -447,6 +456,7 @@ contract SystemDeploy is Script { output_.delayedWETHImpl = address(_deployDelayedWETHImpl(_input)); output_.disputeGameFactoryImpl = address(_deployDisputeGameFactoryImpl()); output_.anchorStateRegistryImpl = address(_deployAnchorStateRegistryImpl(_input)); + output_.protocolVersionsImpl = address(_deployProtocolVersionsImpl()); } function _deployOPChain( @@ -487,6 +497,8 @@ contract SystemDeploy is Script { output_.anchorStateRegistryProxy = IAnchorStateRegistry(_deployProxy(_input, output_.opChainProxyAdmin, "AnchorStateRegistry")); output_.delayedWETHProxy = IDelayedWETH(payable(_deployProxy(_input, output_.opChainProxyAdmin, "DelayedWETH"))); + output_.protocolVersionsProxy = + IProtocolVersions(_deployProxy(_input, output_.opChainProxyAdmin, "ProtocolVersions")); output_.l1StandardBridgeProxy = IL1StandardBridge( payable(_createDeterministic( @@ -619,6 +631,13 @@ contract SystemDeploy is Script { _impls.anchorStateRegistryImpl, _encodeAnchorStateRegistryInitializer(_input, _output) ); + + _upgradeToAndCall( + _output.opChainProxyAdmin, + address(_output.protocolVersionsProxy), + _impls.protocolVersionsImpl, + abi.encodeCall(IProtocolVersions.initialize, (_input.roles.incidentResponder)) + ); } function _upgradeSuperchainConfigIfNeeded( @@ -637,7 +656,13 @@ contract SystemDeploy is Script { upgraded_ = true; } - function _upgradeOPChain(ISystemConfig _systemConfigProxy, Types.Implementations memory _impls) internal { + function _upgradeOPChain( + ISystemConfig _systemConfigProxy, + Types.Implementations memory _impls, + IProtocolVersions _protocolVersionsProxy + ) + internal + { IProxyAdmin proxyAdmin = _systemConfigProxy.proxyAdmin(); uint256 l2ChainId = _systemConfigProxy.l2ChainId(); @@ -662,6 +687,10 @@ contract SystemDeploy is Script { _upgradeTo(proxyAdmin, opChainAddrs.delayedWETH, _impls.delayedWETHImpl); } + if (address(_protocolVersionsProxy) != address(0)) { + _upgradeTo(proxyAdmin, address(_protocolVersionsProxy), _impls.protocolVersionsImpl); + } + emit Upgraded(l2ChainId, _systemConfigProxy, msg.sender); } @@ -947,6 +976,16 @@ contract SystemDeploy is Script { ); } + function _deployProtocolVersionsImpl() internal returns (IProtocolVersions) { + return IProtocolVersions( + DeployUtils.createDeterministic({ + _name: "ProtocolVersions", + _args: DeployUtils.encodeConstructor(abi.encodeCall(IProtocolVersions.__constructor__, ())), + _salt: DeployUtils.DEFAULT_SALT + }) + ); + } + function _deployMultiproofContracts( Types.DeployInput memory _opChainInput, ImplementationInput memory _input, @@ -1100,6 +1139,7 @@ contract SystemDeploy is Script { DeployUtils.assertValidContractAddress(_impls.disputeGameFactoryImpl); DeployUtils.assertValidContractAddress(_impls.anchorStateRegistryImpl); DeployUtils.assertValidContractAddress(_impls.delayedWETHImpl); + DeployUtils.assertValidContractAddress(_impls.protocolVersionsImpl); } function _implementationsEmpty(Types.Implementations memory _impls) internal pure returns (bool) { @@ -1125,6 +1165,7 @@ contract SystemDeploy is Script { artifacts.save("DisputeGameFactoryProxy", address(chain.disputeGameFactoryProxy)); artifacts.save("DelayedWETHProxy", address(chain.delayedWETHProxy)); artifacts.save("AnchorStateRegistryProxy", address(chain.anchorStateRegistryProxy)); + artifacts.save("ProtocolVersionsProxy", address(chain.protocolVersionsProxy)); artifacts.save("OptimismPortalProxy", address(chain.optimismPortalProxy)); artifacts.save("OptimismPortal2Proxy", address(chain.optimismPortalProxy)); _saveIfSet("TEEProverRegistryProxy", address(chain.teeProverRegistryProxy)); @@ -1151,6 +1192,7 @@ contract SystemDeploy is Script { artifacts.save("DisputeGameFactoryImpl", _impls.disputeGameFactoryImpl); artifacts.save("AnchorStateRegistryImpl", _impls.anchorStateRegistryImpl); artifacts.save("DelayedWETHImpl", _impls.delayedWETHImpl); + artifacts.save("ProtocolVersionsImpl", _impls.protocolVersionsImpl); _saveIfSet("AggregateVerifier", _impls.aggregateVerifierImpl); _saveIfSet("TEEProverRegistryImpl", _impls.teeProverRegistryImpl); _saveIfSet("TEEVerifier", _impls.teeVerifierImpl); diff --git a/scripts/libraries/Types.sol b/scripts/libraries/Types.sol index 2431d705c..9f26a5e75 100644 --- a/scripts/libraries/Types.sol +++ b/scripts/libraries/Types.sol @@ -17,6 +17,7 @@ import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol"; import { IL1StandardBridge } from "interfaces/L1/IL1StandardBridge.sol"; import { IOptimismMintableERC20Factory } from "interfaces/universal/IOptimismMintableERC20Factory.sol"; import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { Proposal } from "src/libraries/bridge/Types.sol"; import { Claim } from "src/libraries/bridge/LibUDT.sol"; @@ -28,6 +29,7 @@ library Types { address systemConfigOwner; address batcher; address unsafeBlockSigner; + address incidentResponder; } /// @notice The full set of inputs to deploy a new OP Stack chain. @@ -55,6 +57,7 @@ library Types { IDisputeGameFactory disputeGameFactoryProxy; IAnchorStateRegistry anchorStateRegistryProxy; IDelayedWETH delayedWETHProxy; + IProtocolVersions protocolVersionsProxy; IVerifier aggregateVerifier; ITEEProverRegistry teeProverRegistryProxy; IVerifier teeVerifier; @@ -76,6 +79,7 @@ library Types { address disputeGameFactoryImpl; address anchorStateRegistryImpl; address delayedWETHImpl; + address protocolVersionsImpl; address aggregateVerifierImpl; address teeProverRegistryImpl; address teeVerifierImpl; diff --git a/snapshots/abi/ProtocolVersions.json b/snapshots/abi/ProtocolVersions.json new file mode 100644 index 000000000..33ef5fc0a --- /dev/null +++ b/snapshots/abi/ProtocolVersions.json @@ -0,0 +1,447 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "MIN_NOTICE", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "newTimestamp", + "type": "uint64" + } + ], + "name": "delayTimestamp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getSchedule", + "outputs": [ + { + "internalType": "uint64[]", + "name": "", + "type": "uint64[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "incidentResponder", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initVersion", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_incidentResponder", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "minimumProtocolVersion", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxyAdmin", + "outputs": [ + { + "internalType": "contract IProxyAdmin", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxyAdminOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "timestamp", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "minProtocolVersion", + "type": "uint256" + } + ], + "name": "registerUpgrade", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "scheduleId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "scheduleId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newIncidentResponder", + "type": "address" + } + ], + "name": "setIncidentResponder", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "protocolVersion", + "type": "uint256" + } + ], + "name": "setMinimumProtocolVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "timestamp", + "type": "uint64" + } + ], + "name": "setTimestamp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousIncidentResponder", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newIncidentResponder", + "type": "address" + } + ], + "name": "IncidentResponderUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "protocolVersion", + "type": "uint256" + } + ], + "name": "MinimumProtocolVersionUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "newScheduleId", + "type": "bytes32" + } + ], + "name": "ScheduleIdUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "TimestampSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "UpgradeRegistered", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "activationTimestamp", + "type": "uint64" + } + ], + "name": "ProtocolVersions_ActivationAlreadyPassed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "currentTimestamp", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "newTimestamp", + "type": "uint64" + } + ], + "name": "ProtocolVersions_DelayMustBeLater", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "timestamp", + "type": "uint64" + } + ], + "name": "ProtocolVersions_InsufficientNotice", + "type": "error" + }, + { + "inputs": [], + "name": "ProtocolVersions_InvalidProtocolVersion", + "type": "error" + }, + { + "inputs": [], + "name": "ProtocolVersions_NotIncidentResponder", + "type": "error" + }, + { + "inputs": [], + "name": "ProtocolVersions_NotInitialized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProtocolVersions_NotScheduled", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProtocolVersions_UnknownUpgrade", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "type": "error" + }, + { + "inputs": [], + "name": "ReinitializableBase_ZeroInitVersion", + "type": "error" + } +] \ No newline at end of file diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 8f8e8fda5..9b8e5fa96 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -19,6 +19,10 @@ "initCodeHash": "0xdd5d13b03c015d45d0cdda512795c4fe8bbd60557e3848fed53260ee887b2df4", "sourceCodeHash": "0xa1281f5da03fa0431eabad33da23f51a8d835b0dd04554603fd59e11efe9fa51" }, + "src/L1/ProtocolVersions.sol:ProtocolVersions": { + "initCodeHash": "0x0d47628779e604e08a8787c299411ca1f9ed411052921aec53047748a5d7e40f", + "sourceCodeHash": "0x6bb512df396c0fe7216d160f0a4637cd690b4b5b8515096799d946b6bbcdaa5f" + }, "src/L1/SuperchainConfig.sol:SuperchainConfig": { "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", "sourceCodeHash": "0x79f0c771fc5f6d222d89b05addedc08ce40a7a42423fbd66f7cbb6cde3c2e74f" diff --git a/snapshots/storageLayout/ProtocolVersions.json b/snapshots/storageLayout/ProtocolVersions.json new file mode 100644 index 000000000..27001da1d --- /dev/null +++ b/snapshots/storageLayout/ProtocolVersions.json @@ -0,0 +1,44 @@ +[ + { + "bytes": "1", + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "uint8" + }, + { + "bytes": "1", + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "bool" + }, + { + "bytes": "32", + "label": "_timestamps", + "offset": 0, + "slot": "1", + "type": "uint64[]" + }, + { + "bytes": "32", + "label": "_upgradeScheduleId", + "offset": 0, + "slot": "2", + "type": "bytes32[]" + }, + { + "bytes": "32", + "label": "minimumProtocolVersion", + "offset": 0, + "slot": "3", + "type": "uint256" + }, + { + "bytes": "20", + "label": "incidentResponder", + "offset": 0, + "slot": "4", + "type": "address" + } +] \ No newline at end of file diff --git a/src/L1/ProtocolVersions.sol b/src/L1/ProtocolVersions.sol new file mode 100644 index 000000000..a30f21305 --- /dev/null +++ b/src/L1/ProtocolVersions.sol @@ -0,0 +1,286 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +// Contracts +import { ProxyAdminOwnedBase } from "src/universal/ProxyAdminOwnedBase.sol"; +import { ReinitializableBase } from "src/universal/ReinitializableBase.sol"; +import { Initializable } from "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol"; + +// Interfaces +import { ISemver } from "interfaces/universal/ISemver.sol"; + +/// @custom:proxied true +/// @title ProtocolVersions +/// @notice Security Council-controlled upgrade activation schedule contract. +/// @dev Maintains an ordered registry of upgrades and their L2 activation timestamps. +/// Each upgrade is identified by an ascending numeric `id` equal to its registration +/// index (0, 1, 2, ...). Human-readable names are intentionally kept offchain: a client +/// maps `id` => name via its own static configuration. Because the registry is strictly +/// append-only (upgrades are never removed or reordered), an `id` permanently refers to the +/// same upgrade. +/// +/// The canonical schedule commitment (`scheduleId`) is the tail of a hash chain that is +/// seeded at index 0 and extended by one link per registered upgrade: +/// +/// _upgradeScheduleId[0] = bytes32(0) (seed) +/// _upgradeScheduleId[i+1] = keccak256(abi.encode(_upgradeScheduleId[i], i, timestamp_i)) +/// scheduleId = _upgradeScheduleId[last] +/// +/// where timestamp_i is upgrade i's current activation timestamp (0 = not yet scheduled). +/// Changing any upgrade's timestamp recomputes its link and all subsequent links, making +/// scheduleId fully reproducible from (upgrade count, current timestamps). Keeping the seed as +/// the array's first element lets both `scheduleId` and the refresh loop avoid an +/// empty-registry special case. Proof journals bind to `scheduleId`, pinning every proof in a +/// dispute game to the schedule in effect at the game's L1 origin block; cross-chain domain +/// separation is provided by the journal itself, which commits the L2 chain id and registry +/// address alongside `scheduleId`. +/// +/// The contract is deployed behind an OP proxy: the implementation constructor disables +/// initializers, and `initialize` (run through the proxy) seeds the hash chain. +contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, ReinitializableBase, ISemver { + /// @notice Minimum notice period required when scheduling or modifying an activation timestamp. + uint64 public constant MIN_NOTICE = 1 hours; + + /// @notice Activation timestamp for each registered upgrade, indexed by upgrade id (0 = not scheduled). + /// An upgrade id is registered iff it is a valid index into this array. + uint64[] private _timestamps; + + /// @notice Hash chain links. Element 0 is the seed (`bytes32(0)`), pushed in `initialize`; + /// element `i + 1` is the cumulative hash through upgrade `i`: + /// _upgradeScheduleId[i + 1] = keccak256(abi.encode(_upgradeScheduleId[i], i, _timestamps[i])). + /// Stored per-link so that changing upgrade j's timestamp recomputes only j..n-1 links + /// rather than the entire chain. Non-empty iff the contract has been initialized. + bytes32[] private _upgradeScheduleId; + + /// @notice The minimum protocol version clients must run. Settable by the owner via + /// `setMinimumProtocolVersion`. Informational only — read offchain by clients; + /// not part of the scheduleId commitment. + uint256 public minimumProtocolVersion; + + /// @notice Address allowed to delay (push out) already-scheduled activation timestamps. + /// @dev Appointed and revocable by the owner. This is a restricted secondary role: it can + /// only move an already-scheduled, not-yet-activated upgrade further into the future via + /// `delayTimestamp`. It cannot register upgrades, clear timestamps, pull an activation + /// earlier, or schedule a brand-new activation. Unset (zero) by default. + address public incidentResponder; + + /// @notice Emitted when a new upgrade is registered. + event UpgradeRegistered(uint256 indexed id); + /// @notice Emitted when the minimum protocol version clients must run is updated. + event MinimumProtocolVersionUpdated(uint256 indexed protocolVersion); + /// @notice Emitted when an upgrade's activation timestamp is set, cleared, or delayed. + event TimestampSet(uint256 indexed id, uint256 timestamp); + /// @notice Emitted when the schedule commitment changes. + event ScheduleIdUpdated(bytes32 indexed newScheduleId); + /// @notice Emitted when the incidentResponder role changes. + event IncidentResponderUpdated(address indexed previousIncidentResponder, address indexed newIncidentResponder); + + /// @notice Thrown when an upgrade id is not registered. + error ProtocolVersions_UnknownUpgrade(uint256 id); + /// @notice Thrown when a protocol version is zero. + error ProtocolVersions_InvalidProtocolVersion(); + /// @notice Thrown when modifying a timestamp whose activation has already passed. + error ProtocolVersions_ActivationAlreadyPassed(uint256 id, uint64 activationTimestamp); + /// @notice Thrown when the caller is not the incidentResponder. + error ProtocolVersions_NotIncidentResponder(); + /// @notice Thrown when delaying an upgrade that has no scheduled activation. + error ProtocolVersions_NotScheduled(uint256 id); + /// @notice Thrown when a new timestamp is not sufficiently later than the current one. + error ProtocolVersions_DelayMustBeLater(uint64 currentTimestamp, uint64 newTimestamp); + /// @notice Thrown when scheduleId is read before initialize has been called. + error ProtocolVersions_NotInitialized(); + /// @notice Thrown when a non-zero timestamp does not provide at least MIN_NOTICE seconds of notice. + error ProtocolVersions_InsufficientNotice(uint64 timestamp); + + /// @notice Disables initializers on the implementation so it can only be used behind a proxy. + constructor() ReinitializableBase(1) { + _disableInitializers(); + } + + /// @notice Initializes the registry by seeding the hash chain and appointing the initial + /// incidentResponder. Callable only by the ProxyAdmin or its owner. + /// @param _incidentResponder Initial incidentResponder allowed to delay activations, or address(0) to leave unset. + function initialize(address _incidentResponder) external reinitializer(initVersion()) { + // Initialization transactions must come from the ProxyAdmin or its owner. + _assertOnlyProxyAdminOrProxyAdminOwner(); + + // Seed the hash chain at index 0. Keeping the seed as the first array element lets + // `scheduleId` and `_refreshScheduleId` avoid an empty-registry special case, and makes a + // non-empty array double as the "initialized" flag. + _upgradeScheduleId.push(bytes32(0)); + emit ScheduleIdUpdated(bytes32(0)); + + incidentResponder = _incidentResponder; + emit IncidentResponderUpdated(address(0), _incidentResponder); + } + + /// @notice Registers a new upgrade, assigning it the next ascending id, optionally scheduling its + /// activation and bumping the minimum protocol version in the same call. Owner only. + /// @dev Pass `timestamp` 0 to register without scheduling (schedule later via `setTimestamp`), or + /// a value at least MIN_NOTICE seconds in the future to register and schedule at once. + /// Either way registration extends the scheduleId chain with the new upgrade's link. + /// @param timestamp Future Unix activation timestamp (>= block.timestamp + MIN_NOTICE), or 0 to + /// leave the upgrade unscheduled. + /// @param minProtocolVersion New minimum protocol version to set at registration, or 0 to leave + /// the current minimum unchanged. + /// @return The ascending id assigned to the newly registered upgrade. + function registerUpgrade(uint64 timestamp, uint256 minProtocolVersion) external returns (uint256) { + _assertOnlyProxyAdminOwner(); + if (_upgradeScheduleId.length == 0) revert ProtocolVersions_NotInitialized(); + if (timestamp != 0 && timestamp < uint64(block.timestamp) + MIN_NOTICE) { + revert ProtocolVersions_InsufficientNotice(timestamp); + } + uint256 id = _timestamps.length; + _timestamps.push(0); + // Reserve the link slot for this upgrade at index id + 1. + _upgradeScheduleId.push(); + emit UpgradeRegistered(id); + if (timestamp == 0) { + // Register-only: commit the new (id, 0) link. + _refreshScheduleId(id); + } else { + // Register and schedule at once via the shared pure-write helper. + _writeTimestamp(id, timestamp); + } + // Optionally bump the global minimum protocol version in the same call (0 = leave unchanged). + if (minProtocolVersion != 0) _writeMinimumProtocolVersion(minProtocolVersion); + return id; + } + + /// @notice Sets the minimum protocol version clients must run. Owner (Security Council) only. + /// @dev Informational signal for offchain clients; independent of the upgrade schedule and NOT + /// part of the scheduleId commitment, so it can be updated at any time without shifting any + /// proof binding. + /// @param protocolVersion Packed semver uint256 (must be non-zero). + function setMinimumProtocolVersion(uint256 protocolVersion) external { + _assertOnlyProxyAdminOwner(); + if (protocolVersion == 0) revert ProtocolVersions_InvalidProtocolVersion(); + _writeMinimumProtocolVersion(protocolVersion); + } + + /// @notice Sets the activation timestamp for one upgrade by id. Pass 0 to clear. + /// @dev The activation timestamp must be at least MIN_NOTICE seconds in the future and the + /// upgrade must not have already activated. Pass 0 to remove a not-yet-activated scheduled + /// timestamp; reverts if the upgrade has already passed its activation time. + /// @param id The upgrade to schedule. + /// @param timestamp Future Unix timestamp for L2 activation (must be >= block.timestamp + MIN_NOTICE), or 0 to + /// clear. + function setTimestamp(uint256 id, uint64 timestamp) external { + _assertOnlyProxyAdminOwner(); + _assertRegistered(id); + uint64 current = _timestamps[id]; + if (current == timestamp) return; + if (current != 0 && uint64(block.timestamp) >= current) { + revert ProtocolVersions_ActivationAlreadyPassed(id, current); + } + if (timestamp != 0 && timestamp < uint64(block.timestamp) + MIN_NOTICE) { + revert ProtocolVersions_InsufficientNotice(timestamp); + } + _writeTimestamp(id, timestamp); + } + + /// @notice Appoints, replaces, or clears (set to zero) the incidentResponder role. Owner only. + /// @param newIncidentResponder New incidentResponder address, or address(0) to revoke the role. + function setIncidentResponder(address newIncidentResponder) external { + _assertOnlyProxyAdminOwner(); + emit IncidentResponderUpdated(incidentResponder, newIncidentResponder); + incidentResponder = newIncidentResponder; + } + + /// @notice Pushes an already-scheduled upgrade's activation timestamp further into the future. + /// Can only be called by the incidentResponder. + /// @dev The upgrade must already have a non-zero activation timestamp that has not yet passed, + /// and `newTimestamp` must be strictly later than the current value. This role can only + /// delay an activation; it cannot pull one earlier, clear it, or schedule a new one — use + /// the owner's `setTimestamp` for those. Because `current` is in the future and `newTimestamp` + /// is later still, the new value is always in the future. + /// @param id The upgrade whose activation to delay. + /// @param newTimestamp New activation timestamp, must be strictly later than the current one. + function delayTimestamp(uint256 id, uint64 newTimestamp) external { + if (msg.sender != incidentResponder) revert ProtocolVersions_NotIncidentResponder(); + _assertRegistered(id); + uint64 current = _timestamps[id]; + + // The upgrade must already have a scheduled activation to delay. + if (current == 0) revert ProtocolVersions_NotScheduled(id); + // Cannot delay an activation that has already passed. + if (uint64(block.timestamp) >= current) revert ProtocolVersions_ActivationAlreadyPassed(id, current); + // The role can only push the activation later, never to the same time or earlier. + if (newTimestamp <= current) revert ProtocolVersions_DelayMustBeLater(current, newTimestamp); + // The new timestamp must also provide at least MIN_NOTICE seconds of notice from now. + uint64 minFloor = uint64(block.timestamp) + MIN_NOTICE; + if (newTimestamp < minFloor) revert ProtocolVersions_InsufficientNotice(newTimestamp); + _writeTimestamp(id, newTimestamp); + } + + /// @notice Returns the canonical schedule commitment. + /// @return The current scheduleId hash. + function scheduleId() external view returns (bytes32) { + uint256 n = _upgradeScheduleId.length; + if (n == 0) revert ProtocolVersions_NotInitialized(); + return _upgradeScheduleId[n - 1]; + } + + /// @notice Returns the schedule commitment as of a specific registered upgrade. + /// @param id The upgrade id to query. + /// @return The scheduleId hash committing to upgrades 0 through `id`. + function scheduleId(uint256 id) external view returns (bytes32) { + _assertRegistered(id); + // Upgrade `id`'s cumulative hash lives at index id + 1 (index 0 is the seed). + return _upgradeScheduleId[id + 1]; + } + + /// @notice Returns the activation timestamp for every registered upgrade, ordered by upgrade id + /// (0 = not scheduled). The array index equals the upgrade `id`; names are resolved + /// offchain, and per-upgrade schedule hashes can be reproduced from these timestamps and + /// the seed or read via `scheduleId(id)`. + /// @dev Calling via eth_call is gas-free; no transaction is submitted. + /// @return Ordered activation timestamps, one per registered upgrade. + function getSchedule() external view returns (uint64[] memory) { + return _timestamps; + } + + /// @notice Semantic version. + /// @custom:semver 1.0.0 + function version() public pure virtual returns (string memory) { + return "1.0.0"; + } + + /// @dev Writes newTs, emits TimestampSet, and refreshes the hash chain. All validation is + /// the caller's responsibility. + function _writeTimestamp(uint256 id, uint64 newTs) private { + _timestamps[id] = newTs; + emit TimestampSet(id, newTs); + _refreshScheduleId(id); + } + + /// @dev Writes the minimum protocol version and emits the update. Validation is the caller's + /// responsibility. + function _writeMinimumProtocolVersion(uint256 protocolVersion) private { + minimumProtocolVersion = protocolVersion; + emit MinimumProtocolVersionUpdated(protocolVersion); + } + + /// @dev Recomputes the per-upgrade cumulative hash chain starting from upgrade `startIndex` and + /// bubbles the result through all subsequent registered upgrades. Cost is O(n-startIndex). + /// Only ever called after a state change (registration, or a timestamp that actually moved), + /// so the resulting tail is always a new scheduleId. + function _refreshScheduleId(uint256 startIndex) private { + uint256 n = _timestamps.length; + + // _upgradeScheduleId[startIndex] is the link preceding upgrade `startIndex` (the seed when + // startIndex == 0). Recompute from startIndex onward, storing each link at index i + 1. + bytes32 prev = _upgradeScheduleId[startIndex]; + for (uint256 i = startIndex; i < n; i++) { + prev = keccak256(abi.encode(prev, i, _timestamps[i])); + _upgradeScheduleId[i + 1] = prev; + } + + emit ScheduleIdUpdated(prev); + } + + /// @dev Reverts if `id` is not a registered upgrade. + function _assertRegistered(uint256 id) private view { + if (id >= _timestamps.length) revert ProtocolVersions_UnknownUpgrade(id); + } +} diff --git a/test/L1/ProtocolVersions.t.sol b/test/L1/ProtocolVersions.t.sol new file mode 100644 index 000000000..0b1f184a6 --- /dev/null +++ b/test/L1/ProtocolVersions.t.sol @@ -0,0 +1,598 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +// Testing +import { CommonTest } from "test/setup/CommonTest.sol"; +import { EIP1967Helper } from "test/mocks/EIP1967Helper.sol"; + +// Contracts +import { ProxyAdminOwnedBase } from "src/universal/ProxyAdminOwnedBase.sol"; +import { Proxy } from "src/universal/Proxy.sol"; + +// Interfaces +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; +import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; + +/// @title ProtocolVersions_TestInit +/// @notice Reusable test initialization for ProtocolVersions tests. Runs against the +/// `protocolVersions` instance deployed by the standard SystemDeploy script. +abstract contract ProtocolVersions_TestInit is CommonTest { + event UpgradeRegistered(uint256 indexed id); + event MinimumProtocolVersionUpdated(uint256 indexed protocolVersion); + event IncidentResponderUpdated(address indexed previousIncidentResponder, address indexed newIncidentResponder); + event TimestampSet(uint256 indexed id, uint256 timestamp); + + /// @dev Ascending ids assigned by registration order in these tests. + uint256 internal constant CANYON = 0; + uint256 internal constant ECOTONE = 1; + + address internal _owner; + address internal _nonOwner = makeAddr("non-owner"); + address internal _incidentResponder = makeAddr("incident-responder"); + + function setUp() public virtual override { + super.setUp(); + skipIfForkTest("ProtocolVersions_TestInit: cannot test on forked network"); + _owner = proxyAdminOwner; + } + + /// @dev Registers the first upgrade (id CANYON) and schedules it for block.timestamp + MIN_NOTICE + delay. + function _scheduleCanyon(uint64 _delay) internal returns (uint64 ts_) { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + ts_ = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + _delay; + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts_); + } +} + +/// @title ProtocolVersions_Initialize_Test +/// @notice Test contract for the ProtocolVersions initializer. +contract ProtocolVersions_Initialize_Test is ProtocolVersions_TestInit { + /// @notice Tests that initialization sets the correct initial state. The seed is bytes32(0), so + /// the initial scheduleId is bytes32(0) until the first upgrade is registered. + function test_initialize_setsInitialState_succeeds() external view { + // The owner is inherited from the shared ProxyAdmin; initialize records the incident + // responder from config and seeds the hash chain (scheduleId == the bytes32(0) seed). + assertEq(protocolVersions.proxyAdminOwner(), proxyAdminOwner); + assertEq(protocolVersions.incidentResponder(), deploy.cfg().superchainConfigIncidentResponder()); + assertEq(protocolVersions.scheduleId(), bytes32(0)); + } + + /// @notice Tests that initialization appoints the provided incidentResponder and emits the event. + /// @dev Requires a fresh uninitialized proxy rather than the already-initialized shared instance. + function test_initialize_setsIncidentResponder_succeeds() external { + IProtocolVersions uninitialized = _deployUninitializedProxy(); + vm.expectEmit(true, true, false, false, address(uninitialized)); + emit IncidentResponderUpdated(address(0), _incidentResponder); + vm.prank(EIP1967Helper.getAdmin(address(uninitialized))); + uninitialized.initialize(_incidentResponder); + assertEq(uninitialized.incidentResponder(), _incidentResponder); + } + + /// @notice Tests that only the ProxyAdmin or its owner can initialize. + /// @dev Requires a fresh uninitialized proxy rather than the already-initialized shared instance. + function test_initialize_notProxyAdminOrOwner_reverts() external { + IProtocolVersions uninitialized = _deployUninitializedProxy(); + vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner.selector); + vm.prank(_nonOwner); + uninitialized.initialize(_incidentResponder); + } + + /// @notice Tests that the contract cannot be initialized twice. + function test_initialize_alreadyInitialized_reverts() external { + vm.expectRevert("Initializable: contract is already initialized"); + vm.prank(EIP1967Helper.getAdmin(address(protocolVersions))); + protocolVersions.initialize(address(0)); + } + + /// @notice Tests that the implementation itself cannot be initialized (initializers disabled). + function test_initialize_implementationDisabled_reverts() external { + IProtocolVersions impl = IProtocolVersions(EIP1967Helper.getImplementation(address(protocolVersions))); + vm.expectRevert("Initializable: contract is already initialized"); + impl.initialize(address(0)); + } + + /// @dev Deploys a fresh uninitialized proxy over the impl produced by SystemDeploy for the two + /// initializer tests that genuinely need one. proxyAdminOwner() resolves by calling owner() + /// on the ProxyAdmin stored in the proxy slot, so the mock provides one. + function _deployUninitializedProxy() internal returns (IProtocolVersions) { + address proxyAdmin = makeAddr("proxy-admin"); + vm.mockCall(proxyAdmin, abi.encodeWithSignature("owner()"), abi.encode(_owner)); + Proxy proxy = new Proxy(proxyAdmin); + address impl = EIP1967Helper.getImplementation(address(protocolVersions)); + vm.prank(proxyAdmin); + proxy.upgradeTo(impl); + return IProtocolVersions(address(proxy)); + } +} + +/// @title ProtocolVersions_Version_Test +/// @notice Test contract for the `version` function. +contract ProtocolVersions_Version_Test is ProtocolVersions_TestInit { + /// @notice Tests that the `version` function returns the expected value. + function test_version_succeeds() external view { + assertEq(protocolVersions.version(), "1.0.0"); + } +} + +/// @title ProtocolVersions_RegisterUpgrade_Test +/// @notice Test contract for the `registerUpgrade` function. +contract ProtocolVersions_RegisterUpgrade_Test is ProtocolVersions_TestInit { + /// @notice Tests that registering an upgrade extends the scheduleId chain. + function test_registerUpgrade_changesScheduleId_succeeds() external { + bytes32 idBefore = protocolVersions.scheduleId(); + + vm.roll(block.number + 1); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + assertNotEq(protocolVersions.scheduleId(), idBefore); + } + + /// @notice Tests that `registerUpgrade` assigns ascending ids and returns them. + function test_registerUpgrade_returnsAscendingIds_succeeds() external { + vm.prank(_owner); + assertEq(protocolVersions.registerUpgrade(0, 0), 0); + vm.prank(_owner); + assertEq(protocolVersions.registerUpgrade(0, 0), 1); + vm.prank(_owner); + assertEq(protocolVersions.registerUpgrade(0, 0), 2); + } + + /// @notice Tests that `registerUpgrade` emits the `UpgradeRegistered` event with the assigned id. + function test_registerUpgrade_emitsEvent_succeeds() external { + vm.expectEmit(true, false, false, false, address(protocolVersions)); + emit UpgradeRegistered(0); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + vm.expectEmit(true, false, false, false, address(protocolVersions)); + emit UpgradeRegistered(1); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + } + + /// @notice Tests that only the owner can call `registerUpgrade`. + function test_registerUpgrade_callerNotOwner_reverts() external { + vm.expectRevert(ProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); + vm.prank(_nonOwner); + protocolVersions.registerUpgrade(0, 0); + } + + /// @notice Tests that registering with a future timestamp schedules the upgrade in one call. + function test_registerUpgrade_withTimestamp_succeeds() external { + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + + vm.expectEmit(true, false, false, false, address(protocolVersions)); + emit UpgradeRegistered(CANYON); + vm.expectEmit(true, false, false, true, address(protocolVersions)); + emit TimestampSet(CANYON, ts); + vm.prank(_owner); + uint256 id = protocolVersions.registerUpgrade(ts, 0); + + assertEq(id, CANYON); + assertEq(protocolVersions.getSchedule()[CANYON], ts); + assertNotEq(protocolVersions.scheduleId(), bytes32(0)); + } + + /// @notice Tests that registering with a timestamp inside the notice window reverts. + function test_registerUpgrade_insufficientNotice_reverts() external { + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() - 1; + vm.expectRevert(abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_InsufficientNotice.selector, ts)); + vm.prank(_owner); + protocolVersions.registerUpgrade(ts, 0); + } + + /// @notice Tests that a non-zero minProtocolVersion bumps the minimum during registration. + function test_registerUpgrade_setsMinProtocolVersion_succeeds() external { + vm.expectEmit(true, false, false, false, address(protocolVersions)); + emit MinimumProtocolVersionUpdated(42); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 42); + + assertEq(protocolVersions.minimumProtocolVersion(), 42); + } + + /// @notice Tests that a zero minProtocolVersion leaves the current minimum unchanged. + function test_registerUpgrade_zeroMinProtocolVersion_leavesUnchanged_succeeds() external { + vm.prank(_owner); + protocolVersions.setMinimumProtocolVersion(7); + + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + assertEq(protocolVersions.minimumProtocolVersion(), 7); + } +} + +/// @title ProtocolVersions_SetMinimumProtocolVersion_Test +/// @notice Test contract for the `setMinimumProtocolVersion` function. +contract ProtocolVersions_SetMinimumProtocolVersion_Test is ProtocolVersions_TestInit { + /// @notice Tests that the owner can set the minimum protocol version. + function test_setMinimumProtocolVersion_updates_succeeds() external { + vm.prank(_owner); + protocolVersions.setMinimumProtocolVersion(42); + assertEq(protocolVersions.minimumProtocolVersion(), 42); + } + + /// @notice Tests that setting the minimum protocol version does not change the scheduleId. + function test_setMinimumProtocolVersion_doesNotChangeScheduleId_succeeds() external { + bytes32 scheduleIdBefore = protocolVersions.scheduleId(); + vm.prank(_owner); + protocolVersions.setMinimumProtocolVersion(42); + assertEq(protocolVersions.scheduleId(), scheduleIdBefore); + } + + /// @notice Tests that `setMinimumProtocolVersion` emits the `MinimumProtocolVersionUpdated` event. + function test_setMinimumProtocolVersion_emitsEvent_succeeds() external { + vm.expectEmit(true, false, false, true, address(protocolVersions)); + emit MinimumProtocolVersionUpdated(42); + vm.prank(_owner); + protocolVersions.setMinimumProtocolVersion(42); + } + + /// @notice Tests that setting a zero protocol version reverts. + function test_setMinimumProtocolVersion_zero_reverts() external { + vm.expectRevert(IProtocolVersions.ProtocolVersions_InvalidProtocolVersion.selector); + vm.prank(_owner); + protocolVersions.setMinimumProtocolVersion(0); + } + + /// @notice Tests that only the owner can call `setMinimumProtocolVersion`. + function test_setMinimumProtocolVersion_callerNotOwner_reverts() external { + vm.expectRevert(ProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); + vm.prank(_nonOwner); + protocolVersions.setMinimumProtocolVersion(42); + } +} + +/// @title ProtocolVersions_SetTimestamp_Test +/// @notice Test contract for the `setTimestamp` function. +contract ProtocolVersions_SetTimestamp_Test is ProtocolVersions_TestInit { + /// @notice Tests that setting a timestamp updates the stored value and extends the scheduleId. + function test_setTimestamp_updatesTimestampAndScheduleId_succeeds() external { + bytes32 initialScheduleId = protocolVersions.scheduleId(); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + vm.roll(block.number + 1); + vm.warp(block.timestamp + 1); + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + + assertEq(protocolVersions.getSchedule()[CANYON], ts); + assertNotEq(protocolVersions.scheduleId(), initialScheduleId); + } + + /// @notice Tests that calling `setTimestamp` with the same value is a no-op for scheduleId. + function test_setTimestamp_sameTimestamp_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + vm.roll(block.number + 1); + vm.warp(block.timestamp + 1); + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + + bytes32 scheduleIdAfterSet = protocolVersions.scheduleId(); + + vm.roll(block.number + 1); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + + assertEq(protocolVersions.getSchedule()[CANYON], ts); + assertEq(protocolVersions.scheduleId(), scheduleIdAfterSet); + } + + /// @notice Tests that passing 0 clears a scheduled timestamp, changes the scheduleId, and + /// restores it to the value it held immediately after registration (ts=0 link). + function test_setTimestamp_clearTimestamp_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + bytes32 scheduleIdAfterRegister = protocolVersions.scheduleId(); + + vm.roll(block.number + 1); + vm.warp(block.timestamp + 1); + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + + bytes32 scheduleIdAfterSet = protocolVersions.scheduleId(); + assertNotEq(scheduleIdAfterSet, scheduleIdAfterRegister); + + vm.roll(block.number + 1); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, 0); + + assertEq(protocolVersions.getSchedule()[CANYON], 0); + assertEq(protocolVersions.scheduleId(), scheduleIdAfterRegister); + } + + /// @notice Tests that `setTimestamp` emits a `TimestampSet` event. + function test_setTimestamp_emitsEvent_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.expectEmit(true, false, false, true, address(protocolVersions)); + emit TimestampSet(CANYON, ts); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + } + + /// @notice Tests that only the owner can call `setTimestamp`. + function test_setTimestamp_callerNotOwner_reverts() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.expectRevert(ProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); + vm.prank(_nonOwner); + protocolVersions.setTimestamp(CANYON, ts); + } + + /// @notice Tests that `setTimestamp` reverts when the timestamp is in the past. + function test_setTimestamp_timestampInPast_reverts() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + vm.warp(1000); + vm.expectRevert( + abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_InsufficientNotice.selector, uint64(500)) + ); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, 500); + } + + /// @notice Tests that `setTimestamp` reverts when the timestamp is within MIN_NOTICE of now. + function test_setTimestamp_insufficientNotice_reverts() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() - 1; + vm.expectRevert(abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_InsufficientNotice.selector, ts)); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + } + + /// @notice Tests that `setTimestamp` reverts when the upgrade has already activated. + function test_setTimestamp_afterActivation_reverts() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + vm.warp(100); + uint64 activationTs = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, activationTs); + + vm.warp(activationTs + 1); + uint64 laterTs = activationTs + protocolVersions.MIN_NOTICE() + 100; + vm.expectRevert( + abi.encodeWithSelector( + IProtocolVersions.ProtocolVersions_ActivationAlreadyPassed.selector, CANYON, activationTs + ) + ); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, laterTs); + } + + /// @notice Tests that `setTimestamp` reverts for an unregistered upgrade. + function test_setTimestamp_unregisteredUpgrade_reverts() external { + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.expectRevert(abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_UnknownUpgrade.selector, uint256(0))); + vm.prank(_owner); + protocolVersions.setTimestamp(0, ts); + } + + /// @notice Tests that scheduleId is reproducible from (ascending ids, timestamps). + function test_setTimestamp_scheduleIdReproducible_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + uint64 ts1 = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + uint64 ts2 = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 200; + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts1); + vm.prank(_owner); + protocolVersions.setTimestamp(ECOTONE, ts2); + + // Reproduce the chain from scratch, starting from the bytes32(0) seed. + bytes32 seed = bytes32(0); + bytes32 link0 = keccak256(abi.encode(seed, uint256(0), ts1)); + bytes32 link1 = keccak256(abi.encode(link0, uint256(1), ts2)); + + assertEq(protocolVersions.scheduleId(), link1); + } +} + +/// @title ProtocolVersions_DelayTimestamp_Test +/// @notice Test contract for the `delayTimestamp` function. +contract ProtocolVersions_DelayTimestamp_Test is ProtocolVersions_TestInit { + /// @notice Tests that `delayTimestamp` pushes the activation timestamp later and updates scheduleId. + function test_delayTimestamp_pushesTimestampLater_succeeds() external { + uint64 ts = _scheduleCanyon(100); + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + + bytes32 scheduleIdBefore = protocolVersions.scheduleId(); + vm.roll(block.number + 1); + + uint64 later = ts + 50; + vm.prank(_incidentResponder); + protocolVersions.delayTimestamp(CANYON, later); + + assertEq(protocolVersions.getSchedule()[CANYON], later); + assertNotEq(protocolVersions.scheduleId(), scheduleIdBefore); + } + + /// @notice Tests that only the incidentResponder can call `delayTimestamp`. + function test_delayTimestamp_callerNotIncidentResponder_reverts() external { + uint64 ts = _scheduleCanyon(100); + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + + vm.expectRevert(IProtocolVersions.ProtocolVersions_NotIncidentResponder.selector); + vm.prank(_owner); + protocolVersions.delayTimestamp(CANYON, ts + 50); + + vm.expectRevert(IProtocolVersions.ProtocolVersions_NotIncidentResponder.selector); + vm.prank(_nonOwner); + protocolVersions.delayTimestamp(CANYON, ts + 50); + } + + /// @notice Tests that `delayTimestamp` reverts when the new timestamp is earlier than current. + function test_delayTimestamp_earlierTimestamp_reverts() external { + uint64 ts = _scheduleCanyon(100); + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + + vm.expectRevert( + abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_DelayMustBeLater.selector, ts, ts - 10) + ); + vm.prank(_incidentResponder); + protocolVersions.delayTimestamp(CANYON, ts - 10); + } + + /// @notice Tests that `delayTimestamp` reverts when the new timestamp equals the current one. + function test_delayTimestamp_equalTimestamp_reverts() external { + uint64 ts = _scheduleCanyon(100); + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + + vm.expectRevert(abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_DelayMustBeLater.selector, ts, ts)); + vm.prank(_incidentResponder); + protocolVersions.delayTimestamp(CANYON, ts); + } + + /// @notice Tests that `delayTimestamp` reverts when the upgrade has no scheduled timestamp. + function test_delayTimestamp_notScheduled_reverts() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.expectRevert(abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_NotScheduled.selector, CANYON)); + vm.prank(_incidentResponder); + protocolVersions.delayTimestamp(CANYON, ts); + } + + /// @notice Tests that `delayTimestamp` reverts when the upgrade has already activated. + function test_delayTimestamp_afterActivation_reverts() external { + uint64 ts = _scheduleCanyon(100); + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + + vm.warp(ts + 1); + vm.expectRevert( + abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_ActivationAlreadyPassed.selector, CANYON, ts) + ); + vm.prank(_incidentResponder); + protocolVersions.delayTimestamp(CANYON, ts + 100); + } + + /// @notice Tests that `delayTimestamp` reverts for an unregistered upgrade. + function test_delayTimestamp_unregisteredUpgrade_reverts() external { + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.expectRevert(abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_UnknownUpgrade.selector, uint256(0))); + vm.prank(_incidentResponder); + protocolVersions.delayTimestamp(0, ts); + } +} + +/// @title ProtocolVersions_IncidentResponder_Test +/// @notice Test contract for the `setIncidentResponder` function and incidentResponder role. +contract ProtocolVersions_IncidentResponder_Test is ProtocolVersions_TestInit { + /// @notice Tests that `incidentResponder` starts as address(0). + function test_incidentResponder_startsUnset_succeeds() external view { + assertEq(protocolVersions.incidentResponder(), address(0)); + } + + /// @notice Tests that the owner can appoint a incidentResponder address. + function test_setIncidentResponder_setsAddress_succeeds() external { + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + assertEq(protocolVersions.incidentResponder(), _incidentResponder); + } + + /// @notice Tests that only the owner can call `setIncidentResponder`. + function test_setIncidentResponder_callerNotOwner_reverts() external { + vm.expectRevert(ProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); + vm.prank(_nonOwner); + protocolVersions.setIncidentResponder(_incidentResponder); + } + + /// @notice Tests that `setIncidentResponder` emits a `IncidentResponderUpdated` event. + function test_setIncidentResponder_emitsEvent_succeeds() external { + vm.expectEmit(true, true, false, false, address(protocolVersions)); + emit IncidentResponderUpdated(address(0), _incidentResponder); + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + } + + /// @notice Tests that the owner can clear the incidentResponder role by setting it to address(0). + function test_setIncidentResponder_clear_succeeds() external { + vm.prank(_owner); + protocolVersions.setIncidentResponder(_incidentResponder); + + vm.expectEmit(true, true, false, false, address(protocolVersions)); + emit IncidentResponderUpdated(_incidentResponder, address(0)); + vm.prank(_owner); + protocolVersions.setIncidentResponder(address(0)); + + assertEq(protocolVersions.incidentResponder(), address(0)); + } +} + +/// @title ProtocolVersions_Uncategorized_Test +/// @notice Test contract for view functions and the upgrade registry. +contract ProtocolVersions_Uncategorized_Test is ProtocolVersions_TestInit { + /// @notice Tests that `getSchedule` returns an empty array when no upgrades are registered. + function test_getSchedule_empty_succeeds() external view { + assertEq(protocolVersions.getSchedule().length, 0); + } + + /// @notice Tests that `getSchedule` returns all upgrades in registration order with correct fields. + function test_getSchedule_returnsFullSchedule_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + + uint64[] memory s = protocolVersions.getSchedule(); + + assertEq(s.length, 2); + assertEq(s[CANYON], ts); + assertEq(s[ECOTONE], 0); + } + + /// @notice Tests that `scheduleId(id)` returns each upgrade's cumulative commitment, and that + /// the last upgrade's commitment equals the current scheduleId. + function test_scheduleId_byId_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, 0); + + assertNotEq(protocolVersions.scheduleId(CANYON), protocolVersions.scheduleId(ECOTONE)); + assertEq(protocolVersions.scheduleId(ECOTONE), protocolVersions.scheduleId()); + } + + /// @notice Tests that `scheduleId(id)` reverts for an unregistered upgrade. + function test_scheduleId_byId_unregistered_reverts() external { + vm.expectRevert(abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_UnknownUpgrade.selector, uint256(0))); + protocolVersions.scheduleId(0); + } +} diff --git a/test/deploy/SystemDeploy.t.sol b/test/deploy/SystemDeploy.t.sol index 6a94439d6..5011d14f3 100644 --- a/test/deploy/SystemDeploy.t.sol +++ b/test/deploy/SystemDeploy.t.sol @@ -9,6 +9,8 @@ import { Types } from "scripts/libraries/Types.sol"; import { SystemDeployAssertions } from "test/deploy/SystemDeployAssertions.sol"; import { ISP1Verifier } from "interfaces/L1/proofs/zk/ISP1Verifier.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; +import { ProtocolVersions } from "src/L1/ProtocolVersions.sol"; import { TEEProverRegistry } from "src/L1/proofs/tee/TEEProverRegistry.sol"; import { TEEVerifier } from "src/L1/proofs/tee/TEEVerifier.sol"; import { ZKVerifier } from "src/L1/proofs/zk/ZKVerifier.sol"; @@ -119,6 +121,12 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { assertNotEq(address(output.opChain.optimismPortalProxy), address(0), "portal"); assertNotEq(address(output.opChain.ethLockboxProxy), address(0), "lockbox"); assertNotEq(address(output.opChain.delayedWETHProxy), address(0), "delayed weth"); + assertNotEq(address(output.opChain.protocolVersionsProxy), address(0), "protocol versions"); + assertEq( + output.opChain.protocolVersionsProxy.incidentResponder(), + incidentResponder, + "protocol versions incident responder" + ); assertEq(output.opChain.opChainProxyAdmin.owner(), owner, "op chain proxy admin owner"); assertEq(output.opChain.systemConfigProxy.batchInbox(), Types.chainIdToBatchInboxAddress(l2ChainId), "inbox"); @@ -134,13 +142,17 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { function test_upgrade_withoutManagerDelegatecall_succeeds() public { SystemDeploy.DeployInput memory input = _defaultDeployInput(); SystemDeploy.DeployOutput memory output = systemDeploy.deploy(input); + Types.Implementations memory implementations = output.impls; + ProtocolVersions protocolVersionsImpl = new ProtocolVersions(); + implementations.protocolVersionsImpl = address(protocolVersionsImpl); SystemDeploy.UpgradeOutput memory upgradeOutput = systemDeploy.upgrade( SystemDeploy.UpgradeInput({ saveArtifacts: false, superchainConfigProxy: output.superchain.superchainConfigProxy, - implementations: output.impls, - systemConfigProxy: output.opChain.systemConfigProxy + implementations: implementations, + systemConfigProxy: output.opChain.systemConfigProxy, + protocolVersionsProxy: output.opChain.protocolVersionsProxy }) ); @@ -152,9 +164,42 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { output.impls.superchainConfigImpl, "superchain config impl" ); + assertEq( + output.opChain.opChainProxyAdmin.getProxyImplementation(address(output.opChain.protocolVersionsProxy)), + address(protocolVersionsImpl), + "protocol versions impl" + ); assertValidStandardSystem(_expected(output, input)); } + function test_upgrade_discoversProtocolVersionsProxyFromArtifacts_succeeds() public { + SystemDeploy.DeployInput memory input = _defaultDeployInput(); + SystemDeploy.DeployOutput memory output = systemDeploy.deploy(input); + Types.Implementations memory implementations = output.impls; + ProtocolVersions protocolVersionsImpl = new ProtocolVersions(); + implementations.protocolVersionsImpl = address(protocolVersionsImpl); + + _saveArtifact("ProtocolVersionsProxy", address(output.opChain.protocolVersionsProxy)); + + SystemDeploy.UpgradeOutput memory upgradeOutput = systemDeploy.upgrade( + SystemDeploy.UpgradeInput({ + saveArtifacts: false, + superchainConfigProxy: output.superchain.superchainConfigProxy, + implementations: implementations, + systemConfigProxy: output.opChain.systemConfigProxy, + protocolVersionsProxy: IProtocolVersions(address(0)) + }) + ); + + assertFalse(upgradeOutput.superchainConfigUpgraded, "superchain already current"); + assertTrue(upgradeOutput.chainUpgraded, "chain upgraded"); + assertEq( + output.opChain.opChainProxyAdmin.getProxyImplementation(address(output.opChain.protocolVersionsProxy)), + address(protocolVersionsImpl), + "protocol versions impl" + ); + } + function test_deploy_reusingImplementations_doesNotSaveZeroImplementationOnlyArtifacts() public { SystemDeploy.DeployInput memory input = _defaultDeployInput(); SystemDeploy.DeployOutput memory output = systemDeploy.deploy(input); @@ -203,7 +248,8 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { opChainProxyAdminOwner: owner, systemConfigOwner: owner, batcher: batcher, - unsafeBlockSigner: unsafeBlockSigner + unsafeBlockSigner: unsafeBlockSigner, + incidentResponder: incidentResponder }), basefeeScalar: 100, blobBasefeeScalar: 200, @@ -271,6 +317,13 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { ); } + function _saveArtifact(string memory _name, address _addr) internal { + vm.etch(address(artifacts), vm.getDeployedCode("Artifacts.s.sol:Artifacts")); + bytes32 slot = keccak256(abi.encodePacked(_name, uint256(0))); + vm.store(address(artifacts), slot, bytes32(uint256(uint160(_addr)))); + assertEq(artifacts.getAddress(_name), _addr, "artifact saved"); + } + function _expected( SystemDeploy.DeployOutput memory _output, SystemDeploy.DeployInput memory _input diff --git a/test/setup/ForkLive.s.sol b/test/setup/ForkLive.s.sol index 2b1b0cea2..e606b5f64 100644 --- a/test/setup/ForkLive.s.sol +++ b/test/setup/ForkLive.s.sol @@ -21,6 +21,7 @@ import { IDisputeGameFactory } from "interfaces/L1/proofs/IDisputeGameFactory.so import { IAggregateVerifier } from "interfaces/L1/proofs/IAggregateVerifier.sol"; import { IAddressManager } from "interfaces/legacy/IAddressManager.sol"; import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { IProxyAdmin } from "interfaces/universal/IProxyAdmin.sol"; import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; import { IOptimismPortal2 } from "interfaces/L1/IOptimismPortal2.sol"; @@ -190,6 +191,7 @@ contract ForkLive is Script { ISuperchainConfig superchainConfig = ISuperchainConfig(artifacts.mustGetAddress("SuperchainConfigProxy")); IProxyAdmin superchainProxyAdmin = IProxyAdmin(EIP1967Helper.getAdmin(address(superchainConfig))); address superchainPAO = superchainProxyAdmin.owner(); + IProtocolVersions protocolVersionsProxy = IProtocolVersions(artifacts.getAddress("ProtocolVersionsProxy")); // Run the shared SuperchainConfig upgrade as the Superchain ProxyAdmin owner. The script // skips this step when the proxy is already at or above the target implementation version. @@ -199,7 +201,8 @@ contract ForkLive is Script { saveArtifacts: false, superchainConfigProxy: superchainConfig, implementations: implementations, - systemConfigProxy: ISystemConfig(address(0)) + systemConfigProxy: ISystemConfig(address(0)), + protocolVersionsProxy: IProtocolVersions(address(0)) }) ); @@ -210,7 +213,8 @@ contract ForkLive is Script { saveArtifacts: false, superchainConfigProxy: ISuperchainConfig(address(0)), implementations: implementations, - systemConfigProxy: _systemConfigProxy + systemConfigProxy: _systemConfigProxy, + protocolVersionsProxy: protocolVersionsProxy }) ); } diff --git a/test/setup/Setup.sol b/test/setup/Setup.sol index a415ccfd1..df4a6d05e 100644 --- a/test/setup/Setup.sol +++ b/test/setup/Setup.sol @@ -29,6 +29,7 @@ import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; import { IL1CrossDomainMessenger } from "interfaces/L1/IL1CrossDomainMessenger.sol"; import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { IL1StandardBridge } from "interfaces/L1/IL1StandardBridge.sol"; import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol"; import { IOptimismMintableERC721Factory } from "interfaces/L2/IOptimismMintableERC721Factory.sol"; @@ -105,6 +106,7 @@ abstract contract Setup is FeatureFlags { IL1ERC721Bridge l1ERC721Bridge; IOptimismMintableERC20Factory l1OptimismMintableERC20Factory; ISuperchainConfig superchainConfig; + IProtocolVersions protocolVersions; // L2 contracts IL2CrossDomainMessenger l2CrossDomainMessenger = @@ -241,6 +243,9 @@ abstract contract Setup is FeatureFlags { anchorStateRegistry = IAnchorStateRegistry(artifacts.mustGetAddress("AnchorStateRegistryProxy")); disputeGameFactory = IDisputeGameFactory(artifacts.mustGetAddress("DisputeGameFactoryProxy")); delayedWeth = IDelayedWETH(artifacts.mustGetAddress("DelayedWETHProxy")); + // Use getAddress instead of mustGetAddress because forked production chains predating + // ProtocolVersions won't have the proxy; those return address(0) rather than reverting. + protocolVersions = IProtocolVersions(artifacts.getAddress("ProtocolVersionsProxy")); proxyAdmin = IProxyAdmin(artifacts.mustGetAddress("ProxyAdmin")); proxyAdminOwner = proxyAdmin.owner(); superchainProxyAdmin = IProxyAdmin(EIP1967Helper.getAdmin(address(superchainConfig))); diff --git a/test/vendor/Initializable.t.sol b/test/vendor/Initializable.t.sol index 9bdd9df94..b1c762141 100644 --- a/test/vendor/Initializable.t.sol +++ b/test/vendor/Initializable.t.sol @@ -15,6 +15,7 @@ import { EIP1967Helper } from "test/mocks/EIP1967Helper.sol"; // Interfaces import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { IResourceMetering } from "interfaces/L1/IResourceMetering.sol"; import { IDisputeGameFactory } from "interfaces/L1/proofs/IDisputeGameFactory.sol"; import { IOptimismPortal2 } from "interfaces/L1/IOptimismPortal2.sol"; @@ -210,6 +211,24 @@ contract Initializer_Test is CommonTest { }) ); + // ProtocolVersions is deployed by the standard deployment script but is absent on older + // forked chains, so only track it when the proxy is present. + if (address(protocolVersions) != address(0)) { + initCalldata = abi.encodeCall(protocolVersions.initialize, (address(0))); + contracts.push( + InitializeableContract({ + name: "ProtocolVersionsImpl", + target: EIP1967Helper.getImplementation(address(protocolVersions)), + initCalldata: initCalldata + }) + ); + contracts.push( + InitializeableContract({ + name: "ProtocolVersionsProxy", target: address(protocolVersions), initCalldata: initCalldata + }) + ); + } + // ETHLockbox is only deployed when interop is enabled if (address(ethLockbox) != address(0)) { initCalldata = abi.encodeCall(ethLockbox.initialize, (ISystemConfig(address(0)), new IOptimismPortal2[](0))); @@ -264,6 +283,10 @@ contract Initializer_Test is CommonTest { if (address(ethLockbox) == address(0)) { excludes[j++] = "src/L1/ETHLockbox.sol"; } + // ProtocolVersions is not deployed on older forked chains. + if (address(protocolVersions) == address(0)) { + excludes[j++] = "src/L1/ProtocolVersions.sol"; + } // TEEProverRegistry is only deployed when multiproof is enabled. if (address(teeProverRegistry) == address(0)) { excludes[j++] = "src/L1/proofs/tee/TEEProverRegistry.sol"; From 4848ec70d8f1062fec59470d6e731e13ece8a728 Mon Sep 17 00:00:00 2001 From: Francis Li Date: Fri, 10 Jul 2026 16:48:41 -0700 Subject: [PATCH 08/19] feat(L2): add BaseTime predeploy (#364) --- interfaces/L2/IBaseTime.sol | 24 ++++++++ scripts/Artifacts.s.sol | 1 + scripts/L2Genesis.s.sol | 6 ++ snapshots/abi/BaseTime.json | 64 ++++++++++++++++++++ snapshots/semver-lock.json | 4 ++ snapshots/storageLayout/BaseTime.json | 9 +++ src/L2/BaseTime.sol | 36 +++++++++++ src/libraries/Predeploys.sol | 7 ++- test/L2/BaseTime.t.sol | 87 +++++++++++++++++++++++++++ test/scripts/L2Genesis.t.sol | 8 +++ 10 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 interfaces/L2/IBaseTime.sol create mode 100644 snapshots/abi/BaseTime.json create mode 100644 snapshots/storageLayout/BaseTime.json create mode 100644 src/L2/BaseTime.sol create mode 100644 test/L2/BaseTime.t.sol diff --git a/interfaces/L2/IBaseTime.sol b/interfaces/L2/IBaseTime.sol new file mode 100644 index 000000000..6a8d18a74 --- /dev/null +++ b/interfaces/L2/IBaseTime.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +// Interfaces +import { ISemver } from "interfaces/universal/ISemver.sol"; + +/// @title IBaseTime +/// @notice Interface for the BaseTime predeploy. +interface IBaseTime is ISemver { + /// @notice Thrown when a caller other than the protocol depositor attempts to update BaseTime. + error BaseTime_NotDepositor(); + + /// @notice Thrown when the millisecond component is not aligned to a 200 millisecond interval. + error BaseTime_InvalidTimestampMillisPart(); + + /// @notice Returns the millisecond component of the current L2 block timestamp. + function timestampMillisPart() external view returns (uint16); + + /// @notice Returns the current L2 block timestamp in milliseconds. + function timestampMs() external view returns (uint64 timestampMs_); + + /// @notice Updates the millisecond component of the current L2 block timestamp. + function setTimestampMillisPart(uint16 _timestampMillisPart) external; +} diff --git a/scripts/Artifacts.s.sol b/scripts/Artifacts.s.sol index a84afb3b5..04f6aa189 100644 --- a/scripts/Artifacts.s.sol +++ b/scripts/Artifacts.s.sol @@ -48,6 +48,7 @@ contract Artifacts { _predeploys[keccak256("OperatorFeeVault")] = payable(Predeploys.OPERATOR_FEE_VAULT); _predeploys[keccak256("SchemaRegistry")] = payable(Predeploys.SCHEMA_REGISTRY); _predeploys[keccak256("EAS")] = payable(Predeploys.EAS); + _predeploys[keccak256("BaseTime")] = payable(Predeploys.BASE_TIME); } /// @notice Returns the address of a deployment. Also handles the predeploys. diff --git a/scripts/L2Genesis.s.sol b/scripts/L2Genesis.s.sol index bf1412b4e..46bb72bf7 100644 --- a/scripts/L2Genesis.s.sol +++ b/scripts/L2Genesis.s.sol @@ -183,6 +183,7 @@ contract L2Genesis is Script { // 1C,1D,1E,1F: not used. setSchemaRegistry(); // 20 setEAS(); // 21 + setBaseTime(); // 30 } function setProxyAdmin(Input memory _input) internal { @@ -313,6 +314,11 @@ contract L2Genesis is Script { }); } + /// @notice This predeploy is following the safety invariant #1. + function setBaseTime() internal { + _setImplementationCode(Predeploys.BASE_TIME); + } + /// @notice This predeploy is following the safety invariant #1. function setSchemaRegistry() internal { _setImplementationCode(Predeploys.SCHEMA_REGISTRY); diff --git a/snapshots/abi/BaseTime.json b/snapshots/abi/BaseTime.json new file mode 100644 index 000000000..e37d75c6f --- /dev/null +++ b/snapshots/abi/BaseTime.json @@ -0,0 +1,64 @@ +[ + { + "inputs": [ + { + "internalType": "uint16", + "name": "_timestampMillisPart", + "type": "uint16" + } + ], + "name": "setTimestampMillisPart", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "timestampMillisPart", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "timestampMs", + "outputs": [ + { + "internalType": "uint64", + "name": "timestampMs_", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "BaseTime_InvalidTimestampMillisPart", + "type": "error" + }, + { + "inputs": [], + "name": "BaseTime_NotDepositor", + "type": "error" + } +] \ No newline at end of file diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 9b8e5fa96..c61a63c25 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -67,6 +67,10 @@ "initCodeHash": "0x812f8ec3945f0b2e2a9615cd7c5cdd60dbe8927f41e606cb2bd488c5e6dec02a", "sourceCodeHash": "0xcb329746df0baddd3dc03c6c88da5d6bdc0f0a96d30e6dc78d0891bb1e935032" }, + "src/L2/BaseTime.sol:BaseTime": { + "initCodeHash": "0xfcd48af0cfd907d0ce91f61ea437c81c9a98269ca2071d7d27291f20c483ccc0", + "sourceCodeHash": "0x98e246b6ff058ecb8aaeacaa33ce70674f4d3d4a8dcabe91df6f772c6d237667" + }, "src/L2/FeeDisburser.sol:FeeDisburser": { "initCodeHash": "0x1278027e3756e2989e80c0a7b513e221a5fe0d3dbd9ded108375a29b2c1f3d57", "sourceCodeHash": "0xac49a0ecf22b8a7bb3ebef830a2d27b19050f9b08941186e8563d5113cf0ce9c" diff --git a/snapshots/storageLayout/BaseTime.json b/snapshots/storageLayout/BaseTime.json new file mode 100644 index 000000000..7e863ba7b --- /dev/null +++ b/snapshots/storageLayout/BaseTime.json @@ -0,0 +1,9 @@ +[ + { + "bytes": "2", + "label": "timestampMillisPart", + "offset": 0, + "slot": "0", + "type": "uint16" + } +] \ No newline at end of file diff --git a/src/L2/BaseTime.sol b/src/L2/BaseTime.sol new file mode 100644 index 000000000..74f2eefa3 --- /dev/null +++ b/src/L2/BaseTime.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +// Libraries +import { Constants } from "src/libraries/Constants.sol"; + +// Interfaces +import { IBaseTime } from "interfaces/L2/IBaseTime.sol"; + +/// @custom:proxied true +/// @custom:predeploy 0x4200000000000000000000000000000000000030 +/// @title BaseTime +/// @notice Exposes the millisecond component of the current L2 block timestamp. +contract BaseTime is IBaseTime { + /// @notice Semantic version. + /// @custom:semver 1.0.0 + string public constant version = "1.0.0"; + + /// @inheritdoc IBaseTime + uint16 public timestampMillisPart; + + /// @inheritdoc IBaseTime + function timestampMs() external view returns (uint64 timestampMs_) { + timestampMs_ = uint64(block.timestamp * 1000 + timestampMillisPart); + } + + /// @inheritdoc IBaseTime + function setTimestampMillisPart(uint16 _timestampMillisPart) external { + if (msg.sender != Constants.DEPOSITOR_ACCOUNT) revert BaseTime_NotDepositor(); + if (_timestampMillisPart > 800 || _timestampMillisPart % 200 != 0) { + revert BaseTime_InvalidTimestampMillisPart(); + } + + timestampMillisPart = _timestampMillisPart; + } +} diff --git a/src/libraries/Predeploys.sol b/src/libraries/Predeploys.sol index 79a55612a..86425f3b2 100644 --- a/src/libraries/Predeploys.sol +++ b/src/libraries/Predeploys.sol @@ -63,6 +63,9 @@ library Predeploys { /// @notice Address of the EAS predeploy. address internal constant EAS = 0x4200000000000000000000000000000000000021; + /// @notice Address of the BaseTime predeploy. + address internal constant BASE_TIME = 0x4200000000000000000000000000000000000030; + /// @custom:legacy /// @notice Address of the LegacyERC20ETH predeploy. Deprecated. Balances are migrated to the /// state trie as of the Bedrock upgrade. Contract has been locked and write functions @@ -90,6 +93,7 @@ library Predeploys { if (_addr == SCHEMA_REGISTRY) return "SchemaRegistry"; if (_addr == EAS) return "EAS"; if (_addr == LEGACY_ERC20_ETH) return "LegacyERC20ETH"; + if (_addr == BASE_TIME) return "BaseTime"; revert("Predeploys: unnamed predeploy"); } @@ -104,7 +108,8 @@ library Predeploys { || _addr == L2_STANDARD_BRIDGE || _addr == SEQUENCER_FEE_WALLET || _addr == OPTIMISM_MINTABLE_ERC20_FACTORY || _addr == L2_ERC721_BRIDGE || _addr == L1_BLOCK_ATTRIBUTES || _addr == L2_TO_L1_MESSAGE_PASSER || _addr == OPTIMISM_MINTABLE_ERC721_FACTORY || _addr == PROXY_ADMIN || _addr == BASE_FEE_VAULT - || _addr == L1_FEE_VAULT || _addr == OPERATOR_FEE_VAULT || _addr == SCHEMA_REGISTRY || _addr == EAS; + || _addr == L1_FEE_VAULT || _addr == OPERATOR_FEE_VAULT || _addr == SCHEMA_REGISTRY || _addr == EAS + || _addr == BASE_TIME; } function isPredeployNamespace(address _addr) internal pure returns (bool) { diff --git a/test/L2/BaseTime.t.sol b/test/L2/BaseTime.t.sol new file mode 100644 index 000000000..b5106232b --- /dev/null +++ b/test/L2/BaseTime.t.sol @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +// Testing +import { Test } from "forge-std/Test.sol"; + +// Libraries +import { Constants } from "src/libraries/Constants.sol"; + +// Target contract +import { BaseTime } from "src/L2/BaseTime.sol"; +import { IBaseTime } from "interfaces/L2/IBaseTime.sol"; + +/// @title BaseTime_TestInit +/// @notice Reusable test initialization for BaseTime tests. +abstract contract BaseTime_TestInit is Test { + BaseTime internal baseTime; + + /// @notice Sets up the test suite. + function setUp() public { + baseTime = new BaseTime(); + } + + /// @notice Sets the millisecond component as the protocol depositor. + function setTimestampMillisPart(uint16 _timestampMillisPart) internal { + vm.prank(Constants.DEPOSITOR_ACCOUNT); + baseTime.setTimestampMillisPart(_timestampMillisPart); + } +} + +/// @title BaseTime_TimestampMillisPart_Test +/// @notice Tests BaseTime's initial value. +contract BaseTime_TimestampMillisPart_Test is BaseTime_TestInit { + /// @notice Tests that the millisecond component initially equals zero. + function test_initialValue_succeeds() external view { + assertEq(baseTime.timestampMillisPart(), 0); + } +} + +/// @title BaseTime_SetTimestampMillisPart_Test +/// @notice Tests updating BaseTime's millisecond component. +contract BaseTime_SetTimestampMillisPart_Test is BaseTime_TestInit { + /// @notice Tests every valid millisecond component. + function test_setTimestampMillisPart_succeeds() external { + uint16[5] memory validValues = [uint16(0), 200, 400, 600, 800]; + + for (uint256 i; i < validValues.length; i++) { + setTimestampMillisPart(validValues[i]); + assertEq(baseTime.timestampMillisPart(), validValues[i]); + } + } + + /// @notice Tests that an invalid millisecond component is rejected. + function testFuzz_setTimestampMillisPart_invalidValue_reverts(uint16 _timestampMillisPart) external { + vm.assume(_timestampMillisPart > 800 || _timestampMillisPart % 200 != 0); + vm.expectRevert(IBaseTime.BaseTime_InvalidTimestampMillisPart.selector); + vm.prank(Constants.DEPOSITOR_ACCOUNT); + baseTime.setTimestampMillisPart(_timestampMillisPart); + } + + /// @notice Tests that callers other than the protocol depositor are rejected. + function testFuzz_setTimestampMillisPart_notDepositor_reverts(address _caller) external { + vm.assume(_caller != Constants.DEPOSITOR_ACCOUNT); + vm.expectRevert(IBaseTime.BaseTime_NotDepositor.selector); + vm.prank(_caller); + baseTime.setTimestampMillisPart(200); + } + + /// @notice Tests that the millisecond component occupies slot zero as a uint16. + function test_setTimestampMillisPart_usesSlotZero_succeeds() external { + setTimestampMillisPart(600); + + assertEq(vm.load(address(baseTime), bytes32(0)), bytes32(uint256(600))); + } +} + +/// @title BaseTime_TimestampMs_Test +/// @notice Tests BaseTime's full millisecond timestamp getter. +contract BaseTime_TimestampMs_Test is BaseTime_TestInit { + /// @notice Tests that timestampMs combines block.timestamp with the millisecond component. + function test_timestampMs_succeeds() external { + vm.warp(1725); + setTimestampMillisPart(600); + + assertEq(baseTime.timestampMs(), 1_725_600); + } +} diff --git a/test/scripts/L2Genesis.t.sol b/test/scripts/L2Genesis.t.sol index c0bd80933..13f232731 100644 --- a/test/scripts/L2Genesis.t.sol +++ b/test/scripts/L2Genesis.t.sol @@ -6,6 +6,7 @@ import { EIP1967Helper } from "test/mocks/EIP1967Helper.sol"; import { L2Genesis } from "scripts/L2Genesis.s.sol"; import { Predeploys } from "src/libraries/Predeploys.sol"; import { LATEST_FORK } from "scripts/libraries/Config.sol"; +import { IBaseTime } from "interfaces/L2/IBaseTime.sol"; import { IOptimismMintableERC20Factory } from "interfaces/universal/IOptimismMintableERC20Factory.sol"; import { IOptimismMintableERC721Factory } from "interfaces/L2/IOptimismMintableERC721Factory.sol"; import { IProxyAdmin } from "interfaces/universal/IProxyAdmin.sol"; @@ -59,6 +60,12 @@ abstract contract L2Genesis_TestInit is Test { assertGt(Predeploys.WETH.code.length, 0); } + function _assertBaseTime() internal view { + assertEq(Predeploys.BASE_TIME, 0x4200000000000000000000000000000000000030); + assertTrue(Predeploys.isSupportedPredeploy(Predeploys.BASE_TIME)); + assertEq(IBaseTime(Predeploys.BASE_TIME).timestampMillisPart(), 0); + } + function _assertFeeVaultsWithoutRevenueShare() internal view { _assertFeeVault( Predeploys.BASE_FEE_VAULT, @@ -160,6 +167,7 @@ contract L2Genesis_Run_Test is L2Genesis_TestInit { _assertProxyAdmin(); _assertPredeploys(); + _assertBaseTime(); _assertFeeVaultsWithoutRevenueShare(); _assertFactories(); _assertForks(); From a2c10a5ffa24b5b4364aed268e1848166631ec6a Mon Sep 17 00:00:00 2001 From: Thanh Trinh Date: Tue, 14 Jul 2026 12:49:39 -0400 Subject: [PATCH 09/19] feat(L2): add system address refunding to FeeDisburser (#358) --- snapshots/abi/FeeDisburser.json | 199 ++++++++++++++++ snapshots/semver-lock.json | 4 +- snapshots/storageLayout/FeeDisburser.json | 21 ++ src/L2/FeeDisburser.sol | 143 ++++++++++- test/L2/FeeDisburser.t.sol | 274 ++++++++++++++++++++++ 5 files changed, 626 insertions(+), 15 deletions(-) diff --git a/snapshots/abi/FeeDisburser.json b/snapshots/abi/FeeDisburser.json index 4dfa787a5..c06b7fb5a 100644 --- a/snapshots/abi/FeeDisburser.json +++ b/snapshots/abi/FeeDisburser.json @@ -45,6 +45,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "MAX_SYSTEM_ADDRESS_COUNT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "WITHDRAWAL_MIN_GAS", @@ -65,6 +78,24 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "address payable[]", + "name": "systemAddresses_", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "targetBalances_", + "type": "uint256[]" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "lastDisbursementTime", @@ -91,6 +122,70 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "proxyAdmin", + "outputs": [ + { + "internalType": "contract IProxyAdmin", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxyAdminOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "systemAddresses", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "targetBalances", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "version", @@ -148,12 +243,61 @@ "name": "FeesReceived", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, { "anonymous": false, "inputs": [], "name": "NoFeesCollected", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "systemAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "balanceNeeded", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "balanceSent", + "type": "uint256" + } + ], + "name": "ProcessedFunds", + "type": "event" + }, + { + "inputs": [], + "name": "ArrayLengthMismatch", + "type": "error" + }, { "inputs": [], "name": "FeeVaultMustWithdrawToFeeDisburser", @@ -174,9 +318,64 @@ "name": "IntervalTooLow", "type": "error" }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdmin", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", + "type": "error" + }, + { + "inputs": [], + "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", + "type": "error" + }, + { + "inputs": [], + "name": "ReentrantCall", + "type": "error" + }, + { + "inputs": [], + "name": "TooManySystemAddresses", + "type": "error" + }, { "inputs": [], "name": "ZeroAddress", "type": "error" + }, + { + "inputs": [], + "name": "ZeroTargetBalance", + "type": "error" } ] \ No newline at end of file diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index c61a63c25..f3e5ca2e2 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -72,8 +72,8 @@ "sourceCodeHash": "0x98e246b6ff058ecb8aaeacaa33ce70674f4d3d4a8dcabe91df6f772c6d237667" }, "src/L2/FeeDisburser.sol:FeeDisburser": { - "initCodeHash": "0x1278027e3756e2989e80c0a7b513e221a5fe0d3dbd9ded108375a29b2c1f3d57", - "sourceCodeHash": "0xac49a0ecf22b8a7bb3ebef830a2d27b19050f9b08941186e8563d5113cf0ce9c" + "initCodeHash": "0xe495e0502ee0ab7a39605c2c3bdb323908a81e7e6fe6f7f2fbcd5943bff04bf0", + "sourceCodeHash": "0x0aebe8fc1030935340fbfab9cd7b86ef94be196377692d180f7df6058b688c17" }, "src/L2/GasPriceOracle.sol:GasPriceOracle": { "initCodeHash": "0xf72c23d9c3775afd7b645fde429d09800622d329116feb5ff9829634655123ca", diff --git a/snapshots/storageLayout/FeeDisburser.json b/snapshots/storageLayout/FeeDisburser.json index 53ffb02a4..093900bf6 100644 --- a/snapshots/storageLayout/FeeDisburser.json +++ b/snapshots/storageLayout/FeeDisburser.json @@ -12,5 +12,26 @@ "offset": 0, "slot": "1", "type": "uint256" + }, + { + "bytes": "32", + "label": "_disburseFeesEntered", + "offset": 0, + "slot": "2", + "type": "uint256" + }, + { + "bytes": "32", + "label": "systemAddresses", + "offset": 0, + "slot": "3", + "type": "address payable[]" + }, + { + "bytes": "32", + "label": "targetBalances", + "offset": 0, + "slot": "4", + "type": "uint256[]" } ] \ No newline at end of file diff --git a/src/L2/FeeDisburser.sol b/src/L2/FeeDisburser.sol index aaa8b914d..2ce09a7ce 100644 --- a/src/L2/FeeDisburser.sol +++ b/src/L2/FeeDisburser.sol @@ -5,11 +5,14 @@ import { IL2StandardBridge } from "interfaces/L2/IL2StandardBridge.sol"; import { IFeeVault, Types } from "interfaces/L2/IFeeVault.sol"; import { ISemver } from "interfaces/universal/ISemver.sol"; import { Predeploys } from "src/libraries/Predeploys.sol"; +import { SafeCall } from "src/libraries/SafeCall.sol"; +import { Initializable } from "src/vendor/Initializable.sol"; +import { ProxyAdminOwnedBase } from "src/universal/ProxyAdminOwnedBase.sol"; /// @custom:proxied true /// @title FeeDisburser /// @notice Withdraws funds from system FeeVault contracts and bridges to L1. -contract FeeDisburser is ISemver { +contract FeeDisburser is Initializable, ProxyAdminOwnedBase, ISemver { //////////////////////////////////////////////////////////////// /// Constants //////////////////////////////////////////////////////////////// @@ -17,6 +20,9 @@ contract FeeDisburser is ISemver { /// @notice The minimum gas limit for the FeeDisburser withdrawal transaction to L1. uint32 public constant WITHDRAWAL_MIN_GAS = 35_000; + /// @notice The maximum number of system addresses that can be funded. + uint256 public constant MAX_SYSTEM_ADDRESS_COUNT = 20; + //////////////////////////////////////////////////////////////// /// Immutables //////////////////////////////////////////////////////////////// @@ -39,6 +45,15 @@ contract FeeDisburser is ISemver { /// This variable is deprecated and its value should not be relied upon. uint256 public netFeeRevenue; + /// @notice Reentrancy guard status for disburseFees. + uint256 private _disburseFeesEntered; + + /// @notice The L2 system addresses being funded. + address payable[] public systemAddresses; + + /// @notice The target balances for L2 system addresses. + uint256[] public targetBalances; + //////////////////////////////////////////////////////////////// /// Events //////////////////////////////////////////////////////////////// @@ -59,6 +74,17 @@ contract FeeDisburser is ISemver { /// @notice Emitted when no fees are collected from FeeVaults at time of disbursement. event NoFeesCollected(); + /// @notice Emitted when the FeeDisburser sends funds to a system address. + /// + /// @param systemAddress The system address being funded. + /// @param success A boolean denoting whether a fund send occurred and its success or failure. + /// @param balanceNeeded The amount of funds the given system address needs to reach its target balance. + /// @param balanceSent The amount of funds attempted to be sent. When success is false, the + /// recipient rejected the transfer and no funds were actually received. + event ProcessedFunds( + address indexed systemAddress, bool indexed success, uint256 balanceNeeded, uint256 balanceSent + ); + //////////////////////////////////////////////////////////////// /// Errors //////////////////////////////////////////////////////////////// @@ -78,6 +104,32 @@ contract FeeDisburser is ISemver { /// @notice Thrown when a FeeVault's recipient is not set to the FeeDisburser contract. error FeeVaultMustWithdrawToFeeDisburser(); + /// @notice Thrown when system address and target balance array lengths do not match. + error ArrayLengthMismatch(); + + /// @notice Thrown when system address configuration exceeds the maximum length. + error TooManySystemAddresses(); + + /// @notice Thrown when a system address target balance is zero. + error ZeroTargetBalance(); + + /// @notice Thrown when disburseFees is reentered. + error ReentrantCall(); + + //////////////////////////////////////////////////////////////// + /// Modifiers + //////////////////////////////////////////////////////////////// + + /// @notice Prevents reentrancy into disburseFees while preserving the existing storage layout. + /// Uses 1/2 sentinel values so the slot stays nonzero after first use, keeping + /// subsequent SSTOREs warm. Uninitialized (0) is treated as not-entered. + modifier nonReentrantDisbursement() { + if (_disburseFeesEntered == 2) revert ReentrantCall(); + _disburseFeesEntered = 2; + _; + _disburseFeesEntered = 1; + } + //////////////////////////////////////////////////////////////// /// Constructor //////////////////////////////////////////////////////////////// @@ -99,7 +151,7 @@ contract FeeDisburser is ISemver { //////////////////////////////////////////////////////////////// /// @notice Withdraws funds from FeeVaults and bridges to L1. - function disburseFees() external virtual { + function disburseFees() external virtual nonReentrantDisbursement { if (block.timestamp < lastDisbursementTime + FEE_DISBURSEMENT_INTERVAL) revert IntervalNotReached(); // Sequencer, base, and L1 FeeVaults will withdraw fees to the FeeDisburser contract. @@ -108,23 +160,63 @@ contract FeeDisburser is ISemver { _feeVaultWithdrawal(payable(Predeploys.L1_FEE_VAULT)); // Note: OPERATOR_FEE_VAULT is intentionally omitted because Base does not currently use it. - // Gross revenue is the sum of all fees - uint256 feeBalance = address(this).balance; - // Stop execution if no fees were collected - if (feeBalance == 0) { + if (address(this).balance == 0) { emit NoFeesCollected(); return; } lastDisbursementTime = block.timestamp; - // Send remaining funds to L1 wallet on L1 - IL2StandardBridge(payable(Predeploys.L2_STANDARD_BRIDGE)).bridgeETHTo{ value: address(this).balance }( - L1_WALLET, WITHDRAWAL_MIN_GAS, bytes("") - ); + uint256 systemAddressesLength = systemAddresses.length; + for (uint256 i; i < systemAddressesLength;) { + _refillBalanceIfNeeded({ systemAddress: systemAddresses[i], targetBalance: targetBalances[i] }); + unchecked { + i++; + } + } - emit FeesDisbursed(lastDisbursementTime, 0, feeBalance); + uint256 bridgeBalance = address(this).balance; + if (bridgeBalance != 0) { + // Send remaining funds to L1 wallet on L1 + IL2StandardBridge(payable(Predeploys.L2_STANDARD_BRIDGE)).bridgeETHTo{ value: bridgeBalance }( + L1_WALLET, WITHDRAWAL_MIN_GAS, bytes("") + ); + } + + emit FeesDisbursed(block.timestamp, 0, bridgeBalance); + } + + /// @notice Configures the L2 system addresses to refund and their target balances. + /// Called via upgradeAndCall when upgrading to this version. + /// + /// @dev Callable only by the ProxyAdmin or its owner. + /// + /// @param systemAddresses_ The system addresses being funded. + /// @param targetBalances_ The target balances for system addresses. + function initialize( + address payable[] memory systemAddresses_, + uint256[] memory targetBalances_ + ) + external + reinitializer(2) + { + _assertOnlyProxyAdminOrProxyAdminOwner(); + + uint256 systemAddressesLength = systemAddresses_.length; + if (systemAddressesLength > MAX_SYSTEM_ADDRESS_COUNT) revert TooManySystemAddresses(); + if (systemAddressesLength != targetBalances_.length) revert ArrayLengthMismatch(); + + for (uint256 i; i < systemAddressesLength;) { + if (systemAddresses_[i] == address(0)) revert ZeroAddress(); + if (targetBalances_[i] == 0) revert ZeroTargetBalance(); + unchecked { + i++; + } + } + + systemAddresses = systemAddresses_; + targetBalances = targetBalances_; } /// @notice Receives ETH fees withdrawn from L2 FeeVaults. @@ -132,9 +224,34 @@ contract FeeDisburser is ISemver { emit FeesReceived(msg.sender, msg.value); } - /// @custom:semver 1.0.0 + /// @custom:semver 1.1.0 function version() external pure virtual returns (string memory) { - return "1.0.0"; + return "1.1.0"; + } + + //////////////////////////////////////////////////////////////// + /// Internal Functions + //////////////////////////////////////////////////////////////// + + /// @notice Checks the balance of the target address and refills it back up to the target balance if needed. + /// + /// @param systemAddress The system address being funded. + /// @param targetBalance The target balance for the system address being funded. + function _refillBalanceIfNeeded(address systemAddress, uint256 targetBalance) internal { + uint256 systemAddressBalance = systemAddress.balance; + if (systemAddressBalance >= targetBalance) { + emit ProcessedFunds({ systemAddress: systemAddress, success: false, balanceNeeded: 0, balanceSent: 0 }); + return; + } + + uint256 valueNeeded = targetBalance - systemAddressBalance; + uint256 feeDisburserBalance = address(this).balance; + uint256 valueToSend = valueNeeded > feeDisburserBalance ? feeDisburserBalance : valueNeeded; + + bool success = SafeCall.send({ _target: systemAddress, _gas: gasleft(), _value: valueToSend }); + emit ProcessedFunds({ + systemAddress: systemAddress, success: success, balanceNeeded: valueNeeded, balanceSent: valueToSend + }); } //////////////////////////////////////////////////////////////// diff --git a/test/L2/FeeDisburser.t.sol b/test/L2/FeeDisburser.t.sol index 75287a33d..bf27ec2d2 100644 --- a/test/L2/FeeDisburser.t.sol +++ b/test/L2/FeeDisburser.t.sol @@ -6,7 +6,16 @@ import { Test } from "lib/forge-std/src/Test.sol"; import { FeeDisburser } from "src/L2/FeeDisburser.sol"; import { IFeeVault, Types } from "interfaces/L2/IFeeVault.sol"; import { IStandardBridge } from "interfaces/universal/IStandardBridge.sol"; +import { IProxyAdmin } from "interfaces/universal/IProxyAdmin.sol"; import { Predeploys } from "src/libraries/Predeploys.sol"; +import { Constants } from "src/libraries/Constants.sol"; +import { ProxyAdminOwnedBase } from "src/universal/ProxyAdminOwnedBase.sol"; + +contract ReentrantReceiver { + receive() external payable { + FeeDisburser(payable(msg.sender)).disburseFees(); + } +} /// @title FeeDisburserTest /// @notice Comprehensive unit and fuzz tests for the FeeDisburser contract @@ -15,6 +24,9 @@ contract FeeDisburserTest is Test { event FeesDisbursed(uint256 disbursementTime, uint256 deprecated, uint256 totalFeesDisbursed); event FeesReceived(address indexed sender, uint256 amount); event NoFeesCollected(); + event ProcessedFunds( + address indexed systemAddress, bool indexed success, uint256 balanceNeeded, uint256 balanceSent + ); // Constants uint32 constant WITHDRAWAL_MIN_GAS = 35_000; @@ -26,6 +38,9 @@ contract FeeDisburserTest is Test { address payable constant L1_WALLET = payable(address(0x1001)); address constant ALICE = address(0xA11CE); address constant BOB = address(0xB0B); + address constant PROXY_ADMIN = address(0xAD1); + address constant PROXY_ADMIN_OWNER = address(0xAD2); + address payable constant SYSTEM_ADDR = payable(address(0x5001)); // Contract instances FeeDisburser feeDisburser; @@ -97,6 +112,34 @@ contract FeeDisburserTest is Test { emit NoFeesCollected(); } + function _setProxyAdmin() internal { + vm.store(address(feeDisburser), Constants.PROXY_OWNER_ADDRESS, bytes32(uint256(uint160(PROXY_ADMIN)))); + } + + function _mockProxyAdminOwner() internal { + vm.mockCall(PROXY_ADMIN, abi.encodeCall(IProxyAdmin.owner, ()), abi.encode(PROXY_ADMIN_OWNER)); + } + + function _initializeAsProxyAdmin(address payable[] memory addrs, uint256[] memory balances) internal { + _setProxyAdmin(); + vm.prank(PROXY_ADMIN); + feeDisburser.initialize(addrs, balances); + } + + function _makeSingleConfig( + address payable addr, + uint256 balance + ) + internal + pure + returns (address payable[] memory addrs, uint256[] memory balances) + { + addrs = new address payable[](1); + addrs[0] = addr; + balances = new uint256[](1); + balances[0] = balance; + } + // ============================================================ // Constructor Tests // ============================================================ @@ -768,4 +811,235 @@ contract FeeDisburserTest is Test { assertTrue(gasUsed < 200_000, "Gas usage too high for all-vault case"); } + + // ============================================================ + // initialize Tests + // ============================================================ + + function test_initialize_success_proxyAdmin() public { + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(SYSTEM_ADDR, 1 ether); + + _initializeAsProxyAdmin(addrs, balances); + + assertEq(feeDisburser.systemAddresses(0), SYSTEM_ADDR); + assertEq(feeDisburser.targetBalances(0), 1 ether); + } + + function test_initialize_success_proxyAdminOwner() public { + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(SYSTEM_ADDR, 1 ether); + + _setProxyAdmin(); + _mockProxyAdminOwner(); + vm.prank(PROXY_ADMIN_OWNER); + feeDisburser.initialize(addrs, balances); + + assertEq(feeDisburser.systemAddresses(0), SYSTEM_ADDR); + assertEq(feeDisburser.targetBalances(0), 1 ether); + } + + function test_initialize_revert_notProxyAdminOrOwner() public { + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(SYSTEM_ADDR, 1 ether); + + _setProxyAdmin(); + _mockProxyAdminOwner(); + vm.expectRevert(ProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner.selector); + vm.prank(ALICE); + feeDisburser.initialize(addrs, balances); + } + + function test_initialize_revert_alreadyInitialized() public { + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(SYSTEM_ADDR, 1 ether); + _initializeAsProxyAdmin(addrs, balances); + + vm.expectRevert(); + _initializeAsProxyAdmin(addrs, balances); + } + + function test_initialize_revert_tooManySystemAddresses() public { + uint256 n = feeDisburser.MAX_SYSTEM_ADDRESS_COUNT() + 1; + address payable[] memory addrs = new address payable[](n); + uint256[] memory balances = new uint256[](n); + + vm.expectRevert(FeeDisburser.TooManySystemAddresses.selector); + _initializeAsProxyAdmin(addrs, balances); + } + + function test_initialize_revert_arrayLengthMismatch() public { + address payable[] memory addrs = new address payable[](2); + uint256[] memory balances = new uint256[](1); + + vm.expectRevert(FeeDisburser.ArrayLengthMismatch.selector); + _initializeAsProxyAdmin(addrs, balances); + } + + function test_initialize_revert_zeroAddress() public { + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(payable(address(0)), 1 ether); + + vm.expectRevert(FeeDisburser.ZeroAddress.selector); + _initializeAsProxyAdmin(addrs, balances); + } + + function test_initialize_revert_zeroTargetBalance() public { + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(SYSTEM_ADDR, 0); + + vm.expectRevert(FeeDisburser.ZeroTargetBalance.selector); + _initializeAsProxyAdmin(addrs, balances); + } + + // ============================================================ + // disburseFees with System Address Refunds + // ============================================================ + + function test_disburseFees_success_systemAddressRefunded() public { + uint256 feeAmount = 10 ether; + uint256 targetBal = 2 ether; + + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(SYSTEM_ADDR, targetBal); + _initializeAsProxyAdmin(addrs, balances); + + _mockVaultWithdrawal(Predeploys.SEQUENCER_FEE_WALLET, feeAmount); + + uint256 bridgeAmount = feeAmount - targetBal; + _expectBridgeETH(bridgeAmount); + + vm.expectEmit(address(feeDisburser)); + emit ProcessedFunds(SYSTEM_ADDR, true, targetBal, targetBal); + + _expectFeesDisbursed(bridgeAmount); + + feeDisburser.disburseFees(); + + assertEq(SYSTEM_ADDR.balance, targetBal); + } + + function test_disburseFees_success_systemAddressAlreadyFunded() public { + uint256 feeAmount = 10 ether; + uint256 targetBal = 2 ether; + + vm.deal(SYSTEM_ADDR, targetBal); + + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(SYSTEM_ADDR, targetBal); + _initializeAsProxyAdmin(addrs, balances); + + _mockVaultWithdrawal(Predeploys.SEQUENCER_FEE_WALLET, feeAmount); + + _expectBridgeETH(feeAmount); + + vm.expectEmit(address(feeDisburser)); + emit ProcessedFunds(SYSTEM_ADDR, false, 0, 0); + + _expectFeesDisbursed(feeAmount); + + feeDisburser.disburseFees(); + + assertEq(SYSTEM_ADDR.balance, targetBal); + } + + function test_disburseFees_success_partialRefundDueToLowBalance() public { + uint256 targetBal = 5 ether; + uint256 systemAddrStartBal = 1 ether; + uint256 feeAmount = 2 ether; // not enough to fully top up (needs 4 ether, has 2) + + vm.deal(SYSTEM_ADDR, systemAddrStartBal); + + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(SYSTEM_ADDR, targetBal); + _initializeAsProxyAdmin(addrs, balances); + + _mockVaultWithdrawal(Predeploys.SEQUENCER_FEE_WALLET, feeAmount); + + uint256 valueNeeded = targetBal - systemAddrStartBal; // 4 ether + uint256 valueSent = feeAmount; // only 2 ether available + + vm.expectEmit(address(feeDisburser)); + emit ProcessedFunds(SYSTEM_ADDR, true, valueNeeded, valueSent); + + _expectFeesDisbursed(0); + + feeDisburser.disburseFees(); + + assertEq(SYSTEM_ADDR.balance, systemAddrStartBal + valueSent); + assertEq(address(feeDisburser).balance, 0); + } + + function test_disburseFees_success_multipleSystemAddresses() public { + address payable addr1 = payable(address(0x6001)); + address payable addr2 = payable(address(0x6002)); + uint256 target1 = 3 ether; + uint256 target2 = 2 ether; + + address payable[] memory addrs = new address payable[](2); + addrs[0] = addr1; + addrs[1] = addr2; + uint256[] memory bals = new uint256[](2); + bals[0] = target1; + bals[1] = target2; + _initializeAsProxyAdmin(addrs, bals); + + uint256 feeAmount = 10 ether; + _mockVaultWithdrawal(Predeploys.SEQUENCER_FEE_WALLET, feeAmount); + + uint256 bridgeAmount = feeAmount - target1 - target2; + _expectBridgeETH(bridgeAmount); + + vm.expectEmit(address(feeDisburser)); + emit ProcessedFunds(addr1, true, target1, target1); + vm.expectEmit(address(feeDisburser)); + emit ProcessedFunds(addr2, true, target2, target2); + + _expectFeesDisbursed(bridgeAmount); + + feeDisburser.disburseFees(); + + assertEq(addr1.balance, target1); + assertEq(addr2.balance, target2); + // expectCall verifies the bridged amount; mocked payable balance semantics vary by Foundry version. + } + + function test_disburseFees_success_revertingRecipient() public { + address payable bad = payable(address(0x9999)); + + (address payable[] memory addrs, uint256[] memory balances) = _makeSingleConfig(bad, 1 ether); + _initializeAsProxyAdmin(addrs, balances); + + uint256 feeAmount = 2 ether; + _mockVaultWithdrawal(Predeploys.SEQUENCER_FEE_WALLET, feeAmount); + + // SafeCall.send catches the revert; full fee amount still bridges + vm.mockCallRevert(bad, 1 ether, bytes(""), bytes("")); + _expectBridgeETH(feeAmount); + + vm.expectEmit(address(feeDisburser)); + emit ProcessedFunds(bad, false, 1 ether, 1 ether); + + _expectFeesDisbursed(feeAmount); + + feeDisburser.disburseFees(); + + assertEq(bad.balance, 0); + } + + // ============================================================ + // Reentrancy Test + // ============================================================ + + function test_disburseFees_reentrancy_innerCallBlocked() public { + ReentrantReceiver attacker = new ReentrantReceiver(); + + (address payable[] memory addrs, uint256[] memory balances) = + _makeSingleConfig(payable(address(attacker)), 1 ether); + _initializeAsProxyAdmin(addrs, balances); + + uint256 feeAmount = 2 ether; + _mockVaultWithdrawal(Predeploys.SEQUENCER_FEE_WALLET, feeAmount); + + // Inner disburseFees reverts (reentrancy), so SafeCall returns success=false and ETH is not sent + _expectBridgeETH(feeAmount); + + vm.expectEmit(address(feeDisburser)); + emit ProcessedFunds(address(attacker), false, 1 ether, 1 ether); + + feeDisburser.disburseFees(); + + assertEq(address(attacker).balance, 0); + } } From ee6bac40db8875876136d90da1eded7fad9920b1 Mon Sep 17 00:00:00 2001 From: Pelle Date: Wed, 15 Jul 2026 10:10:15 -0600 Subject: [PATCH 10/19] refactor(L1): drop MIN_NOTICE check from registerUpgrade (#376) --- snapshots/semver-lock.json | 4 ++-- src/L1/ProtocolVersions.sol | 12 ++++-------- test/L1/ProtocolVersions.t.sol | 7 ++++--- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index f3e5ca2e2..49f622405 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -20,8 +20,8 @@ "sourceCodeHash": "0xa1281f5da03fa0431eabad33da23f51a8d835b0dd04554603fd59e11efe9fa51" }, "src/L1/ProtocolVersions.sol:ProtocolVersions": { - "initCodeHash": "0x0d47628779e604e08a8787c299411ca1f9ed411052921aec53047748a5d7e40f", - "sourceCodeHash": "0x6bb512df396c0fe7216d160f0a4637cd690b4b5b8515096799d946b6bbcdaa5f" + "initCodeHash": "0x8ff4bbb0adb8115a3d77e1b706038b0758fdb3a0b183108a794b3cb6200acd83", + "sourceCodeHash": "0x2c60b18d14bf9d966e7f852397b02e732f408933261823b42b61633c14613614" }, "src/L1/SuperchainConfig.sol:SuperchainConfig": { "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", diff --git a/src/L1/ProtocolVersions.sol b/src/L1/ProtocolVersions.sol index a30f21305..846727f71 100644 --- a/src/L1/ProtocolVersions.sol +++ b/src/L1/ProtocolVersions.sol @@ -38,7 +38,7 @@ import { ISemver } from "interfaces/universal/ISemver.sol"; /// The contract is deployed behind an OP proxy: the implementation constructor disables /// initializers, and `initialize` (run through the proxy) seeds the hash chain. contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, ReinitializableBase, ISemver { - /// @notice Minimum notice period required when scheduling or modifying an activation timestamp. + /// @notice Minimum notice period required when changing a preexisting activation timestamp. uint64 public constant MIN_NOTICE = 1 hours; /// @notice Activation timestamp for each registered upgrade, indexed by upgrade id (0 = not scheduled). @@ -117,19 +117,15 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable /// @notice Registers a new upgrade, assigning it the next ascending id, optionally scheduling its /// activation and bumping the minimum protocol version in the same call. Owner only. /// @dev Pass `timestamp` 0 to register without scheduling (schedule later via `setTimestamp`), or - /// a value at least MIN_NOTICE seconds in the future to register and schedule at once. - /// Either way registration extends the scheduleId chain with the new upgrade's link. - /// @param timestamp Future Unix activation timestamp (>= block.timestamp + MIN_NOTICE), or 0 to - /// leave the upgrade unscheduled. + /// a non-zero value to register and schedule at once. Either way registration extends the + /// scheduleId chain with the new upgrade's link. + /// @param timestamp Unix activation timestamp, or 0 to leave the upgrade unscheduled. /// @param minProtocolVersion New minimum protocol version to set at registration, or 0 to leave /// the current minimum unchanged. /// @return The ascending id assigned to the newly registered upgrade. function registerUpgrade(uint64 timestamp, uint256 minProtocolVersion) external returns (uint256) { _assertOnlyProxyAdminOwner(); if (_upgradeScheduleId.length == 0) revert ProtocolVersions_NotInitialized(); - if (timestamp != 0 && timestamp < uint64(block.timestamp) + MIN_NOTICE) { - revert ProtocolVersions_InsufficientNotice(timestamp); - } uint256 id = _timestamps.length; _timestamps.push(0); // Reserve the link slot for this upgrade at index id + 1. diff --git a/test/L1/ProtocolVersions.t.sol b/test/L1/ProtocolVersions.t.sol index 0b1f184a6..937df44f4 100644 --- a/test/L1/ProtocolVersions.t.sol +++ b/test/L1/ProtocolVersions.t.sol @@ -176,12 +176,13 @@ contract ProtocolVersions_RegisterUpgrade_Test is ProtocolVersions_TestInit { assertNotEq(protocolVersions.scheduleId(), bytes32(0)); } - /// @notice Tests that registering with a timestamp inside the notice window reverts. - function test_registerUpgrade_insufficientNotice_reverts() external { + /// @notice Tests that registering with a timestamp inside the notice window succeeds — the + /// notice period is not enforced at registration, only via `setTimestamp`/`delayTimestamp`. + function test_registerUpgrade_shortNotice_succeeds() external { uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() - 1; - vm.expectRevert(abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_InsufficientNotice.selector, ts)); vm.prank(_owner); protocolVersions.registerUpgrade(ts, 0); + assertEq(protocolVersions.getSchedule()[CANYON], ts); } /// @notice Tests that a non-zero minProtocolVersion bumps the minimum during registration. From 681d04c746a89b9b539b1efbc64cbf3084da8e8e Mon Sep 17 00:00:00 2001 From: Pelle Date: Fri, 17 Jul 2026 09:59:02 -0600 Subject: [PATCH 11/19] feat(L1): bind aggregate proofs to ProtocolVersions schedule (#359) * feat(L1): bind aggregate proofs to ProtocolVersions schedule * fix(deploy): keep dev ProtocolVersions schedule operable * fix(deploy): wire AggregateVerifier to deployed ProtocolVersions proxy --------- Co-authored-by: Codex Co-authored-by: Claude --- interfaces/L1/proofs/IAggregateVerifier.sol | 3 ++ scripts/deploy/SystemDeploy.s.sol | 7 +++-- scripts/multiproof/DeployDevBase.s.sol | 14 +++++++-- snapshots/abi/AggregateVerifier.json | 31 +++++++++++++++++++ snapshots/semver-lock.json | 4 +-- .../storageLayout/AggregateVerifier.json | 7 +++++ src/L1/proofs/AggregateVerifier.sol | 24 ++++++++++++-- test/L1/OptimismPortal2.t.sol | 3 +- test/L1/proofs/AggregateVerifier.t.sol | 29 ++++++++++++++++- test/L1/proofs/BaseTest.t.sol | 10 +++++- test/L1/proofs/DisputeGameFactory.t.sol | 3 +- 11 files changed, 122 insertions(+), 13 deletions(-) diff --git a/interfaces/L1/proofs/IAggregateVerifier.sol b/interfaces/L1/proofs/IAggregateVerifier.sol index dd588e4ec..125fc3aa4 100644 --- a/interfaces/L1/proofs/IAggregateVerifier.sol +++ b/interfaces/L1/proofs/IAggregateVerifier.sol @@ -5,6 +5,7 @@ import { IDisputeGame } from "./IDisputeGame.sol"; import { IDisputeGameFactory } from "./IDisputeGameFactory.sol"; import { IDelayedWETH } from "./IDelayedWETH.sol"; import { IVerifier } from "./IVerifier.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { Proposal, Hash } from "src/libraries/bridge/Types.sol"; import { Timestamp } from "src/libraries/bridge/LibUDT.sol"; @@ -23,6 +24,7 @@ interface IAggregateVerifier is IDisputeGame { function ZK_RANGE_HASH() external view returns (bytes32); function ZK_AGGREGATE_HASH() external view returns (bytes32); function CONFIG_HASH() external view returns (bytes32); + function PROTOCOL_VERSIONS() external view returns (IProtocolVersions); function L2_CHAIN_ID() external view returns (uint256); function BLOCK_INTERVAL() external view returns (uint256); function INTERMEDIATE_BLOCK_INTERVAL() external view returns (uint256); @@ -35,6 +37,7 @@ interface IAggregateVerifier is IDisputeGame { function counteredByIntermediateRootIndexPlusOne() external view returns (uint256); function expectedResolution() external view returns (Timestamp); function proofCount() external view returns (uint8); + function scheduleId() external view returns (bytes32); function initializeWithInitData(bytes calldata proof) external payable; function verifyProposalProof(bytes calldata proofBytes) external; diff --git a/scripts/deploy/SystemDeploy.s.sol b/scripts/deploy/SystemDeploy.s.sol index d12aa6c08..e8e1a19cf 100644 --- a/scripts/deploy/SystemDeploy.s.sol +++ b/scripts/deploy/SystemDeploy.s.sol @@ -129,6 +129,7 @@ contract SystemDeploy is Script { uint256 l2ChainId; uint256 multiproofBlockInterval; uint256 multiproofIntermediateBlockInterval; + IProtocolVersions protocolVersions; } struct MultiproofOutput { @@ -1048,7 +1049,8 @@ contract SystemDeploy is Script { multiproofConfigHash: _input.multiproofConfigHash, l2ChainId: _opChainInput.l2ChainId, multiproofBlockInterval: _input.multiproofBlockInterval, - multiproofIntermediateBlockInterval: _input.multiproofIntermediateBlockInterval + multiproofIntermediateBlockInterval: _input.multiproofIntermediateBlockInterval, + protocolVersions: _output.protocolVersionsProxy }) ); @@ -1077,7 +1079,8 @@ contract SystemDeploy is Script { _input.multiproofConfigHash, _input.l2ChainId, _input.multiproofBlockInterval, - _input.multiproofIntermediateBlockInterval + _input.multiproofIntermediateBlockInterval, + _input.protocolVersions ) ) ); diff --git a/scripts/multiproof/DeployDevBase.s.sol b/scripts/multiproof/DeployDevBase.s.sol index 31d009270..f9c450d3e 100644 --- a/scripts/multiproof/DeployDevBase.s.sol +++ b/scripts/multiproof/DeployDevBase.s.sol @@ -16,6 +16,8 @@ import { DeployUtils } from "scripts/libraries/DeployUtils.sol"; import { AggregateVerifier } from "src/L1/proofs/AggregateVerifier.sol"; import { IVerifier } from "interfaces/L1/proofs/IVerifier.sol"; +import { ProtocolVersions } from "src/L1/ProtocolVersions.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { MockVerifier } from "test/mocks/MockVerifier.sol"; import { TEEProverRegistry } from "src/L1/proofs/tee/TEEProverRegistry.sol"; import { TEEVerifier } from "src/L1/proofs/tee/TEEVerifier.sol"; @@ -34,6 +36,7 @@ abstract contract DeployDevBase is Script { IAnchorStateRegistry public mockAnchorRegistry; address public mockDelayedWETH; address public aggregateVerifier; + MinimalProxyAdmin internal proxyAdmin; function setUp() public { DeployUtils.etchLabelAndAllowCheatcodes({ _etchTo: address(cfg), _cname: "DeployConfig" }); @@ -61,7 +64,7 @@ abstract contract DeployDevBase is Script { function _deployInfrastructure(GameType gameType) internal { address owner = cfg.finalSystemOwner(); address factoryImpl = address(new DisputeGameFactory()); - MinimalProxyAdmin proxyAdmin = new MinimalProxyAdmin(owner); + proxyAdmin = new MinimalProxyAdmin(owner); Proxy proxy = new Proxy(msg.sender); proxy.upgradeTo(factoryImpl); @@ -104,6 +107,12 @@ abstract contract DeployDevBase is Script { AggregateVerifier.ZkHashes memory zkHashes = AggregateVerifier.ZkHashes({ rangeHash: cfg.zkRangeHash(), aggregateHash: cfg.zkAggregationHash() }); + Proxy protocolVersionsProxy = new Proxy(msg.sender); + protocolVersionsProxy.upgradeToAndCall( + address(new ProtocolVersions()), abi.encodeCall(IProtocolVersions.initialize, (address(0))) + ); + protocolVersionsProxy.changeAdmin(address(proxyAdmin)); + aggregateVerifier = address( new AggregateVerifier( gameType, @@ -116,7 +125,8 @@ abstract contract DeployDevBase is Script { cfg.multiproofConfigHash(), cfg.l2ChainId(), _blockInterval(), - _intermediateBlockInterval() + _intermediateBlockInterval(), + IProtocolVersions(address(protocolVersionsProxy)) ) ); diff --git a/snapshots/abi/AggregateVerifier.json b/snapshots/abi/AggregateVerifier.json index d8ee465e9..6b5d6357c 100644 --- a/snapshots/abi/AggregateVerifier.json +++ b/snapshots/abi/AggregateVerifier.json @@ -67,6 +67,11 @@ "internalType": "uint256", "name": "intermediateBlockInterval", "type": "uint256" + }, + { + "internalType": "contract IProtocolVersions", + "name": "protocolVersions", + "type": "address" } ], "stateMutability": "nonpayable", @@ -215,6 +220,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "PROTOCOL_VERSIONS", + "outputs": [ + { + "internalType": "contract IProtocolVersions", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "SLOW_FINALIZATION_DELAY", @@ -681,6 +699,19 @@ "stateMutability": "pure", "type": "function" }, + { + "inputs": [], + "name": "scheduleId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "startingBlockNumber", diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 49f622405..f597a206b 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -32,8 +32,8 @@ "sourceCodeHash": "0xf122a50487efe9bd5a620262ba20ef4adbca14eeec2af7fd32e6e16739001596" }, "src/L1/proofs/AggregateVerifier.sol:AggregateVerifier": { - "initCodeHash": "0x90629c679e821a70553d899a68e818bcddb672a004a0d2e09078d17028a2f082", - "sourceCodeHash": "0x4835d3de998b2951898f0e427c61b0c330ac3feb5f7a8dc9fd0deb78912a9b7a" + "initCodeHash": "0x6f3c53245830b9c72c8199695e93959d5ed3b0cb8352e5b50b3dfa28183ac787", + "sourceCodeHash": "0x1f2e2b07ebc4359fa31ea7400ace9bab0e4f6099d8ff3ff7b6a2b14cccfb89ca" }, "src/L1/proofs/AnchorStateRegistry.sol:AnchorStateRegistry": { "initCodeHash": "0x6f3afd2d0ef97a82ca3111976322b99343a270e54cd4a405028f2f29c75f7fb1", diff --git a/snapshots/storageLayout/AggregateVerifier.json b/snapshots/storageLayout/AggregateVerifier.json index 08fd716cb..1226af645 100644 --- a/snapshots/storageLayout/AggregateVerifier.json +++ b/snapshots/storageLayout/AggregateVerifier.json @@ -96,5 +96,12 @@ "offset": 8, "slot": "7", "type": "uint8" + }, + { + "bytes": "32", + "label": "scheduleId", + "offset": 0, + "slot": "8", + "type": "bytes32" } ] \ No newline at end of file diff --git a/src/L1/proofs/AggregateVerifier.sol b/src/L1/proofs/AggregateVerifier.sol index a468dc058..fd447fe6a 100644 --- a/src/L1/proofs/AggregateVerifier.sol +++ b/src/L1/proofs/AggregateVerifier.sol @@ -26,6 +26,7 @@ import { ReentrancyGuard } from "lib/solady/src/utils/ReentrancyGuard.sol"; import { IVerifier } from "interfaces/L1/proofs/IVerifier.sol"; import { ISemver } from "interfaces/universal/ISemver.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { //////////////////////////////////////////////////////////////// @@ -113,6 +114,9 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice The game type ID. GameType internal immutable GAME_TYPE; + /// @notice The ProtocolVersions upgrade schedule contract. + IProtocolVersions public immutable PROTOCOL_VERSIONS; + //////////////////////////////////////////////////////////////// // State Vars // //////////////////////////////////////////////////////////////// @@ -162,6 +166,11 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice The number of proofs provided. uint8 public proofCount; + /// @notice The ProtocolVersions scheduleId snapshotted at game initialization. + /// @dev Pinned once at init; every proof in this game commits to this value, binding it to the + /// upgrade schedule in effect when the game was created. + bytes32 public scheduleId; + //////////////////////////////////////////////////////////////// // Events // //////////////////////////////////////////////////////////////// @@ -259,6 +268,7 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @param l2ChainId The chain ID of the L2 network. /// @param blockInterval The block interval. /// @param intermediateBlockInterval The intermediate block interval. + /// @param protocolVersions The ProtocolVersions upgrade schedule contract. constructor( GameType gameType_, IAnchorStateRegistry anchorStateRegistry_, @@ -270,7 +280,8 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { bytes32 configHash, uint256 l2ChainId, uint256 blockInterval, - uint256 intermediateBlockInterval + uint256 intermediateBlockInterval, + IProtocolVersions protocolVersions ) { // Block interval and intermediate block interval must be positive and divisible. if (blockInterval == 0 || intermediateBlockInterval == 0 || blockInterval % intermediateBlockInterval != 0) { @@ -291,6 +302,7 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { L2_CHAIN_ID = l2ChainId; BLOCK_INTERVAL = blockInterval; INTERMEDIATE_BLOCK_INTERVAL = intermediateBlockInterval; + PROTOCOL_VERSIONS = protocolVersions; INITIALIZE_CALLDATA_SIZE = 0x8E + 0x20 * intermediateOutputRootsCount(); } @@ -364,6 +376,10 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { // Set the game as initialized. initialized = true; + // Snapshot the scheduleId from ProtocolVersions. Every proof in this game commits to this + // value, pinning them to the upgrade schedule in effect at the game's creation block. + scheduleId = PROTOCOL_VERSIONS.scheduleId(); + // Set the game's starting timestamp. createdAt = Timestamp.wrap(uint64(block.timestamp)); @@ -899,7 +915,8 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { endingL2SequenceNumber, intermediateRoots, CONFIG_HASH, - TEE_IMAGE_HASH + TEE_IMAGE_HASH, + scheduleId ) ); @@ -933,7 +950,8 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { endingL2SequenceNumber, intermediateRoots, CONFIG_HASH, - ZK_RANGE_HASH + ZK_RANGE_HASH, + scheduleId ) ); diff --git a/test/L1/OptimismPortal2.t.sol b/test/L1/OptimismPortal2.t.sol index bf93e25f4..04e8d1df5 100644 --- a/test/L1/OptimismPortal2.t.sol +++ b/test/L1/OptimismPortal2.t.sol @@ -90,7 +90,8 @@ abstract contract OptimismPortal2_TestInit is DisputeGameFactory_TestInit { bytes32(uint256(4)), deploy.cfg().l2ChainId(), 100, - 10 + 10, + protocolVersions ); disputeGameFactory.setImplementation(respectedGameType, IDisputeGame(address(gameImpl))); disputeGameFactory.setInitBond(respectedGameType, 0); diff --git a/test/L1/proofs/AggregateVerifier.t.sol b/test/L1/proofs/AggregateVerifier.t.sol index 30907b20e..a6d34f7fb 100644 --- a/test/L1/proofs/AggregateVerifier.t.sol +++ b/test/L1/proofs/AggregateVerifier.t.sol @@ -11,6 +11,7 @@ import { Claim, Timestamp } from "src/libraries/bridge/LibUDT.sol"; import { AggregateVerifier } from "src/L1/proofs/AggregateVerifier.sol"; import { IVerifier } from "interfaces/L1/proofs/IVerifier.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { LibClone } from "lib/solady/src/utils/LibClone.sol"; @@ -36,6 +37,31 @@ contract AggregateVerifierTest is BaseTest { _createAndAssertInitializedGame("zk-proof", AggregateVerifier.ProofType.ZK, ZK_PROVER, address(0), ZK_PROVER); } + /// @notice init snapshots the live scheduleId into storage and pins it: a later schedule change + /// must not alter the game's snapshot (proves it is stored once, not read live). + /// @dev Only covers the stored getter. That the snapshot flows into the proof journal is not + /// asserted here — MockVerifier ignores the journal, so journal binding is untestable. + function test_initialize_pinsScheduleId_succeeds() public { + // Register an upgrade so the schedule commitment is non-trivial (non-zero). + protocolVersions.registerUpgrade(uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100, 1); + bytes32 pinned = protocolVersions.scheduleId(); + assertTrue(pinned != bytes32(0)); + + Claim rootClaim = _advanceL2BlockAndClaim(); + bytes memory proof = _generateProof("tee-proof", AggregateVerifier.ProofType.TEE); + + AggregateVerifier game = _createAggregateVerifierGame( + TEE_PROVER, rootClaim, currentL2BlockNumber, address(anchorStateRegistry), proof + ); + + assertEq(game.scheduleId(), pinned); + + // Move the live schedule after creation; the game's snapshot must stay pinned. + protocolVersions.registerUpgrade(uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 200, 2); + assertNotEq(protocolVersions.scheduleId(), pinned); + assertEq(game.scheduleId(), pinned); + } + function testInitializeFailsIfInvalidCallDataSize() public { Claim rootClaim = _advanceL2BlockAndClaim(); @@ -417,7 +443,8 @@ contract AggregateVerifierTest is BaseTest { CONFIG_HASH, L2_CHAIN_ID, blockInterval, - intermediateBlockInterval + intermediateBlockInterval, + IProtocolVersions(address(protocolVersions)) ); } } diff --git a/test/L1/proofs/BaseTest.t.sol b/test/L1/proofs/BaseTest.t.sol index 2016de959..87e6c96f5 100644 --- a/test/L1/proofs/BaseTest.t.sol +++ b/test/L1/proofs/BaseTest.t.sol @@ -19,6 +19,8 @@ import { ProxyAdmin } from "src/universal/ProxyAdmin.sol"; import { AggregateVerifier } from "src/L1/proofs/AggregateVerifier.sol"; import { IVerifier } from "interfaces/L1/proofs/IVerifier.sol"; +import { ProtocolVersions } from "src/L1/ProtocolVersions.sol"; +import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { MockVerifier } from "test/mocks/MockVerifier.sol"; @@ -54,6 +56,7 @@ contract BaseTest is Test { MockVerifier internal teeVerifier; MockVerifier internal zkVerifier; + ProtocolVersions internal protocolVersions; function setUp() public virtual { _deployContractsAndProxies(); @@ -78,9 +81,12 @@ contract BaseTest is Test { proxyAdmin = new ProxyAdmin(address(this)); + ProtocolVersions _protocolVersions = new ProtocolVersions(); + anchorStateRegistry = AnchorStateRegistry(_deployProxy(address(_anchorStateRegistry))); factory = DisputeGameFactory(_deployProxy(address(_factory))); delayedWETH = DelayedWETH(payable(_deployProxy(address(_delayedWETH)))); + protocolVersions = ProtocolVersions(_deployProxy(address(_protocolVersions))); teeVerifier = new MockVerifier(IAnchorStateRegistry(address(anchorStateRegistry))); zkVerifier = new MockVerifier(IAnchorStateRegistry(address(anchorStateRegistry))); @@ -103,6 +109,7 @@ contract BaseTest is Test { ); factory.initialize(address(this)); delayedWETH.initialize(systemConfig); + protocolVersions.initialize(address(0)); } function _deployAndSetAggregateVerifier() internal { @@ -117,7 +124,8 @@ contract BaseTest is Test { CONFIG_HASH, L2_CHAIN_ID, BLOCK_INTERVAL, - INTERMEDIATE_BLOCK_INTERVAL + INTERMEDIATE_BLOCK_INTERVAL, + IProtocolVersions(address(protocolVersions)) ); factory.setImplementation(GameTypes.AGGREGATE_VERIFIER, IDisputeGame(address(aggregateVerifierImpl))); diff --git a/test/L1/proofs/DisputeGameFactory.t.sol b/test/L1/proofs/DisputeGameFactory.t.sol index 6cab78c26..768fff7ce 100644 --- a/test/L1/proofs/DisputeGameFactory.t.sol +++ b/test/L1/proofs/DisputeGameFactory.t.sol @@ -230,7 +230,8 @@ contract DisputeGameFactory_Create_Test is DisputeGameFactory_TestInit { bytes32(uint256(4)), L2_CHAIN_ID, AGGREGATE_BLOCK_INTERVAL, - AGGREGATE_INTERMEDIATE_BLOCK_INTERVAL + AGGREGATE_INTERMEDIATE_BLOCK_INTERVAL, + protocolVersions ); _setGame(address(gameImpl), GameTypes.AGGREGATE_VERIFIER); From 6c530ef901d333f8af96a05a3f4e43525287eb93 Mon Sep 17 00:00:00 2001 From: Jack Chuma Date: Mon, 20 Jul 2026 17:48:30 -0400 Subject: [PATCH 12/19] chore(L1): remove EthLockbox (#378) * chore(L1): remove EthLockbox Co-authored-by: Codex * test(L1): retain ETH after failed withdrawal Co-authored-by: Codex --------- Co-authored-by: Codex --- interfaces/L1/IETHLockbox.sol | 40 -- interfaces/L1/IOptimismPortal2.sol | 3 - scripts/deploy/SystemDeploy.s.sol | 26 - scripts/libraries/Types.sol | 3 - snapshots/abi/ETHLockbox.json | 395 ------------ snapshots/abi/OptimismPortal2.json | 18 - snapshots/semver-lock.json | 12 +- snapshots/storageLayout/ETHLockbox.json | 37 -- snapshots/storageLayout/OptimismPortal2.json | 4 +- src/L1/ETHLockbox.sol | 232 ------- src/L1/OptimismPortal2.sol | 56 +- src/L1/SystemConfig.sol | 40 +- src/libraries/Features.sol | 6 - test/L1/ETHLockbox.t.sol | 623 ------------------- test/L1/L1StandardBridge.t.sol | 37 +- test/L1/OptimismPortal2.t.sol | 227 +------ test/L1/SystemConfig.t.sol | 82 +-- test/deploy/SystemDeploy.t.sol | 2 - test/deploy/SystemDeployAssertions.sol | 22 - test/setup/ForkLive.s.sol | 15 - test/setup/Setup.sol | 11 - test/vendor/Initializable.t.sol | 23 - 22 files changed, 34 insertions(+), 1880 deletions(-) delete mode 100644 interfaces/L1/IETHLockbox.sol delete mode 100644 snapshots/abi/ETHLockbox.json delete mode 100644 snapshots/storageLayout/ETHLockbox.json delete mode 100644 src/L1/ETHLockbox.sol delete mode 100644 test/L1/ETHLockbox.t.sol diff --git a/interfaces/L1/IETHLockbox.sol b/interfaces/L1/IETHLockbox.sol deleted file mode 100644 index c5ee53d44..000000000 --- a/interfaces/L1/IETHLockbox.sol +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -import { ISemver } from "interfaces/universal/ISemver.sol"; -import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; -import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; -import { IOptimismPortal2 } from "interfaces/L1/IOptimismPortal2.sol"; -import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; -import { IReinitializableBase } from "interfaces/universal/IReinitializableBase.sol"; - -interface IETHLockbox is IProxyAdminOwnedBase, ISemver, IReinitializableBase { - error ETHLockbox_Unauthorized(); - error ETHLockbox_Paused(); - error ETHLockbox_InsufficientBalance(); - error ETHLockbox_NoWithdrawalTransactions(); - error ETHLockbox_DifferentSuperchainConfig(); - - event Initialized(uint8 version); - event ETHLocked(IOptimismPortal2 indexed portal, uint256 amount); - event ETHUnlocked(IOptimismPortal2 indexed portal, uint256 amount); - event PortalAuthorized(IOptimismPortal2 indexed portal); - event LockboxAuthorized(IETHLockbox indexed lockbox); - event LiquidityMigrated(IETHLockbox indexed lockbox, uint256 amount); - event LiquidityReceived(IETHLockbox indexed lockbox, uint256 amount); - - function initialize(ISystemConfig _systemConfig, IOptimismPortal2[] calldata _portals) external; - function systemConfig() external view returns (ISystemConfig); - function paused() external view returns (bool); - function authorizedPortals(IOptimismPortal2) external view returns (bool); - function authorizedLockboxes(IETHLockbox) external view returns (bool); - function receiveLiquidity() external payable; - function lockETH() external payable; - function unlockETH(uint256 _value) external; - function authorizePortal(IOptimismPortal2 _portal) external; - function authorizeLockbox(IETHLockbox _lockbox) external; - function migrateLiquidity(IETHLockbox _lockbox) external; - function superchainConfig() external view returns (ISuperchainConfig); - - function __constructor__() external; -} diff --git a/interfaces/L1/IOptimismPortal2.sol b/interfaces/L1/IOptimismPortal2.sol index f25237103..6bebf02bd 100644 --- a/interfaces/L1/IOptimismPortal2.sol +++ b/interfaces/L1/IOptimismPortal2.sol @@ -9,7 +9,6 @@ import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; import { IAnchorStateRegistry } from "interfaces/L1/proofs/IAnchorStateRegistry.sol"; import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; interface IOptimismPortal2 is IProxyAdminOwnedBase { error ContentLengthMismatch(); @@ -33,7 +32,6 @@ interface IOptimismPortal2 is IProxyAdminOwnedBase { error OptimismPortal_NoReentrancy(); error OptimismPortal_ProofNotOldEnough(); error OptimismPortal_Unproven(); - error OptimismPortal_InvalidLockboxState(); error OutOfGas(); error UnexpectedList(); error UnexpectedString(); @@ -47,7 +45,6 @@ interface IOptimismPortal2 is IProxyAdminOwnedBase { receive() external payable; function anchorStateRegistry() external view returns (IAnchorStateRegistry); - function ethLockbox() external view returns (IETHLockbox); function checkWithdrawal(bytes32 _withdrawalHash, address _proofSubmitter) external view; function depositTransaction( address _to, diff --git a/scripts/deploy/SystemDeploy.s.sol b/scripts/deploy/SystemDeploy.s.sol index e8e1a19cf..00843e755 100644 --- a/scripts/deploy/SystemDeploy.s.sol +++ b/scripts/deploy/SystemDeploy.s.sol @@ -12,7 +12,6 @@ import { DeployUtils } from "scripts/libraries/DeployUtils.sol"; import { StateDiff } from "scripts/libraries/StateDiff.sol"; import { Types } from "scripts/libraries/Types.sol"; -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; import { IL1CrossDomainMessenger } from "interfaces/L1/IL1CrossDomainMessenger.sol"; import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol"; import { IL1StandardBridge } from "interfaces/L1/IL1StandardBridge.sol"; @@ -213,7 +212,6 @@ contract SystemDeploy is Script { superchainConfigImpl: artifacts.mustGetAddress("SuperchainConfigImpl"), l1ERC721BridgeImpl: artifacts.mustGetAddress("L1ERC721BridgeImpl"), optimismPortalImpl: artifacts.mustGetAddress("OptimismPortalImpl"), - ethLockboxImpl: artifacts.mustGetAddress("ETHLockboxImpl"), systemConfigImpl: artifacts.mustGetAddress("SystemConfigImpl"), optimismMintableERC20FactoryImpl: artifacts.mustGetAddress("OptimismMintableERC20FactoryImpl"), l1CrossDomainMessengerImpl: artifacts.mustGetAddress("L1CrossDomainMessengerImpl"), @@ -453,7 +451,6 @@ contract SystemDeploy is Script { output_.l1StandardBridgeImpl = address(_deployL1StandardBridgeImpl()); output_.optimismMintableERC20FactoryImpl = address(_deployOptimismMintableERC20FactoryImpl()); output_.optimismPortalImpl = address(_deployOptimismPortalImpl(_input)); - output_.ethLockboxImpl = address(_deployETHLockboxImpl()); output_.delayedWETHImpl = address(_deployDelayedWETHImpl(_input)); output_.disputeGameFactoryImpl = address(_deployDisputeGameFactoryImpl()); output_.anchorStateRegistryImpl = address(_deployAnchorStateRegistryImpl(_input)); @@ -488,7 +485,6 @@ contract SystemDeploy is Script { output_.l1ERC721BridgeProxy = IL1ERC721Bridge(_deployProxy(_input, output_.opChainProxyAdmin, "L1ERC721Bridge")); output_.optimismPortalProxy = IOptimismPortal(payable(_deployProxy(_input, output_.opChainProxyAdmin, "OptimismPortal"))); - output_.ethLockboxProxy = IETHLockbox(_deployProxy(_input, output_.opChainProxyAdmin, "ETHLockbox")); output_.systemConfigProxy = ISystemConfig(_deployProxy(_input, output_.opChainProxyAdmin, "SystemConfig")); output_.optimismMintableERC20FactoryProxy = IOptimismMintableERC20Factory( _deployProxy(_input, output_.opChainProxyAdmin, "OptimismMintableERC20Factory") @@ -587,15 +583,6 @@ contract SystemDeploy is Script { abi.encodeCall(IOptimismPortal.initialize, (_output.systemConfigProxy, _output.anchorStateRegistryProxy)) ); - IOptimismPortal[] memory portals = new IOptimismPortal[](1); - portals[0] = _output.optimismPortalProxy; - _upgradeToAndCall( - _output.opChainProxyAdmin, - address(_output.ethLockboxProxy), - _impls.ethLockboxImpl, - abi.encodeCall(IETHLockbox.initialize, (_output.systemConfigProxy, portals)) - ); - _upgradeToAndCall( _output.opChainProxyAdmin, address(_output.optimismMintableERC20FactoryProxy), @@ -933,16 +920,6 @@ contract SystemDeploy is Script { ); } - function _deployETHLockboxImpl() internal returns (IETHLockbox) { - return IETHLockbox( - DeployUtils.createDeterministic({ - _name: "ETHLockbox", - _args: DeployUtils.encodeConstructor(abi.encodeCall(IETHLockbox.__constructor__, ())), - _salt: DeployUtils.DEFAULT_SALT - }) - ); - } - function _deployDelayedWETHImpl(ImplementationInput memory _input) internal returns (IDelayedWETH) { return IDelayedWETH( DeployUtils.createDeterministic({ @@ -1134,7 +1111,6 @@ contract SystemDeploy is Script { DeployUtils.assertValidContractAddress(_impls.superchainConfigImpl); DeployUtils.assertValidContractAddress(_impls.l1ERC721BridgeImpl); DeployUtils.assertValidContractAddress(_impls.optimismPortalImpl); - DeployUtils.assertValidContractAddress(_impls.ethLockboxImpl); DeployUtils.assertValidContractAddress(_impls.systemConfigImpl); DeployUtils.assertValidContractAddress(_impls.optimismMintableERC20FactoryImpl); DeployUtils.assertValidContractAddress(_impls.l1CrossDomainMessengerImpl); @@ -1164,7 +1140,6 @@ contract SystemDeploy is Script { artifacts.save("OptimismMintableERC20FactoryProxy", address(chain.optimismMintableERC20FactoryProxy)); artifacts.save("L1StandardBridgeProxy", address(chain.l1StandardBridgeProxy)); artifacts.save("L1CrossDomainMessengerProxy", address(chain.l1CrossDomainMessengerProxy)); - artifacts.save("ETHLockboxProxy", address(chain.ethLockboxProxy)); artifacts.save("DisputeGameFactoryProxy", address(chain.disputeGameFactoryProxy)); artifacts.save("DelayedWETHProxy", address(chain.delayedWETHProxy)); artifacts.save("AnchorStateRegistryProxy", address(chain.anchorStateRegistryProxy)); @@ -1187,7 +1162,6 @@ contract SystemDeploy is Script { artifacts.save("SuperchainConfigImpl", _impls.superchainConfigImpl); artifacts.save("L1ERC721BridgeImpl", _impls.l1ERC721BridgeImpl); artifacts.save("OptimismPortalImpl", _impls.optimismPortalImpl); - artifacts.save("ETHLockboxImpl", _impls.ethLockboxImpl); artifacts.save("SystemConfigImpl", _impls.systemConfigImpl); artifacts.save("OptimismMintableERC20FactoryImpl", _impls.optimismMintableERC20FactoryImpl); artifacts.save("L1CrossDomainMessengerImpl", _impls.l1CrossDomainMessengerImpl); diff --git a/scripts/libraries/Types.sol b/scripts/libraries/Types.sol index 9f26a5e75..941784952 100644 --- a/scripts/libraries/Types.sol +++ b/scripts/libraries/Types.sol @@ -16,7 +16,6 @@ import { IL1CrossDomainMessenger } from "interfaces/L1/IL1CrossDomainMessenger.s import { IL1ERC721Bridge } from "interfaces/L1/IL1ERC721Bridge.sol"; import { IL1StandardBridge } from "interfaces/L1/IL1StandardBridge.sol"; import { IOptimismMintableERC20Factory } from "interfaces/universal/IOptimismMintableERC20Factory.sol"; -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { Proposal } from "src/libraries/bridge/Types.sol"; @@ -52,7 +51,6 @@ library Types { IOptimismMintableERC20Factory optimismMintableERC20FactoryProxy; IL1StandardBridge l1StandardBridgeProxy; IL1CrossDomainMessenger l1CrossDomainMessengerProxy; - IETHLockbox ethLockboxProxy; IOptimismPortal2 optimismPortalProxy; IDisputeGameFactory disputeGameFactoryProxy; IAnchorStateRegistry anchorStateRegistryProxy; @@ -71,7 +69,6 @@ library Types { address superchainConfigImpl; address l1ERC721BridgeImpl; address optimismPortalImpl; - address ethLockboxImpl; address systemConfigImpl; address optimismMintableERC20FactoryImpl; address l1CrossDomainMessengerImpl; diff --git a/snapshots/abi/ETHLockbox.json b/snapshots/abi/ETHLockbox.json deleted file mode 100644 index 2f09a99da..000000000 --- a/snapshots/abi/ETHLockbox.json +++ /dev/null @@ -1,395 +0,0 @@ -[ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "contract IETHLockbox", - "name": "_lockbox", - "type": "address" - } - ], - "name": "authorizeLockbox", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IOptimismPortal2", - "name": "_portal", - "type": "address" - } - ], - "name": "authorizePortal", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IETHLockbox", - "name": "", - "type": "address" - } - ], - "name": "authorizedLockboxes", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IOptimismPortal2", - "name": "", - "type": "address" - } - ], - "name": "authorizedPortals", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "initVersion", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ISystemConfig", - "name": "_systemConfig", - "type": "address" - }, - { - "internalType": "contract IOptimismPortal2[]", - "name": "_portals", - "type": "address[]" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "lockETH", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IETHLockbox", - "name": "_lockbox", - "type": "address" - } - ], - "name": "migrateLiquidity", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "proxyAdmin", - "outputs": [ - { - "internalType": "contract IProxyAdmin", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "proxyAdminOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "receiveLiquidity", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "superchainConfig", - "outputs": [ - { - "internalType": "contract ISuperchainConfig", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "systemConfig", - "outputs": [ - { - "internalType": "contract ISystemConfig", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "unlockETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IOptimismPortal2", - "name": "portal", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "ETHLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IOptimismPortal2", - "name": "portal", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "ETHUnlocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IETHLockbox", - "name": "lockbox", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LiquidityMigrated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IETHLockbox", - "name": "lockbox", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LiquidityReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IETHLockbox", - "name": "lockbox", - "type": "address" - } - ], - "name": "LockboxAuthorized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IOptimismPortal2", - "name": "portal", - "type": "address" - } - ], - "name": "PortalAuthorized", - "type": "event" - }, - { - "inputs": [], - "name": "ETHLockbox_DifferentSuperchainConfig", - "type": "error" - }, - { - "inputs": [], - "name": "ETHLockbox_InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "ETHLockbox_NoWithdrawalTransactions", - "type": "error" - }, - { - "inputs": [], - "name": "ETHLockbox_Paused", - "type": "error" - }, - { - "inputs": [], - "name": "ETHLockbox_Unauthorized", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyAdminOwnedBase_NotProxyAdmin", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyAdminOwnedBase_NotProxyAdminOwner", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyAdminOwnedBase_NotResolvedDelegateProxy", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyAdminOwnedBase_NotSharedProxyAdminOwner", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyAdminOwnedBase_ProxyAdminNotFound", - "type": "error" - }, - { - "inputs": [], - "name": "ReinitializableBase_ZeroInitVersion", - "type": "error" - } -] \ No newline at end of file diff --git a/snapshots/abi/OptimismPortal2.json b/snapshots/abi/OptimismPortal2.json index 9d19d18db..1d5385756 100644 --- a/snapshots/abi/OptimismPortal2.json +++ b/snapshots/abi/OptimismPortal2.json @@ -130,19 +130,6 @@ "stateMutability": "payable", "type": "function" }, - { - "inputs": [], - "name": "ethLockbox", - "outputs": [ - { - "internalType": "contract IETHLockbox", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -794,11 +781,6 @@ "name": "OptimismPortal_InvalidDisputeGame", "type": "error" }, - { - "inputs": [], - "name": "OptimismPortal_InvalidLockboxState", - "type": "error" - }, { "inputs": [], "name": "OptimismPortal_InvalidMerkleProof", diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index f597a206b..6575846fd 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -1,8 +1,4 @@ { - "src/L1/ETHLockbox.sol:ETHLockbox": { - "initCodeHash": "0x65db3aa3c2e3221065752f66016fa02b66688a01cc5c3066533b27fe620619c8", - "sourceCodeHash": "0x519c4606618c1d5fa489dc99437c895171b16179cbb74f602011ffe0b5902788" - }, "src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger": { "initCodeHash": "0x3dc659aafb03bd357f92abfc6794af89ee0ddd5212364551637422bf8d0b00f9", "sourceCodeHash": "0xb1467f925aaf0a834bc98cdfaffe8832bdf57d57a0e22087179d1c3b4bee2c53" @@ -16,8 +12,8 @@ "sourceCodeHash": "0xd9f576a79e97bc541b3d7a2ee928f34223edaaecb074eeb9e6e2ecee857ce6a0" }, "src/L1/OptimismPortal2.sol:OptimismPortal2": { - "initCodeHash": "0xdd5d13b03c015d45d0cdda512795c4fe8bbd60557e3848fed53260ee887b2df4", - "sourceCodeHash": "0xa1281f5da03fa0431eabad33da23f51a8d835b0dd04554603fd59e11efe9fa51" + "initCodeHash": "0xe8145d0c3bd0e35f84086cddd75c73915332c42b40046d52188d822119915c3d", + "sourceCodeHash": "0x811596e7486cab9ceeeb61405b9ae510d93fcbbdfa11949201a367506c53194a" }, "src/L1/ProtocolVersions.sol:ProtocolVersions": { "initCodeHash": "0x8ff4bbb0adb8115a3d77e1b706038b0758fdb3a0b183108a794b3cb6200acd83", @@ -28,8 +24,8 @@ "sourceCodeHash": "0x79f0c771fc5f6d222d89b05addedc08ce40a7a42423fbd66f7cbb6cde3c2e74f" }, "src/L1/SystemConfig.sol:SystemConfig": { - "initCodeHash": "0x3e8e52d96398a6de91d8922769cc5d0bc7acb2a692689ceb70f1de816e8d6b14", - "sourceCodeHash": "0xf122a50487efe9bd5a620262ba20ef4adbca14eeec2af7fd32e6e16739001596" + "initCodeHash": "0xb91123c7a4c051f2c9af220a5981301499d43c7740892db4ea8abce183437a8c", + "sourceCodeHash": "0x780ff372493ba9010bc0d13100ac896f2bf75730a9b17d4bb63aaf694dc3c634" }, "src/L1/proofs/AggregateVerifier.sol:AggregateVerifier": { "initCodeHash": "0x6f3c53245830b9c72c8199695e93959d5ed3b0cb8352e5b50b3dfa28183ac787", diff --git a/snapshots/storageLayout/ETHLockbox.json b/snapshots/storageLayout/ETHLockbox.json deleted file mode 100644 index 2af24fd9c..000000000 --- a/snapshots/storageLayout/ETHLockbox.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "bytes": "1", - "label": "_initialized", - "offset": 0, - "slot": "0", - "type": "uint8" - }, - { - "bytes": "1", - "label": "_initializing", - "offset": 1, - "slot": "0", - "type": "bool" - }, - { - "bytes": "20", - "label": "systemConfig", - "offset": 2, - "slot": "0", - "type": "contract ISystemConfig" - }, - { - "bytes": "32", - "label": "authorizedPortals", - "offset": 0, - "slot": "1", - "type": "mapping(contract IOptimismPortal2 => bool)" - }, - { - "bytes": "32", - "label": "authorizedLockboxes", - "offset": 0, - "slot": "2", - "type": "mapping(contract IETHLockbox => bool)" - } -] \ No newline at end of file diff --git a/snapshots/storageLayout/OptimismPortal2.json b/snapshots/storageLayout/OptimismPortal2.json index 649ad99cb..12b99bf49 100644 --- a/snapshots/storageLayout/OptimismPortal2.json +++ b/snapshots/storageLayout/OptimismPortal2.json @@ -134,10 +134,10 @@ }, { "bytes": "20", - "label": "ethLockbox", + "label": "spacer_63_0_20", "offset": 0, "slot": "63", - "type": "contract IETHLockbox" + "type": "address" }, { "bytes": "1", diff --git a/src/L1/ETHLockbox.sol b/src/L1/ETHLockbox.sol deleted file mode 100644 index a4d124cdf..000000000 --- a/src/L1/ETHLockbox.sol +++ /dev/null @@ -1,232 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.15; - -// Contracts -import { Initializable } from "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol"; -import { ProxyAdminOwnedBase } from "src/universal/ProxyAdminOwnedBase.sol"; -import { ReinitializableBase } from "src/universal/ReinitializableBase.sol"; - -// Libraries -import { Constants } from "src/libraries/Constants.sol"; - -// Interfaces -import { ISemver } from "interfaces/universal/ISemver.sol"; -import { IOptimismPortal2 as IOptimismPortal } from "interfaces/L1/IOptimismPortal2.sol"; -import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; -import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; - -/// @custom:proxied true -/// @title ETHLockbox -/// @notice Manages ETH liquidity locking and unlocking for authorized OptimismPortals, enabling unified ETH liquidity -/// management across chains in the superchain cluster. -contract ETHLockbox is ProxyAdminOwnedBase, Initializable, ReinitializableBase, ISemver { - /// @notice Thrown when the lockbox is paused. - error ETHLockbox_Paused(); - - /// @notice Thrown when the caller is not authorized. - error ETHLockbox_Unauthorized(); - - /// @notice Thrown when the value to unlock is greater than the balance of the lockbox. - error ETHLockbox_InsufficientBalance(); - - /// @notice Thrown when attempting to unlock ETH from the lockbox through a withdrawal transaction. - error ETHLockbox_NoWithdrawalTransactions(); - - /// @notice Thrown when any authorized portal has a different SuperchainConfig. - error ETHLockbox_DifferentSuperchainConfig(); - - /// @notice Emitted when ETH is locked in the lockbox by an authorized portal. - /// @param portal The address of the portal that locked the ETH. - /// @param amount The amount of ETH locked. - event ETHLocked(IOptimismPortal indexed portal, uint256 amount); - - /// @notice Emitted when ETH is unlocked from the lockbox by an authorized portal. - /// @param portal The address of the portal that unlocked the ETH. - /// @param amount The amount of ETH unlocked. - event ETHUnlocked(IOptimismPortal indexed portal, uint256 amount); - - /// @notice Emitted when a portal is authorized to lock and unlock ETH. - /// @param portal The address of the portal that was authorized. - event PortalAuthorized(IOptimismPortal indexed portal); - - /// @notice Emitted when an ETH lockbox is authorized to migrate its liquidity to the current ETH lockbox. - /// @param lockbox The address of the ETH lockbox that was authorized. - event LockboxAuthorized(IETHLockbox indexed lockbox); - - /// @notice Emitted when ETH liquidity is migrated from the current ETH lockbox to another. - /// @param lockbox The address of the ETH lockbox that was migrated. - event LiquidityMigrated(IETHLockbox indexed lockbox, uint256 amount); - - /// @notice Emitted when ETH liquidity is received during an authorized lockbox migration. - /// @param lockbox The address of the ETH lockbox that received the liquidity. - /// @param amount The amount of ETH received. - event LiquidityReceived(IETHLockbox indexed lockbox, uint256 amount); - - /// @notice The address of the SystemConfig contract. - ISystemConfig public systemConfig; - - /// @notice Mapping of authorized portals. - mapping(IOptimismPortal => bool) public authorizedPortals; - - /// @notice Mapping of authorized lockboxes. - mapping(IETHLockbox => bool) public authorizedLockboxes; - - /// @notice Semantic version. - /// @custom:semver 1.2.0 - function version() public view virtual returns (string memory) { - return "1.2.0"; - } - - /// @notice Constructs the ETHLockbox contract. - constructor() ReinitializableBase(1) { - _disableInitializers(); - } - - /// @notice Initializer. - /// @param _systemConfig The address of the SystemConfig contract. - /// @param _portals The addresses of the portals to authorize. - /// @dev Note: Multiple chains can share an ETHLockbox contract. In this case, all SystemConfig - /// contracts will point to the same pause identifier (the lockbox itself). Therefore, it - /// doesn't matter which SystemConfig is used here as long as it belongs to one of the - /// chains that share the lockbox. - function initialize( - ISystemConfig _systemConfig, - IOptimismPortal[] calldata _portals - ) - external - reinitializer(initVersion()) - { - // Initialization transactions must come from the ProxyAdmin or its owner. - _assertOnlyProxyAdminOrProxyAdminOwner(); - - // Now perform initialization logic. - systemConfig = _systemConfig; - for (uint256 i; i < _portals.length; i++) { - _authorizePortal(_portals[i]); - } - } - - /// @notice Getter for the current paused status. - function paused() public view returns (bool) { - return systemConfig.paused(); - } - - /// @notice Returns the SuperchainConfig contract. - /// @return ISuperchainConfig The SuperchainConfig contract. - function superchainConfig() public view returns (ISuperchainConfig) { - return systemConfig.superchainConfig(); - } - - /// @notice Authorizes a portal to lock and unlock ETH. - /// @param _portal The address of the portal to authorize. - function authorizePortal(IOptimismPortal _portal) external { - // Check that this transaction is coming from the ProxyAdmin owner. - _assertOnlyProxyAdminOwner(); - - // Authorize the portal. - _authorizePortal(_portal); - } - - /// @notice Receives the ETH liquidity migrated from an authorized lockbox. - function receiveLiquidity() external payable { - // Check that the sender is authorized to trigger this function. - IETHLockbox sender = IETHLockbox(payable(msg.sender)); - if (!authorizedLockboxes[sender]) revert ETHLockbox_Unauthorized(); - - // Emit the event. - emit LiquidityReceived(sender, msg.value); - } - - /// @notice Locks ETH in the lockbox. - /// Called by an authorized portal on a deposit to lock the ETH value. - function lockETH() external payable { - // Check that the sender is authorized to trigger this function. - IOptimismPortal sender = IOptimismPortal(payable(msg.sender)); - if (!authorizedPortals[sender]) revert ETHLockbox_Unauthorized(); - - // Emit the event. - emit ETHLocked(sender, msg.value); - } - - /// @notice Unlocks ETH from the lockbox. - /// Called by an authorized portal when finalizing a withdrawal that requires ETH. - /// Cannot be called if the lockbox is paused. - /// @param _value The amount of ETH to unlock. - function unlockETH(uint256 _value) external { - // Unlocks are blocked when paused, locks are not. - if (paused()) revert ETHLockbox_Paused(); - - // Check that the sender is authorized to trigger this function. - IOptimismPortal sender = IOptimismPortal(payable(msg.sender)); - if (!authorizedPortals[sender]) revert ETHLockbox_Unauthorized(); - - // Check that we have enough balance to process the unlock. - if (_value > address(this).balance) revert ETHLockbox_InsufficientBalance(); - - // Check that the sender is not executing a withdrawal transaction. - if (sender.l2Sender() != Constants.DEFAULT_L2_SENDER) { - revert ETHLockbox_NoWithdrawalTransactions(); - } - - // Using donateETH to avoid triggering a deposit. - sender.donateETH{ value: _value }(); - - // Emit the event. - emit ETHUnlocked(sender, _value); - } - - /// @notice Authorizes an ETH lockbox to migrate its liquidity to the current ETH lockbox. We - /// allow this function to be called more than once for the same lockbox. A lockbox - /// cannot be removed from the authorized list once added. - /// @param _lockbox The address of the ETH lockbox to authorize. - function authorizeLockbox(IETHLockbox _lockbox) external { - // Check that this transaction is coming from the ProxyAdmin owner. - _assertOnlyProxyAdminOwner(); - - // Check that the lockbox has the same proxy admin owner. - _assertSharedProxyAdminOwner(address(_lockbox)); - - // Authorize the lockbox. - authorizedLockboxes[_lockbox] = true; - - // Emit the event. - emit LockboxAuthorized(_lockbox); - } - - /// @notice Migrates liquidity from the current ETH lockbox to another. - /// @dev Must be called atomically with `OptimismPortal.migrateToSuperRoots()` in the same - /// transaction batch, or otherwise the OptimismPortal may not be able to unlock ETH - /// from the ETHLockbox on finalized withdrawals. - /// @param _lockbox The address of the ETH lockbox to migrate liquidity to. - function migrateLiquidity(IETHLockbox _lockbox) external { - // Check that this transaction is coming from the ProxyAdmin owner. - _assertOnlyProxyAdminOwner(); - - // Check that the lockbox has the same proxy admin owner. - _assertSharedProxyAdminOwner(address(_lockbox)); - - // Receive the liquidity. - uint256 balance = address(this).balance; - IETHLockbox(_lockbox).receiveLiquidity{ value: balance }(); - - // Emit the event. - emit LiquidityMigrated(_lockbox, balance); - } - - /// @notice Authorizes a portal to lock and unlock ETH. - /// @param _portal The address of the portal to authorize. - function _authorizePortal(IOptimismPortal _portal) internal { - // Check that the portal has the same proxy admin owner. - _assertSharedProxyAdminOwner(address(_portal)); - - // Check that the portal has the same superchain config. - if (_portal.superchainConfig() != superchainConfig()) revert ETHLockbox_DifferentSuperchainConfig(); - - // Authorize the portal. - authorizedPortals[_portal] = true; - - // Emit the event. - emit PortalAuthorized(_portal); - } -} diff --git a/src/L1/OptimismPortal2.sol b/src/L1/OptimismPortal2.sol index e0bc4bf39..531f5a3c4 100644 --- a/src/L1/OptimismPortal2.sol +++ b/src/L1/OptimismPortal2.sol @@ -25,7 +25,6 @@ import { IResourceMetering } from "interfaces/L1/IResourceMetering.sol"; import { IDisputeGameFactory } from "interfaces/L1/proofs/IDisputeGameFactory.sol"; import { IDisputeGame } from "interfaces/L1/proofs/IDisputeGame.sol"; import { IAnchorStateRegistry } from "interfaces/L1/proofs/IAnchorStateRegistry.sol"; -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; /// @custom:proxied true @@ -120,11 +119,10 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase /// @notice Address of the AnchorStateRegistry contract. IAnchorStateRegistry public anchorStateRegistry; - /// @notice Address of the ETHLockbox contract. NOTE that as of v4.1.0 it is not possible to - /// set this value in storage and it is only possible for this value to be set if the - /// chain was first upgraded to v4.0.0. Chains that skip v4.0.0 will not have any - /// ETHLockbox set here. - IETHLockbox public ethLockbox; + /// @custom:legacy + /// @custom:spacer + /// @notice Spacer taking up a legacy address slot. + address private spacer_63_0_20; /// @custom:legacy /// @custom:spacer superRootsActive @@ -204,9 +202,6 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase /// @notice Thrown when a withdrawal has not been proven. error OptimismPortal_Unproven(); - /// @notice Thrown when ETHLockbox is set/unset incorrectly depending on the feature flag. - error OptimismPortal_InvalidLockboxState(); - /// @notice Semantic version. /// @custom:semver 5.2.0 function version() public pure virtual returns (string memory) { @@ -236,9 +231,6 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase systemConfig = _systemConfig; anchorStateRegistry = _anchorStateRegistry; - // Assert that the lockbox state is valid. - _assertValidLockboxState(); - // Set the l2Sender slot, only if it is currently empty. This signals the first // initialization of the contract. if (l2Sender == address(0)) { @@ -472,11 +464,6 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase // Mark the withdrawal as finalized so it can't be replayed. finalizedWithdrawals[withdrawalHash] = true; - // If using ETHLockbox, unlock the ETH from the ETHLockbox. - if (_isUsingLockbox()) { - if (_tx.value > 0) ethLockbox.unlockETH(_tx.value); - } - // Set the l2Sender so contracts know who triggered this withdrawal on L2. l2Sender = _tx.sender; @@ -496,14 +483,6 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase // be achieved through contracts built on top of this contract emit WithdrawalFinalized(withdrawalHash, success); - // If using ETHLockbox, send ETH back to the Lockbox in the case of a failed transaction or - // it'll get stuck here and would need to be moved back via admin action. - if (_isUsingLockbox()) { - if (!success && _tx.value > 0) { - ethLockbox.lockETH{ value: _tx.value }(); - } - } - // Reverting here is useful for determining the exact gas cost to successfully execute the // sub call to the target contract if the minimum gas limit specified by the user would not // be sufficient to execute the sub call. @@ -555,8 +534,8 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase /// deriving deposit transactions. Note that if a deposit is made by a contract, its /// address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider /// using the CrossDomainMessenger contracts for a simpler developer experience. - /// @dev The `msg.value` is locked on the ETHLockbox and minted as ETH when the deposit - /// arrives on L2, while `_value` specifies how much ETH to send to the target. + /// @dev The `msg.value` is minted as ETH when the deposit arrives on L2, while `_value` + /// specifies how much ETH to send to the target. /// @param _to Target address on L2. /// @param _value ETH value to send to the recipient. /// @param _gasLimit Amount of L2 gas to purchase by burning gas on L1. @@ -577,11 +556,6 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase if (msg.value > 0) revert OptimismPortal_NotAllowedOnCGTMode(); } - // If using ETHLockbox, lock the ETH in the ETHLockbox. - if (_isUsingLockbox()) { - if (msg.value > 0) ethLockbox.lockETH{ value: msg.value }(); - } - // Just to be safe, make sure that people specify address(0) as the target when doing // contract creations. if (_isCreation && _to != address(0)) { @@ -625,12 +599,6 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase return proofSubmitters[_withdrawalHash].length; } - /// @notice Checks if the ETHLockbox feature is enabled. - /// @return bool True if the ETHLockbox feature is enabled. - function _isUsingLockbox() internal view returns (bool) { - return systemConfig.isFeatureEnabled(Features.ETH_LOCKBOX) && address(ethLockbox) != address(0); - } - /// @notice Checks if the Custom Gas Token feature is enabled. /// @return bool True if the Custom Gas Token feature is enabled. function _isUsingCustomGasToken() internal view returns (bool) { @@ -646,20 +614,10 @@ contract OptimismPortal2 is Initializable, ResourceMetering, ReinitializableBase } } - /// @notice Asserts that the ETHLockbox is set/unset correctly depending on the feature flag. - function _assertValidLockboxState() internal view { - if ( - systemConfig.isFeatureEnabled(Features.ETH_LOCKBOX) && address(ethLockbox) == address(0) - || !systemConfig.isFeatureEnabled(Features.ETH_LOCKBOX) && address(ethLockbox) != address(0) - ) { - revert OptimismPortal_InvalidLockboxState(); - } - } - /// @notice Checks if a target address is unsafe. function _isUnsafeTarget(address _target) internal view virtual returns (bool) { // Prevent users from targeting an unsafe target address on a withdrawal transaction. - return _target == address(this) || _target == address(ethLockbox); + return _target == address(this); } /// @notice Getter for the resource config. Used internally by the ResourceMetering contract. diff --git a/src/L1/SystemConfig.sol b/src/L1/SystemConfig.sol index b5498da18..51c975dba 100644 --- a/src/L1/SystemConfig.sol +++ b/src/L1/SystemConfig.sol @@ -546,32 +546,6 @@ contract SystemConfig is ProxyAdminOwnedBase, OwnableUpgradeable, Reinitializabl revert SystemConfig_InvalidFeatureState(); } - // Handle feature-specific safety logic here. - if (_feature == Features.ETH_LOCKBOX) { - // It would probably better to check that the ETHLockbox contract is set inside the - // OptimismPortal2 contract before you're allowed to enable the feature here, but the - // portal checks that the feature is set before allowing you to set the lockbox, so - // these checks are good enough. - - // Lockbox shouldn't be unset if the ethLockbox address is still configured in the - // OptimismPortal2 contract. Doing so would cause the system to start keeping ETH in - // the portal. This check means there's no way to stop using ETHLockbox at the moment - // after it's been configured (which is expected). - if ( - isFeatureEnabled[_feature] && !_enabled - && address(IOptimismPortal2(payable(optimismPortal())).ethLockbox()) != address(0) - ) { - revert SystemConfig_InvalidFeatureState(); - } - - // Lockbox can't be set or unset if the system is currently paused because it would - // change the pause identifier which would potentially cause the system to become - // unpaused unexpectedly. - if (paused()) { - revert SystemConfig_InvalidFeatureState(); - } - } - // Set the feature. isFeatureEnabled[_feature] = _enabled; @@ -579,20 +553,10 @@ contract SystemConfig is ProxyAdminOwnedBase, OwnableUpgradeable, Reinitializabl emit FeatureSet(_feature, _enabled); } - /// @notice Returns the current pause state for this network. If the network is using - /// ETHLockbox, the system is paused if either the global pause is active or the pause - /// is active where the ETHLockbox address is used as the identifier. If the network is - /// not using ETHLockbox, the system is paused if either the global pause is active or - /// the pause is active where the OptimismPortal address is used as the identifier. + /// @notice Returns the current pause state for this network. /// @return bool True if the system is paused, false otherwise. function paused() public view returns (bool) { - // Determine the appropriate chain identifier based on the feature flags. - address identifier = isFeatureEnabled[Features.ETH_LOCKBOX] - ? address(IOptimismPortal2(payable(optimismPortal())).ethLockbox()) - : address(optimismPortal()); - - // Check if either global or local pause is active. - return superchainConfig.paused(address(0)) || superchainConfig.paused(identifier); + return superchainConfig.paused(address(0)) || superchainConfig.paused(optimismPortal()); } /// @notice Returns the guardian address of the SuperchainConfig. diff --git a/src/libraries/Features.sol b/src/libraries/Features.sol index ffe8b8c3e..c630885fb 100644 --- a/src/libraries/Features.sol +++ b/src/libraries/Features.sol @@ -5,12 +5,6 @@ pragma solidity ^0.8.0; /// feature flagging functionality in the SystemConfig contract to selectively enable or /// disable customizable features of the OP Stack. library Features { - /// @notice The ETH_LOCKBOX feature determines if the system is configured to use the - /// ETHLockbox contract in the OptimismPortal. When the ETH_LOCKBOX feature is active - /// and the ETHLockbox contract has been configured, the OptimismPortal will use the - /// ETHLockbox to store ETH instead of storing ETH directly in the portal itself. - bytes32 internal constant ETH_LOCKBOX = "ETH_LOCKBOX"; - /// @notice The CUSTOM_GAS_TOKEN feature determines if the system is configured to use a custom /// gas token in the OptimismPortal. When the CUSTOM_GAS_TOKEN feature is active, the /// deposits and withdrawals of native ETH are disabled. diff --git a/test/L1/ETHLockbox.t.sol b/test/L1/ETHLockbox.t.sol deleted file mode 100644 index 1f96d859d..000000000 --- a/test/L1/ETHLockbox.t.sol +++ /dev/null @@ -1,623 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.15; - -// Testing -import { CommonTest } from "test/setup/CommonTest.sol"; - -// Contracts -import { Proxy } from "src/universal/Proxy.sol"; - -// Libraries -import { Constants } from "src/libraries/Constants.sol"; -import { EIP1967Helper } from "test/mocks/EIP1967Helper.sol"; -import { ForgeArtifacts, StorageSlot } from "scripts/libraries/ForgeArtifacts.sol"; -import { Features } from "src/libraries/Features.sol"; - -// Interfaces -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; -import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; -import { IOptimismPortal2 } from "interfaces/L1/IOptimismPortal2.sol"; - -/// @title ETHLockbox_TestInit -/// @notice Base contract that sets up the testing environment for ETHLockbox tests. -abstract contract ETHLockbox_TestInit is CommonTest { - event ETHLocked(IOptimismPortal2 indexed portal, uint256 amount); - event ETHUnlocked(IOptimismPortal2 indexed portal, uint256 amount); - event PortalAuthorized(IOptimismPortal2 indexed portal); - event LockboxAuthorized(IETHLockbox indexed lockbox); - event LiquidityMigrated(IETHLockbox indexed lockbox, uint256 amount); - event LiquidityReceived(IETHLockbox indexed lockbox, uint256 amount); - - function setUp() public virtual override { - super.setUp(); - - // If not on the last upgrade network, we skip the test since the `ETHLockbox` won't be yet - // deployed - // TODO(#14691): Remove this check once Upgrade 15 is deployed on Mainnet. - if (isForkTest() && !deploy.cfg().useUpgradedFork()) vm.skip(true); - - // If the ETHLockbox system feature is not enabled, skip these tests. - skipIfSysFeatureDisabled(Features.ETH_LOCKBOX); - } - - function _mockPortalSharedOwnerAndSuperchainConfig(IOptimismPortal2 _portal) internal { - vm.mockCall( - address(_portal), abi.encodeCall(IProxyAdminOwnedBase.proxyAdminOwner, ()), abi.encode(proxyAdminOwner) - ); - vm.mockCall( - address(_portal), abi.encodeCall(IOptimismPortal2.superchainConfig, ()), abi.encode(superchainConfig) - ); - } - - function _authorizePortalIfNeeded(IOptimismPortal2 _portal) internal { - if (!ethLockbox.authorizedPortals(_portal)) { - vm.prank(proxyAdminOwner); - ethLockbox.authorizePortal(_portal); - } - } - - function _mockLockboxSharedOwner(address _lockbox) internal { - vm.mockCall( - address(_lockbox), abi.encodeCall(IProxyAdminOwnedBase.proxyAdminOwner, ()), abi.encode(proxyAdminOwner) - ); - } -} - -/// @title ETHLockbox_Version_Test -/// @notice Test contract for the `version` function. -contract ETHLockbox_Version_Test is ETHLockbox_TestInit { - /// @notice Tests that the `version` function returns a valid string. We avoid testing the - /// specific value of the string as it changes frequently. - function test_version_succeeds() public view { - assert(bytes(ethLockbox.version()).length > 0); - } -} - -/// @title ETHLockbox_Initialize_Test -/// @notice Test contract for the initialize function. -contract ETHLockbox_Initialize_Test is ETHLockbox_TestInit { - StorageSlot internal initializedSlot; - - function setUp() public override { - super.setUp(); - - initializedSlot = ForgeArtifacts.getSlot("ETHLockbox", "_initialized"); - } - - /// @notice Tests the superchain config was correctly set during initialization. - function test_initialize_succeeds() public view { - assertEq(address(ethLockbox.systemConfig().superchainConfig()), address(superchainConfig)); - assertEq(ethLockbox.authorizedPortals(optimismPortal2), true); - assertEq(address(ethLockbox.superchainConfig()), address(superchainConfig)); - } - - /// @notice Tests that the initializer value is correct. Trivial test for normal initialization - /// but confirms that the initValue is not incremented incorrectly if an upgrade - /// function is not present. - function test_initialize_correctInitializerValue_succeeds() public view { - bytes32 slotVal = vm.load(address(ethLockbox), bytes32(initializedSlot.slot)); - uint8 val = uint8(uint256(slotVal) & 0xFF); - - assertEq(val, ethLockbox.initVersion()); - } - - /// @notice Tests that the `initialize` function reverts if called by a non-proxy admin or - /// owner. - /// @param _sender The address of the sender to test. - function testFuzz_initialize_notProxyAdminOrProxyAdminOwner_reverts(address _sender) public { - // Prank as the not ProxyAdmin or ProxyAdmin owner. - vm.assume(_sender != address(proxyAdmin) && _sender != proxyAdminOwner); - - // Set the initialized slot to 0. - vm.store(address(ethLockbox), bytes32(initializedSlot.slot), bytes32(0)); - - // Expect the revert with `ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner` selector - vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOrProxyAdminOwner.selector); - - // Call the `initialize` function with the sender - vm.prank(_sender); - IOptimismPortal2[] memory _portals = new IOptimismPortal2[](1); - ethLockbox.initialize(systemConfig, _portals); - } - - /// @notice Tests it reverts when the contract is already initialized. - function test_initialize_alreadyInitialized_reverts() public { - vm.expectRevert("Initializable: contract is already initialized"); - IOptimismPortal2[] memory _portals = new IOptimismPortal2[](1); - ethLockbox.initialize(systemConfig, _portals); - } -} - -/// @title ETHLockbox_Paused_Test -/// @notice Test contract for the `paused` function. -contract ETHLockbox_Paused_Test is ETHLockbox_TestInit { - /// @notice Tests the `paused` status is correctly returned. - function test_paused_succeeds() public { - // Assert the paused status is false - assertEq(ethLockbox.paused(), false); - - // Mock the superchain config to return true for the paused status - // We use abi.encodeWithSignature because paused is overloaded. - // nosemgrep: sol-style-use-abi-encodecall - vm.mockCall(address(superchainConfig), abi.encodeWithSignature("paused(address)", address(0)), abi.encode(true)); - - // Assert the paused status is true - assertEq(ethLockbox.paused(), true); - } -} - -/// @title ETHLockbox_AuthorizePortal_Test -/// @notice Test contract for the authorizePortal function. -contract ETHLockbox_AuthorizePortal_Test is ETHLockbox_TestInit { - /// @notice Tests the `authorizePortal` function reverts when the caller is not the proxy - /// admin. - function testFuzz_authorizePortal_unauthorized_reverts(address _caller) public { - vm.assume(_caller != proxyAdminOwner); - - // Expect the revert with `ProxyAdminOwnedBase_NotProxyAdminOwner` selector - vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); - - // Call the `authorizePortal` function with an unauthorized caller - vm.prank(_caller); - ethLockbox.authorizePortal(optimismPortal2); - } - - /// @notice Tests the `authorizePortal` function reverts when the proxy admin owner of the - /// portal is not the same as the one of the lockbox. - function testFuzz_authorizePortal_differentProxyAdminOwner_reverts(IOptimismPortal2 _portal) public { - assumeNotForgeAddress(address(_portal)); - vm.mockCall(address(_portal), abi.encodeCall(IProxyAdminOwnedBase.proxyAdminOwner, ()), abi.encode(address(0))); - - // Expect the revert with `DifferentOwner` selector - vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotSharedProxyAdminOwner.selector); - - // Call the `authorizePortal` function - vm.prank(proxyAdminOwner); - ethLockbox.authorizePortal(_portal); - } - - /// @notice Tests the `authorizePortal` function reverts when the portal has a different - /// SuperchainConfig than the one configured in the lockbox. - /// @param _portal The portal to authorize. - function testFuzz_authorizePortal_differentSuperchainConfig_reverts(IOptimismPortal2 _portal) public { - assumeNotForgeAddress(address(_portal)); - vm.assume(address(_portal) != address(systemConfig)); - vm.assume(address(_portal) != EIP1967Helper.getImplementation(address(systemConfig))); - - // Mock the portal to have the right proxyAdminOwner. - vm.mockCall( - address(_portal), abi.encodeCall(IProxyAdminOwnedBase.proxyAdminOwner, ()), abi.encode(proxyAdminOwner) - ); - - // Mock the portal to have the wrong SuperchainConfig. - vm.mockCall(address(_portal), abi.encodeCall(IOptimismPortal2.superchainConfig, ()), abi.encode(address(0))); - - // Expect the revert with `DifferentSuperchainConfig` selector - vm.expectRevert(IETHLockbox.ETHLockbox_DifferentSuperchainConfig.selector); - - // Call the `authorizePortal` function - vm.prank(proxyAdminOwner); - ethLockbox.authorizePortal(_portal); - } - - /// @notice Tests the `authorizePortal` function succeeds using the `optimismPortal2` address - /// as the portal. - function test_authorizePortal_succeeds() public { - StorageSlot memory authorizedPortalsSlot = ForgeArtifacts.getSlot("ETHLockbox", "authorizedPortals"); - address key = address(optimismPortal2); - bytes32 slot = keccak256(abi.encode(key, bytes32(authorizedPortalsSlot.slot))); - - // Reset the authorization status to false - vm.store(address(ethLockbox), slot, bytes32(0)); - - // Expect the `PortalAuthorized` event to be emitted - vm.expectEmit(address(ethLockbox)); - emit PortalAuthorized(optimismPortal2); - - // Call the `authorizePortal` function with the portal - vm.prank(proxyAdminOwner); - ethLockbox.authorizePortal(optimismPortal2); - - // Assert the portal is authorized - assertTrue(ethLockbox.authorizedPortals(optimismPortal2)); - } - - /// @notice Tests the `authorizePortal` function succeeds - function testFuzz_authorizePortal_succeeds(IOptimismPortal2 _portal) public { - assumeNotForgeAddress(address(_portal)); - - _mockPortalSharedOwnerAndSuperchainConfig(_portal); - - // Expect the `PortalAuthorized` event to be emitted - vm.expectEmit(address(ethLockbox)); - emit PortalAuthorized(_portal); - - // Call the `authorizePortal` function with the portal - vm.prank(proxyAdminOwner); - ethLockbox.authorizePortal(_portal); - - // Assert the portal is authorized - assertTrue(ethLockbox.authorizedPortals(_portal)); - } -} - -/// @title ETHLockbox_ReceiveLiquidity_Test -/// @notice Test contract for the receiveLiquidity function. -contract ETHLockbox_ReceiveLiquidity_Test is ETHLockbox_TestInit { - /// @notice Tests the liquidity is correctly received. - function testFuzz_receiveLiquidity_succeeds(address _lockbox, uint256 _value) public { - // Since on the fork the `_lockbox` fuzzed address doesn't exist, we skip the test - if (isForkTest()) vm.skip(true); - assumeNotForgeAddress(_lockbox); - vm.assume(address(_lockbox) != address(ethLockbox)); - - // Deal the value to the lockbox - deal(address(_lockbox), _value); - - _mockLockboxSharedOwner(_lockbox); - - // Authorize the lockbox if needed - if (!ethLockbox.authorizedLockboxes(IETHLockbox(_lockbox))) { - vm.prank(proxyAdminOwner); - ethLockbox.authorizeLockbox(IETHLockbox(_lockbox)); - } - - // Get the balance of the lockbox before the receive - uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - - // Expect the `LiquidityReceived` event to be emitted - vm.expectEmit(address(ethLockbox)); - emit LiquidityReceived(IETHLockbox(_lockbox), _value); - - // Call the `receiveLiquidity` function - vm.prank(address(_lockbox)); - ethLockbox.receiveLiquidity{ value: _value }(); - - // Assert the lockbox's balance increased by the amount received - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _value); - } -} - -/// @title ETHLockbox_LockETH_Test -/// @notice Test contract for the lockETH function. -contract ETHLockbox_LockETH_Test is ETHLockbox_TestInit { - /// @notice Tests it reverts when the caller is not an authorized portal. - function testFuzz_lockETH_unauthorizedPortal_reverts(address _caller) public { - vm.assume(!ethLockbox.authorizedPortals(IOptimismPortal2(payable(_caller)))); - - // Expect the revert with `Unauthorized` selector - vm.expectRevert(IETHLockbox.ETHLockbox_Unauthorized.selector); - - // Call the `lockETH` function with an unauthorized caller - vm.prank(_caller); - ethLockbox.lockETH(); - } - - /// @notice Tests the ETH is correctly locked when the caller is an authorized portal. - function testFuzz_lockETH_succeeds(uint256 _amount) public { - // Prevent overflow on an upgrade context - _amount = bound(_amount, 0, type(uint256).max - address(ethLockbox).balance); - - // Deal the ETH amount to the portal - vm.deal(address(optimismPortal2), _amount); - - // Get the balance of the portal and lockbox before the lock to compare later on the - // assertions - uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 lockboxBalanceBefore = address(ethLockbox).balance; - - // Look for the emit of the `ETHLocked` event - vm.expectEmit(address(ethLockbox)); - emit ETHLocked(optimismPortal2, _amount); - - // Call the `lockETH` function with the portal - vm.prank(address(optimismPortal2)); - ethLockbox.lockETH{ value: _amount }(); - - // Assert the portal's balance decreased and the lockbox's balance increased by the - // amount locked - assertEq(address(optimismPortal2).balance, portalBalanceBefore - _amount); - assertEq(address(ethLockbox).balance, lockboxBalanceBefore + _amount); - } - - /// @notice Tests the ETH is correctly locked when the caller is an authorized portal with - /// different portals. - function testFuzz_lockETH_multiplePortals_succeeds(IOptimismPortal2 _portal, uint256 _amount) public { - // Since on the fork the `_portal` fuzzed address doesn't exist, we skip the test - if (isForkTest()) vm.skip(true); - assumeNotForgeAddress(address(_portal)); - vm.assume(address(_portal) != address(ethLockbox)); - - _mockPortalSharedOwnerAndSuperchainConfig(_portal); - - // Set the portal as an authorized portal if needed - _authorizePortalIfNeeded(_portal); - - // Deal the ETH amount to the portal - vm.deal(address(_portal), _amount); - - // Get the balance of the lockbox before the lock to compare later on the assertions - uint256 lockboxBalanceBefore = address(ethLockbox).balance; - - // Look for the emit of the `ETHLocked` event - vm.expectEmit(address(ethLockbox)); - emit ETHLocked(_portal, _amount); - - // Call the `lockETH` function with the portal - vm.prank(address(_portal)); - ethLockbox.lockETH{ value: _amount }(); - - // Assert the portal's balance decreased and the lockbox's balance increased by the - // amount locked - assertEq(address(ethLockbox).balance, lockboxBalanceBefore + _amount); - } -} - -/// @title ETHLockbox_UnlockETH_Test -/// @notice Test contract for the unlockETH function. -contract ETHLockbox_UnlockETH_Test is ETHLockbox_TestInit { - /// @notice Tests `unlockETH` reverts when the contract is paused. - function testFuzz_unlockETH_paused_reverts(address _caller, uint256 _value) public { - // Mock the superchain config to return true for the paused status - // We use abi.encodeWithSignature because paused is overloaded. - // nosemgrep: sol-style-use-abi-encodecall - vm.mockCall(address(superchainConfig), abi.encodeWithSignature("paused(address)", address(0)), abi.encode(true)); - - // Expect the revert with `Paused` selector - vm.expectRevert(IETHLockbox.ETHLockbox_Paused.selector); - - // Call the `unlockETH` function with the caller - vm.prank(_caller); - ethLockbox.unlockETH(_value); - } - - /// @notice Tests it reverts when the caller is not an authorized portal. - function testFuzz_unlockETH_unauthorizedPortal_reverts(address _caller, uint256 _value) public { - vm.assume(!ethLockbox.authorizedPortals(IOptimismPortal2(payable(_caller)))); - - // Expect the revert with `Unauthorized` selector - vm.expectRevert(IETHLockbox.ETHLockbox_Unauthorized.selector); - - // Call the `unlockETH` function with an unauthorized caller - vm.prank(_caller); - ethLockbox.unlockETH(_value); - } - - /// @notice Tests `unlockETH` reverts when the `_value` input is greater than the balance of - /// the lockbox. - function testFuzz_unlockETH_insufficientBalance_reverts(uint256 _value) public { - _value = bound(_value, address(ethLockbox).balance + 1, type(uint256).max); - - // Expect the revert with `InsufficientBalance` selector - vm.expectRevert(IETHLockbox.ETHLockbox_InsufficientBalance.selector); - - // Call the `unlockETH` function with the portal - vm.prank(address(optimismPortal2)); - ethLockbox.unlockETH(_value); - } - - /// @notice Tests `unlockETH` reverts when the portal is not the L2 sender to prevent - /// unlocking ETH from the lockbox through a withdrawal transaction. - function testFuzz_unlockETH_withdrawalTransaction_reverts(uint256 _value, address _l2Sender) public { - _value = bound(_value, 0, address(ethLockbox).balance); - vm.assume(_l2Sender != Constants.DEFAULT_L2_SENDER); - - // Mock the L2 sender - vm.mockCall(address(optimismPortal2), abi.encodeCall(IOptimismPortal2.l2Sender, ()), abi.encode(_l2Sender)); - - // Expect the revert with `NoWithdrawalTransactions` selector - vm.expectRevert(IETHLockbox.ETHLockbox_NoWithdrawalTransactions.selector); - - // Call the `unlockETH` function with the portal - vm.prank(address(optimismPortal2)); - ethLockbox.unlockETH(_value); - } - - /// @notice Tests the ETH is correctly unlocked when the caller is an authorized portal. - function testFuzz_unlockETH_succeeds(uint256 _value) public { - // Deal the ETH amount to the lockbox - vm.deal(address(ethLockbox), _value); - - // Get the balance of the portal and lockbox before the unlock to compare later on the - // assertions - uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 lockboxBalanceBefore = address(ethLockbox).balance; - - // Expect `donateETH` function to be called on Portal - vm.expectCall(address(optimismPortal2), abi.encodeCall(IOptimismPortal2.donateETH, ())); - - // Look for the emit of the `ETHUnlocked` event - vm.expectEmit(address(ethLockbox)); - emit ETHUnlocked(optimismPortal2, _value); - - // Call the `unlockETH` function with the portal - vm.prank(address(optimismPortal2)); - ethLockbox.unlockETH(_value); - - // Assert the portal's balance increased and the lockbox's balance decreased by the amount - // unlocked - assertEq(address(optimismPortal2).balance, portalBalanceBefore + _value); - assertEq(address(ethLockbox).balance, lockboxBalanceBefore - _value); - } - - /// @notice Tests the ETH is correctly unlocked when the caller is an authorized portal. - function testFuzz_unlockETH_multiplePortals_succeeds(IOptimismPortal2 _portal, uint256 _value) public { - // Since on the fork the `_portal` fuzzed address doesn't exist, we skip the test - if (isForkTest()) vm.skip(true); - assumeNotForgeAddress(address(_portal)); - vm.assume(address(_portal) != address(ethLockbox)); - - _mockPortalSharedOwnerAndSuperchainConfig(_portal); - vm.mockCall( - address(_portal), abi.encodeCall(IOptimismPortal2.l2Sender, ()), abi.encode(Constants.DEFAULT_L2_SENDER) - ); - - // Set the portal as an authorized portal if needed - _authorizePortalIfNeeded(_portal); - - // Deal the ETH amount to the lockbox - vm.deal(address(ethLockbox), _value); - - // Get the balance of the portal and lockbox before the unlock to compare later on the - // assertions - uint256 portalBalanceBefore = address(_portal).balance; - uint256 lockboxBalanceBefore = address(ethLockbox).balance; - - // Expect `donateETH` function to be called on Portal - vm.expectCall(address(_portal), abi.encodeCall(IOptimismPortal2.donateETH, ())); - - // Look for the emit of the `ETHUnlocked` event - vm.expectEmit(address(ethLockbox)); - emit ETHUnlocked(_portal, _value); - - // Call the `unlockETH` function with the portal - vm.prank(address(_portal)); - ethLockbox.unlockETH(_value); - - // Assert the portal's balance increased and the lockbox's balance decreased by the amount - // unlocked - assertEq(address(_portal).balance, portalBalanceBefore + _value); - assertEq(address(ethLockbox).balance, lockboxBalanceBefore - _value); - } -} - -/// @title ETHLockbox_AuthorizeLockbox_Test -/// @notice Test contract for the authorizeLockbox function. -contract ETHLockbox_AuthorizeLockbox_Test is ETHLockbox_TestInit { - /// @notice Tests the `authorizeLockbox` function reverts when the caller is not the proxy - /// admin. - function testFuzz_authorizeLockbox_unauthorized_reverts(address _caller) public { - vm.assume(_caller != proxyAdminOwner); - - // Expect the revert with `ProxyAdminOwnedBase_NotProxyAdminOwner` selector - vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); - - // Call the `authorizeLockbox` function with an unauthorized caller - vm.prank(_caller); - ethLockbox.authorizeLockbox(ethLockbox); - } - - /// @notice Tests the `authorizeLockbox` function reverts when the proxy admin owner of the - /// lockbox is not the same as the proxy admin owner of the proxy admin. - function testFuzz_authorizeLockbox_differentProxyAdminOwner_reverts(address _lockbox) public { - assumeNotForgeAddress(_lockbox); - - vm.mockCall(address(_lockbox), abi.encodeCall(IProxyAdminOwnedBase.proxyAdminOwner, ()), abi.encode(address(0))); - - // Expect the revert with `NotSharedProxyAdminOwner` selector - vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotSharedProxyAdminOwner.selector); - - // Call the `authorizeLockbox` function with the lockbox - vm.prank(proxyAdminOwner); - ethLockbox.authorizeLockbox(IETHLockbox(_lockbox)); - } - - /// @notice Tests the `authorizeLockbox` function succeeds - function testFuzz_authorizeLockbox_succeeds(address _lockbox) public { - assumeNotForgeAddress(_lockbox); - - _mockLockboxSharedOwner(_lockbox); - - // Expect the `LockboxAuthorized` event to be emitted - vm.expectEmit(address(ethLockbox)); - emit LockboxAuthorized(IETHLockbox(_lockbox)); - - // Authorize the lockbox - vm.prank(proxyAdminOwner); - ethLockbox.authorizeLockbox(IETHLockbox(_lockbox)); - - // Assert the lockbox is authorized - assertTrue(ethLockbox.authorizedLockboxes(IETHLockbox(_lockbox))); - } -} - -/// @title ETHLockbox_MigrateLiquidity_Test -/// @notice Test contract for the migrateLiquidity function. -contract ETHLockbox_MigrateLiquidity_Test is ETHLockbox_TestInit { - /// @notice Tests the `migrateLiquidity` function reverts when the caller is not the proxy - /// admin. - function testFuzz_migrateLiquidity_unauthorized_reverts(address _caller) public { - vm.assume(_caller != proxyAdminOwner); - - // Expect the revert with `ProxyAdminOwnedBase_NotProxyAdminOwner` selector - vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); - - // Call the `migrateLiquidity` function with an unauthorized caller - vm.prank(_caller); - ethLockbox.migrateLiquidity(ethLockbox); - } - - /// @notice Tests the `migrateLiquidity` function reverts when the proxy admin owner of the - /// lockbox is not the same as the proxy admin owner of the proxy admin. - function testFuzz_migrateLiquidity_differentProxyAdminOwner_reverts(address _lockbox) public { - assumeNotForgeAddress(_lockbox); - - vm.mockCall(address(_lockbox), abi.encodeCall(IProxyAdminOwnedBase.proxyAdminOwner, ()), abi.encode(address(0))); - - // Expect the revert with `NotSharedProxyAdminOwner` selector - vm.expectRevert(IProxyAdminOwnedBase.ProxyAdminOwnedBase_NotSharedProxyAdminOwner.selector); - - // Call the `migrateLiquidity` function with the lockbox - vm.prank(proxyAdminOwner); - ethLockbox.migrateLiquidity(IETHLockbox(_lockbox)); - } - - /// @notice Tests the `migrateLiquidity` function succeeds - function testFuzz_migrateLiquidity_succeeds( - uint256 _originLockboxBalance, - uint256 _destinationLockboxBalance - ) - public - { - // Since on the fork the `_lockbox` fuzzed address doesn't exist, we skip the test - if (isForkTest()) vm.skip(true); - - // Bound balances to avoid overflow - _originLockboxBalance = bound(_originLockboxBalance, 0, type(uint256).max - address(ethLockbox).balance); - _destinationLockboxBalance = bound(_destinationLockboxBalance, 0, type(uint256).max - _originLockboxBalance); - - // Deploy a new Proxy for the destination lockbox - address destinationLockbox = address(new Proxy(address(proxyAdmin))); - - // Get the ETHLockbox implementation of the origin `ethLockbox` proxy - vm.prank(address(proxyAdmin)); - address implementation = Proxy(payable(address(ethLockbox))).implementation(); - - // Upgrade the destination lockbox proxy to the `ETHLockbox` implementation - vm.prank(address(proxyAdmin)); - Proxy(payable(destinationLockbox)).upgradeTo(implementation); - - // Authorize the origin lockbox on the destination lockbox - vm.prank(proxyAdminOwner); - IETHLockbox(destinationLockbox).authorizeLockbox(ethLockbox); - - // Deal the balance to both lockboxes - deal(address(ethLockbox), _originLockboxBalance); - deal(address(destinationLockbox), _destinationLockboxBalance); - - // Get balances before the migration - uint256 originLockboxBalanceBefore = address(ethLockbox).balance; - uint256 destLockboxBalanceBefore = address(destinationLockbox).balance; - - // Expect the `LiquidityMigrated` event to be emitted - vm.expectEmit(address(ethLockbox)); - emit LiquidityMigrated(IETHLockbox(destinationLockbox), originLockboxBalanceBefore); - - // Call the `migrateLiquidity` function with the lockbox - vm.prank(proxyAdminOwner); - ethLockbox.migrateLiquidity(IETHLockbox(destinationLockbox)); - - // Assert the liquidity was migrated - assertEq(address(ethLockbox).balance, 0); - assertEq(address(destinationLockbox).balance, destLockboxBalanceBefore + originLockboxBalanceBefore); - } -} - -/// @title ETHLockbox_Uncategorized_Test -/// @notice Contains uncategorized tests related to ETHLockbox. -contract ETHLockbox_Uncategorized_Test is ETHLockbox_TestInit { - /// @notice Tests the proxy admin owner is correctly returned. - function test_proxyProxyAdminOwner_succeeds() public view { - assertEq(ethLockbox.proxyAdminOwner(), proxyAdminOwner); - } -} diff --git a/test/L1/L1StandardBridge.t.sol b/test/L1/L1StandardBridge.t.sol index 206087776..c944b2d99 100644 --- a/test/L1/L1StandardBridge.t.sol +++ b/test/L1/L1StandardBridge.t.sol @@ -25,20 +25,8 @@ import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; /// @title L1StandardBridge_TestInit /// @notice Reusable test initialization for `L1StandardBridge` tests. abstract contract L1StandardBridge_TestInit is CommonTest { - function _assertETHBridgeCustody( - uint256 _portalBalanceBefore, - uint256 _ethLockboxBalanceBefore, - uint256 _amount - ) - internal - view - { - if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - assertEq(address(optimismPortal2).balance, _portalBalanceBefore); - assertEq(address(ethLockbox).balance, _ethLockboxBalanceBefore + _amount); - } else { - assertEq(address(optimismPortal2).balance, _portalBalanceBefore + _amount); - } + function _assertETHBridgeCustody(uint256 _portalBalanceBefore, uint256 _amount) internal view { + assertEq(address(optimismPortal2).balance, _portalBalanceBefore + _amount); } function _mockXDomainMessageSender(address _sender) internal { @@ -356,7 +344,6 @@ contract L1StandardBridge_Receive_Test is L1StandardBridge_TestInit { function test_receive_succeeds() external { skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN); uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; // The legacy event must be emitted for backwards compatibility vm.expectEmit(address(l1StandardBridge)); @@ -381,7 +368,7 @@ contract L1StandardBridge_Receive_Test is L1StandardBridge_TestInit { (bool success,) = address(l1StandardBridge).call{ value: 100 }(hex""); assertTrue(success); - _assertETHBridgeCustody(portalBalanceBefore, ethLockboxBalanceBefore, 100); + _assertETHBridgeCustody(portalBalanceBefore, 100); } /// @notice Verifies receive function reverts when called by contracts @@ -407,10 +394,9 @@ contract L1StandardBridge_DepositETH_Test is L1StandardBridge_TestInit { skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN); _preBridgeETH({ isLegacy: true, value: 500 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; l1StandardBridge.depositETH{ value: 500 }(50000, hex"dead"); - _assertETHBridgeCustody(portalBalanceBefore, ethLockboxBalanceBefore, 500); + _assertETHBridgeCustody(portalBalanceBefore, 500); } /// @notice Tests that depositing ETH succeeds for an EOA using 7702 delegation. @@ -421,10 +407,9 @@ contract L1StandardBridge_DepositETH_Test is L1StandardBridge_TestInit { _preBridgeETH({ isLegacy: true, value: 500 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; l1StandardBridge.depositETH{ value: 500 }(50000, hex"dead"); - _assertETHBridgeCustody(portalBalanceBefore, ethLockboxBalanceBefore, 500); + _assertETHBridgeCustody(portalBalanceBefore, 500); } /// @notice Tests that depositing ETH reverts if the call is not from an EOA. @@ -448,10 +433,9 @@ contract L1StandardBridge_DepositETHTo_Test is L1StandardBridge_TestInit { skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN); _preBridgeETHTo({ isLegacy: true, value: 600 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; l1StandardBridge.depositETHTo{ value: 600 }(bob, 60000, hex"dead"); - _assertETHBridgeCustody(portalBalanceBefore, ethLockboxBalanceBefore, 600); + _assertETHBridgeCustody(portalBalanceBefore, 600); } /// @notice Verifies depositETHTo succeeds with various recipients and amounts @@ -465,12 +449,11 @@ contract L1StandardBridge_DepositETHTo_Test is L1StandardBridge_TestInit { vm.deal(alice, _amount); uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; vm.prank(alice); l1StandardBridge.depositETHTo{ value: _amount }(_to, 60000, hex"dead"); - _assertETHBridgeCustody(portalBalanceBefore, ethLockboxBalanceBefore, _amount); + _assertETHBridgeCustody(portalBalanceBefore, _amount); } } @@ -739,10 +722,9 @@ contract L1StandardBridge_Uncategorized_Test is L1StandardBridge_TestInit { skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN); _preBridgeETH({ isLegacy: false, value: 500 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; l1StandardBridge.bridgeETH{ value: 500 }(50000, hex"dead"); - _assertETHBridgeCustody(portalBalanceBefore, ethLockboxBalanceBefore, 500); + _assertETHBridgeCustody(portalBalanceBefore, 500); } /// @notice Tests that bridging ETH to a different address succeeds. @@ -754,10 +736,9 @@ contract L1StandardBridge_Uncategorized_Test is L1StandardBridge_TestInit { skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN); _preBridgeETHTo({ isLegacy: false, value: 600 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; l1StandardBridge.bridgeETHTo{ value: 600 }(bob, 60000, hex"dead"); - _assertETHBridgeCustody(portalBalanceBefore, ethLockboxBalanceBefore, 600); + _assertETHBridgeCustody(portalBalanceBefore, 600); } /// @notice Tests that finalizing bridged ETH succeeds. diff --git a/test/L1/OptimismPortal2.t.sol b/test/L1/OptimismPortal2.t.sol index 04e8d1df5..78d54dd60 100644 --- a/test/L1/OptimismPortal2.t.sol +++ b/test/L1/OptimismPortal2.t.sol @@ -114,9 +114,6 @@ abstract contract OptimismPortal2_TestInit is DisputeGameFactory_TestInit { // Fund the portal so that we can withdraw ETH. vm.deal(address(optimismPortal2), 0xFFFFFFFF); - if (isUsingLockbox()) { - vm.deal(address(ethLockbox), 0xFFFFFFFF); - } } function _createDisputeGame(Claim _rootClaim, uint256 _salt) internal returns (IAggregateVerifier game_) { @@ -189,9 +186,6 @@ abstract contract OptimismPortal2_TestInit is DisputeGameFactory_TestInit { { uint256 value = bound(_value, 0, 200_000_000 ether); vm.deal(address(optimismPortal2), value); - if (isUsingLockbox()) { - vm.deal(address(ethLockbox), value); - } uint256 gasLimit = bound(_gasLimit, 0, 50_000_000); withdrawalTx_ = Types.WithdrawalTransaction({ @@ -239,31 +233,6 @@ abstract contract OptimismPortal2_TestInit is DisputeGameFactory_TestInit { // Assert that the withdrawal was not finalized. assertFalse(optimismPortal2.finalizedWithdrawals(Hashing.hashWithdrawal(_defaultTx))); } - - /// @notice Checks if the ETHLockbox feature is enabled. - /// @return bool True if the ETHLockbox feature is enabled. - function isUsingLockbox() internal view returns (bool) { - return - systemConfig.isFeatureEnabled(Features.ETH_LOCKBOX) && address(optimismPortal2.ethLockbox()) != address(0); - } - - /// @notice Enables the ETHLockbox feature if not enabled. - /// @param _lockbox Address of the lockbox to enable. - function forceEnableLockbox(address _lockbox) internal { - if (!isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - vm.prank(address(proxyAdmin)); - systemConfig.setFeature(Features.ETH_LOCKBOX, true); - } - - // Overwrite the lockbox either way. - StorageSlot memory slot = ForgeArtifacts.getSlot("OptimismPortal2", "ethLockbox"); - vm.store(address(optimismPortal2), bytes32(slot.slot), bytes32(uint256(uint160(address(_lockbox))))); - - // If the recipient address has no code, store STOP so we don't get reverts. - if (address(_lockbox).code.length == 0) { - vm.etch(address(_lockbox), hex"00"); - } - } } /// @title OptimismPortal2_Version_Test @@ -285,7 +254,6 @@ contract OptimismPortal2_Constructor_Test is OptimismPortal2_TestInit { assertEq(address(opImpl.anchorStateRegistry()), address(0)); assertEq(address(opImpl.systemConfig()), address(0)); assertEq(opImpl.l2Sender(), address(0)); - assertEq(address(opImpl.ethLockbox()), address(0)); } } @@ -301,16 +269,6 @@ contract OptimismPortal2_Initialize_Test is OptimismPortal2_TestInit { assertEq(optimismPortal2.paused(), false); assertEq(address(optimismPortal2.systemConfig()), address(systemConfig)); - if (isUsingLockbox()) { - assertEq(address(optimismPortal2.ethLockbox()), address(ethLockbox)); - } else { - assertEq(address(optimismPortal2.ethLockbox()), address(0)); - } - - if (!isUsingLockbox()) { - assertFalse(optimismPortal2.systemConfig().isFeatureEnabled(Features.CUSTOM_GAS_TOKEN)); - } - returnIfForkTest( "OptimismPortal2_Initialize_Test: Do not check guardian and respectedGameType on forked networks" ); @@ -338,32 +296,6 @@ contract OptimismPortal2_Initialize_Test is OptimismPortal2_TestInit { assertEq(val, optimismPortal2.initVersion()); } - /// @notice Tests that the initialize function reverts when lockbox state is invalid. - function test_initialize_invalidLockboxState_reverts() external { - // Get the slot for _initialized. - StorageSlot memory slot = ForgeArtifacts.getSlot("OptimismPortal2", "_initialized"); - - // Set the initialized slot to 0. - vm.store(address(optimismPortal2), bytes32(slot.slot), bytes32(0)); - - // Enable ETH_LOCKBOX feature but clear the lockbox address to create invalid state. - if (!systemConfig.isFeatureEnabled(Features.ETH_LOCKBOX)) { - vm.prank(address(proxyAdmin)); - systemConfig.setFeature(Features.ETH_LOCKBOX, true); - } - - // Clear the lockbox address. - StorageSlot memory lockboxSlot = ForgeArtifacts.getSlot("OptimismPortal2", "ethLockbox"); - vm.store(address(optimismPortal2), bytes32(lockboxSlot.slot), bytes32(0)); - - // Expect the revert with `OptimismPortal_InvalidLockboxState` selector. - vm.expectRevert(IOptimismPortal.OptimismPortal_InvalidLockboxState.selector); - - // Call the `initialize` function - vm.prank(address(proxyAdmin)); - optimismPortal2.initialize(systemConfig, anchorStateRegistry); - } - /// @notice Tests that the initialize function reverts if called by a non-proxy admin or owner. /// @param _sender The address of the sender to test. function testFuzz_initialize_notProxyAdminOrProxyAdminOwner_reverts(address _sender) public { @@ -546,9 +478,7 @@ contract OptimismPortal2_Receive_Test is OptimismPortal2_TestInit { function testFuzz_receive_succeeds(uint256 _value) external { skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN); // Prevent overflow on an upgrade context - _value = bound(_value, 0, type(uint256).max - address(ethLockbox).balance); uint256 balanceBefore = address(optimismPortal2).balance; - uint256 lockboxBalanceBefore = address(ethLockbox).balance; _value = bound(_value, 0, type(uint256).max - balanceBefore); vm.expectEmit(address(optimismPortal2)); @@ -562,11 +492,6 @@ contract OptimismPortal2_Receive_Test is OptimismPortal2_TestInit { _data: hex"" }); - if (isUsingLockbox()) { - // Expect call to the ETHLockbox to lock the funds only if the value is greater than 0. - vm.expectCall(address(ethLockbox), _value, abi.encodeCall(ethLockbox.lockETH, ()), _value > 0 ? 1 : 0); - } - // give alice money and send as an eoa vm.deal(alice, _value); vm.prank(alice, alice); @@ -574,50 +499,7 @@ contract OptimismPortal2_Receive_Test is OptimismPortal2_TestInit { assertTrue(s); - if (isUsingLockbox()) { - assertEq(address(optimismPortal2).balance, balanceBefore); - assertEq(address(ethLockbox).balance, lockboxBalanceBefore + _value); - } else { - assertEq(address(optimismPortal2).balance, balanceBefore + _value); - } - } - - function testFuzz_receive_withLockbox_succeeds(uint256 _value) external { - skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN); - // Prevent overflow on an upgrade context. - // We use a dummy lockbox here because the real one won't work for upgrade tests. - address dummyLockbox = address(0xdeadbeef); - _value = bound(_value, 0, type(uint256).max - address(dummyLockbox).balance); - uint256 balanceBefore = address(optimismPortal2).balance; - uint256 lockboxBalanceBefore = address(dummyLockbox).balance; - _value = bound(_value, 0, type(uint256).max - balanceBefore); - - // Enable the lockbox. - forceEnableLockbox(dummyLockbox); - - // Expect the transaction deposited event. - vm.expectEmit(address(optimismPortal2)); - emitTransactionDeposited({ - _from: alice, - _to: alice, - _value: _value, - _mint: _value, - _gasLimit: 100_000, - _isCreation: false, - _data: hex"" - }); - - // Expect call to the ETHLockbox to lock the funds only if the value is greater than 0. - vm.expectCall(address(dummyLockbox), _value, abi.encodeCall(ethLockbox.lockETH, ()), _value > 0 ? 1 : 0); - - // give alice money and send as an eoa - vm.deal(alice, _value); - vm.prank(alice, alice); - (bool s,) = address(optimismPortal2).call{ value: _value }(hex""); - - assertTrue(s); - assertEq(address(optimismPortal2).balance, balanceBefore); - assertEq(address(dummyLockbox).balance, lockboxBalanceBefore + _value); + assertEq(address(optimismPortal2).balance, balanceBefore + _value); } } @@ -630,7 +512,6 @@ contract OptimismPortal2_DonateETH_Test is OptimismPortal2_TestInit { vm.deal(alice, _amount); uint256 preBalance = address(optimismPortal2).balance; - uint256 lockboxBalanceBefore = address(ethLockbox).balance; _amount = bound(_amount, 0, type(uint256).max - preBalance); vm.startStateDiffRecording(); @@ -639,8 +520,6 @@ contract OptimismPortal2_DonateETH_Test is OptimismPortal2_TestInit { assertEq(address(optimismPortal2).balance, preBalance + _amount); - assertEq(address(ethLockbox).balance, lockboxBalanceBefore); - // 0 for extcodesize of proxy before being called by this test, // 1 for the call to the proxy by the pranked address // 2 for the delegate call to the impl by the proxy @@ -691,17 +570,6 @@ contract OptimismPortal2_ProveWithdrawalTransaction_Test is OptimismPortal2_Test _outputRootProof: _outputRootProof, _withdrawalProof: _withdrawalProof }); - - if (isUsingLockbox()) { - _defaultTx.target = address(ethLockbox); - vm.expectRevert(IOptimismPortal.OptimismPortal_BadTarget.selector); - optimismPortal2.proveWithdrawalTransaction({ - _tx: _defaultTx, - _disputeGameIndex: _proposedGameIndex, - _outputRootProof: _outputRootProof, - _withdrawalProof: _withdrawalProof - }); - } } /// @notice Tests that `proveWithdrawalTransaction` reverts when the current timestamp is less @@ -887,17 +755,11 @@ contract OptimismPortal2_ProveWithdrawalTransaction_Test is OptimismPortal2_Test /// @notice Test contract for OptimismPortal2 `finalizeWithdrawalTransaction` function. contract OptimismPortal2_FinalizeWithdrawalTransaction_Test is OptimismPortal2_TestInit { /// @notice Tests that `finalizeWithdrawalTransaction` reverts when the target is the portal - /// contract or the lockbox. + /// contract. function test_finalizeWithdrawalTransaction_badTarget_reverts() external { _defaultTx.target = address(optimismPortal2); vm.expectRevert(IOptimismPortal.OptimismPortal_BadTarget.selector); optimismPortal2.finalizeWithdrawalTransaction(_defaultTx); - - if (isUsingLockbox()) { - _defaultTx.target = address(ethLockbox); - vm.expectRevert(IOptimismPortal.OptimismPortal_BadTarget.selector); - optimismPortal2.finalizeWithdrawalTransaction(_defaultTx); - } } /// @notice Tests that `finalizeWithdrawalTransaction` reverts if the target reverts and caller @@ -946,9 +808,6 @@ contract OptimismPortal2_FinalizeWithdrawalTransaction_Test is OptimismPortal2_T vm.warp(gameNoData.expectedResolution().raw() + 1 seconds); vm.deal(address(optimismPortal2), 0xFFFFFFFF); - if (isUsingLockbox()) { - vm.deal(address(ethLockbox), 0xFFFFFFFF); - } uint256 bobBalanceBefore = bob.balance; @@ -1104,53 +963,20 @@ contract OptimismPortal2_FinalizeWithdrawalTransaction_Test is OptimismPortal2_T /// @notice Tests that `finalizeWithdrawalTransaction` reverts if the target reverts. function test_finalizeWithdrawalTransaction_targetFails_fails() external { - if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - vm.deal(address(optimismPortal2), 0); // no balance - } - - uint256 bobBalanceBefore = address(bob).balance; - vm.etch(bob, hex"fe"); // Contract with just the invalid opcode. - - _proveDefaultWithdrawal(); - - _resolveGameAndWarpPastProofMaturity(game); - vm.expectEmit(true, true, true, true); - emit WithdrawalFinalized(_withdrawalHash, false); - optimismPortal2.finalizeWithdrawalTransaction(_defaultTx); - - // Bob's balance should not have changed. - assertEq(address(bob).balance, bobBalanceBefore); - - if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - // OptimismPortal2 should not have any stuck ETH. - assertEq(address(optimismPortal2).balance, 0); - } - } - - /// @notice Tests that `finalizeWithdrawalTransaction` reverts if the target reverts when - /// using the ETHLockbox. - function test_finalizeWithdrawalTransaction_lockboxAndTargetFails_fails() external { - // Enable the ETHLockbox. - address dummyLockbox = address(0xdeadbeef); - forceEnableLockbox(dummyLockbox); - vm.deal(address(dummyLockbox), 0xFFFFFFFF); - vm.deal(address(optimismPortal2), _defaultTx.value); - uint256 bobBalanceBefore = address(bob).balance; vm.etch(bob, hex"fe"); // Contract with just the invalid opcode. _proveDefaultWithdrawal(); _resolveGameAndWarpPastProofMaturity(game); + uint256 portalBalanceBefore = address(optimismPortal2).balance; vm.expectEmit(true, true, true, true); emit WithdrawalFinalized(_withdrawalHash, false); optimismPortal2.finalizeWithdrawalTransaction(_defaultTx); // Bob's balance should not have changed. assertEq(address(bob).balance, bobBalanceBefore); - - // OptimismPortal2 should not have any stuck ETH. - assertEq(address(optimismPortal2).balance, 0); + assertEq(address(optimismPortal2).balance, portalBalanceBefore); } /// @notice Tests that `finalizeWithdrawalTransaction` reverts if the withdrawal has already @@ -1639,13 +1465,8 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { external { // Prevent overflow on an upgrade context - // Since the value always goes through the portal _mint = bound(_mint, 0, type(uint256).max - address(optimismPortal2).balance); - if (isUsingLockbox() && address(optimismPortal2).balance > address(ethLockbox).balance) { - _mint = bound(_mint, 0, type(uint256).max - address(ethLockbox).balance); - } - _gasLimit = uint64( bound( _gasLimit, @@ -1656,7 +1477,6 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { if (_isCreation) _to = address(0); uint256 balanceBefore = address(optimismPortal2).balance; - uint256 lockboxBalanceBefore = address(ethLockbox).balance; // EOA emulation vm.expectEmit(address(optimismPortal2)); @@ -1670,23 +1490,13 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { _data: _data }); - if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - // Expect call to the ETHLockbox to lock the funds only if the value is greater than 0. - vm.expectCall(address(ethLockbox), _mint, abi.encodeCall(ethLockbox.lockETH, ()), _mint > 0 ? 1 : 0); - } - vm.deal(depositor, _mint); vm.prank(depositor, depositor); optimismPortal2.depositTransaction{ value: _mint }({ _to: _to, _value: _value, _gasLimit: _gasLimit, _isCreation: _isCreation, _data: _data }); - if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - assertEq(address(optimismPortal2).balance, balanceBefore); - assertEq(address(ethLockbox).balance, lockboxBalanceBefore + _mint); - } else { - assertEq(address(optimismPortal2).balance, balanceBefore + _mint); - } + assertEq(address(optimismPortal2).balance, balanceBefore + _mint); } /// @notice Tests that `depositTransaction` succeeds for an EOA using 7702 delegation. @@ -1705,7 +1515,7 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { vm.assume(_7702Target != address(0)); // Prevent overflow on an upgrade context - _mint = bound(_mint, 0, type(uint256).max - address(ethLockbox).balance); + _mint = bound(_mint, 0, type(uint256).max - address(optimismPortal2).balance); _gasLimit = uint64( bound( @@ -1717,8 +1527,6 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { if (_isCreation) _to = address(0); uint256 portalBalanceBefore = address(optimismPortal2).balance; - uint256 lockboxBalanceBefore = address(ethLockbox).balance; - _mint = bound(_mint, 0, type(uint256).max - portalBalanceBefore); // EOA emulation vm.expectEmit(address(optimismPortal2)); @@ -1741,12 +1549,7 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { _to: _to, _value: _value, _gasLimit: _gasLimit, _isCreation: _isCreation, _data: _data }); - if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, lockboxBalanceBefore + _mint); - } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + _mint); - } + assertEq(address(optimismPortal2).balance, portalBalanceBefore + _mint); } /// @notice Tests that `depositTransaction` succeeds for a contract. @@ -1761,7 +1564,7 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { external { // Prevent overflow on an upgrade context - _mint = bound(_mint, 0, type(uint256).max - address(ethLockbox).balance); + _mint = bound(_mint, 0, type(uint256).max - address(optimismPortal2).balance); _gasLimit = uint64( bound( _gasLimit, @@ -1772,8 +1575,6 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { if (_isCreation) _to = address(0); uint256 balanceBefore = address(optimismPortal2).balance; - uint256 lockboxBalanceBefore = address(ethLockbox).balance; - _mint = bound(_mint, 0, type(uint256).max - balanceBefore); vm.expectEmit(address(optimismPortal2)); emitTransactionDeposited({ @@ -1786,23 +1587,13 @@ contract OptimismPortal2_DepositTransaction_Test is OptimismPortal2_TestInit { _data: _data }); - if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - // Expect call to the ETHLockbox to lock the funds only if the value is greater than 0. - vm.expectCall(address(ethLockbox), _mint, abi.encodeCall(ethLockbox.lockETH, ()), _mint > 0 ? 1 : 0); - } - vm.deal(address(this), _mint); vm.prank(address(this)); optimismPortal2.depositTransaction{ value: _mint }({ _to: _to, _value: _value, _gasLimit: _gasLimit, _isCreation: _isCreation, _data: _data }); - if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { - assertEq(address(optimismPortal2).balance, balanceBefore); - assertEq(address(ethLockbox).balance, lockboxBalanceBefore + _mint); - } else { - assertEq(address(optimismPortal2).balance, balanceBefore + _mint); - } + assertEq(address(optimismPortal2).balance, balanceBefore + _mint); } } diff --git a/test/L1/SystemConfig.t.sol b/test/L1/SystemConfig.t.sol index 796edaedf..30d8cbab1 100644 --- a/test/L1/SystemConfig.t.sol +++ b/test/L1/SystemConfig.t.sol @@ -5,12 +5,10 @@ pragma solidity 0.8.15; import { CommonTest } from "test/setup/CommonTest.sol"; // Scripts -import { ForgeArtifacts, StorageSlot } from "scripts/libraries/ForgeArtifacts.sol"; // Libraries import { Constants } from "src/libraries/Constants.sol"; import { EIP1967Helper } from "test/mocks/EIP1967Helper.sol"; -import { Features } from "src/libraries/Features.sol"; // Interfaces import { IResourceMetering } from "interfaces/L1/IResourceMetering.sol"; @@ -563,11 +561,8 @@ contract SystemConfig_Paused_Test is SystemConfig_TestInit { assertTrue(systemConfig.paused()); } - /// @notice Tests that `paused()` returns true when OptimismPortal identifier is paused and - /// the ETH_LOCKBOX feature is disabled. + /// @notice Tests that `paused()` returns true when the OptimismPortal identifier is paused. function test_paused_optimismPortalIdentifier_succeeds() external { - skipIfSysFeatureEnabled(Features.ETH_LOCKBOX); - // Initially not paused assertFalse(systemConfig.paused()); @@ -579,22 +574,6 @@ contract SystemConfig_Paused_Test is SystemConfig_TestInit { assertTrue(systemConfig.paused()); } - /// @notice Tests that `paused()` returns true when ETHLockbox identifier is paused and - /// ETH_LOCKBOX feature is enabled. - function test_paused_ethLockboxIdentifier_succeeds() external { - skipIfSysFeatureDisabled(Features.ETH_LOCKBOX); - - // Initially not paused - assertFalse(systemConfig.paused()); - - // Pause the system with ETHLockbox identifier - vm.prank(superchainConfig.guardian()); - superchainConfig.pause(address(ethLockbox)); - - // Verify paused state - assertTrue(systemConfig.paused()); - } - /// @notice Tests that `paused()` returns true when both pauses are active. function test_paused_bothPausesActive_succeeds() external { assertFalse(systemConfig.paused()); @@ -614,7 +593,6 @@ contract SystemConfig_Paused_Test is SystemConfig_TestInit { function testFuzz_paused_otherAddress_succeeds(address _address) external { vm.assume(_address != address(0)); vm.assume(_address != address(optimismPortal2)); - vm.assume(_address != address(ethLockbox)); // Initially not paused assertFalse(systemConfig.paused()); @@ -633,15 +611,6 @@ contract SystemConfig_Paused_Test is SystemConfig_TestInit { contract SystemConfig_SetFeature_Test is SystemConfig_TestInit { event FeatureSet(bytes32 indexed feature, bool indexed enabled); - function _enableEthLockboxIfDisabled(address proxyAdmin) internal { - if (!systemConfig.isFeatureEnabled(Features.ETH_LOCKBOX)) { - vm.prank(proxyAdmin); - systemConfig.setFeature(Features.ETH_LOCKBOX, true); - } - - assertTrue(systemConfig.isFeatureEnabled(Features.ETH_LOCKBOX)); - } - /// @notice Tests that `setFeature` reverts if the caller is not ProxyAdmin or ProxyAdmin owner. /// @param _sender The address to test. function testFuzz_setFeature_notProxyAdminOrProxyAdminOwner_reverts(address _sender) external { @@ -733,55 +702,6 @@ contract SystemConfig_SetFeature_Test is SystemConfig_TestInit { vm.expectRevert(ISystemConfig.SystemConfig_InvalidFeatureState.selector); systemConfig.setFeature(EXAMPLE_FEATURE, false); } - - /// @notice Tests that disabling ETH_LOCKBOX reverts if the OptimismPortal has a non-zero - /// ETHLockbox configured. - function test_setFeature_ethLockboxDisableWhileConfigured_reverts() external { - address proxyAdmin = address(systemConfig.proxyAdmin()); - - _enableEthLockboxIfDisabled(proxyAdmin); - - // Force the portal to have a configured ETHLockbox address. - StorageSlot memory slot = ForgeArtifacts.getSlot("OptimismPortal2", "ethLockbox"); - vm.store(address(optimismPortal2), bytes32(slot.slot), bytes32(uint256(uint160(address(1))))); - - // Disabling should revert due to safety check while lockbox is configured. - vm.expectRevert(ISystemConfig.SystemConfig_InvalidFeatureState.selector); - vm.prank(proxyAdmin); - systemConfig.setFeature(Features.ETH_LOCKBOX, false); - } - - /// @notice Tests that enabling ETH_LOCKBOX while the system is paused (global) reverts. - function test_setFeature_ethLockboxEnableWhilePaused_reverts() external { - address proxyAdmin = address(systemConfig.proxyAdmin()); - - _enableEthLockboxIfDisabled(proxyAdmin); - - // Pause globally. - vm.prank(superchainConfig.guardian()); - superchainConfig.pause(address(0)); - - // Enabling while paused should revert. - vm.expectRevert(ISystemConfig.SystemConfig_InvalidFeatureState.selector); - vm.prank(proxyAdmin); - systemConfig.setFeature(Features.ETH_LOCKBOX, true); - } - - /// @notice Tests that disabling ETH_LOCKBOX while the system is paused (global) reverts. - function test_setFeature_ethLockboxDisableWhilePaused_reverts() external { - address proxyAdmin = address(systemConfig.proxyAdmin()); - - _enableEthLockboxIfDisabled(proxyAdmin); - - // Pause globally. - vm.prank(superchainConfig.guardian()); - superchainConfig.pause(address(0)); - - // Disabling while paused should revert. - vm.expectRevert(ISystemConfig.SystemConfig_InvalidFeatureState.selector); - vm.prank(proxyAdmin); - systemConfig.setFeature(Features.ETH_LOCKBOX, false); - } } /// @title SystemConfig_IsFeatureEnabled_Test diff --git a/test/deploy/SystemDeploy.t.sol b/test/deploy/SystemDeploy.t.sol index 5011d14f3..b7020e413 100644 --- a/test/deploy/SystemDeploy.t.sol +++ b/test/deploy/SystemDeploy.t.sol @@ -119,7 +119,6 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { assertNotEq(address(output.opChain.opChainProxyAdmin), address(0), "proxy admin"); assertNotEq(address(output.opChain.systemConfigProxy), address(0), "system config"); assertNotEq(address(output.opChain.optimismPortalProxy), address(0), "portal"); - assertNotEq(address(output.opChain.ethLockboxProxy), address(0), "lockbox"); assertNotEq(address(output.opChain.delayedWETHProxy), address(0), "delayed weth"); assertNotEq(address(output.opChain.protocolVersionsProxy), address(0), "protocol versions"); assertEq( @@ -338,7 +337,6 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { superchainConfig: _output.superchain.superchainConfigProxy, implementations: _output.impls, delayedWETH: _output.opChain.delayedWETHProxy, - ethLockbox: _output.opChain.ethLockboxProxy, proxyAdminOwner: _input.opChainInput.roles.opChainProxyAdminOwner, multiproofGameType: GameType.wrap(uint32(_input.implementationsInput.multiproofGameType)), teeImageHash: _input.implementationsInput.teeImageHash, diff --git a/test/deploy/SystemDeployAssertions.sol b/test/deploy/SystemDeployAssertions.sol index fb3aa1c1e..7392dba36 100644 --- a/test/deploy/SystemDeployAssertions.sol +++ b/test/deploy/SystemDeployAssertions.sol @@ -6,7 +6,6 @@ import { Test } from "lib/forge-std/src/Test.sol"; import { Types } from "scripts/libraries/Types.sol"; import { Constants } from "src/libraries/Constants.sol"; -import { Features } from "src/libraries/Features.sol"; import { Predeploys } from "src/libraries/Predeploys.sol"; import { GameType, Hash } from "src/libraries/bridge/Types.sol"; import { Claim } from "src/libraries/bridge/LibUDT.sol"; @@ -24,7 +23,6 @@ import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol"; import { IResourceMetering } from "interfaces/L1/IResourceMetering.sol"; import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; import { IOptimismMintableERC20Factory } from "interfaces/universal/IOptimismMintableERC20Factory.sol"; import { IProxyAdmin } from "interfaces/universal/IProxyAdmin.sol"; import { ISemver } from "interfaces/universal/ISemver.sol"; @@ -36,7 +34,6 @@ abstract contract SystemDeployAssertions is Test { ISuperchainConfig superchainConfig; Types.Implementations implementations; IDelayedWETH delayedWETH; - IETHLockbox ethLockbox; address proxyAdminOwner; GameType multiproofGameType; bytes32 teeImageHash; @@ -58,7 +55,6 @@ abstract contract SystemDeployAssertions is Test { _assertBridgeAndPortalWiring(_expected, proxyAdmin); _assertDisputeGameFactory(_expected, proxyAdmin); _assertGame(_expected, proxyAdmin, _expected.multiproofGameType); - _assertETHLockbox(_expected, proxyAdmin); } function _assertSuperchainConfig(ExpectedSystemDeployState memory _expected) private view { @@ -300,24 +296,6 @@ abstract contract SystemDeployAssertions is Test { assertGt(_asr.retirementTimestamp(), 0, "AV-ANCHORP-60"); } - function _assertETHLockbox(ExpectedSystemDeployState memory _expected, IProxyAdmin _proxyAdmin) private view { - IOptimismPortal2 portal = IOptimismPortal2(payable(_expected.systemConfig.optimismPortal())); - IETHLockbox lockbox = _expected.ethLockbox; - - assertNotEq(address(lockbox), address(0), "LOCKBOX-05"); - assertEq(_version(address(lockbox)), _version(_expected.implementations.ethLockboxImpl), "LOCKBOX-10"); - assertEq( - _proxyAdmin.getProxyImplementation(address(lockbox)), _expected.implementations.ethLockboxImpl, "LOCKBOX-20" - ); - assertEq(address(_proxyAdminFor(address(lockbox))), address(_proxyAdmin), "LOCKBOX-30"); - assertEq(address(lockbox.systemConfig()), address(_expected.systemConfig), "LOCKBOX-40"); - assertTrue(lockbox.authorizedPortals(portal), "LOCKBOX-50"); - - if (_expected.systemConfig.isFeatureEnabled(Features.ETH_LOCKBOX)) { - assertEq(address(portal.ethLockbox()), address(lockbox), "LOCKBOX-60"); - } - } - function _proxyAdminFor(address _contract) private view returns (IProxyAdmin) { return IProxyAdminOwnedBase(_contract).proxyAdmin(); } diff --git a/test/setup/ForkLive.s.sol b/test/setup/ForkLive.s.sol index e606b5f64..6b58d140f 100644 --- a/test/setup/ForkLive.s.sol +++ b/test/setup/ForkLive.s.sol @@ -23,8 +23,6 @@ import { IAddressManager } from "interfaces/legacy/IAddressManager.sol"; import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { IProxyAdmin } from "interfaces/universal/IProxyAdmin.sol"; -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; -import { IOptimismPortal2 } from "interfaces/L1/IOptimismPortal2.sol"; /// @title ForkLive /// @notice This script is called by Setup.sol as a preparation step for the foundry test suite, and is run as an @@ -143,15 +141,6 @@ contract ForkLive is Script { artifacts.save("OptimismPortalProxy", optimismPortal); artifacts.save("OptimismPortal2Impl", EIP1967Helper.getImplementation(optimismPortal)); - // Get the lockbox address from the portal, and save it - /// NOTE: Using try catch because this function could be called before or after the upgrade. - try IOptimismPortal2(payable(optimismPortal)).ethLockbox() returns (IETHLockbox ethLockbox_) { - console.log("ForkLive: ETHLockboxProxy found: %s", address(ethLockbox_)); - artifacts.save("ETHLockboxProxy", address(ethLockbox_)); - } catch { - console.log("ForkLive: ETHLockboxProxy not found"); - } - address l1CrossDomainMessenger = systemConfigAddresses.l1CrossDomainMessenger; address addressManager = _legacyAddressManager(l1CrossDomainMessenger); artifacts.save("AddressManager", addressManager); @@ -242,10 +231,6 @@ contract ForkLive is Script { IAggregateVerifier(address(disputeGameFactory.gameImpls(GameTypes.AGGREGATE_VERIFIER))); artifacts.save("AggregateVerifier", address(aggregateVerifier)); - IOptimismPortal2 portal = IOptimismPortal2(artifacts.mustGetAddress("OptimismPortalProxy")); - address lockboxAddress = address(portal.ethLockbox()); - artifacts.save("ETHLockboxProxy", lockboxAddress); - GameAddresses memory gameAddresses = _aggregateVerifierAddresses(aggregateVerifier); artifacts.save("AnchorStateRegistryProxy", gameAddresses.anchorStateRegistry); artifacts.save("DelayedWETHProxy", gameAddresses.weth); diff --git a/test/setup/Setup.sol b/test/setup/Setup.sol index df4a6d05e..7ee901cb4 100644 --- a/test/setup/Setup.sol +++ b/test/setup/Setup.sol @@ -25,7 +25,6 @@ import { AddressAliasHelper } from "src/vendor/AddressAliasHelper.sol"; // Interfaces import { IOptimismPortal2 as IOptimismPortal } from "interfaces/L1/IOptimismPortal2.sol"; -import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol"; import { IL1CrossDomainMessenger } from "interfaces/L1/IL1CrossDomainMessenger.sol"; import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol"; import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; @@ -98,7 +97,6 @@ abstract contract Setup is FeatureFlags { address superchainProxyAdminOwner; IProxyAdmin superchainProxyAdmin; IOptimismPortal optimismPortal2; - IETHLockbox ethLockbox; ISystemConfig systemConfig; IL1StandardBridge l1StandardBridge; IL1CrossDomainMessenger l1CrossDomainMessenger; @@ -220,15 +218,6 @@ abstract contract Setup is FeatureFlags { optimismPortal2 = IOptimismPortal(artifacts.mustGetAddress("OptimismPortalProxy")); - // Only skip ETHLockbox assignment if we're in a fork test with non-upgraded fork - // TODO(#14691): Remove this check once Upgrade 15 is deployed on Mainnet. - if (!forkTest || deploy.cfg().useUpgradedFork()) { - // Here we use getAddress instead of mustGetAddress because some chains might not have - // the ETHLockbox proxy. Chains that don't have the ETHLockbox proxy will just return - // address(0) and cause a revert if we use mustGetAddress. - ethLockbox = IETHLockbox(artifacts.getAddress("ETHLockboxProxy")); - } - systemConfig = ISystemConfig(artifacts.mustGetAddress("SystemConfigProxy")); l1StandardBridge = IL1StandardBridge(artifacts.mustGetAddress("L1StandardBridgeProxy")); l1CrossDomainMessenger = IL1CrossDomainMessenger(artifacts.mustGetAddress("L1CrossDomainMessengerProxy")); diff --git a/test/vendor/Initializable.t.sol b/test/vendor/Initializable.t.sol index b1c762141..9adb1e132 100644 --- a/test/vendor/Initializable.t.sol +++ b/test/vendor/Initializable.t.sol @@ -18,7 +18,6 @@ import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol"; import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { IResourceMetering } from "interfaces/L1/IResourceMetering.sol"; import { IDisputeGameFactory } from "interfaces/L1/proofs/IDisputeGameFactory.sol"; -import { IOptimismPortal2 } from "interfaces/L1/IOptimismPortal2.sol"; import { TEEProverRegistry } from "src/L1/proofs/tee/TEEProverRegistry.sol"; /// @title Initializer_Test @@ -229,24 +228,6 @@ contract Initializer_Test is CommonTest { ); } - // ETHLockbox is only deployed when interop is enabled - if (address(ethLockbox) != address(0)) { - initCalldata = abi.encodeCall(ethLockbox.initialize, (ISystemConfig(address(0)), new IOptimismPortal2[](0))); - contracts.push( - InitializeableContract({ - name: "ETHLockboxImpl", - target: EIP1967Helper.getImplementation(address(ethLockbox)), - initCalldata: initCalldata - }) - ); - - contracts.push( - InitializeableContract({ - name: "ETHLockboxProxy", target: address(ethLockbox), initCalldata: initCalldata - }) - ); - } - // AggregateVerifier uses a custom `bool initialized` instead of OpenZeppelin's `_initialized` // uint8, so it cannot be tested by this framework. It is excluded below. @@ -279,10 +260,6 @@ contract Initializer_Test is CommonTest { excludes[j++] = "src/L1/BalanceTracker.sol"; // AggregateVerifier uses a custom `bool initialized` instead of OpenZeppelin's `_initialized` uint8. excludes[j++] = "src/L1/proofs/AggregateVerifier.sol"; - // ETHLockbox is only deployed when interop is enabled. - if (address(ethLockbox) == address(0)) { - excludes[j++] = "src/L1/ETHLockbox.sol"; - } // ProtocolVersions is not deployed on older forked chains. if (address(protocolVersions) == address(0)) { excludes[j++] = "src/L1/ProtocolVersions.sol"; From 1c744f50abf0bc134ba2c78589e3f717fd12f10f Mon Sep 17 00:00:00 2001 From: Pelle Date: Mon, 27 Jul 2026 16:59:14 -0400 Subject: [PATCH 13/19] feat(L1): add activated ProtocolVersions schedule commitments (#383) * feat(L1): commit to upgrades active at an L2 timestamp Add ProtocolVersions.activatedScheduleId, which searches registrations from newest to oldest and returns the cached schedule prefix through the highest upgrade active at the supplied L2 cutoff. Newer future and unscheduled entries cannot move historical proof-game commitments. Co-authored-by: Codex * fix(L1): guard activated schedule updates Co-authored-by: Codex --------- Co-authored-by: Codex --- interfaces/L1/IProtocolVersions.sol | 6 + snapshots/abi/ProtocolVersions.json | 87 +++++++++ snapshots/semver-lock.json | 4 +- src/L1/ProtocolVersions.sol | 69 +++++++ test/L1/ProtocolVersions.t.sol | 271 ++++++++++++++++++++++++++++ 5 files changed, 435 insertions(+), 2 deletions(-) diff --git a/interfaces/L1/IProtocolVersions.sol b/interfaces/L1/IProtocolVersions.sol index ccb41815d..0d4bf1b79 100644 --- a/interfaces/L1/IProtocolVersions.sol +++ b/interfaces/L1/IProtocolVersions.sol @@ -21,6 +21,11 @@ interface IProtocolVersions is IProxyAdminOwnedBase, ISemver, IReinitializableBa error ProtocolVersions_NotIncidentResponder(); error ProtocolVersions_NotScheduled(uint256 id); error ProtocolVersions_DelayMustBeLater(uint64 currentTimestamp, uint64 newTimestamp); + error ProtocolVersions_StaticScheduleHole(uint256 id, uint256 nextScheduledId); + error ProtocolVersions_TimestampNotAfterPrevious( + uint256 id, uint256 previousId, uint64 previousTimestamp, uint64 timestamp + ); + error ProtocolVersions_TimestampNotBeforeNext(uint256 id, uint256 nextId, uint64 timestamp, uint64 nextTimestamp); error ProtocolVersions_NotInitialized(); error ProtocolVersions_InsufficientNotice(uint64 timestamp); @@ -36,6 +41,7 @@ interface IProtocolVersions is IProxyAdminOwnedBase, ISemver, IReinitializableBa function incidentResponder() external view returns (address); function scheduleId() external view returns (bytes32); function scheduleId(uint256 id) external view returns (bytes32); + function activatedScheduleId(uint64 l2Timestamp) external view returns (bytes32); function getSchedule() external view returns (uint64[] memory); function __constructor__() external; diff --git a/snapshots/abi/ProtocolVersions.json b/snapshots/abi/ProtocolVersions.json index 33ef5fc0a..22a95612e 100644 --- a/snapshots/abi/ProtocolVersions.json +++ b/snapshots/abi/ProtocolVersions.json @@ -17,6 +17,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "l2Timestamp", + "type": "uint64" + } + ], + "name": "activatedScheduleId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -398,6 +417,74 @@ "name": "ProtocolVersions_NotScheduled", "type": "error" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "nextScheduledId", + "type": "uint256" + } + ], + "name": "ProtocolVersions_StaticScheduleHole", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "previousId", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "previousTimestamp", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "timestamp", + "type": "uint64" + } + ], + "name": "ProtocolVersions_TimestampNotAfterPrevious", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "nextId", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "timestamp", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "nextTimestamp", + "type": "uint64" + } + ], + "name": "ProtocolVersions_TimestampNotBeforeNext", + "type": "error" + }, { "inputs": [ { diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 6575846fd..5152fa9ca 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -16,8 +16,8 @@ "sourceCodeHash": "0x811596e7486cab9ceeeb61405b9ae510d93fcbbdfa11949201a367506c53194a" }, "src/L1/ProtocolVersions.sol:ProtocolVersions": { - "initCodeHash": "0x8ff4bbb0adb8115a3d77e1b706038b0758fdb3a0b183108a794b3cb6200acd83", - "sourceCodeHash": "0x2c60b18d14bf9d966e7f852397b02e732f408933261823b42b61633c14613614" + "initCodeHash": "0x876ec89fcdbe230fc10a0dd0c7a54465dfc79640419901f224975ce99dbc342e", + "sourceCodeHash": "0xc11f8bafb960a88dabd0a4d60327252cdf2326f784490c64dc45cea072f7b407" }, "src/L1/SuperchainConfig.sol:SuperchainConfig": { "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", diff --git a/src/L1/ProtocolVersions.sol b/src/L1/ProtocolVersions.sol index 846727f71..088d0eb2a 100644 --- a/src/L1/ProtocolVersions.sol +++ b/src/L1/ProtocolVersions.sol @@ -87,6 +87,14 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable error ProtocolVersions_NotScheduled(uint256 id); /// @notice Thrown when a new timestamp is not sufficiently later than the current one. error ProtocolVersions_DelayMustBeLater(uint64 currentTimestamp, uint64 newTimestamp); + /// @notice Thrown when scheduling a zero-valued static hole below a scheduled successor. + error ProtocolVersions_StaticScheduleHole(uint256 id, uint256 nextScheduledId); + /// @notice Thrown when a non-zero timestamp is not greater than the previous scheduled upgrade. + error ProtocolVersions_TimestampNotAfterPrevious( + uint256 id, uint256 previousId, uint64 previousTimestamp, uint64 timestamp + ); + /// @notice Thrown when a non-zero timestamp is not less than the next scheduled upgrade. + error ProtocolVersions_TimestampNotBeforeNext(uint256 id, uint256 nextId, uint64 timestamp, uint64 nextTimestamp); /// @notice Thrown when scheduleId is read before initialize has been called. error ProtocolVersions_NotInitialized(); /// @notice Thrown when a non-zero timestamp does not provide at least MIN_NOTICE seconds of notice. @@ -127,6 +135,7 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable _assertOnlyProxyAdminOwner(); if (_upgradeScheduleId.length == 0) revert ProtocolVersions_NotInitialized(); uint256 id = _timestamps.length; + _assertTimestampAfterPrevious(id, timestamp); _timestamps.push(0); // Reserve the link slot for this upgrade at index id + 1. _upgradeScheduleId.push(); @@ -172,6 +181,11 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable if (timestamp != 0 && timestamp < uint64(block.timestamp) + MIN_NOTICE) { revert ProtocolVersions_InsufficientNotice(timestamp); } + if (timestamp != 0) { + if (current == 0) _assertNoScheduledSuccessor(id); + _assertTimestampAfterPrevious(id, timestamp); + _assertTimestampBeforeNext(id, timestamp); + } _writeTimestamp(id, timestamp); } @@ -206,6 +220,7 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable // The new timestamp must also provide at least MIN_NOTICE seconds of notice from now. uint64 minFloor = uint64(block.timestamp) + MIN_NOTICE; if (newTimestamp < minFloor) revert ProtocolVersions_InsufficientNotice(newTimestamp); + _assertTimestampBeforeNext(id, newTimestamp); _writeTimestamp(id, newTimestamp); } @@ -226,6 +241,25 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable return _upgradeScheduleId[id + 1]; } + /// @notice Returns the schedule commitment through the highest upgrade active at `l2Timestamp`. + /// @dev Searches from the newest registration downward, returning the cached cumulative link + /// for the first active upgrade. Entries above that upgrade are excluded, while every + /// registered entry through it remains committed by the prefix. Non-zero timestamps are + /// ordered by id, and zero-valued holes below a scheduled successor cannot be scheduled + /// later, preventing inactive prefix holes from moving activated schedule commitments. + /// @param l2Timestamp Inclusive L2 activation cutoff. + /// @return Hash-chain commitment through the highest activated upgrade. + function activatedScheduleId(uint64 l2Timestamp) external view returns (bytes32) { + if (_upgradeScheduleId.length == 0) revert ProtocolVersions_NotInitialized(); + + for (uint256 i = _timestamps.length; i > 0; i--) { + uint64 activationTimestamp = _timestamps[i - 1]; + if (activationTimestamp != 0 && activationTimestamp <= l2Timestamp) return _upgradeScheduleId[i]; + } + + return _upgradeScheduleId[0]; + } + /// @notice Returns the activation timestamp for every registered upgrade, ordered by upgrade id /// (0 = not scheduled). The array index equals the upgrade `id`; names are resolved /// offchain, and per-upgrade schedule hashes can be reproduced from these timestamps and @@ -275,6 +309,41 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable emit ScheduleIdUpdated(prev); } + /// @dev Prevents scheduling a zero-valued hole once a later upgrade has a timestamp. + function _assertNoScheduledSuccessor(uint256 id) private view { + for (uint256 i = id + 1; i < _timestamps.length; i++) { + if (_timestamps[i] != 0) revert ProtocolVersions_StaticScheduleHole(id, i); + } + } + + /// @dev Requires `timestamp` to be greater than the closest lower-id scheduled upgrade. + function _assertTimestampAfterPrevious(uint256 id, uint64 timestamp) private view { + if (timestamp == 0) return; + + for (uint256 i = id; i > 0; i--) { + uint64 previous = _timestamps[i - 1]; + if (previous != 0) { + if (timestamp <= previous) { + revert ProtocolVersions_TimestampNotAfterPrevious(id, i - 1, previous, timestamp); + } + return; + } + } + } + + /// @dev Requires `timestamp` to be less than the closest higher-id scheduled upgrade. + function _assertTimestampBeforeNext(uint256 id, uint64 timestamp) private view { + if (timestamp == 0) return; + + for (uint256 i = id + 1; i < _timestamps.length; i++) { + uint64 next = _timestamps[i]; + if (next != 0) { + if (timestamp >= next) revert ProtocolVersions_TimestampNotBeforeNext(id, i, timestamp, next); + return; + } + } + } + /// @dev Reverts if `id` is not a registered upgrade. function _assertRegistered(uint256 id) private view { if (id >= _timestamps.length) revert ProtocolVersions_UnknownUpgrade(id); diff --git a/test/L1/ProtocolVersions.t.sol b/test/L1/ProtocolVersions.t.sol index 937df44f4..0a2d87356 100644 --- a/test/L1/ProtocolVersions.t.sol +++ b/test/L1/ProtocolVersions.t.sol @@ -185,6 +185,68 @@ contract ProtocolVersions_RegisterUpgrade_Test is ProtocolVersions_TestInit { assertEq(protocolVersions.getSchedule()[CANYON], ts); } + /// @notice Tests that a scheduled registration must be after the previous scheduled upgrade. + function test_registerUpgrade_timestampAfterPrevious_succeeds() external { + uint64 first = uint64(block.timestamp) + 100; + uint64 second = first + 1; + + vm.prank(_owner); + assertEq(protocolVersions.registerUpgrade(first, 0), CANYON); + vm.prank(_owner); + assertEq(protocolVersions.registerUpgrade(second, 0), ECOTONE); + + uint64[] memory schedule = protocolVersions.getSchedule(); + assertEq(schedule[CANYON], first); + assertEq(schedule[ECOTONE], second); + } + + /// @notice Tests that zero remains the unscheduled/disabled value and is exempt from ordering. + function test_registerUpgrade_zeroTimestampAfterScheduledPrevious_succeeds() external { + uint64 first = uint64(block.timestamp) + 100; + + vm.prank(_owner); + assertEq(protocolVersions.registerUpgrade(first, 0), CANYON); + vm.prank(_owner); + assertEq(protocolVersions.registerUpgrade(0, 0), ECOTONE); + + uint64[] memory schedule = protocolVersions.getSchedule(); + assertEq(schedule[CANYON], first); + assertEq(schedule[ECOTONE], 0); + } + + /// @notice Tests that scheduled registration scans past zero holes to the previous timestamp. + function test_registerUpgrade_timestampAfterPreviousSkipsZeroHoles_succeeds() external { + uint64 first = uint64(block.timestamp) + 100; + uint64 second = first + 1; + + vm.startPrank(_owner); + assertEq(protocolVersions.registerUpgrade(first, 0), CANYON); + assertEq(protocolVersions.registerUpgrade(0, 0), ECOTONE); + assertEq(protocolVersions.registerUpgrade(second, 0), 2); + vm.stopPrank(); + + uint64[] memory schedule = protocolVersions.getSchedule(); + assertEq(schedule[CANYON], first); + assertEq(schedule[ECOTONE], 0); + assertEq(schedule[2], second); + } + + /// @notice Tests that registering an out-of-order timestamp reverts. + function test_registerUpgrade_timestampNotAfterPrevious_reverts() external { + uint64 first = uint64(block.timestamp) + 100; + + vm.prank(_owner); + protocolVersions.registerUpgrade(first, 0); + + vm.expectRevert( + abi.encodeWithSelector( + IProtocolVersions.ProtocolVersions_TimestampNotAfterPrevious.selector, ECOTONE, CANYON, first, first + ) + ); + vm.prank(_owner); + protocolVersions.registerUpgrade(first, 0); + } + /// @notice Tests that a non-zero minProtocolVersion bumps the minimum during registration. function test_registerUpgrade_setsMinProtocolVersion_succeeds() external { vm.expectEmit(true, false, false, false, address(protocolVersions)); @@ -359,6 +421,82 @@ contract ProtocolVersions_SetTimestamp_Test is ProtocolVersions_TestInit { protocolVersions.setTimestamp(CANYON, ts); } + /// @notice Tests that a zero-valued hole below a scheduled successor cannot be scheduled later. + function test_setTimestamp_staticScheduleHole_reverts() external { + uint64 successor = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 200; + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + + vm.startPrank(_owner); + protocolVersions.registerUpgrade(0, 0); + protocolVersions.registerUpgrade(successor, 0); + vm.stopPrank(); + + vm.expectRevert( + abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_StaticScheduleHole.selector, CANYON, ECOTONE) + ); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + } + + /// @notice Tests that static-hole detection scans past zero holes to the next scheduled upgrade. + function test_setTimestamp_staticScheduleHoleSkipsZeroHoles_reverts() external { + uint64 successor = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 200; + uint64 ts = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + + vm.startPrank(_owner); + protocolVersions.registerUpgrade(0, 0); + protocolVersions.registerUpgrade(0, 0); + protocolVersions.registerUpgrade(successor, 0); + vm.stopPrank(); + + vm.expectRevert( + abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_StaticScheduleHole.selector, CANYON, uint256(2)) + ); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, ts); + } + + /// @notice Tests that `setTimestamp` reverts when the timestamp is not after the previous one. + function test_setTimestamp_timestampNotAfterPrevious_reverts() external { + uint64 previous = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + + vm.startPrank(_owner); + protocolVersions.registerUpgrade(previous, 0); + protocolVersions.registerUpgrade(0, 0); + vm.stopPrank(); + + vm.expectRevert( + abi.encodeWithSelector( + IProtocolVersions.ProtocolVersions_TimestampNotAfterPrevious.selector, + ECOTONE, + CANYON, + previous, + previous + ) + ); + vm.prank(_owner); + protocolVersions.setTimestamp(ECOTONE, previous); + } + + /// @notice Tests that `setTimestamp` reverts when the timestamp is not before the next one. + function test_setTimestamp_timestampNotBeforeNext_reverts() external { + uint64 current = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + uint64 next = current + 100; + + vm.startPrank(_owner); + protocolVersions.registerUpgrade(current, 0); + protocolVersions.registerUpgrade(next, 0); + vm.stopPrank(); + + vm.expectRevert( + abi.encodeWithSelector( + IProtocolVersions.ProtocolVersions_TimestampNotBeforeNext.selector, CANYON, ECOTONE, next, next + ) + ); + vm.prank(_owner); + protocolVersions.setTimestamp(CANYON, next); + } + /// @notice Tests that `setTimestamp` reverts when the upgrade has already activated. function test_setTimestamp_afterActivation_reverts() external { vm.prank(_owner); @@ -470,6 +608,26 @@ contract ProtocolVersions_DelayTimestamp_Test is ProtocolVersions_TestInit { protocolVersions.delayTimestamp(CANYON, ts); } + /// @notice Tests that `delayTimestamp` cannot move an upgrade to or beyond its next scheduled successor. + function test_delayTimestamp_timestampNotBeforeNext_reverts() external { + uint64 current = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + uint64 next = current + 100; + + vm.startPrank(_owner); + protocolVersions.registerUpgrade(current, 0); + protocolVersions.registerUpgrade(next, 0); + protocolVersions.setIncidentResponder(_incidentResponder); + vm.stopPrank(); + + vm.expectRevert( + abi.encodeWithSelector( + IProtocolVersions.ProtocolVersions_TimestampNotBeforeNext.selector, CANYON, ECOTONE, next, next + ) + ); + vm.prank(_incidentResponder); + protocolVersions.delayTimestamp(CANYON, next); + } + /// @notice Tests that `delayTimestamp` reverts when the upgrade has no scheduled timestamp. function test_delayTimestamp_notScheduled_reverts() external { vm.prank(_owner); @@ -597,3 +755,116 @@ contract ProtocolVersions_Uncategorized_Test is ProtocolVersions_TestInit { protocolVersions.scheduleId(0); } } + +/// @title ProtocolVersions_ActivatedScheduleId_Test +/// @notice Tests for commitments to the upgrades active at a supplied L2 timestamp. +contract ProtocolVersions_ActivatedScheduleId_Test is ProtocolVersions_TestInit { + /// @notice An empty registry and a registry containing only inactive entries both commit to the + /// zero hash-chain seed. + function test_activatedScheduleId_noneActivated_returnsSeed() external { + assertEq(protocolVersions.activatedScheduleId(uint64(block.timestamp)), bytes32(0)); + + vm.startPrank(_owner); + protocolVersions.registerUpgrade(0, 0); + protocolVersions.registerUpgrade(uint64(block.timestamp + 100), 0); + vm.stopPrank(); + + assertEq(protocolVersions.activatedScheduleId(uint64(block.timestamp)), bytes32(0)); + } + + /// @notice Activation is inclusive at the supplied L2 timestamp. + function test_activatedScheduleId_boundaryInclusive_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(100, 0); + + assertEq(protocolVersions.activatedScheduleId(99), bytes32(0)); + assertEq( + protocolVersions.activatedScheduleId(100), keccak256(abi.encode(bytes32(0), uint256(CANYON), uint64(100))) + ); + } + + /// @notice The commitment includes every registered entry through the highest active upgrade, + /// including a static zero-valued hole below it. + function test_activatedScheduleId_commitsPrefixThroughHighestActive_succeeds() external { + vm.startPrank(_owner); + protocolVersions.registerUpgrade(10, 0); + protocolVersions.registerUpgrade(0, 0); + protocolVersions.registerUpgrade(30, 0); + vm.stopPrank(); + + bytes32 link0 = keccak256(abi.encode(bytes32(0), uint256(0), uint64(10))); + bytes32 link1 = keccak256(abi.encode(link0, uint256(1), uint64(0))); + bytes32 link2 = keccak256(abi.encode(link1, uint256(2), uint64(30))); + + assertEq(protocolVersions.activatedScheduleId(30), link2); + } + + /// @notice Appending unscheduled or future upgrades above the active prefix cannot move the + /// activated commitment selected by that prefix. + function test_activatedScheduleId_stableAcrossAppendsAboveActivePrefix_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(10, 0); + bytes32 pinned = protocolVersions.activatedScheduleId(10); + + vm.startPrank(_owner); + protocolVersions.registerUpgrade(0, 0); + protocolVersions.registerUpgrade(100, 0); + vm.stopPrank(); + + assertEq(protocolVersions.activatedScheduleId(10), pinned); + assertNotEq(protocolVersions.scheduleId(), pinned); + } + + /// @notice Cross-implementation golden shared with Base's `ScheduleId` tests for the real Base + /// mainnet static schedule. The activation cutoff is Beryl, so the commitment contains + /// the prefix through id 11, including the static PectraBlobSchedule hole at id 7, and + /// excludes the unscheduled Cobalt placeholder at id 12. + function test_activatedScheduleId_matchesBaseMainnetGoldenValue_succeeds() external { + _registerBaseMainnetStaticSchedule(); + + assertEq( + protocolVersions.activatedScheduleId(BASE_MAINNET_BERYL_TIMESTAMP), + 0xadd4aa9bd3532969035a9543c16b8c7d71298e15836f0ac731fdd3eea552c6e2 + ); + } + + /// @notice Cross-implementation golden for the full real Base mainnet contract-backed schedule. + /// The live tail commits to all 13 entries, including PectraBlobSchedule and Cobalt as + /// unscheduled zero-timestamp entries. + function test_scheduleId_matchesBaseMainnetFullScheduleGoldenValue_succeeds() external { + _registerBaseMainnetStaticSchedule(); + + assertEq(protocolVersions.scheduleId(), 0x5ee41f186b0a439783060587cfbb942f6f1d94ecc76376c9782580c943ff2b6d); + assertEq(protocolVersions.scheduleId(12), protocolVersions.scheduleId()); + } + + uint64 private constant BASE_MAINNET_GENESIS_TIMESTAMP = 1_686_789_347; + uint64 private constant BASE_MAINNET_CANYON_TIMESTAMP = 1_704_992_401; + uint64 private constant BASE_MAINNET_DELTA_TIMESTAMP = 1_708_560_000; + uint64 private constant BASE_MAINNET_ECOTONE_TIMESTAMP = 1_710_374_401; + uint64 private constant BASE_MAINNET_FJORD_TIMESTAMP = 1_720_627_201; + uint64 private constant BASE_MAINNET_GRANITE_TIMESTAMP = 1_726_070_401; + uint64 private constant BASE_MAINNET_HOLOCENE_TIMESTAMP = 1_736_445_601; + uint64 private constant BASE_MAINNET_ISTHMUS_TIMESTAMP = 1_746_806_401; + uint64 private constant BASE_MAINNET_JOVIAN_TIMESTAMP = 1_764_691_201; + uint64 private constant BASE_MAINNET_AZUL_TIMESTAMP = 1_779_991_200; + uint64 private constant BASE_MAINNET_BERYL_TIMESTAMP = 1_782_410_400; + + function _registerBaseMainnetStaticSchedule() private { + vm.startPrank(_owner); + protocolVersions.registerUpgrade(BASE_MAINNET_GENESIS_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_CANYON_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_DELTA_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_ECOTONE_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_FJORD_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_GRANITE_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_HOLOCENE_TIMESTAMP, 0); + protocolVersions.registerUpgrade(0, 0); // PectraBlobSchedule is unscheduled on Base mainnet. + protocolVersions.registerUpgrade(BASE_MAINNET_ISTHMUS_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_JOVIAN_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_AZUL_TIMESTAMP, 0); + protocolVersions.registerUpgrade(BASE_MAINNET_BERYL_TIMESTAMP, 0); + protocolVersions.registerUpgrade(0, 0); // Cobalt is unscheduled on Base mainnet. + vm.stopPrank(); + } +} From 7b881c39b16bf0509c181d9536dbf35c5bb0e7f2 Mon Sep 17 00:00:00 2001 From: Pelle Date: Tue, 28 Jul 2026 09:38:50 -0400 Subject: [PATCH 14/19] feat(L1): pin proof games to their L2 activation schedule (#384) Derive each AggregateVerifier game's schedule commitment from its ending L2 block using the configured genesis timestamp and fixed block time. This removes dependence on proof-generation and game-creation L1 timestamps, while checked timestamp arithmetic and deployment assertions keep the onchain calculation aligned with the rollup configuration. Co-authored-by: Codex --- deploy-config/mainnet.json | 3 + deploy-config/sepolia.json | 3 + interfaces/L1/proofs/IAggregateVerifier.sol | 3 + scripts/deploy/DeployConfig.s.sol | 6 + scripts/deploy/SystemDeploy.s.sol | 29 ++++- scripts/multiproof/DeployDevBase.s.sol | 13 +- scripts/multiproof/DeployDevWithNitro.s.sol | 1 + snapshots/abi/AggregateVerifier.json | 99 +++++++++++++- snapshots/semver-lock.json | 4 +- src/L1/proofs/AggregateVerifier.sol | 63 +++++++-- test/L1/OptimismPortal2.t.sol | 4 +- test/L1/proofs/AggregateVerifier.t.sol | 136 ++++++++++++++++++-- test/L1/proofs/BaseTest.t.sol | 12 +- test/L1/proofs/DisputeGameFactory.t.sol | 4 +- test/deploy/SystemDeploy.t.sol | 33 +++++ test/deploy/SystemDeployAssertions.sol | 6 + 16 files changed, 385 insertions(+), 34 deletions(-) diff --git a/deploy-config/mainnet.json b/deploy-config/mainnet.json index ecdde63b3..b8c6602fa 100644 --- a/deploy-config/mainnet.json +++ b/deploy-config/mainnet.json @@ -12,8 +12,11 @@ "l1FeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000", "l1FeeVaultRecipient": "0xa3d596EAfaB6B13Ab18D40FaE1A962700C84ADEa", "l1FeeVaultWithdrawalNetwork": 0, + "l2BlockTime": 2, "l2ChainId": 10, "l2GenesisBlockGasLimit": "0x1c9c380", + "l2GenesisBlockNumber": 0, + "l2GenesisTimestamp": 1686789347, "l2OutputOracleStartingBlockNumber": 105235063, "l2OutputOracleStartingTimestamp": 1686068903, "multiproofBlockInterval": 600, diff --git a/deploy-config/sepolia.json b/deploy-config/sepolia.json index cfcea5d2d..8a0b8f145 100644 --- a/deploy-config/sepolia.json +++ b/deploy-config/sepolia.json @@ -12,8 +12,11 @@ "l1FeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000", "l1FeeVaultRecipient": "0xfd1D2e729aE8eEe2E146c033bf4400fE75284301", "l1FeeVaultWithdrawalNetwork": 0, + "l2BlockTime": 2, "l2ChainId": 11155420, "l2GenesisBlockGasLimit": "0x1c9c380", + "l2GenesisBlockNumber": 0, + "l2GenesisTimestamp": 1691802540, "l2OutputOracleStartingBlockNumber": 0, "l2OutputOracleStartingTimestamp": 1690493568, "multiproofBlockInterval": 600, diff --git a/interfaces/L1/proofs/IAggregateVerifier.sol b/interfaces/L1/proofs/IAggregateVerifier.sol index 125fc3aa4..9e3039953 100644 --- a/interfaces/L1/proofs/IAggregateVerifier.sol +++ b/interfaces/L1/proofs/IAggregateVerifier.sol @@ -26,6 +26,9 @@ interface IAggregateVerifier is IDisputeGame { function CONFIG_HASH() external view returns (bytes32); function PROTOCOL_VERSIONS() external view returns (IProtocolVersions); function L2_CHAIN_ID() external view returns (uint256); + function L2_GENESIS_BLOCK_NUMBER() external view returns (uint256); + function L2_GENESIS_TIMESTAMP() external view returns (uint64); + function L2_BLOCK_TIME() external view returns (uint64); function BLOCK_INTERVAL() external view returns (uint256); function INTERMEDIATE_BLOCK_INTERVAL() external view returns (uint256); diff --git a/scripts/deploy/DeployConfig.s.sol b/scripts/deploy/DeployConfig.s.sol index 7fe484580..da53afb09 100644 --- a/scripts/deploy/DeployConfig.s.sol +++ b/scripts/deploy/DeployConfig.s.sol @@ -44,8 +44,11 @@ contract DeployConfig is Script { uint256 public l1ChainId; uint256 public l1FeeVaultMinimumWithdrawalAmount; uint256 public l1FeeVaultWithdrawalNetwork; + uint256 public l2BlockTime; uint256 public l2ChainId; uint256 public l2GenesisBlockGasLimit; + uint256 public l2GenesisBlockNumber; + uint256 public l2GenesisTimestamp; uint256 public l2OutputOracleStartingBlockNumber; uint256 public l2OutputOracleStartingTimestamp; uint256 public multiproofBlockInterval; @@ -96,10 +99,13 @@ contract DeployConfig is Script { l1ChainId = _json.readUint("$.l1ChainId"); l1FeeVaultMinimumWithdrawalAmount = _json.readUint("$.l1FeeVaultMinimumWithdrawalAmount"); l1FeeVaultWithdrawalNetwork = _json.readUint("$.l1FeeVaultWithdrawalNetwork"); + l2BlockTime = _json.readUintOr("$.l2BlockTime", 0); l2ChainId = _json.readUint("$.l2ChainId"); l2GenesisBlockGasLimit = _json.readUint("$.l2GenesisBlockGasLimit"); l2OutputOracleStartingBlockNumber = _json.readUint("$.l2OutputOracleStartingBlockNumber"); l2OutputOracleStartingTimestamp = _json.readUint("$.l2OutputOracleStartingTimestamp"); + l2GenesisBlockNumber = _json.readUintOr("$.l2GenesisBlockNumber", 0); + l2GenesisTimestamp = _json.readUintOr("$.l2GenesisTimestamp", 0); multiproofBlockInterval = _json.readUintOr("$.multiproofBlockInterval", 100); multiproofGameType = _json.readUintOr("$.multiproofGameType", 621); multiproofGenesisBlockNumber = _json.readUintOr("$.multiproofGenesisBlockNumber", 0); diff --git a/scripts/deploy/SystemDeploy.s.sol b/scripts/deploy/SystemDeploy.s.sol index 00843e755..074005f8b 100644 --- a/scripts/deploy/SystemDeploy.s.sol +++ b/scripts/deploy/SystemDeploy.s.sol @@ -78,6 +78,7 @@ contract SystemDeploy is Script { bytes32 multiproofConfigHash; uint256 multiproofGameType; address nitroEnclaveVerifier; + AggregateVerifier.ScheduleConfig scheduleConfig; uint256 multiproofBlockInterval; uint256 multiproofIntermediateBlockInterval; ISP1Verifier sp1Verifier; @@ -126,9 +127,9 @@ contract SystemDeploy is Script { bytes32 zkAggregationHash; bytes32 multiproofConfigHash; uint256 l2ChainId; + AggregateVerifier.ScheduleConfig scheduleConfig; uint256 multiproofBlockInterval; uint256 multiproofIntermediateBlockInterval; - IProtocolVersions protocolVersions; } struct MultiproofOutput { @@ -265,6 +266,7 @@ contract SystemDeploy is Script { multiproofConfigHash: cfg.multiproofConfigHash(), multiproofGameType: cfg.multiproofGameType(), nitroEnclaveVerifier: cfg.nitroEnclaveVerifier(), + scheduleConfig: _configuredScheduleConfig(), multiproofBlockInterval: cfg.multiproofBlockInterval(), multiproofIntermediateBlockInterval: cfg.multiproofIntermediateBlockInterval(), sp1Verifier: ISP1Verifier(cfg.sp1Verifier()), @@ -275,6 +277,20 @@ contract SystemDeploy is Script { }); } + function _configuredScheduleConfig() internal view returns (AggregateVerifier.ScheduleConfig memory config_) { + uint256 genesisTimestamp = cfg.l2GenesisTimestamp(); + uint256 blockTime = cfg.l2BlockTime(); + require(genesisTimestamp <= type(uint64).max, "SystemDeploy: L2 genesis timestamp overflow"); + require(blockTime <= type(uint64).max, "SystemDeploy: L2 block time overflow"); + + config_ = AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(0)), + genesisBlockNumber: cfg.l2GenesisBlockNumber(), + genesisTimestamp: uint64(genesisTimestamp), + blockTime: uint64(blockTime) + }); + } + function _configuredOPChainInput() internal view returns (Types.DeployInput memory input_) { input_ = Types.DeployInput({ roles: Types.Roles({ @@ -1013,6 +1029,9 @@ contract SystemDeploy is Script { vm.broadcast(msg.sender); output_.zkVerifier = IVerifier(address(new ZKVerifier(_input.sp1Verifier, _output.anchorStateRegistryProxy))); + AggregateVerifier.ScheduleConfig memory scheduleConfig = _input.scheduleConfig; + scheduleConfig.protocolVersions = _output.protocolVersionsProxy; + output_.aggregateVerifier = _newAggregateVerifier( AggregateVerifierInput({ multiproofGameType: gameType, @@ -1025,9 +1044,9 @@ contract SystemDeploy is Script { zkAggregationHash: _input.zkAggregationHash, multiproofConfigHash: _input.multiproofConfigHash, l2ChainId: _opChainInput.l2ChainId, + scheduleConfig: scheduleConfig, multiproofBlockInterval: _input.multiproofBlockInterval, - multiproofIntermediateBlockInterval: _input.multiproofIntermediateBlockInterval, - protocolVersions: _output.protocolVersionsProxy + multiproofIntermediateBlockInterval: _input.multiproofIntermediateBlockInterval }) ); @@ -1057,7 +1076,7 @@ contract SystemDeploy is Script { _input.l2ChainId, _input.multiproofBlockInterval, _input.multiproofIntermediateBlockInterval, - _input.protocolVersions + _input.scheduleConfig ) ) ); @@ -1090,6 +1109,8 @@ contract SystemDeploy is Script { require(_input.zkAggregationHash != bytes32(0), "SystemDeploy: zkAggregationHash not set"); require(_input.multiproofConfigHash != bytes32(0), "SystemDeploy: multiproofConfigHash not set"); require(_input.multiproofGameType != 0, "SystemDeploy: multiproofGameType not set"); + require(_input.scheduleConfig.blockTime != 0, "SystemDeploy: L2 block time not set"); + require(_input.scheduleConfig.genesisTimestamp != 0, "SystemDeploy: L2 genesis timestamp not set"); require(_input.nitroEnclaveVerifier != address(0), "SystemDeploy: nitroEnclaveVerifier not set"); require(address(_input.sp1Verifier) != address(0), "SystemDeploy: sp1Verifier not set"); DeployUtils.assertValidContractAddress(_input.nitroEnclaveVerifier); diff --git a/scripts/multiproof/DeployDevBase.s.sol b/scripts/multiproof/DeployDevBase.s.sol index f9c450d3e..58a3ba3ff 100644 --- a/scripts/multiproof/DeployDevBase.s.sol +++ b/scripts/multiproof/DeployDevBase.s.sol @@ -126,7 +126,12 @@ abstract contract DeployDevBase is Script { cfg.l2ChainId(), _blockInterval(), _intermediateBlockInterval(), - IProtocolVersions(address(protocolVersionsProxy)) + AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(protocolVersionsProxy)), + genesisBlockNumber: cfg.l2GenesisBlockNumber(), + genesisTimestamp: uint64(cfg.l2GenesisTimestamp()), + blockTime: uint64(cfg.l2BlockTime()) + }) ) ); @@ -158,6 +163,10 @@ abstract contract DeployDevBase is Script { function _logHeader() internal view virtual; function _printSummary() internal view virtual; - function _preflight() internal virtual { } + function _preflight() internal virtual { + require(cfg.l2BlockTime() != 0, "l2BlockTime must be set in config"); + require(cfg.l2GenesisTimestamp() != 0, "l2GenesisTimestamp must be set in config"); + } + function _serializeExtra(string memory key) internal virtual { } } diff --git a/scripts/multiproof/DeployDevWithNitro.s.sol b/scripts/multiproof/DeployDevWithNitro.s.sol index 0282a504f..6fa19f0a6 100644 --- a/scripts/multiproof/DeployDevWithNitro.s.sol +++ b/scripts/multiproof/DeployDevWithNitro.s.sol @@ -42,6 +42,7 @@ contract DeployDevWithNitro is DeployDevBase { } function _preflight() internal override { + super._preflight(); nitroEnclaveVerifierAddr = cfg.nitroEnclaveVerifier(); require( nitroEnclaveVerifierAddr != address(0), diff --git a/snapshots/abi/AggregateVerifier.json b/snapshots/abi/AggregateVerifier.json index 6b5d6357c..9f332e12b 100644 --- a/snapshots/abi/AggregateVerifier.json +++ b/snapshots/abi/AggregateVerifier.json @@ -69,9 +69,31 @@ "type": "uint256" }, { - "internalType": "contract IProtocolVersions", - "name": "protocolVersions", - "type": "address" + "components": [ + { + "internalType": "contract IProtocolVersions", + "name": "protocolVersions", + "type": "address" + }, + { + "internalType": "uint256", + "name": "genesisBlockNumber", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "genesisTimestamp", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "blockTime", + "type": "uint64" + } + ], + "internalType": "struct AggregateVerifier.ScheduleConfig", + "name": "scheduleConfig", + "type": "tuple" } ], "stateMutability": "nonpayable", @@ -194,6 +216,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "L2_BLOCK_TIME", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "L2_CHAIN_ID", @@ -207,6 +242,32 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "L2_GENESIS_BLOCK_NUMBER", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "L2_GENESIS_TIMESTAMP", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "PROOF_THRESHOLD", @@ -1032,6 +1093,11 @@ "name": "InvalidIntermediateRootIndex", "type": "error" }, + { + "inputs": [], + "name": "InvalidL2BlockTime", + "type": "error" + }, { "inputs": [], "name": "InvalidParentGame", @@ -1095,6 +1161,33 @@ "name": "L1OriginTooOld", "type": "error" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "genesisBlockNumber", + "type": "uint256" + } + ], + "name": "L2BlockBeforeGenesis", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "L2TimestampOverflow", + "type": "error" + }, { "inputs": [ { diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 5152fa9ca..3ef8a683d 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -28,8 +28,8 @@ "sourceCodeHash": "0x780ff372493ba9010bc0d13100ac896f2bf75730a9b17d4bb63aaf694dc3c634" }, "src/L1/proofs/AggregateVerifier.sol:AggregateVerifier": { - "initCodeHash": "0x6f3c53245830b9c72c8199695e93959d5ed3b0cb8352e5b50b3dfa28183ac787", - "sourceCodeHash": "0x1f2e2b07ebc4359fa31ea7400ace9bab0e4f6099d8ff3ff7b6a2b14cccfb89ca" + "initCodeHash": "0x83b451d1b77752c41bef7a038cf9ce9a7c7d3b59ef601acd0239a15a8ce32279", + "sourceCodeHash": "0x0dc7ebcb331c4ea3ac23cace04e69995589828a5ab9087376fbf1241db7a62ea" }, "src/L1/proofs/AnchorStateRegistry.sol:AnchorStateRegistry": { "initCodeHash": "0x6f3afd2d0ef97a82ca3111976322b99343a270e54cd4a405028f2f29c75f7fb1", diff --git a/src/L1/proofs/AggregateVerifier.sol b/src/L1/proofs/AggregateVerifier.sol index fd447fe6a..9f05b9e81 100644 --- a/src/L1/proofs/AggregateVerifier.sol +++ b/src/L1/proofs/AggregateVerifier.sol @@ -45,6 +45,14 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { bytes32 aggregateHash; } + /// @notice Upgrade registry and L2 timestamp anchor used to pin proof games. + struct ScheduleConfig { + IProtocolVersions protocolVersions; + uint256 genesisBlockNumber; + uint64 genesisTimestamp; + uint64 blockTime; + } + //////////////////////////////////////////////////////////////// // Constants // //////////////////////////////////////////////////////////////// @@ -100,6 +108,18 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice The chain ID of the L2 network this contract argues about. uint256 public immutable L2_CHAIN_ID; + /// @notice The L2 genesis block number used as the timestamp anchor. + uint256 public immutable L2_GENESIS_BLOCK_NUMBER; + + /// @notice The timestamp of the L2 genesis block. + uint64 public immutable L2_GENESIS_TIMESTAMP; + + /// @notice The fixed number of seconds between consecutive L2 blocks. + /// @dev This verifier derives L2 timestamps linearly from the configured genesis anchor. If + /// the chain changes block time, deploy a new verifier anchored at the transition block + /// and migrate to that game type for post-transition claims. + uint64 public immutable L2_BLOCK_TIME; + /// @notice The block interval between each proposal. /// @dev The parent's block number + BLOCK_INTERVAL = this proposal's block number. uint256 public immutable BLOCK_INTERVAL; @@ -166,9 +186,10 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice The number of proofs provided. uint8 public proofCount; - /// @notice The ProtocolVersions scheduleId snapshotted at game initialization. - /// @dev Pinned once at init; every proof in this game commits to this value, binding it to the - /// upgrade schedule in effect when the game was created. + /// @notice Commitment to upgrades activated at this game's ending L2 block. + /// @dev Pinned once at initialization. The game's ending L2 block deterministically selects + /// the activation cutoff, so every proof for the game commits to the same historical + /// schedule even after newer upgrades are registered or activated. bytes32 public scheduleId; //////////////////////////////////////////////////////////////// @@ -254,6 +275,15 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice Thrown when the L1 origin hash doesn't match the actual blockhash. error L1OriginHashMismatch(bytes32 claimed, bytes32 actual); + /// @notice Thrown when the configured L2 block time is zero. + error InvalidL2BlockTime(); + + /// @notice Thrown when an L2 block precedes the configured genesis block. + error L2BlockBeforeGenesis(uint256 blockNumber, uint256 genesisBlockNumber); + + /// @notice Thrown when an L2 block timestamp cannot be represented as a uint64. + error L2TimestampOverflow(uint256 blockNumber); + /// @notice Thrown when there are not enough proofs to resolve the game. error NotEnoughProofs(); @@ -268,7 +298,7 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @param l2ChainId The chain ID of the L2 network. /// @param blockInterval The block interval. /// @param intermediateBlockInterval The intermediate block interval. - /// @param protocolVersions The ProtocolVersions upgrade schedule contract. + /// @param scheduleConfig Upgrade registry and deterministic L2 timestamp configuration. constructor( GameType gameType_, IAnchorStateRegistry anchorStateRegistry_, @@ -281,12 +311,13 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { uint256 l2ChainId, uint256 blockInterval, uint256 intermediateBlockInterval, - IProtocolVersions protocolVersions + ScheduleConfig memory scheduleConfig ) { // Block interval and intermediate block interval must be positive and divisible. if (blockInterval == 0 || intermediateBlockInterval == 0 || blockInterval % intermediateBlockInterval != 0) { revert InvalidBlockInterval(blockInterval, intermediateBlockInterval); } + if (scheduleConfig.blockTime == 0) revert InvalidL2BlockTime(); // Set up initial game state. GAME_TYPE = gameType_; @@ -300,9 +331,12 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { ZK_AGGREGATE_HASH = zkHashes.aggregateHash; CONFIG_HASH = configHash; L2_CHAIN_ID = l2ChainId; + L2_GENESIS_BLOCK_NUMBER = scheduleConfig.genesisBlockNumber; + L2_GENESIS_TIMESTAMP = scheduleConfig.genesisTimestamp; + L2_BLOCK_TIME = scheduleConfig.blockTime; BLOCK_INTERVAL = blockInterval; INTERMEDIATE_BLOCK_INTERVAL = intermediateBlockInterval; - PROTOCOL_VERSIONS = protocolVersions; + PROTOCOL_VERSIONS = scheduleConfig.protocolVersions; INITIALIZE_CALLDATA_SIZE = 0x8E + 0x20 * intermediateOutputRootsCount(); } @@ -376,9 +410,20 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { // Set the game as initialized. initialized = true; - // Snapshot the scheduleId from ProtocolVersions. Every proof in this game commits to this - // value, pinning them to the upgrade schedule in effect at the game's creation block. - scheduleId = PROTOCOL_VERSIONS.scheduleId(); + // L2 timestamps are fixed by the rollup genesis and block time. Pinning the upgrades active + // at the ending L2 block makes the schedule independent of both the proof's L1 head and the + // L1 block in which this game is created. + uint256 claimBlock = l2SequenceNumber(); + if (claimBlock < L2_GENESIS_BLOCK_NUMBER) { + revert L2BlockBeforeGenesis(claimBlock, L2_GENESIS_BLOCK_NUMBER); + } + + uint256 blocksSinceGenesis = claimBlock - L2_GENESIS_BLOCK_NUMBER; + uint256 maxBlocks = (type(uint64).max - L2_GENESIS_TIMESTAMP) / L2_BLOCK_TIME; + if (blocksSinceGenesis > maxBlocks) revert L2TimestampOverflow(claimBlock); + + uint64 claimTimestamp = L2_GENESIS_TIMESTAMP + uint64(blocksSinceGenesis * uint256(L2_BLOCK_TIME)); + scheduleId = PROTOCOL_VERSIONS.activatedScheduleId(claimTimestamp); // Set the game's starting timestamp. createdAt = Timestamp.wrap(uint64(block.timestamp)); diff --git a/test/L1/OptimismPortal2.t.sol b/test/L1/OptimismPortal2.t.sol index 78d54dd60..3f8865b6d 100644 --- a/test/L1/OptimismPortal2.t.sol +++ b/test/L1/OptimismPortal2.t.sol @@ -91,7 +91,9 @@ abstract contract OptimismPortal2_TestInit is DisputeGameFactory_TestInit { deploy.cfg().l2ChainId(), 100, 10, - protocolVersions + AggregateVerifier.ScheduleConfig({ + protocolVersions: protocolVersions, genesisBlockNumber: 0, genesisTimestamp: 1, blockTime: 2 + }) ); disputeGameFactory.setImplementation(respectedGameType, IDisputeGame(address(gameImpl))); disputeGameFactory.setInitBond(respectedGameType, 0); diff --git a/test/L1/proofs/AggregateVerifier.t.sol b/test/L1/proofs/AggregateVerifier.t.sol index a6d34f7fb..cf18583c0 100644 --- a/test/L1/proofs/AggregateVerifier.t.sol +++ b/test/L1/proofs/AggregateVerifier.t.sol @@ -37,15 +37,20 @@ contract AggregateVerifierTest is BaseTest { _createAndAssertInitializedGame("zk-proof", AggregateVerifier.ProofType.ZK, ZK_PROVER, address(0), ZK_PROVER); } - /// @notice init snapshots the live scheduleId into storage and pins it: a later schedule change - /// must not alter the game's snapshot (proves it is stored once, not read live). - /// @dev Only covers the stored getter. That the snapshot flows into the proof journal is not - /// asserted here — MockVerifier ignores the journal, so journal binding is untestable. + /// @notice Initialization pins the upgrades active at the claimed L2 block, independently of + /// the L1 game-creation timestamp, and later schedule changes cannot alter the pin. function test_initialize_pinsScheduleId_succeeds() public { - // Register an upgrade so the schedule commitment is non-trivial (non-zero). - protocolVersions.registerUpgrade(uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100, 1); - bytes32 pinned = protocolVersions.scheduleId(); + // The first game ends at L2 block 100, whose deterministic timestamp is 200. The first + // upgrade is active there; the second is not. + protocolVersions.registerUpgrade(200, 1); + bytes32 pinned = protocolVersions.activatedScheduleId(200); assertTrue(pinned != bytes32(0)); + protocolVersions.registerUpgrade(300, 2); + assertNotEq(protocolVersions.scheduleId(), pinned); + + // Even though the L1 clock has passed the second activation, the game's schedule is + // selected by its claimed L2 block timestamp. + vm.warp(300); Claim rootClaim = _advanceL2BlockAndClaim(); bytes memory proof = _generateProof("tee-proof", AggregateVerifier.ProofType.TEE); @@ -56,12 +61,96 @@ contract AggregateVerifierTest is BaseTest { assertEq(game.scheduleId(), pinned); - // Move the live schedule after creation; the game's snapshot must stay pinned. - protocolVersions.registerUpgrade(uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 200, 2); + // Move the live schedule after creation; the game's snapshot remains pinned. + protocolVersions.registerUpgrade(400, 3); assertNotEq(protocolVersions.scheduleId(), pinned); assertEq(game.scheduleId(), pinned); } + /// @notice Consecutive games on opposite sides of an L2 activation boundary pin different + /// schedule commitments. + function test_initialize_scheduleChangesAtL2ActivationBoundary_succeeds() public { + protocolVersions.registerUpgrade(300, 1); + + Claim firstClaim = _advanceL2BlockAndClaim(); + AggregateVerifier firstGame = _createAggregateVerifierGame( + TEE_PROVER, + firstClaim, + currentL2BlockNumber, + address(anchorStateRegistry), + _generateProof("first", AggregateVerifier.ProofType.TEE) + ); + assertEq(firstGame.scheduleId(), bytes32(0)); + + Claim secondClaim = _advanceL2BlockAndClaim(); + AggregateVerifier secondGame = _createAggregateVerifierGame( + TEE_PROVER, + secondClaim, + currentL2BlockNumber, + address(firstGame), + _generateProof("second", AggregateVerifier.ProofType.TEE) + ); + assertEq(secondGame.scheduleId(), protocolVersions.activatedScheduleId(400)); + } + + function test_constructor_zeroL2BlockTime_reverts() public { + AggregateVerifier.ScheduleConfig memory scheduleConfig = AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(protocolVersions)), + genesisBlockNumber: 0, + genesisTimestamp: 0, + blockTime: 0 + }); + + vm.expectRevert(AggregateVerifier.InvalidL2BlockTime.selector); + _deployAggregateVerifierWithScheduleConfig(scheduleConfig); + } + + function test_initialize_l2BlockBeforeGenesis_reverts() public { + AggregateVerifier.ScheduleConfig memory scheduleConfig = AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(protocolVersions)), + genesisBlockNumber: BLOCK_INTERVAL + 1, + genesisTimestamp: 0, + blockTime: L2_BLOCK_TIME + }); + AggregateVerifier implementation = _deployAggregateVerifierWithScheduleConfig(scheduleConfig); + factory.setImplementation(GameTypes.AGGREGATE_VERIFIER, IDisputeGame(address(implementation))); + + Claim rootClaim = _advanceL2BlockAndClaim(); + vm.expectRevert( + abi.encodeWithSelector( + AggregateVerifier.L2BlockBeforeGenesis.selector, currentL2BlockNumber, BLOCK_INTERVAL + 1 + ) + ); + _createAggregateVerifierGame( + TEE_PROVER, + rootClaim, + currentL2BlockNumber, + address(anchorStateRegistry), + _generateProof("before-genesis", AggregateVerifier.ProofType.TEE) + ); + } + + function test_initialize_l2TimestampOverflow_reverts() public { + AggregateVerifier.ScheduleConfig memory scheduleConfig = AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(protocolVersions)), + genesisBlockNumber: 0, + genesisTimestamp: type(uint64).max, + blockTime: L2_BLOCK_TIME + }); + AggregateVerifier implementation = _deployAggregateVerifierWithScheduleConfig(scheduleConfig); + factory.setImplementation(GameTypes.AGGREGATE_VERIFIER, IDisputeGame(address(implementation))); + + Claim rootClaim = _advanceL2BlockAndClaim(); + vm.expectRevert(abi.encodeWithSelector(AggregateVerifier.L2TimestampOverflow.selector, currentL2BlockNumber)); + _createAggregateVerifierGame( + TEE_PROVER, + rootClaim, + currentL2BlockNumber, + address(anchorStateRegistry), + _generateProof("timestamp-overflow", AggregateVerifier.ProofType.TEE) + ); + } + function testInitializeFailsIfInvalidCallDataSize() public { Claim rootClaim = _advanceL2BlockAndClaim(); @@ -431,6 +520,33 @@ contract AggregateVerifierTest is BaseTest { ) private returns (AggregateVerifier) + { + return _deployAggregateVerifier( + blockInterval, + intermediateBlockInterval, + AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(protocolVersions)), + genesisBlockNumber: L2_GENESIS_BLOCK_NUMBER, + genesisTimestamp: L2_GENESIS_TIMESTAMP, + blockTime: L2_BLOCK_TIME + }) + ); + } + + function _deployAggregateVerifierWithScheduleConfig(AggregateVerifier.ScheduleConfig memory scheduleConfig) + private + returns (AggregateVerifier) + { + return _deployAggregateVerifier(BLOCK_INTERVAL, INTERMEDIATE_BLOCK_INTERVAL, scheduleConfig); + } + + function _deployAggregateVerifier( + uint256 blockInterval, + uint256 intermediateBlockInterval, + AggregateVerifier.ScheduleConfig memory scheduleConfig + ) + private + returns (AggregateVerifier) { return new AggregateVerifier( GameTypes.AGGREGATE_VERIFIER, @@ -444,7 +560,7 @@ contract AggregateVerifierTest is BaseTest { L2_CHAIN_ID, blockInterval, intermediateBlockInterval, - IProtocolVersions(address(protocolVersions)) + scheduleConfig ); } } diff --git a/test/L1/proofs/BaseTest.t.sol b/test/L1/proofs/BaseTest.t.sol index 87e6c96f5..c0b6a101e 100644 --- a/test/L1/proofs/BaseTest.t.sol +++ b/test/L1/proofs/BaseTest.t.sol @@ -26,6 +26,9 @@ import { MockVerifier } from "test/mocks/MockVerifier.sol"; contract BaseTest is Test { uint256 internal constant L2_CHAIN_ID = 8453; + uint256 internal constant L2_GENESIS_BLOCK_NUMBER = 0; + uint64 internal constant L2_GENESIS_TIMESTAMP = 0; + uint64 internal constant L2_BLOCK_TIME = 2; // AggregateVerifier expects evenly spaced intermediate roots. uint256 internal constant BLOCK_INTERVAL = 100; @@ -125,7 +128,12 @@ contract BaseTest is Test { L2_CHAIN_ID, BLOCK_INTERVAL, INTERMEDIATE_BLOCK_INTERVAL, - IProtocolVersions(address(protocolVersions)) + AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(protocolVersions)), + genesisBlockNumber: L2_GENESIS_BLOCK_NUMBER, + genesisTimestamp: L2_GENESIS_TIMESTAMP, + blockTime: L2_BLOCK_TIME + }) ); factory.setImplementation(GameTypes.AGGREGATE_VERIFIER, IDisputeGame(address(aggregateVerifierImpl))); @@ -187,7 +195,7 @@ contract BaseTest is Test { return abi.encodePacked(l2BlockNumber, parentAddress, _generateIntermediateRoots(l2BlockNumber, rootClaim)); } - function _generateIntermediateRoots(uint256 l2BlockNumber, Claim rootClaim) private pure returns (bytes memory) { + function _generateIntermediateRoots(uint256 l2BlockNumber, Claim rootClaim) internal pure returns (bytes memory) { bytes32[] memory intermediateRoots = new bytes32[](INTERMEDIATE_ROOTS_COUNT); uint256 startingL2BlockNumber = l2BlockNumber - BLOCK_INTERVAL; for (uint256 i = 1; i < INTERMEDIATE_ROOTS_COUNT; i++) { diff --git a/test/L1/proofs/DisputeGameFactory.t.sol b/test/L1/proofs/DisputeGameFactory.t.sol index 768fff7ce..ec94880a5 100644 --- a/test/L1/proofs/DisputeGameFactory.t.sol +++ b/test/L1/proofs/DisputeGameFactory.t.sol @@ -231,7 +231,9 @@ contract DisputeGameFactory_Create_Test is DisputeGameFactory_TestInit { L2_CHAIN_ID, AGGREGATE_BLOCK_INTERVAL, AGGREGATE_INTERMEDIATE_BLOCK_INTERVAL, - protocolVersions + AggregateVerifier.ScheduleConfig({ + protocolVersions: protocolVersions, genesisBlockNumber: 0, genesisTimestamp: 0, blockTime: 2 + }) ); _setGame(address(gameImpl), GameTypes.AGGREGATE_VERIFIER); diff --git a/test/deploy/SystemDeploy.t.sol b/test/deploy/SystemDeploy.t.sol index b7020e413..fabade3dc 100644 --- a/test/deploy/SystemDeploy.t.sol +++ b/test/deploy/SystemDeploy.t.sol @@ -11,6 +11,7 @@ import { SystemDeployAssertions } from "test/deploy/SystemDeployAssertions.sol"; import { ISP1Verifier } from "interfaces/L1/proofs/zk/ISP1Verifier.sol"; import { IProtocolVersions } from "interfaces/L1/IProtocolVersions.sol"; import { ProtocolVersions } from "src/L1/ProtocolVersions.sol"; +import { AggregateVerifier } from "src/L1/proofs/AggregateVerifier.sol"; import { TEEProverRegistry } from "src/L1/proofs/tee/TEEProverRegistry.sol"; import { TEEVerifier } from "src/L1/proofs/tee/TEEVerifier.sol"; import { ZKVerifier } from "src/L1/proofs/zk/ZKVerifier.sol"; @@ -138,6 +139,29 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { assertValidStandardSystem(_expected(output, input)); } + function test_deploy_multiproofDisabled_allowsUnsetL2BlockTime_succeeds() public { + SystemDeploy.DeployInput memory input = _defaultDeployInput(); + input.implementationsInput.multiproofConfigHash = bytes32(0); + input.implementationsInput.scheduleConfig = AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(0)), genesisBlockNumber: 0, genesisTimestamp: 0, blockTime: 0 + }); + + SystemDeploy.DeployOutput memory output = systemDeploy.deploy(input); + + assertNotEq(address(output.opChain.protocolVersionsProxy), address(0), "protocol versions"); + assertEq(address(output.opChain.aggregateVerifier), address(0), "aggregate verifier"); + assertEq(address(output.opChain.teeProverRegistryProxy), address(0), "tee registry"); + assertEq(output.impls.aggregateVerifierImpl, address(0), "aggregate verifier impl"); + } + + function test_deploy_multiproofEnabled_withoutL2GenesisTimestamp_reverts() public { + SystemDeploy.DeployInput memory input = _defaultDeployInput(); + input.implementationsInput.scheduleConfig.genesisTimestamp = 0; + + vm.expectRevert("SystemDeploy: L2 genesis timestamp not set"); + systemDeploy.deploy(input); + } + function test_upgrade_withoutManagerDelegatecall_succeeds() public { SystemDeploy.DeployInput memory input = _defaultDeployInput(); SystemDeploy.DeployOutput memory output = systemDeploy.deploy(input); @@ -234,6 +258,12 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { multiproofConfigHash: bytes32(uint256(4)), multiproofGameType: 621, nitroEnclaveVerifier: address(nitroEnclaveVerifier), + scheduleConfig: AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(0)), + genesisBlockNumber: 0, + genesisTimestamp: 1, + blockTime: 2 + }), multiproofBlockInterval: 100, multiproofIntermediateBlockInterval: 10, sp1Verifier: ISP1Verifier(address(sp1Verifier)), @@ -344,6 +374,9 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { zkAggregationHash: _input.implementationsInput.zkAggregationHash, multiproofConfigHash: _input.implementationsInput.multiproofConfigHash, l2ChainId: _input.opChainInput.l2ChainId, + l2GenesisBlockNumber: _input.implementationsInput.scheduleConfig.genesisBlockNumber, + l2GenesisTimestamp: _input.implementationsInput.scheduleConfig.genesisTimestamp, + l2BlockTime: _input.implementationsInput.scheduleConfig.blockTime, multiproofBlockInterval: _input.implementationsInput.multiproofBlockInterval, multiproofIntermediateBlockInterval: _input.implementationsInput.multiproofIntermediateBlockInterval, withdrawalDelaySeconds: _input.implementationsInput.withdrawalDelaySeconds diff --git a/test/deploy/SystemDeployAssertions.sol b/test/deploy/SystemDeployAssertions.sol index 7392dba36..2d8d3130b 100644 --- a/test/deploy/SystemDeployAssertions.sol +++ b/test/deploy/SystemDeployAssertions.sol @@ -41,6 +41,9 @@ abstract contract SystemDeployAssertions is Test { bytes32 zkAggregationHash; bytes32 multiproofConfigHash; uint256 l2ChainId; + uint256 l2GenesisBlockNumber; + uint64 l2GenesisTimestamp; + uint64 l2BlockTime; uint256 multiproofBlockInterval; uint256 multiproofIntermediateBlockInterval; uint256 withdrawalDelaySeconds; @@ -251,6 +254,9 @@ abstract contract SystemDeployAssertions is Test { assertEq(_aggregateVerifier.ZK_AGGREGATE_HASH(), _expected.zkAggregationHash, "AV-110"); assertEq(_aggregateVerifier.CONFIG_HASH(), _expected.multiproofConfigHash, "AV-120"); assertEq(_aggregateVerifier.L2_CHAIN_ID(), _expected.l2ChainId, "AV-130"); + assertEq(_aggregateVerifier.L2_GENESIS_BLOCK_NUMBER(), _expected.l2GenesisBlockNumber, "AV-132"); + assertEq(_aggregateVerifier.L2_GENESIS_TIMESTAMP(), _expected.l2GenesisTimestamp, "AV-134"); + assertEq(_aggregateVerifier.L2_BLOCK_TIME(), _expected.l2BlockTime, "AV-136"); assertEq(_aggregateVerifier.BLOCK_INTERVAL(), _expected.multiproofBlockInterval, "AV-140"); assertEq( _aggregateVerifier.INTERMEDIATE_BLOCK_INTERVAL(), _expected.multiproofIntermediateBlockInterval, "AV-150" From 99df7e6294f0f8732c302f01bd0072c1f519de3f Mon Sep 17 00:00:00 2001 From: Pelle Date: Wed, 29 Jul 2026 09:41:02 -0400 Subject: [PATCH 15/19] docs(L1): correct ProtocolVersions owner references and document uncapped iteration (#388) * docs(L1): correct ProtocolVersions owner references in NatSpec The NatSpec described the contract as Security Council-controlled, but access control is enforced via _assertOnlyProxyAdminOwner, so the controlling party is the ProxyAdmin owner. Name that role consistently on the contract and on each owner-gated function. * docs(L1): note why iteration over _timestamps is intentionally uncapped Every loop in ProtocolVersions iterates _timestamps, so each one reads as unbounded iteration. Document the bound once at the array declaration rather than per loop: the array only grows via owner-gated registerUpgrade, one entry per hardfork. --- snapshots/semver-lock.json | 2 +- src/L1/ProtocolVersions.sol | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 3ef8a683d..9a4034404 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -17,7 +17,7 @@ }, "src/L1/ProtocolVersions.sol:ProtocolVersions": { "initCodeHash": "0x876ec89fcdbe230fc10a0dd0c7a54465dfc79640419901f224975ce99dbc342e", - "sourceCodeHash": "0xc11f8bafb960a88dabd0a4d60327252cdf2326f784490c64dc45cea072f7b407" + "sourceCodeHash": "0x28dfc19b119f42ccbecd3bd2f53c60a2b9784ef8b2a6d9bd62cd966daadd7ae7" }, "src/L1/SuperchainConfig.sol:SuperchainConfig": { "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", diff --git a/src/L1/ProtocolVersions.sol b/src/L1/ProtocolVersions.sol index 088d0eb2a..1638217a9 100644 --- a/src/L1/ProtocolVersions.sol +++ b/src/L1/ProtocolVersions.sol @@ -11,7 +11,7 @@ import { ISemver } from "interfaces/universal/ISemver.sol"; /// @custom:proxied true /// @title ProtocolVersions -/// @notice Security Council-controlled upgrade activation schedule contract. +/// @notice Upgrade activation schedule contract, controlled by the ProxyAdmin owner (2-of-2 multisig). /// @dev Maintains an ordered registry of upgrades and their L2 activation timestamps. /// Each upgrade is identified by an ascending numeric `id` equal to its registration /// index (0, 1, 2, ...). Human-readable names are intentionally kept offchain: a client @@ -43,6 +43,9 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable /// @notice Activation timestamp for each registered upgrade, indexed by upgrade id (0 = not scheduled). /// An upgrade id is registered iff it is a valid index into this array. + /// @dev Every loop in this contract iterates this array. Its length is deliberately uncapped: it only + /// grows via owner-gated `registerUpgrade`, one entry per hardfork, so the unbounded iteration + /// poses no gas exhaustion risk. uint64[] private _timestamps; /// @notice Hash chain links. Element 0 is the seed (`bytes32(0)`), pushed in `initialize`; @@ -123,7 +126,7 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable } /// @notice Registers a new upgrade, assigning it the next ascending id, optionally scheduling its - /// activation and bumping the minimum protocol version in the same call. Owner only. + /// activation and bumping the minimum protocol version in the same call. ProxyAdmin owner only. /// @dev Pass `timestamp` 0 to register without scheduling (schedule later via `setTimestamp`), or /// a non-zero value to register and schedule at once. Either way registration extends the /// scheduleId chain with the new upgrade's link. @@ -152,7 +155,7 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable return id; } - /// @notice Sets the minimum protocol version clients must run. Owner (Security Council) only. + /// @notice Sets the minimum protocol version clients must run. ProxyAdmin owner only. /// @dev Informational signal for offchain clients; independent of the upgrade schedule and NOT /// part of the scheduleId commitment, so it can be updated at any time without shifting any /// proof binding. @@ -189,7 +192,7 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable _writeTimestamp(id, timestamp); } - /// @notice Appoints, replaces, or clears (set to zero) the incidentResponder role. Owner only. + /// @notice Appoints, replaces, or clears (set to zero) the incidentResponder role. ProxyAdmin owner only. /// @param newIncidentResponder New incidentResponder address, or address(0) to revoke the role. function setIncidentResponder(address newIncidentResponder) external { _assertOnlyProxyAdminOwner(); From 6141270775c07be7d2e3e458589e1b689d5fda32 Mon Sep 17 00:00:00 2001 From: Pelle Date: Wed, 29 Jul 2026 09:41:41 -0400 Subject: [PATCH 16/19] docs: add AGENTS.md and add mise.toml to repo for forge version control (#362) * docs: add AGENTS.md with agent working conventions Generated with Claude Code Co-Authored-By: Claude * docs: add mise for Foundry version pinning and update test command - Replace raw forge test with just test in AGENTS.md - Remove local toolchain footgun section; add mise instead - Add .mise.toml to pin foundry to stable, matching CI Generated with Claude Code Co-Authored-By: Claude * fix(ci): pin foundry to 1.5.1 in mise and CI --------- Co-authored-by: Claude --- .github/workflows/test.yml | 2 +- .mise.toml | 15 +++++++ AGENTS.md | 82 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 .mise.toml create mode 100644 AGENTS.md diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f15fee4c2..e1df41ad5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: - name: Install Foundry uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4.0 with: - version: stable + version: v1.5.1 - name: Install Go uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 diff --git a/.mise.toml b/.mise.toml new file mode 100644 index 000000000..709c65daa --- /dev/null +++ b/.mise.toml @@ -0,0 +1,15 @@ +# mise tool versions — https://mise.jdx.dev +# +# This file pins the toolchain versions used across the contracts repo. +# Contributors should install mise and run `mise install` at the repo root so +# that everyone executes builds, tests, and snapshot generation with +# byte-identical tooling. +# +# When bumping any version here, also update the matching pin in +# `.github/workflows/test.yml` (or anywhere else CI installs the same tool) so +# that local and CI runs stay aligned. + +[tools] +# Foundry (forge/cast/anvil/chisel) — pinned for deterministic build +# artifacts, ABI/storage snapshots, and semver-lock hashes. +foundry = "1.5.1" diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..c4c68cb46 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,82 @@ +# AGENTS.md — base/contracts + +Working conventions for agents on this repo, distilled from prior sessions. +These are defaults for new or touched work, not permission to churn unrelated +code. When this file conflicts with the current tree, nearby code and enforced +tests win. + +## Tooling + +- `just snapshots` — regenerates ABI, storage layout, and semver-lock in one shot. Run after source changes that affect API, storage, or semver snapshots. +- `just semver-lock` — full source build + semver hash. Run before pushing semver-tagged `src/` changes or when `snapshots/semver-lock.json` may change. Do not use `just semver-lock-no-build` after source edits; it reads existing artifacts and can write stale hashes. +- `just semver-lock-no-build` — hash only, from existing artifacts. +- CI regenerates `snapshots/semver-lock.json` and diffs it against the committed file. ABI/storage snapshots are generated by `scripts/autogen`, but check the current workflow before assuming CI diffs every snapshot type. +- Snapshot generation is handled by Go scripts under `scripts/autogen`. +- Tests: `just test` (full suite), `just test --match-path ` (single file), `just test --match-test ` (single test). +- mise is used to keep local and CI Foundry versions in sync. Run `mise install` once after cloning. + +## Contract structure conventions + +### Style-guide ordering inside a contract + +For new or touched contract bodies, prefer: + +Type declarations → Constants → Immutables → State variables → Events → Errors → Constructor → external → external view → external pure → public → public view → public pure → internal → internal view → internal pure → private → private view → private pure. + +### Visibility + +- A concrete implementation **not meant to be inherited** should mark implementation internals `private`, not `internal`. +- Inline single-caller and single-line helpers by default; extract only when logic is genuinely shared across multiple callers. + +### Interface / implementation split + +- Deploy-script-backed protocol implementations generally inherit base contracts and shared mixins (proxy-owned base, initializable, reinitializable, semver), not their own `I` interface. +- When a contract has a paired interface, keep ABI-relevant declarations in sync with that interface. Do not invent a new interface only to satisfy this note. +- The `__constructor__() external` declaration in interfaces is a tooling artifact for ABI/snapshot generation, not callable. Do not remove it. +- For new semver functions in recent protocol work, prefer `function version() public pure virtual returns (string memory)`. + +### API / event surface + +- Use explicit `return x;`, not named returns. +- Trim events: drop params already carried in log metadata (e.g. block number). +- Add indexed query getters when arbitrary entries need querying, not just tail reads. + +### Naming + +- Errors: prefer `ContractName_ErrorName` for new protocol contracts. +- Events: no prefix (e.g. `SomethingRegistered`, `TimestampSet`). +- Test contracts: `ContractName_FunctionName_Test` for standard contract behavior suites; standalone unit tests may use `NameTest`. +- Test functions: prefer `test_functionName_scenario_succeeds` / `_reverts` for new tests. +- Commits: conventional — `type(scope): description` (e.g. `refactor(L1):`, `fix(L1):`). +- Branding: prefer `offchain` / `onchain` in new proof/protocol wording. + +## Access control + +- The proxy-owned base mixin provides `_assertOnlyProxyAdminOwner()` and `_assertOnlyProxyAdminOrProxyAdminOwner()`. +- For `ProxyAdminOwnedBase`, owner = `proxyAdmin().owner()`, read from the proxy-owner storage slot. +- Secondary roles in proxy-owned protocol contracts are plain `address` fields with inline `msg.sender` checks. Inline one-line local role checks. + +## Proxy deployment + +- For fresh deployment of an initialized proxy, use `upgradeToAndCall` (atomic upgrade + init in one tx). Separate `upgradeTo` then `initialize` opens a window of uninitialized state; mutations in that window corrupt persistent state permanently. Separate upgrade-only paths can be valid for admin migrations, tests, or proxies that are not being initialized. +- Upgradeable implementation constructors call `_disableInitializers()`. +- Contracts that inherit `ReinitializableBase` initialize with `reinitializer(initVersion())`. The `reinitializer` modifier fires **before** the function body, so the "already initialized" revert precedes any owner/admin assert — any caller triggers it. Contracts that use plain OpenZeppelin `initializer` are valid exceptions. + +## Adding a new `Initializable` contract + +Standard deploy-script-backed `src/` contracts with `initialize()` must be accounted for in the repo-wide reinitialization test that scans `src/` via FFI. The test has explicit exclusions for categories such as L2/predeploys, periphery, and contracts with custom initialization state. + +- **Deployed via the standard deploy script**: add both `Impl` and `Proxy` entries. Proxy address comes from the shared test setup; impl address via the EIP-1967 implementation-slot helper on the proxy. +- **Not yet in the deploy script**: add the source path to the excludes list (fixed capacity — mind the array size) with a comment. +- Proxied-contract detection uses the `@custom:proxied` devdoc NatSpec tag — a proxied contract missing that tag won't get its proxy entry checked. +- **Always run `forge test --match-test test_cannotReinitialize_succeeds`** when adding a standard initialized contract, in addition to the contract's own tests. A narrow `--match-path` run misses it. +- New production contracts must be wired into the standard deploy script, not permanently excluded from the tracking test. + +## Test conventions + +- Tests for standard deploy-script-deployed system contracts should inherit the shared `CommonTest` base and use the deploy-script-deployed instances it exposes (via the shared `Setup`) — **not** `new Contract()` + a hand-rolled proxy. This makes the deploy script a real dependency of those tests. +- Mirror an existing contract test of the same type: call `super.setUp()`, read parameters from the deploy config, and get the implementation via the EIP-1967 implementation-slot helper. +- If an initializer edge-case test for a deploy-script-backed contract truly needs a fresh uninitialized proxy, deploy **only** a proxy and point it at the already-deployed implementation (via the implementation-slot helper). Do not `new Contract()` in that test file; that dodges the deploy-script dependency. +- Re-initialize / initializer edge-case tests: reset the initializable slot with `vm.store(addr, bytes32(0), bytes32(0))` behind a small helper, then prank the proxy admin. Skip on forks with `skipIfForkTest(...)`. +- Run the **full** suite after adding a contract, not just its own file (cross-cutting registration tests live outside the contract's file). +- Kill redundant/duplicate tests: if an exact-value assertion subsumes a weaker one, keep one. From 57a880924d1c491cd9080e825258c97c7511f5e9 Mon Sep 17 00:00:00 2001 From: Pelle Date: Wed, 29 Jul 2026 15:14:41 -0400 Subject: [PATCH 17/19] fix(L1): sanity-check protocol version fits in 128 bits (#387) registerUpgrade and setMinimumProtocolVersion accepted an unbounded uint256, but the offchain client packs a protocol version into only the lower 128 bits. Reject values above type(uint128).max so an oversized value can't silently truncate offchain. --- snapshots/semver-lock.json | 4 ++-- src/L1/ProtocolVersions.sol | 10 +++++++--- test/L1/ProtocolVersions.t.sol | 28 ++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 9a4034404..d2025381e 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -16,8 +16,8 @@ "sourceCodeHash": "0x811596e7486cab9ceeeb61405b9ae510d93fcbbdfa11949201a367506c53194a" }, "src/L1/ProtocolVersions.sol:ProtocolVersions": { - "initCodeHash": "0x876ec89fcdbe230fc10a0dd0c7a54465dfc79640419901f224975ce99dbc342e", - "sourceCodeHash": "0x28dfc19b119f42ccbecd3bd2f53c60a2b9784ef8b2a6d9bd62cd966daadd7ae7" + "initCodeHash": "0x9ac15db1262966ac7b800c41c3254152410e8eadb661643c5e61ca325bcde5a9", + "sourceCodeHash": "0xa84a07676cf99b60d1d12d4d4f97c21fe5869e035ed129ff6363cec77dd3a9c2" }, "src/L1/SuperchainConfig.sol:SuperchainConfig": { "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", diff --git a/src/L1/ProtocolVersions.sol b/src/L1/ProtocolVersions.sol index 1638217a9..c83586217 100644 --- a/src/L1/ProtocolVersions.sol +++ b/src/L1/ProtocolVersions.sol @@ -132,7 +132,7 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable /// scheduleId chain with the new upgrade's link. /// @param timestamp Unix activation timestamp, or 0 to leave the upgrade unscheduled. /// @param minProtocolVersion New minimum protocol version to set at registration, or 0 to leave - /// the current minimum unchanged. + /// the current minimum unchanged. Must fit in 128 bits if non-zero. /// @return The ascending id assigned to the newly registered upgrade. function registerUpgrade(uint64 timestamp, uint256 minProtocolVersion) external returns (uint256) { _assertOnlyProxyAdminOwner(); @@ -151,7 +151,10 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable _writeTimestamp(id, timestamp); } // Optionally bump the global minimum protocol version in the same call (0 = leave unchanged). - if (minProtocolVersion != 0) _writeMinimumProtocolVersion(minProtocolVersion); + if (minProtocolVersion != 0) { + if (minProtocolVersion > type(uint128).max) revert ProtocolVersions_InvalidProtocolVersion(); + _writeMinimumProtocolVersion(minProtocolVersion); + } return id; } @@ -159,10 +162,11 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable /// @dev Informational signal for offchain clients; independent of the upgrade schedule and NOT /// part of the scheduleId commitment, so it can be updated at any time without shifting any /// proof binding. - /// @param protocolVersion Packed semver uint256 (must be non-zero). + /// @param protocolVersion Packed semver uint256 (must be non-zero and fit in 128 bits). function setMinimumProtocolVersion(uint256 protocolVersion) external { _assertOnlyProxyAdminOwner(); if (protocolVersion == 0) revert ProtocolVersions_InvalidProtocolVersion(); + if (protocolVersion > type(uint128).max) revert ProtocolVersions_InvalidProtocolVersion(); _writeMinimumProtocolVersion(protocolVersion); } diff --git a/test/L1/ProtocolVersions.t.sol b/test/L1/ProtocolVersions.t.sol index 0a2d87356..2baa4d553 100644 --- a/test/L1/ProtocolVersions.t.sol +++ b/test/L1/ProtocolVersions.t.sol @@ -267,6 +267,20 @@ contract ProtocolVersions_RegisterUpgrade_Test is ProtocolVersions_TestInit { assertEq(protocolVersions.minimumProtocolVersion(), 7); } + + /// @notice Tests that a minProtocolVersion exceeding 128 bits reverts. + function test_registerUpgrade_minProtocolVersionTooLarge_reverts() external { + vm.expectRevert(IProtocolVersions.ProtocolVersions_InvalidProtocolVersion.selector); + vm.prank(_owner); + protocolVersions.registerUpgrade(0, uint256(type(uint128).max) + 1); + } + + /// @notice Tests that the maximum representable minProtocolVersion (128 bits set) succeeds. + function test_registerUpgrade_minProtocolVersionMaxValue_succeeds() external { + vm.prank(_owner); + protocolVersions.registerUpgrade(0, type(uint128).max); + assertEq(protocolVersions.minimumProtocolVersion(), type(uint128).max); + } } /// @title ProtocolVersions_SetMinimumProtocolVersion_Test @@ -302,6 +316,20 @@ contract ProtocolVersions_SetMinimumProtocolVersion_Test is ProtocolVersions_Tes protocolVersions.setMinimumProtocolVersion(0); } + /// @notice Tests that a protocol version exceeding 128 bits reverts. + function test_setMinimumProtocolVersion_tooLarge_reverts() external { + vm.expectRevert(IProtocolVersions.ProtocolVersions_InvalidProtocolVersion.selector); + vm.prank(_owner); + protocolVersions.setMinimumProtocolVersion(uint256(type(uint128).max) + 1); + } + + /// @notice Tests that the maximum representable protocol version (128 bits set) succeeds. + function test_setMinimumProtocolVersion_maxValue_succeeds() external { + vm.prank(_owner); + protocolVersions.setMinimumProtocolVersion(type(uint128).max); + assertEq(protocolVersions.minimumProtocolVersion(), type(uint128).max); + } + /// @notice Tests that only the owner can call `setMinimumProtocolVersion`. function test_setMinimumProtocolVersion_callerNotOwner_reverts() external { vm.expectRevert(ProxyAdminOwnedBase.ProxyAdminOwnedBase_NotProxyAdminOwner.selector); From db08d3acb3ebc0e8f598c6c9c0d64f0a98db27ec Mon Sep 17 00:00:00 2001 From: Pelle Date: Fri, 31 Jul 2026 15:57:19 -0400 Subject: [PATCH 18/19] fix(protocol-versions): allow equal activation timestamps (#389) Co-authored-by: Codex --- snapshots/semver-lock.json | 4 ++-- src/L1/ProtocolVersions.sol | 6 +++--- test/L1/ProtocolVersions.t.sol | 33 ++++++++++++++++++++++++--------- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index d2025381e..9df6df8d0 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -16,8 +16,8 @@ "sourceCodeHash": "0x811596e7486cab9ceeeb61405b9ae510d93fcbbdfa11949201a367506c53194a" }, "src/L1/ProtocolVersions.sol:ProtocolVersions": { - "initCodeHash": "0x9ac15db1262966ac7b800c41c3254152410e8eadb661643c5e61ca325bcde5a9", - "sourceCodeHash": "0xa84a07676cf99b60d1d12d4d4f97c21fe5869e035ed129ff6363cec77dd3a9c2" + "initCodeHash": "0xd762af325410baea14f927f4292ef9ee2bb13b52d72034d6d129eb1e518dfedd", + "sourceCodeHash": "0x5a06b3ae5f442f3e3f3dba6f78b9c3e3ce5abd7218ccb13d477c067f61187dc5" }, "src/L1/SuperchainConfig.sol:SuperchainConfig": { "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", diff --git a/src/L1/ProtocolVersions.sol b/src/L1/ProtocolVersions.sol index c83586217..9d047d341 100644 --- a/src/L1/ProtocolVersions.sol +++ b/src/L1/ProtocolVersions.sol @@ -92,7 +92,7 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable error ProtocolVersions_DelayMustBeLater(uint64 currentTimestamp, uint64 newTimestamp); /// @notice Thrown when scheduling a zero-valued static hole below a scheduled successor. error ProtocolVersions_StaticScheduleHole(uint256 id, uint256 nextScheduledId); - /// @notice Thrown when a non-zero timestamp is not greater than the previous scheduled upgrade. + /// @notice Thrown when a non-zero timestamp is less than the previous scheduled upgrade. error ProtocolVersions_TimestampNotAfterPrevious( uint256 id, uint256 previousId, uint64 previousTimestamp, uint64 timestamp ); @@ -323,14 +323,14 @@ contract ProtocolVersions is ProxyAdminOwnedBase, Initializable, Reinitializable } } - /// @dev Requires `timestamp` to be greater than the closest lower-id scheduled upgrade. + /// @dev Requires `timestamp` to be greater than or equal to the closest lower-id scheduled upgrade. function _assertTimestampAfterPrevious(uint256 id, uint64 timestamp) private view { if (timestamp == 0) return; for (uint256 i = id; i > 0; i--) { uint64 previous = _timestamps[i - 1]; if (previous != 0) { - if (timestamp <= previous) { + if (timestamp < previous) { revert ProtocolVersions_TimestampNotAfterPrevious(id, i - 1, previous, timestamp); } return; diff --git a/test/L1/ProtocolVersions.t.sol b/test/L1/ProtocolVersions.t.sol index 2baa4d553..1c0f77c65 100644 --- a/test/L1/ProtocolVersions.t.sol +++ b/test/L1/ProtocolVersions.t.sol @@ -185,10 +185,10 @@ contract ProtocolVersions_RegisterUpgrade_Test is ProtocolVersions_TestInit { assertEq(protocolVersions.getSchedule()[CANYON], ts); } - /// @notice Tests that a scheduled registration must be after the previous scheduled upgrade. - function test_registerUpgrade_timestampAfterPrevious_succeeds() external { + /// @notice Tests that a scheduled registration may share the previous scheduled upgrade's timestamp. + function test_registerUpgrade_timestampEqualToPrevious_succeeds() external { uint64 first = uint64(block.timestamp) + 100; - uint64 second = first + 1; + uint64 second = first; vm.prank(_owner); assertEq(protocolVersions.registerUpgrade(first, 0), CANYON); @@ -231,7 +231,7 @@ contract ProtocolVersions_RegisterUpgrade_Test is ProtocolVersions_TestInit { assertEq(schedule[2], second); } - /// @notice Tests that registering an out-of-order timestamp reverts. + /// @notice Tests that registering a timestamp before the previous scheduled upgrade reverts. function test_registerUpgrade_timestampNotAfterPrevious_reverts() external { uint64 first = uint64(block.timestamp) + 100; @@ -240,11 +240,11 @@ contract ProtocolVersions_RegisterUpgrade_Test is ProtocolVersions_TestInit { vm.expectRevert( abi.encodeWithSelector( - IProtocolVersions.ProtocolVersions_TimestampNotAfterPrevious.selector, ECOTONE, CANYON, first, first + IProtocolVersions.ProtocolVersions_TimestampNotAfterPrevious.selector, ECOTONE, CANYON, first, first - 1 ) ); vm.prank(_owner); - protocolVersions.registerUpgrade(first, 0); + protocolVersions.registerUpgrade(first - 1, 0); } /// @notice Tests that a non-zero minProtocolVersion bumps the minimum during registration. @@ -484,7 +484,22 @@ contract ProtocolVersions_SetTimestamp_Test is ProtocolVersions_TestInit { protocolVersions.setTimestamp(CANYON, ts); } - /// @notice Tests that `setTimestamp` reverts when the timestamp is not after the previous one. + /// @notice Tests that `setTimestamp` may share the previous scheduled upgrade's timestamp. + function test_setTimestamp_timestampEqualToPrevious_succeeds() external { + uint64 previous = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; + + vm.startPrank(_owner); + protocolVersions.registerUpgrade(previous, 0); + protocolVersions.registerUpgrade(0, 0); + protocolVersions.setTimestamp(ECOTONE, previous); + vm.stopPrank(); + + uint64[] memory schedule = protocolVersions.getSchedule(); + assertEq(schedule[CANYON], previous); + assertEq(schedule[ECOTONE], previous); + } + + /// @notice Tests that `setTimestamp` reverts when the timestamp is before the previous one. function test_setTimestamp_timestampNotAfterPrevious_reverts() external { uint64 previous = uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100; @@ -499,11 +514,11 @@ contract ProtocolVersions_SetTimestamp_Test is ProtocolVersions_TestInit { ECOTONE, CANYON, previous, - previous + previous - 1 ) ); vm.prank(_owner); - protocolVersions.setTimestamp(ECOTONE, previous); + protocolVersions.setTimestamp(ECOTONE, previous - 1); } /// @notice Tests that `setTimestamp` reverts when the timestamp is not before the next one. From c20aee2e6249fa884cecaee78a594b3b91f7f40a Mon Sep 17 00:00:00 2001 From: Derek Guenther Date: Tue, 4 Aug 2026 16:30:12 -0400 Subject: [PATCH 19/19] fix: pin AggregateVerifier schedule to match current prover --- deploy-config/local-tee.json | 1 + deploy-config/local.json | 1 + deploy-config/mainnet.json | 1 + deploy-config/sepolia.json | 1 + interfaces/L1/proofs/IAggregateVerifier.sol | 4 +- scripts/deploy/DeployConfig.s.sol | 3 + scripts/deploy/SystemDeploy.s.sol | 44 +++--- scripts/multiproof/DeployDevBase.s.sol | 28 ++-- snapshots/abi/AggregateVerifier.json | 72 +-------- snapshots/semver-lock.json | 4 +- src/L1/proofs/AggregateVerifier.sol | 66 +++----- test/L1/OptimismPortal2.t.sol | 5 +- test/L1/proofs/AggregateVerifier.t.sol | 157 ++++++-------------- test/L1/proofs/BaseTest.t.sol | 17 ++- test/L1/proofs/DisputeGameFactory.t.sol | 5 +- test/deploy/SystemDeploy.t.sol | 58 ++++---- test/deploy/SystemDeployAssertions.sol | 8 +- 17 files changed, 158 insertions(+), 317 deletions(-) diff --git a/deploy-config/local-tee.json b/deploy-config/local-tee.json index 53dc3efde..9e223905d 100644 --- a/deploy-config/local-tee.json +++ b/deploy-config/local-tee.json @@ -23,6 +23,7 @@ "multiproofGameType": 621, "multiproofGenesisBlockNumber": 0, "multiproofIntermediateBlockInterval": 10, + "multiproofMaxUpgradeId": 12, "multiproofGenesisOutputRoot": "0x0000000000000000000000000000000000000000000000000000000000000001", "nitroEnclaveVerifier": "0x0000000000000000000000000000000000000000", "operatorFeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000", diff --git a/deploy-config/local.json b/deploy-config/local.json index 738f0f0ee..1f4a681b0 100644 --- a/deploy-config/local.json +++ b/deploy-config/local.json @@ -22,6 +22,7 @@ "multiproofGameType": 621, "multiproofGenesisBlockNumber": 0, "multiproofIntermediateBlockInterval": 10, + "multiproofMaxUpgradeId": 12, "multiproofGenesisOutputRoot": "0x0000000000000000000000000000000000000000000000000000000000000001", "nitroEnclaveVerifier": "0x0000000000000000000000000000000000000000", "operatorFeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000", diff --git a/deploy-config/mainnet.json b/deploy-config/mainnet.json index b8c6602fa..f6d851c86 100644 --- a/deploy-config/mainnet.json +++ b/deploy-config/mainnet.json @@ -25,6 +25,7 @@ "multiproofGenesisBlockNumber": 0, "multiproofGenesisOutputRoot": "0x0000000000000000000000000000000000000000000000000000000000000001", "multiproofIntermediateBlockInterval": 30, + "multiproofMaxUpgradeId": 12, "nitroEnclaveVerifier": "0x0000000000000000000000000000000000000000", "operatorFeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000", "operatorFeeVaultRecipient": "0xa3d596EAfaB6B13Ab18D40FaE1A962700C84ADEa", diff --git a/deploy-config/sepolia.json b/deploy-config/sepolia.json index 8a0b8f145..eebc3ccd9 100644 --- a/deploy-config/sepolia.json +++ b/deploy-config/sepolia.json @@ -25,6 +25,7 @@ "multiproofGenesisBlockNumber": 37223829, "multiproofGenesisOutputRoot": "0xbc273d5876d1858ecd5aaf4ce4eaf16c73f0187ca4271b774ed5da7d2254ba79", "multiproofIntermediateBlockInterval": 30, + "multiproofMaxUpgradeId": 12, "nitroEnclaveVerifier": "0x77461a6434fFE3435206B19658F33274f3104e07", "operatorFeeVaultMinimumWithdrawalAmount": "0x8ac7230489e80000", "operatorFeeVaultRecipient": "0xfd1D2e729aE8eEe2E146c033bf4400fE75284301", diff --git a/interfaces/L1/proofs/IAggregateVerifier.sol b/interfaces/L1/proofs/IAggregateVerifier.sol index 9e3039953..639743399 100644 --- a/interfaces/L1/proofs/IAggregateVerifier.sol +++ b/interfaces/L1/proofs/IAggregateVerifier.sol @@ -25,10 +25,8 @@ interface IAggregateVerifier is IDisputeGame { function ZK_AGGREGATE_HASH() external view returns (bytes32); function CONFIG_HASH() external view returns (bytes32); function PROTOCOL_VERSIONS() external view returns (IProtocolVersions); + function MAX_UPGRADE_ID() external view returns (uint256); function L2_CHAIN_ID() external view returns (uint256); - function L2_GENESIS_BLOCK_NUMBER() external view returns (uint256); - function L2_GENESIS_TIMESTAMP() external view returns (uint64); - function L2_BLOCK_TIME() external view returns (uint64); function BLOCK_INTERVAL() external view returns (uint256); function INTERMEDIATE_BLOCK_INTERVAL() external view returns (uint256); diff --git a/scripts/deploy/DeployConfig.s.sol b/scripts/deploy/DeployConfig.s.sol index c38c6a450..a4cb2971b 100644 --- a/scripts/deploy/DeployConfig.s.sol +++ b/scripts/deploy/DeployConfig.s.sol @@ -60,6 +60,7 @@ contract DeployConfig is Script { uint256 public multiproofIntermediateBlockInterval; uint64 public slowFinalizationDelay; uint64 public fastFinalizationDelay; + uint256 public multiproofMaxUpgradeId; uint256 public operatorFeeVaultMinimumWithdrawalAmount; uint256 public operatorFeeVaultWithdrawalNetwork; uint256 public proofMaturityDelaySeconds; @@ -119,6 +120,8 @@ contract DeployConfig is Script { multiproofIntermediateBlockInterval = _json.readUintOr("$.multiproofIntermediateBlockInterval", 10); slowFinalizationDelay = uint64(_json.readUintOr("$.slowFinalizationDelay", 5 days)); fastFinalizationDelay = uint64(_json.readUintOr("$.fastFinalizationDelay", 1 days)); + // Mandatory: must match the highest upgrade id in the prover image (BaseUpgrade::CONTRACT_VARIANTS). + multiproofMaxUpgradeId = _json.readUint("$.multiproofMaxUpgradeId"); operatorFeeVaultMinimumWithdrawalAmount = _json.readUint("$.operatorFeeVaultMinimumWithdrawalAmount"); operatorFeeVaultWithdrawalNetwork = _json.readUint("$.operatorFeeVaultWithdrawalNetwork"); proofMaturityDelaySeconds = _json.readUintOr("$.proofMaturityDelaySeconds", 0); diff --git a/scripts/deploy/SystemDeploy.s.sol b/scripts/deploy/SystemDeploy.s.sol index 05bb84a4b..d458d2835 100644 --- a/scripts/deploy/SystemDeploy.s.sol +++ b/scripts/deploy/SystemDeploy.s.sol @@ -79,9 +79,9 @@ contract SystemDeploy is Script { bytes32 multiproofConfigHash; uint256 multiproofGameType; address nitroEnclaveVerifier; - AggregateVerifier.ScheduleConfig scheduleConfig; uint256 multiproofBlockInterval; uint256 multiproofIntermediateBlockInterval; + uint256 multiproofMaxUpgradeId; ISP1Verifier sp1Verifier; address teeProposer; address teeChallenger; @@ -131,9 +131,10 @@ contract SystemDeploy is Script { bytes32 zkAggregationHash; bytes32 multiproofConfigHash; uint256 l2ChainId; - AggregateVerifier.ScheduleConfig scheduleConfig; uint256 multiproofBlockInterval; uint256 multiproofIntermediateBlockInterval; + uint256 multiproofMaxUpgradeId; + IProtocolVersions protocolVersions; uint64 slowFinalizationDelay; uint64 fastFinalizationDelay; } @@ -287,8 +288,6 @@ contract SystemDeploy is Script { } GameType gameType = GameType.wrap(uint32(cfg.multiproofGameType())); - AggregateVerifier.ScheduleConfig memory scheduleConfig = implInput.scheduleConfig; - scheduleConfig.protocolVersions = IProtocolVersions(artifacts.mustGetAddress("ProtocolVersionsProxy")); // zkVerifier is the dev sentinel (0xdead); this entrypoint is dev-multiproof only. IVerifier aggregateVerifier = _newAggregateVerifier( @@ -303,9 +302,10 @@ contract SystemDeploy is Script { zkAggregationHash: cfg.zkAggregationHash(), multiproofConfigHash: _multiproofConfigHash, l2ChainId: cfg.l2ChainId(), - scheduleConfig: scheduleConfig, multiproofBlockInterval: cfg.multiproofBlockInterval(), multiproofIntermediateBlockInterval: cfg.multiproofIntermediateBlockInterval(), + multiproofMaxUpgradeId: cfg.multiproofMaxUpgradeId(), + protocolVersions: IProtocolVersions(artifacts.mustGetAddress("ProtocolVersionsProxy")), slowFinalizationDelay: cfg.slowFinalizationDelay(), fastFinalizationDelay: cfg.fastFinalizationDelay() }) @@ -365,9 +365,9 @@ contract SystemDeploy is Script { multiproofConfigHash: cfg.multiproofConfigHash(), multiproofGameType: cfg.multiproofGameType(), nitroEnclaveVerifier: cfg.nitroEnclaveVerifier(), - scheduleConfig: _configuredScheduleConfig(), multiproofBlockInterval: cfg.multiproofBlockInterval(), multiproofIntermediateBlockInterval: cfg.multiproofIntermediateBlockInterval(), + multiproofMaxUpgradeId: cfg.multiproofMaxUpgradeId(), sp1Verifier: ISP1Verifier(cfg.sp1Verifier()), teeProposer: cfg.teeProposer(), teeChallenger: cfg.teeChallenger(), @@ -379,20 +379,6 @@ contract SystemDeploy is Script { }); } - function _configuredScheduleConfig() internal view returns (AggregateVerifier.ScheduleConfig memory config_) { - uint256 genesisTimestamp = cfg.l2GenesisTimestamp(); - uint256 blockTime = cfg.l2BlockTime(); - require(genesisTimestamp <= type(uint64).max, "SystemDeploy: L2 genesis timestamp overflow"); - require(blockTime <= type(uint64).max, "SystemDeploy: L2 block time overflow"); - - config_ = AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(0)), - genesisBlockNumber: cfg.l2GenesisBlockNumber(), - genesisTimestamp: uint64(genesisTimestamp), - blockTime: uint64(blockTime) - }); - } - function _configuredOPChainInput() internal view returns (Types.DeployInput memory input_) { input_ = Types.DeployInput({ roles: Types.Roles({ @@ -1161,8 +1147,13 @@ contract SystemDeploy is Script { IVerifier(address(new ZKVerifier(_input.sp1Verifier, _output.anchorStateRegistryProxy))); } - AggregateVerifier.ScheduleConfig memory scheduleConfig = _input.scheduleConfig; - scheduleConfig.protocolVersions = _output.protocolVersionsProxy; + // Seed unscheduled upgrades through multiproofMaxUpgradeId so the AggregateVerifier + // constructor check passes; governance schedules activations later. + uint256 registered = _output.protocolVersionsProxy.getSchedule().length; + for (uint256 i = registered; i <= _input.multiproofMaxUpgradeId; i++) { + vm.broadcast(msg.sender); + _output.protocolVersionsProxy.registerUpgrade(0, 0); + } if (_deferAggregateVerifierRegistration(_input)) { // The multiproof config_hash commits to the L2 genesis block hash, which is only known @@ -1183,9 +1174,10 @@ contract SystemDeploy is Script { zkAggregationHash: _input.zkAggregationHash, multiproofConfigHash: _input.multiproofConfigHash, l2ChainId: _opChainInput.l2ChainId, - scheduleConfig: scheduleConfig, multiproofBlockInterval: _input.multiproofBlockInterval, multiproofIntermediateBlockInterval: _input.multiproofIntermediateBlockInterval, + multiproofMaxUpgradeId: _input.multiproofMaxUpgradeId, + protocolVersions: _output.protocolVersionsProxy, slowFinalizationDelay: _input.slowFinalizationDelay, fastFinalizationDelay: _input.fastFinalizationDelay }) @@ -1208,7 +1200,9 @@ contract SystemDeploy is Script { finalizationDelays: AggregateVerifier.FinalizationDelays( _input.slowFinalizationDelay, _input.fastFinalizationDelay ), - schedule: _input.scheduleConfig + schedule: AggregateVerifier.ScheduleConfig({ + protocolVersions: _input.protocolVersions, maxUpgradeId: _input.multiproofMaxUpgradeId + }) }); vm.broadcast(msg.sender); @@ -1285,8 +1279,6 @@ contract SystemDeploy is Script { function _assertValidMultiproofInput(ImplementationInput memory _input) internal view { require(_input.multiproofConfigHash != bytes32(0), "SystemDeploy: multiproofConfigHash not set"); require(_input.multiproofGameType != 0, "SystemDeploy: multiproofGameType not set"); - require(_input.scheduleConfig.blockTime != 0, "SystemDeploy: L2 block time not set"); - require(_input.scheduleConfig.genesisTimestamp != 0, "SystemDeploy: L2 genesis timestamp not set"); require(_input.multiproofBlockInterval != 0, "SystemDeploy: multiproof block interval not set"); require( _input.multiproofIntermediateBlockInterval != 0, "SystemDeploy: multiproof intermediate interval not set" diff --git a/scripts/multiproof/DeployDevBase.s.sol b/scripts/multiproof/DeployDevBase.s.sol index 399f95f42..1e64d5617 100644 --- a/scripts/multiproof/DeployDevBase.s.sol +++ b/scripts/multiproof/DeployDevBase.s.sol @@ -113,6 +113,22 @@ abstract contract DeployDevBase is Script { ); protocolVersionsProxy.changeAdmin(address(proxyAdmin)); + // Seed unscheduled upgrades through multiproofMaxUpgradeId so the AggregateVerifier + // constructor check passes; requires finalSystemOwner to be the broadcasting deployer. + uint256 maxUpgradeId = cfg.multiproofMaxUpgradeId(); + for (uint256 i = 0; i <= maxUpgradeId; i++) { + IProtocolVersions(address(protocolVersionsProxy)).registerUpgrade(0, 0); + } + + AggregateVerifier.GameConfig memory gameConfig = AggregateVerifier.GameConfig({ + finalizationDelays: AggregateVerifier.FinalizationDelays( + cfg.slowFinalizationDelay(), cfg.fastFinalizationDelay() + ), + schedule: AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(protocolVersionsProxy)), maxUpgradeId: maxUpgradeId + }) + }); + aggregateVerifier = address( new AggregateVerifier( gameType, @@ -126,17 +142,7 @@ abstract contract DeployDevBase is Script { cfg.l2ChainId(), _blockInterval(), _intermediateBlockInterval(), - AggregateVerifier.GameConfig({ - finalizationDelays: AggregateVerifier.FinalizationDelays( - cfg.slowFinalizationDelay(), cfg.fastFinalizationDelay() - ), - schedule: AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(protocolVersionsProxy)), - genesisBlockNumber: cfg.l2GenesisBlockNumber(), - genesisTimestamp: uint64(cfg.l2GenesisTimestamp()), - blockTime: uint64(cfg.l2BlockTime()) - }) - }) + gameConfig ) ); diff --git a/snapshots/abi/AggregateVerifier.json b/snapshots/abi/AggregateVerifier.json index 9658e2979..6f97ddd38 100644 --- a/snapshots/abi/AggregateVerifier.json +++ b/snapshots/abi/AggregateVerifier.json @@ -96,18 +96,8 @@ }, { "internalType": "uint256", - "name": "genesisBlockNumber", + "name": "maxUpgradeId", "type": "uint256" - }, - { - "internalType": "uint64", - "name": "genesisTimestamp", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "blockTime", - "type": "uint64" } ], "internalType": "struct AggregateVerifier.ScheduleConfig", @@ -240,19 +230,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "L2_BLOCK_TIME", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "L2_CHAIN_ID", @@ -268,7 +245,7 @@ }, { "inputs": [], - "name": "L2_GENESIS_BLOCK_NUMBER", + "name": "MAX_UPGRADE_ID", "outputs": [ { "internalType": "uint256", @@ -279,19 +256,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "L2_GENESIS_TIMESTAMP", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "PROOF_THRESHOLD", @@ -1117,11 +1081,6 @@ "name": "InvalidIntermediateRootIndex", "type": "error" }, - { - "inputs": [], - "name": "InvalidL2BlockTime", - "type": "error" - }, { "inputs": [], "name": "InvalidParentGame", @@ -1185,33 +1144,6 @@ "name": "L1OriginTooOld", "type": "error" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "genesisBlockNumber", - "type": "uint256" - } - ], - "name": "L2BlockBeforeGenesis", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "L2TimestampOverflow", - "type": "error" - }, { "inputs": [ { diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 5571af348..b69767ad8 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -28,8 +28,8 @@ "sourceCodeHash": "0x780ff372493ba9010bc0d13100ac896f2bf75730a9b17d4bb63aaf694dc3c634" }, "src/L1/proofs/AggregateVerifier.sol:AggregateVerifier": { - "initCodeHash": "0xcb9f002b4ac730a951b291bb8d008343bb70ddc92d513e65ef6fbbf5e8685312", - "sourceCodeHash": "0x34b1e472156cf638ae0cf8e4f81a24038426cdff3bf9fdc4c95894a5dd87c94d" + "initCodeHash": "0x6e473cd97acfccf0d7d7fcf6fb7da25e96ae6b89119611ab5cdbcc7eeae7a35d", + "sourceCodeHash": "0x14c777a70256c4001ffe1ac1a135b82902d6555b8c70cff2ab0ead49774d4a9d" }, "src/L1/proofs/AnchorStateRegistry.sol:AnchorStateRegistry": { "initCodeHash": "0x6f3afd2d0ef97a82ca3111976322b99343a270e54cd4a405028f2f29c75f7fb1", diff --git a/src/L1/proofs/AggregateVerifier.sol b/src/L1/proofs/AggregateVerifier.sol index c95332301..0508ccf01 100644 --- a/src/L1/proofs/AggregateVerifier.sol +++ b/src/L1/proofs/AggregateVerifier.sol @@ -51,12 +51,10 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { uint64 fast; } - /// @notice Upgrade registry and L2 timestamp anchor used to pin proof games. + /// @notice The ProtocolVersions registry and the highest upgrade id the prover image supports. struct ScheduleConfig { IProtocolVersions protocolVersions; - uint256 genesisBlockNumber; - uint64 genesisTimestamp; - uint64 blockTime; + uint256 maxUpgradeId; } /// @notice Finalization and upgrade schedule configuration for the dispute game. @@ -114,18 +112,6 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice The chain ID of the L2 network this contract argues about. uint256 public immutable L2_CHAIN_ID; - /// @notice The L2 genesis block number used as the timestamp anchor. - uint256 public immutable L2_GENESIS_BLOCK_NUMBER; - - /// @notice The timestamp of the L2 genesis block. - uint64 public immutable L2_GENESIS_TIMESTAMP; - - /// @notice The fixed number of seconds between consecutive L2 blocks. - /// @dev This verifier derives L2 timestamps linearly from the configured genesis anchor. If - /// the chain changes block time, deploy a new verifier anchored at the transition block - /// and migrate to that game type for post-transition claims. - uint64 public immutable L2_BLOCK_TIME; - /// @notice The block interval between each proposal. /// @dev The parent's block number + BLOCK_INTERVAL = this proposal's block number. uint256 public immutable BLOCK_INTERVAL; @@ -149,6 +135,11 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice The ProtocolVersions upgrade schedule contract. IProtocolVersions public immutable PROTOCOL_VERSIONS; + /// @notice The highest ProtocolVersions upgrade id the prover image supports. Games pin the + /// schedule commitment at this id, so later registrations cannot affect this game type. + /// @dev Governance must retire this game type before an upgrade beyond the pin activates. + uint256 public immutable MAX_UPGRADE_ID; + //////////////////////////////////////////////////////////////// // State Vars // //////////////////////////////////////////////////////////////// @@ -198,10 +189,8 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice The number of proofs provided. uint8 public proofCount; - /// @notice Commitment to upgrades activated at this game's ending L2 block. - /// @dev Pinned once at initialization. The game's ending L2 block deterministically selects - /// the activation cutoff, so every proof for the game commits to the same historical - /// schedule even after newer upgrades are registered or activated. + /// @notice The ProtocolVersions schedule commitment through MAX_UPGRADE_ID, pinned at game + /// initialization. Every proof in this game commits to this value. bytes32 public scheduleId; //////////////////////////////////////////////////////////////// @@ -287,15 +276,6 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @notice Thrown when the L1 origin hash doesn't match the actual blockhash. error L1OriginHashMismatch(bytes32 claimed, bytes32 actual); - /// @notice Thrown when the configured L2 block time is zero. - error InvalidL2BlockTime(); - - /// @notice Thrown when an L2 block precedes the configured genesis block. - error L2BlockBeforeGenesis(uint256 blockNumber, uint256 genesisBlockNumber); - - /// @notice Thrown when an L2 block timestamp cannot be represented as a uint64. - error L2TimestampOverflow(uint256 blockNumber); - /// @notice Thrown when there are not enough proofs to resolve the game. error NotEnoughProofs(); @@ -310,7 +290,7 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { /// @param l2ChainId The chain ID of the L2 network. /// @param blockInterval The block interval. /// @param intermediateBlockInterval The intermediate block interval. - /// @param gameConfig Finalization delays, upgrade registry, and deterministic L2 timestamp configuration. + /// @param gameConfig Finalization delays, ProtocolVersions registry, and the pinned max upgrade id. constructor( GameType gameType_, IAnchorStateRegistry anchorStateRegistry_, @@ -329,8 +309,6 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { if (blockInterval == 0 || intermediateBlockInterval == 0 || blockInterval % intermediateBlockInterval != 0) { revert InvalidBlockInterval(blockInterval, intermediateBlockInterval); } - if (gameConfig.schedule.blockTime == 0) revert InvalidL2BlockTime(); - // Set up initial game state. GAME_TYPE = gameType_; ANCHOR_STATE_REGISTRY = anchorStateRegistry_; @@ -343,14 +321,15 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { ZK_AGGREGATE_HASH = zkHashes.aggregateHash; CONFIG_HASH = configHash; L2_CHAIN_ID = l2ChainId; - L2_GENESIS_BLOCK_NUMBER = gameConfig.schedule.genesisBlockNumber; - L2_GENESIS_TIMESTAMP = gameConfig.schedule.genesisTimestamp; - L2_BLOCK_TIME = gameConfig.schedule.blockTime; BLOCK_INTERVAL = blockInterval; INTERMEDIATE_BLOCK_INTERVAL = intermediateBlockInterval; SLOW_FINALIZATION_DELAY = gameConfig.finalizationDelays.slow; FAST_FINALIZATION_DELAY = gameConfig.finalizationDelays.fast; PROTOCOL_VERSIONS = gameConfig.schedule.protocolVersions; + MAX_UPGRADE_ID = gameConfig.schedule.maxUpgradeId; + + // Reverts if the registry has not yet registered upgrade `maxUpgradeId`. + gameConfig.schedule.protocolVersions.scheduleId(gameConfig.schedule.maxUpgradeId); INITIALIZE_CALLDATA_SIZE = 0x8E + 0x20 * intermediateOutputRootsCount(); } @@ -424,20 +403,9 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { // Set the game as initialized. initialized = true; - // L2 timestamps are fixed by the rollup genesis and block time. Pinning the upgrades active - // at the ending L2 block makes the schedule independent of both the proof's L1 head and the - // L1 block in which this game is created. - uint256 claimBlock = l2SequenceNumber(); - if (claimBlock < L2_GENESIS_BLOCK_NUMBER) { - revert L2BlockBeforeGenesis(claimBlock, L2_GENESIS_BLOCK_NUMBER); - } - - uint256 blocksSinceGenesis = claimBlock - L2_GENESIS_BLOCK_NUMBER; - uint256 maxBlocks = (type(uint64).max - L2_GENESIS_TIMESTAMP) / L2_BLOCK_TIME; - if (blocksSinceGenesis > maxBlocks) revert L2TimestampOverflow(claimBlock); - - uint64 claimTimestamp = L2_GENESIS_TIMESTAMP + uint64(blocksSinceGenesis * uint256(L2_BLOCK_TIME)); - scheduleId = PROTOCOL_VERSIONS.activatedScheduleId(claimTimestamp); + // Pin the schedule commitment through MAX_UPGRADE_ID; every proof in this game commits + // to it. + scheduleId = PROTOCOL_VERSIONS.scheduleId(MAX_UPGRADE_ID); // Set the game's starting timestamp. createdAt = Timestamp.wrap(uint64(block.timestamp)); diff --git a/test/L1/OptimismPortal2.t.sol b/test/L1/OptimismPortal2.t.sol index 88b9d5123..b653d2746 100644 --- a/test/L1/OptimismPortal2.t.sol +++ b/test/L1/OptimismPortal2.t.sol @@ -80,6 +80,9 @@ abstract contract OptimismPortal2_TestInit is DisputeGameFactory_TestInit { respectedGameType = optimismPortal2.respectedGameType(); MockVerifier teeVerifier = new MockVerifier(anchorStateRegistry); MockVerifier zkVerifier = new MockVerifier(anchorStateRegistry); + // The AggregateVerifier constructor requires the pinned upgrade id to be registered. + vm.prank(proxyAdminOwner); + protocolVersions.registerUpgrade(0, 0); AggregateVerifier gameImpl = new AggregateVerifier( respectedGameType, anchorStateRegistry, @@ -95,7 +98,7 @@ abstract contract OptimismPortal2_TestInit is DisputeGameFactory_TestInit { AggregateVerifier.GameConfig({ finalizationDelays: AggregateVerifier.FinalizationDelays({ slow: 0, fast: 0 }), schedule: AggregateVerifier.ScheduleConfig({ - protocolVersions: protocolVersions, genesisBlockNumber: 0, genesisTimestamp: 1, blockTime: 2 + protocolVersions: protocolVersions, maxUpgradeId: protocolVersions.getSchedule().length - 1 }) }) ); diff --git a/test/L1/proofs/AggregateVerifier.t.sol b/test/L1/proofs/AggregateVerifier.t.sol index f80e05f31..7ae59b5ca 100644 --- a/test/L1/proofs/AggregateVerifier.t.sol +++ b/test/L1/proofs/AggregateVerifier.t.sol @@ -37,20 +37,13 @@ contract AggregateVerifierTest is BaseTest { _createAndAssertInitializedGame("zk-proof", AggregateVerifier.ProofType.ZK, ZK_PROVER, address(0), ZK_PROVER); } - /// @notice Initialization pins the upgrades active at the claimed L2 block, independently of - /// the L1 game-creation timestamp, and later schedule changes cannot alter the pin. - function test_initialize_pinsScheduleId_succeeds() public { - // The first game ends at L2 block 100, whose deterministic timestamp is 200. The first - // upgrade is active there; the second is not. - protocolVersions.registerUpgrade(200, 1); - bytes32 pinned = protocolVersions.activatedScheduleId(200); + /// @notice init pins scheduleId(MAX_UPGRADE_ID): upgrades registered beyond the pin affect + /// neither existing snapshots nor what new games snapshot. + function test_initialize_pinsScheduleIdAtMaxUpgradeId_succeeds() public { + bytes32 pinned = protocolVersions.scheduleId(MAX_UPGRADE_ID); assertTrue(pinned != bytes32(0)); - protocolVersions.registerUpgrade(300, 2); - assertNotEq(protocolVersions.scheduleId(), pinned); - - // Even though the L1 clock has passed the second activation, the game's schedule is - // selected by its claimed L2 block timestamp. - vm.warp(300); + // Nothing is registered beyond the pin yet, so the pinned link is the live tail. + assertEq(protocolVersions.scheduleId(), pinned); Claim rootClaim = _advanceL2BlockAndClaim(); bytes memory proof = _generateProof("tee-proof", AggregateVerifier.ProofType.TEE); @@ -61,94 +54,50 @@ contract AggregateVerifierTest is BaseTest { assertEq(game.scheduleId(), pinned); - // Move the live schedule after creation; the game's snapshot remains pinned. - protocolVersions.registerUpgrade(400, 3); + // Registering beyond the pin moves the live tail but not the pinned commitment. + protocolVersions.registerUpgrade(uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100, 1); assertNotEq(protocolVersions.scheduleId(), pinned); + assertEq(protocolVersions.scheduleId(MAX_UPGRADE_ID), pinned); assertEq(game.scheduleId(), pinned); - } - - /// @notice Consecutive games on opposite sides of an L2 activation boundary pin different - /// schedule commitments. - function test_initialize_scheduleChangesAtL2ActivationBoundary_succeeds() public { - protocolVersions.registerUpgrade(300, 1); - Claim firstClaim = _advanceL2BlockAndClaim(); - AggregateVerifier firstGame = _createAggregateVerifierGame( - TEE_PROVER, - firstClaim, - currentL2BlockNumber, - address(anchorStateRegistry), - _generateProof("first", AggregateVerifier.ProofType.TEE) - ); - assertEq(firstGame.scheduleId(), bytes32(0)); - - Claim secondClaim = _advanceL2BlockAndClaim(); - AggregateVerifier secondGame = _createAggregateVerifierGame( - TEE_PROVER, - secondClaim, - currentL2BlockNumber, - address(firstGame), - _generateProof("second", AggregateVerifier.ProofType.TEE) - ); - assertEq(secondGame.scheduleId(), protocolVersions.activatedScheduleId(400)); + // A game created after the live tail moved still snapshots the pinned commitment. + rootClaim = _advanceL2BlockAndClaim(); + proof = _generateProof("tee-proof-2", AggregateVerifier.ProofType.TEE); + AggregateVerifier game2 = + _createAggregateVerifierGame(TEE_PROVER, rootClaim, currentL2BlockNumber, address(game), proof); + assertEq(game2.scheduleId(), pinned); } - function test_constructor_zeroL2BlockTime_reverts() public { - AggregateVerifier.ScheduleConfig memory scheduleConfig = AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(protocolVersions)), - genesisBlockNumber: 0, - genesisTimestamp: 0, - blockTime: 0 - }); + /// @notice Scheduling an upgrade inside the pinned prefix moves the pinned commitment, so a + /// game created afterwards snapshots the new value. + function test_initialize_scheduleChangeWithinPin_movesSnapshot_succeeds() public { + bytes32 unscheduled = protocolVersions.scheduleId(MAX_UPGRADE_ID); - vm.expectRevert(AggregateVerifier.InvalidL2BlockTime.selector); - _deployAggregateVerifierWithScheduleConfig(scheduleConfig); - } - - function test_initialize_l2BlockBeforeGenesis_reverts() public { - AggregateVerifier.ScheduleConfig memory scheduleConfig = AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(protocolVersions)), - genesisBlockNumber: BLOCK_INTERVAL + 1, - genesisTimestamp: 0, - blockTime: L2_BLOCK_TIME - }); - AggregateVerifier implementation = _deployAggregateVerifierWithScheduleConfig(scheduleConfig); - factory.setImplementation(GameTypes.AGGREGATE_VERIFIER, IDisputeGame(address(implementation))); + // Schedule the last pinned upgrade; the pinned commitment must move. + protocolVersions.setTimestamp(MAX_UPGRADE_ID, uint64(block.timestamp) + protocolVersions.MIN_NOTICE() + 100); + bytes32 scheduled = protocolVersions.scheduleId(MAX_UPGRADE_ID); + assertNotEq(scheduled, unscheduled); Claim rootClaim = _advanceL2BlockAndClaim(); - vm.expectRevert( - abi.encodeWithSelector( - AggregateVerifier.L2BlockBeforeGenesis.selector, currentL2BlockNumber, BLOCK_INTERVAL + 1 - ) - ); - _createAggregateVerifierGame( - TEE_PROVER, - rootClaim, - currentL2BlockNumber, - address(anchorStateRegistry), - _generateProof("before-genesis", AggregateVerifier.ProofType.TEE) + bytes memory proof = _generateProof("tee-proof", AggregateVerifier.ProofType.TEE); + + AggregateVerifier game = _createAggregateVerifierGame( + TEE_PROVER, rootClaim, currentL2BlockNumber, address(anchorStateRegistry), proof ); + + assertEq(game.scheduleId(), scheduled); } - function test_initialize_l2TimestampOverflow_reverts() public { - AggregateVerifier.ScheduleConfig memory scheduleConfig = AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(protocolVersions)), - genesisBlockNumber: 0, - genesisTimestamp: type(uint64).max, - blockTime: L2_BLOCK_TIME - }); - AggregateVerifier implementation = _deployAggregateVerifierWithScheduleConfig(scheduleConfig); - factory.setImplementation(GameTypes.AGGREGATE_VERIFIER, IDisputeGame(address(implementation))); + /// @notice The constructor stores MAX_UPGRADE_ID and reverts if the registry has not + /// registered up to it. + function test_constructor_maxUpgradeId_works() public { + AggregateVerifier impl = _deployAggregateVerifierWithMaxUpgradeId(MAX_UPGRADE_ID); + assertEq(impl.MAX_UPGRADE_ID(), MAX_UPGRADE_ID); - Claim rootClaim = _advanceL2BlockAndClaim(); - vm.expectRevert(abi.encodeWithSelector(AggregateVerifier.L2TimestampOverflow.selector, currentL2BlockNumber)); - _createAggregateVerifierGame( - TEE_PROVER, - rootClaim, - currentL2BlockNumber, - address(anchorStateRegistry), - _generateProof("timestamp-overflow", AggregateVerifier.ProofType.TEE) + vm.expectRevert( + abi.encodeWithSelector(IProtocolVersions.ProtocolVersions_UnknownUpgrade.selector, MAX_UPGRADE_ID + 1) ); + _deployAggregateVerifierWithMaxUpgradeId(MAX_UPGRADE_ID + 1); } function testInitializeFailsIfInvalidCallDataSize() public { @@ -521,33 +470,28 @@ contract AggregateVerifierTest is BaseTest { private returns (AggregateVerifier) { - return _deployAggregateVerifier( - blockInterval, - intermediateBlockInterval, - AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(protocolVersions)), - genesisBlockNumber: L2_GENESIS_BLOCK_NUMBER, - genesisTimestamp: L2_GENESIS_TIMESTAMP, - blockTime: L2_BLOCK_TIME - }) - ); + return _deployAggregateVerifier(blockInterval, intermediateBlockInterval, MAX_UPGRADE_ID); } - function _deployAggregateVerifierWithScheduleConfig(AggregateVerifier.ScheduleConfig memory scheduleConfig) - private - returns (AggregateVerifier) - { - return _deployAggregateVerifier(BLOCK_INTERVAL, INTERMEDIATE_BLOCK_INTERVAL, scheduleConfig); + function _deployAggregateVerifierWithMaxUpgradeId(uint256 maxUpgradeId) private returns (AggregateVerifier) { + return _deployAggregateVerifier(BLOCK_INTERVAL, INTERMEDIATE_BLOCK_INTERVAL, maxUpgradeId); } function _deployAggregateVerifier( uint256 blockInterval, uint256 intermediateBlockInterval, - AggregateVerifier.ScheduleConfig memory scheduleConfig + uint256 maxUpgradeId ) private returns (AggregateVerifier) { + AggregateVerifier.GameConfig memory gameConfig = AggregateVerifier.GameConfig({ + finalizationDelays: AggregateVerifier.FinalizationDelays({ slow: 5 days, fast: 1 days }), + schedule: AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(address(protocolVersions)), maxUpgradeId: maxUpgradeId + }) + }); + return new AggregateVerifier( GameTypes.AGGREGATE_VERIFIER, IAnchorStateRegistry(address(anchorStateRegistry)), @@ -560,10 +504,7 @@ contract AggregateVerifierTest is BaseTest { L2_CHAIN_ID, blockInterval, intermediateBlockInterval, - AggregateVerifier.GameConfig({ - finalizationDelays: AggregateVerifier.FinalizationDelays({ slow: 5 days, fast: 1 days }), - schedule: scheduleConfig - }) + gameConfig ); } } diff --git a/test/L1/proofs/BaseTest.t.sol b/test/L1/proofs/BaseTest.t.sol index 84083fcbf..bd5ee6473 100644 --- a/test/L1/proofs/BaseTest.t.sol +++ b/test/L1/proofs/BaseTest.t.sol @@ -26,9 +26,6 @@ import { MockVerifier } from "test/mocks/MockVerifier.sol"; contract BaseTest is Test { uint256 internal constant L2_CHAIN_ID = 8453; - uint256 internal constant L2_GENESIS_BLOCK_NUMBER = 0; - uint64 internal constant L2_GENESIS_TIMESTAMP = 0; - uint64 internal constant L2_BLOCK_TIME = 2; // AggregateVerifier expects evenly spaced intermediate roots. uint256 internal constant BLOCK_INTERVAL = 100; @@ -40,6 +37,9 @@ contract BaseTest is Test { // Finality delay handled by the AggregateVerifier uint256 internal constant FINALITY_DELAY = 0 days; + // The ProtocolVersions upgrade id the AggregateVerifier under test is pinned to. + uint256 internal constant MAX_UPGRADE_ID = 2; + uint256 internal currentL2BlockNumber; address internal immutable TEE_PROVER = makeAddr("tee-prover"); @@ -113,6 +113,12 @@ contract BaseTest is Test { factory.initialize(address(this)); delayedWETH.initialize(systemConfig); protocolVersions.initialize(address(0)); + + // Seed unscheduled upgrades through MAX_UPGRADE_ID so the AggregateVerifier constructor + // check passes. + for (uint256 i = 0; i <= MAX_UPGRADE_ID; i++) { + protocolVersions.registerUpgrade(0, 0); + } } function _deployAndSetAggregateVerifier() internal { @@ -131,10 +137,7 @@ contract BaseTest is Test { AggregateVerifier.GameConfig({ finalizationDelays: AggregateVerifier.FinalizationDelays({ slow: 5 days, fast: 1 days }), schedule: AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(protocolVersions)), - genesisBlockNumber: L2_GENESIS_BLOCK_NUMBER, - genesisTimestamp: L2_GENESIS_TIMESTAMP, - blockTime: L2_BLOCK_TIME + protocolVersions: IProtocolVersions(address(protocolVersions)), maxUpgradeId: MAX_UPGRADE_ID }) }) ); diff --git a/test/L1/proofs/DisputeGameFactory.t.sol b/test/L1/proofs/DisputeGameFactory.t.sol index e4e629565..fc357a912 100644 --- a/test/L1/proofs/DisputeGameFactory.t.sol +++ b/test/L1/proofs/DisputeGameFactory.t.sol @@ -219,6 +219,9 @@ contract DisputeGameFactory_Create_Test is DisputeGameFactory_TestInit { function test_create_implArgs_succeeds() public { MockVerifier teeVerifier = new MockVerifier(anchorStateRegistry); MockVerifier zkVerifier = new MockVerifier(anchorStateRegistry); + // The AggregateVerifier constructor requires the pinned upgrade id to be registered. + vm.prank(proxyAdminOwner); + protocolVersions.registerUpgrade(0, 0); AggregateVerifier gameImpl = new AggregateVerifier( GameTypes.AGGREGATE_VERIFIER, anchorStateRegistry, @@ -234,7 +237,7 @@ contract DisputeGameFactory_Create_Test is DisputeGameFactory_TestInit { AggregateVerifier.GameConfig({ finalizationDelays: AggregateVerifier.FinalizationDelays({ slow: 5 days, fast: 1 days }), schedule: AggregateVerifier.ScheduleConfig({ - protocolVersions: protocolVersions, genesisBlockNumber: 0, genesisTimestamp: 0, blockTime: 2 + protocolVersions: protocolVersions, maxUpgradeId: protocolVersions.getSchedule().length - 1 }) }) ); diff --git a/test/deploy/SystemDeploy.t.sol b/test/deploy/SystemDeploy.t.sol index cedff245e..e5a0ebc31 100644 --- a/test/deploy/SystemDeploy.t.sol +++ b/test/deploy/SystemDeploy.t.sol @@ -159,12 +159,27 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { assertValidStandardSystem(_expected(output, input)); } - function test_deploy_multiproofDisabled_allowsUnsetL2BlockTime_succeeds() public { + /// @notice Deployment seeds the same 13-slot unscheduled schedule hashed by the Base Rust prover. + function test_deploy_seedsRustProverSchedule_succeeds() public { + SystemDeploy.DeployInput memory input = _defaultDeployInput(); + SystemDeploy.DeployOutput memory output = systemDeploy.deploy(input); + + assertEq(output.opChain.protocolVersionsProxy.getSchedule().length, 13, "registered upgrade slots"); + assertEq( + output.opChain.protocolVersionsProxy.scheduleId(input.implementationsInput.multiproofMaxUpgradeId), + 0xc61ddfdfe1ff9422919909549df660a43d53127a318e01274a0448443e54146d, + "Rust prover schedule golden" + ); + assertEq( + IAggregateVerifier(address(output.opChain.aggregateVerifier)).MAX_UPGRADE_ID(), + input.implementationsInput.multiproofMaxUpgradeId, + "aggregate verifier max upgrade id" + ); + } + + function test_deploy_multiproofDisabled_succeeds() public { SystemDeploy.DeployInput memory input = _defaultDeployInput(); input.implementationsInput.multiproofConfigHash = bytes32(0); - input.implementationsInput.scheduleConfig = AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(0)), genesisBlockNumber: 0, genesisTimestamp: 0, blockTime: 0 - }); SystemDeploy.DeployOutput memory output = systemDeploy.deploy(input); @@ -174,14 +189,6 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { assertEq(output.impls.aggregateVerifierImpl, address(0), "aggregate verifier impl"); } - function test_deploy_multiproofEnabled_withoutL2GenesisTimestamp_reverts() public { - SystemDeploy.DeployInput memory input = _defaultDeployInput(); - input.implementationsInput.scheduleConfig.genesisTimestamp = 0; - - vm.expectRevert("SystemDeploy: L2 genesis timestamp not set"); - systemDeploy.deploy(input); - } - function test_upgrade_withoutManagerDelegatecall_succeeds() public { SystemDeploy.DeployInput memory input = _defaultDeployInput(); SystemDeploy.DeployOutput memory output = systemDeploy.deploy(input); @@ -395,14 +402,9 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { multiproofConfigHash: bytes32(uint256(4)), multiproofGameType: 621, nitroEnclaveVerifier: address(nitroEnclaveVerifier), - scheduleConfig: AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(0)), - genesisBlockNumber: 0, - genesisTimestamp: 1, - blockTime: 2 - }), multiproofBlockInterval: 100, multiproofIntermediateBlockInterval: 10, + multiproofMaxUpgradeId: 12, sp1Verifier: ISP1Verifier(address(sp1Verifier)), teeProposer: proposer, teeChallenger: challenger, @@ -520,11 +522,9 @@ contract SystemDeploy_Test is Test, SystemDeployAssertions { zkAggregationHash: _input.implementationsInput.zkAggregationHash, multiproofConfigHash: _input.implementationsInput.multiproofConfigHash, l2ChainId: _input.opChainInput.l2ChainId, - l2GenesisBlockNumber: _input.implementationsInput.scheduleConfig.genesisBlockNumber, - l2GenesisTimestamp: _input.implementationsInput.scheduleConfig.genesisTimestamp, - l2BlockTime: _input.implementationsInput.scheduleConfig.blockTime, multiproofBlockInterval: _input.implementationsInput.multiproofBlockInterval, multiproofIntermediateBlockInterval: _input.implementationsInput.multiproofIntermediateBlockInterval, + multiproofMaxUpgradeId: _input.implementationsInput.multiproofMaxUpgradeId, withdrawalDelaySeconds: _input.implementationsInput.withdrawalDelaySeconds }); } @@ -658,7 +658,7 @@ contract ZKBricking_Test is Test { intermediateRoots, input.implementationsInput.multiproofConfigHash, input.implementationsInput.teeImageHash, - _scheduleId(endingL2SeqNum) + _scheduleId() ) ); @@ -668,11 +668,8 @@ contract ZKBricking_Test is Test { return abi.encodePacked(uint8(AggregateVerifier.ProofType.TEE), l1OriginHash, l1OriginNumber, signature); } - function _scheduleId(uint64 endingL2SeqNum) internal view returns (bytes32) { - AggregateVerifier.ScheduleConfig memory scheduleConfig = input.implementationsInput.scheduleConfig; - uint64 endingL2Timestamp = scheduleConfig.genesisTimestamp - + uint64((uint256(endingL2SeqNum) - scheduleConfig.genesisBlockNumber) * uint256(scheduleConfig.blockTime)); - return output.opChain.protocolVersionsProxy.activatedScheduleId(endingL2Timestamp); + function _scheduleId() internal view returns (bytes32) { + return output.opChain.protocolVersionsProxy.scheduleId(input.implementationsInput.multiproofMaxUpgradeId); } function _extractIntermediateRoots(bytes memory extraData) internal pure returns (bytes memory) { @@ -743,14 +740,9 @@ contract ZKBricking_Test is Test { multiproofConfigHash: bytes32(uint256(4)), multiproofGameType: 621, nitroEnclaveVerifier: address(0), - scheduleConfig: AggregateVerifier.ScheduleConfig({ - protocolVersions: IProtocolVersions(address(0)), - genesisBlockNumber: 0, - genesisTimestamp: 1, - blockTime: 2 - }), multiproofBlockInterval: BLOCK_INTERVAL, multiproofIntermediateBlockInterval: INTERMEDIATE_BLOCK_INTERVAL, + multiproofMaxUpgradeId: 12, sp1Verifier: ISP1Verifier(address(0)), teeProposer: proposer, teeChallenger: challenger, diff --git a/test/deploy/SystemDeployAssertions.sol b/test/deploy/SystemDeployAssertions.sol index 2d8d3130b..650f541bc 100644 --- a/test/deploy/SystemDeployAssertions.sol +++ b/test/deploy/SystemDeployAssertions.sol @@ -41,11 +41,9 @@ abstract contract SystemDeployAssertions is Test { bytes32 zkAggregationHash; bytes32 multiproofConfigHash; uint256 l2ChainId; - uint256 l2GenesisBlockNumber; - uint64 l2GenesisTimestamp; - uint64 l2BlockTime; uint256 multiproofBlockInterval; uint256 multiproofIntermediateBlockInterval; + uint256 multiproofMaxUpgradeId; uint256 withdrawalDelaySeconds; } @@ -254,13 +252,11 @@ abstract contract SystemDeployAssertions is Test { assertEq(_aggregateVerifier.ZK_AGGREGATE_HASH(), _expected.zkAggregationHash, "AV-110"); assertEq(_aggregateVerifier.CONFIG_HASH(), _expected.multiproofConfigHash, "AV-120"); assertEq(_aggregateVerifier.L2_CHAIN_ID(), _expected.l2ChainId, "AV-130"); - assertEq(_aggregateVerifier.L2_GENESIS_BLOCK_NUMBER(), _expected.l2GenesisBlockNumber, "AV-132"); - assertEq(_aggregateVerifier.L2_GENESIS_TIMESTAMP(), _expected.l2GenesisTimestamp, "AV-134"); - assertEq(_aggregateVerifier.L2_BLOCK_TIME(), _expected.l2BlockTime, "AV-136"); assertEq(_aggregateVerifier.BLOCK_INTERVAL(), _expected.multiproofBlockInterval, "AV-140"); assertEq( _aggregateVerifier.INTERMEDIATE_BLOCK_INTERVAL(), _expected.multiproofIntermediateBlockInterval, "AV-150" ); + assertEq(_aggregateVerifier.MAX_UPGRADE_ID(), _expected.multiproofMaxUpgradeId, "AV-160"); } function _assertDelayedWETH(

    Lw_{!WlipSh?D(GTI9)z-< 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 LQdM>JcjE#8%PBDb literal 0 HcmV?d00001 diff --git a/audits/cantina_coinbase_proof_contracts_update_jun2026.pdf b/audits/cantina_coinbase_proof_contracts_update_jun2026.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1bc31958f35a185f95ac923c67d3bdcbb770e3df GIT binary patch literal 463827 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 ycDvM{w{`M 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

    N=@+q}%Ha)XWYVnlU{9>g1 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

  • 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 +I3`_)VN^)6ql> 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