42 lines
1.3 KiB
Solidity
42 lines
1.3 KiB
Solidity
|
|
// SPDX-License-Identifier: MIT
|
||
|
|
pragma solidity ^0.8.20;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @title CheckpointHubConfig
|
||
|
|
* @notice Granular hub configuration — used at init, applyConfig, and off-chain deploy manifests.
|
||
|
|
*/
|
||
|
|
library CheckpointHubConfig {
|
||
|
|
struct HubConfig {
|
||
|
|
uint64 chainId;
|
||
|
|
uint16 batchSize;
|
||
|
|
uint32 maxBatchWaitSeconds;
|
||
|
|
uint256 minPaymentValueWei;
|
||
|
|
bool requireValidatorSigs;
|
||
|
|
bool allowCalldataOnlySubmit;
|
||
|
|
bool allowCCIPIngress;
|
||
|
|
bool enforcePreviousBatchId;
|
||
|
|
address ccipRouter;
|
||
|
|
uint64 sourceChainSelector;
|
||
|
|
address batchEmitterOnSource;
|
||
|
|
address legacyMirrorV1;
|
||
|
|
address legacyTetherV1;
|
||
|
|
address submitterAttestationSigner;
|
||
|
|
}
|
||
|
|
|
||
|
|
function mainnetDefaults() internal pure returns (HubConfig memory c) {
|
||
|
|
c.chainId = 138;
|
||
|
|
c.batchSize = 10;
|
||
|
|
c.maxBatchWaitSeconds = 300;
|
||
|
|
c.requireValidatorSigs = true;
|
||
|
|
c.allowCalldataOnlySubmit = true;
|
||
|
|
c.allowCCIPIngress = true;
|
||
|
|
c.enforcePreviousBatchId = true;
|
||
|
|
}
|
||
|
|
|
||
|
|
function validate(HubConfig memory c) internal pure {
|
||
|
|
require(c.chainId == 138, "chainId");
|
||
|
|
require(c.batchSize > 0 && c.batchSize <= 256, "batchSize");
|
||
|
|
require(c.maxBatchWaitSeconds > 0, "maxWait");
|
||
|
|
}
|
||
|
|
}
|