github.com/ethereum-optimism/optimism@v1.7.2/packages/contracts-bedrock/scripts/PeripheryDeployConfig.s.sol (about) 1 // SPDX-License-Identifier: MIT 2 pragma solidity ^0.8.0; 3 4 import { Script } from "forge-std/Script.sol"; 5 import { console2 as console } from "forge-std/console2.sol"; 6 import { stdJson } from "forge-std/StdJson.sol"; 7 8 /// @title PeripheryDeployConfig 9 /// @notice Represents the configuration required to deploy the periphery contracts. It is expected 10 /// to read the file from JSON. A future improvement would be to have fallback 11 /// values if they are not defined in the JSON themselves. 12 contract PeripheryDeployConfig is Script { 13 string internal _json; 14 15 address public faucetAdmin; 16 address public faucetDrippieOwner; 17 uint256 public faucetDripV1Value; 18 uint256 public faucetDripV1Interval; 19 uint256 public faucetDripV1Threshold; 20 uint256 public faucetDripV2Value; 21 uint256 public faucetDripV2Interval; 22 uint256 public faucetDripV2Threshold; 23 uint256 public faucetAdminDripV1Value; 24 uint256 public faucetAdminDripV1Interval; 25 uint256 public faucetAdminDripV1Threshold; 26 address public faucetGelatoTreasury; 27 address public faucetGelatoRecipient; 28 uint256 public faucetGelatoBalanceV1DripInterval; 29 uint256 public faucetGelatoBalanceV1Value; 30 uint256 public faucetGelatoThreshold; 31 address public faucetOnchainAuthModuleAdmin; 32 uint256 public faucetOnchainAuthModuleTtl; 33 uint256 public faucetOnchainAuthModuleAmount; 34 address public faucetOffchainAuthModuleAdmin; 35 uint256 public faucetOffchainAuthModuleTtl; 36 uint256 public faucetOffchainAuthModuleAmount; 37 bool public installOpChainFaucetsDrips; 38 bool public archivePreviousOpChainFaucetsDrips; 39 uint256 public smallOpChainFaucetDripValue; 40 uint256 public smallOpChainFaucetDripInterval; 41 uint256 public largeOpChainFaucetDripValue; 42 uint256 public largeOpChainFaucetDripInterval; 43 uint256 public opChainAdminWalletDripValue; 44 uint256 public opChainAdminWalletDripInterval; 45 address public opL1BridgeAddress; 46 address public baseL1BridgeAddress; 47 address public zoraL1BridgeAddress; 48 address public pgnL1BridgeAddress; 49 address public orderlyL1BridgeAddress; 50 address public modeL1BridgeAddress; 51 address public lyraL1BridgeAddress; 52 address public liskL1BridgeAddress; 53 address[6] public smallFaucetsL1BridgeAddresses; 54 address[2] public largeFaucetsL1BridgeAddresses; 55 uint256 public dripVersion; 56 uint256 public previousDripVersion; 57 58 constructor(string memory _path) { 59 console.log("PeripheryDeployConfig: reading file %s", _path); 60 try vm.readFile(_path) returns (string memory data) { 61 _json = data; 62 } catch { 63 console.log("Warning: unable to read config. Do not deploy unless you are not using config."); 64 return; 65 } 66 67 faucetAdmin = stdJson.readAddress(_json, "$.faucetAdmin"); 68 faucetDrippieOwner = stdJson.readAddress(_json, "$.faucetDrippieOwner"); 69 faucetDripV1Value = stdJson.readUint(_json, "$.faucetDripV1Value"); 70 faucetDripV1Interval = stdJson.readUint(_json, "$.faucetDripV1Interval"); 71 faucetDripV1Threshold = stdJson.readUint(_json, "$.faucetDripV1Threshold"); 72 faucetDripV2Value = stdJson.readUint(_json, "$.faucetDripV2Value"); 73 faucetDripV2Interval = stdJson.readUint(_json, "$.faucetDripV2Interval"); 74 faucetDripV2Threshold = stdJson.readUint(_json, "$.faucetDripV2Threshold"); 75 faucetAdminDripV1Value = stdJson.readUint(_json, "$.faucetAdminDripV1Value"); 76 faucetAdminDripV1Interval = stdJson.readUint(_json, "$.faucetAdminDripV1Interval"); 77 faucetAdminDripV1Threshold = stdJson.readUint(_json, "$.faucetAdminDripV1Threshold"); 78 faucetGelatoTreasury = stdJson.readAddress(_json, "$.faucetGelatoTreasury"); 79 faucetGelatoRecipient = stdJson.readAddress(_json, "$.faucetGelatoRecipient"); 80 faucetGelatoBalanceV1DripInterval = stdJson.readUint(_json, "$.faucetGelatoBalanceV1DripInterval"); 81 faucetGelatoBalanceV1Value = stdJson.readUint(_json, "$.faucetGelatoBalanceV1Value"); 82 faucetGelatoThreshold = stdJson.readUint(_json, "$.faucetGelatoThreshold"); 83 faucetOnchainAuthModuleAdmin = stdJson.readAddress(_json, "$.faucetOnchainAuthModuleAdmin"); 84 faucetOnchainAuthModuleTtl = stdJson.readUint(_json, "$.faucetOnchainAuthModuleTtl"); 85 faucetOnchainAuthModuleAmount = stdJson.readUint(_json, "$.faucetOnchainAuthModuleAmount"); 86 faucetOffchainAuthModuleAdmin = stdJson.readAddress(_json, "$.faucetOffchainAuthModuleAdmin"); 87 faucetOffchainAuthModuleTtl = stdJson.readUint(_json, "$.faucetOffchainAuthModuleTtl"); 88 faucetOffchainAuthModuleAmount = stdJson.readUint(_json, "$.faucetOffchainAuthModuleAmount"); 89 installOpChainFaucetsDrips = stdJson.readBool(_json, "$.installOpChainFaucetsDrips"); 90 archivePreviousOpChainFaucetsDrips = stdJson.readBool(_json, "$.archivePreviousOpChainFaucetsDrips"); 91 opL1BridgeAddress = stdJson.readAddress(_json, "$.opL1BridgeAddress"); 92 baseL1BridgeAddress = stdJson.readAddress(_json, "$.baseL1BridgeAddress"); 93 zoraL1BridgeAddress = stdJson.readAddress(_json, "$.zoraL1BridgeAddress"); 94 pgnL1BridgeAddress = stdJson.readAddress(_json, "$.pgnL1BridgeAddress"); 95 orderlyL1BridgeAddress = stdJson.readAddress(_json, "$.orderlyL1BridgeAddress"); 96 liskL1BridgeAddress = stdJson.readAddress(_json, "$.liskL1BridgeAddress"); 97 modeL1BridgeAddress = stdJson.readAddress(_json, "$.modeL1BridgeAddress"); 98 lyraL1BridgeAddress = stdJson.readAddress(_json, "$.lyraL1BridgeAddress"); 99 dripVersion = stdJson.readUint(_json, "$.dripVersion"); 100 previousDripVersion = stdJson.readUint(_json, "$.previousDripVersion"); 101 smallOpChainFaucetDripValue = stdJson.readUint(_json, "$.smallOpChainFaucetDripValue"); 102 smallOpChainFaucetDripInterval = stdJson.readUint(_json, "$.smallOpChainFaucetDripInterval"); 103 largeOpChainFaucetDripValue = stdJson.readUint(_json, "$.largeOpChainFaucetDripValue"); 104 largeOpChainFaucetDripInterval = stdJson.readUint(_json, "$.largeOpChainFaucetDripInterval"); 105 opChainAdminWalletDripValue = stdJson.readUint(_json, "$.opChainAdminWalletDripValue"); 106 opChainAdminWalletDripInterval = stdJson.readUint(_json, "$.opChainAdminWalletDripInterval"); 107 largeFaucetsL1BridgeAddresses[0] = opL1BridgeAddress; 108 largeFaucetsL1BridgeAddresses[1] = baseL1BridgeAddress; 109 smallFaucetsL1BridgeAddresses[0] = zoraL1BridgeAddress; 110 smallFaucetsL1BridgeAddresses[1] = pgnL1BridgeAddress; 111 smallFaucetsL1BridgeAddresses[2] = orderlyL1BridgeAddress; 112 smallFaucetsL1BridgeAddresses[3] = modeL1BridgeAddress; 113 smallFaucetsL1BridgeAddresses[4] = lyraL1BridgeAddress; 114 smallFaucetsL1BridgeAddresses[5] = liskL1BridgeAddress; 115 } 116 117 function getSmallFaucetsL1BridgeAddressesCount() public view returns (uint256 count) { 118 return smallFaucetsL1BridgeAddresses.length; 119 } 120 121 function getLargeFaucetsL1BridgeAddressesCount() public view returns (uint256 count) { 122 return largeFaucetsL1BridgeAddresses.length; 123 } 124 }