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  }