Files
smom-dbis-138/script/mainnet-checkpoint/DeployAllCheckpointExtensions.s.sol

50 lines
3.5 KiB
Solidity
Raw Permalink Normal View History

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Script, console} from "forge-std/Script.sol";
import {MirrorDetailExtension} from "../../contracts/mainnet-checkpoint/extensions/MirrorDetailExtension.sol";
import {ValidatorSigVerifierExtension} from "../../contracts/mainnet-checkpoint/extensions/ValidatorSigVerifierExtension.sol";
import {AttestationURIExtension} from "../../contracts/mainnet-checkpoint/extensions/AttestationURIExtension.sol";
import {SubmitRateLimitExtension} from "../../contracts/mainnet-checkpoint/extensions/SubmitRateLimitExtension.sol";
import {TokenTransferFilterExtension} from "../../contracts/mainnet-checkpoint/extensions/TokenTransferFilterExtension.sol";
import {CwTransportLinkExtension} from "../../contracts/mainnet-checkpoint/extensions/CwTransportLinkExtension.sol";
import {TimelockSubmitExtension} from "../../contracts/mainnet-checkpoint/extensions/TimelockSubmitExtension.sol";
import {MetricsExtension} from "../../contracts/mainnet-checkpoint/extensions/MetricsExtension.sol";
import {ZkStateRootVerifierExtension} from "../../contracts/mainnet-checkpoint/extensions/ZkStateRootVerifierExtension.sol";
import {PaymasterHintExtension} from "../../contracts/mainnet-checkpoint/extensions/PaymasterHintExtension.sol";
import {L2OracleAdapterExtension} from "../../contracts/mainnet-checkpoint/extensions/L2OracleAdapterExtension.sol";
import {BlockHeaderOracleExtension} from "../../contracts/mainnet-checkpoint/extensions/BlockHeaderOracleExtension.sol";
import {MinPaymentValueExtension} from "../../contracts/mainnet-checkpoint/extensions/MinPaymentValueExtension.sol";
import {LegacyCheckpointAdapter} from "../../contracts/mainnet-checkpoint/LegacyCheckpointAdapter.sol";
/// @notice Deploy all optional extension modules + legacy read adapter (non-proxy).
contract DeployAllCheckpointExtensions is Script {
function run() external {
uint256 pk = vm.envUint("PRIVATE_KEY");
address admin = vm.envOr("CHECKPOINT_ADMIN", vm.addr(pk));
address checkpoint = vm.envAddress("CHAIN138_MAINNET_CHECKPOINT_PROXY");
address mirror = vm.envOr("TRANSACTION_MIRROR_MAINNET", address(0));
address tether = vm.envOr("MAINNET_TETHER_ADDRESS", address(0));
vm.startBroadcast(pk);
console.log("MirrorDetail:", address(new MirrorDetailExtension()));
console.log("ValidatorSig:", address(new ValidatorSigVerifierExtension()));
console.log("AttestationURI:", address(new AttestationURIExtension()));
console.log("RateLimit:", address(new SubmitRateLimitExtension()));
console.log("TokenFilter:", address(new TokenTransferFilterExtension()));
console.log("CwLink:", address(new CwTransportLinkExtension()));
console.log("Timelock:", address(new TimelockSubmitExtension()));
console.log("Metrics:", address(new MetricsExtension()));
console.log("ZkStateRoot:", address(new ZkStateRootVerifierExtension()));
console.log("PaymasterHint:", address(new PaymasterHintExtension()));
console.log("L2Oracle:", address(new L2OracleAdapterExtension()));
console.log("BlockOracle:", address(new BlockHeaderOracleExtension(admin)));
console.log("MinPayment:", address(new MinPaymentValueExtension()));
console.log("AddressActivityRegistry: deploy separately via scripts/deployment/deploy-address-activity-registry.sh");
if (mirror != address(0) && tether != address(0)) {
console.log("LegacyAdapter:", address(new LegacyCheckpointAdapter(checkpoint, mirror, tether)));
}
vm.stopBroadcast();
}
}