Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m3s
CI/CD Pipeline / Security Scanning (push) Successful in 2m18s
CI/CD Pipeline / Lint and Format (push) Failing after 34s
CI/CD Pipeline / Terraform Validation (push) Failing after 20s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 40s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 49s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 21s
Validation / validate-genesis (push) Successful in 25s
Validation / validate-terraform (push) Failing after 21s
Validation / validate-kubernetes (push) Failing after 8s
Validation / validate-smart-contracts (push) Failing after 8s
Validation / validate-security (push) Failing after 1m11s
Validation / validate-documentation (push) Failing after 14s
Verify Deployment / Verify Deployment (push) Failing after 45s
Ship AddressActivityRegistry V1/V2, ISO20022IntakeGateway, Chain138ParticipantSurface, checkpoint hub contracts, checkpoint-core package, aggregator/indexer/sdk services, relay profile guards, M00 diamond bridge facet, and OMNL compliance contracts. Co-authored-by: Cursor <cursoragent@cursor.com>
74 lines
2.2 KiB
Solidity
74 lines
2.2 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.20;
|
|
|
|
import {CheckpointLeaf} from "../libraries/CheckpointLeaf.sol";
|
|
|
|
/**
|
|
* @title CheckpointStorage
|
|
* @notice EIP-7201 namespaced storage for upgradeable checkpoint hub.
|
|
*/
|
|
library CheckpointStorage {
|
|
/// @custom:storage-location erc7201:dbis.storage.Chain138MainnetCheckpoint
|
|
struct CheckpointStorageStruct {
|
|
uint64 latestBatchId;
|
|
uint256 latestCheckpointBlock;
|
|
bytes32 latestPaymentsRoot;
|
|
uint64 chainId;
|
|
uint16 batchSize;
|
|
uint32 maxBatchWaitSeconds;
|
|
uint256 minPaymentValueWei;
|
|
bool requireValidatorSigs;
|
|
bool allowCalldataOnlySubmit;
|
|
bool allowCCIPIngress;
|
|
bool enforcePreviousBatchId;
|
|
bool paused;
|
|
uint64 expectedSourceChainSelector;
|
|
address batchEmitterOnSource;
|
|
address ccipRouter;
|
|
address legacyMirrorV1;
|
|
address legacyTetherV1;
|
|
address submitterAttestationSigner;
|
|
mapping(uint64 => CheckpointHeader) checkpoints;
|
|
mapping(bytes32 => bool) processedProofHashes;
|
|
mapping(bytes32 => uint64) txHashToBatchId;
|
|
mapping(uint64 => bool) processedBatchIds;
|
|
mapping(bytes32 => ExtensionConfig) extensions;
|
|
bytes32[] extensionList;
|
|
uint256[37] __gap;
|
|
}
|
|
|
|
struct CheckpointHeader {
|
|
uint64 batchId;
|
|
uint64 previousBatchId;
|
|
uint64 chainId;
|
|
uint256 checkpointBlock;
|
|
uint256 startBlock;
|
|
uint256 endBlock;
|
|
bytes32 blockHash;
|
|
bytes32 stateRoot;
|
|
bytes32 paymentsRoot;
|
|
bytes32 receiptsRoot;
|
|
uint16 txCount;
|
|
uint32 flags;
|
|
uint64 submittedAt;
|
|
address submitter;
|
|
bytes32 contentURI;
|
|
}
|
|
|
|
struct ExtensionConfig {
|
|
address module;
|
|
uint32 hooks;
|
|
bool active;
|
|
}
|
|
|
|
// keccak256(abi.encode(uint256(keccak256("dbis.storage.Chain138MainnetCheckpoint")) - 1)) & ~bytes32(uint256(0xff))
|
|
bytes32 private constant CHECKPOINT_STORAGE_LOCATION =
|
|
0x94db105fe8bb9354ca3efbce04a4b0527821f7a844cf050ca0ad49fe0d3aad00;
|
|
|
|
function get() internal pure returns (CheckpointStorageStruct storage $) {
|
|
assembly {
|
|
$.slot := CHECKPOINT_STORAGE_LOCATION
|
|
}
|
|
}
|
|
}
|