{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_overhead",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_scalar",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_batcherHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "_gasLimit",
          "type": "uint64"
        },
        {
          "internalType": "address",
          "name": "_unsafeBlockSigner",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "maxResourceLimit",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "elasticityMultiplier",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "baseFeeMaxChangeDenominator",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "minimumBaseFee",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "systemTxMaxGas",
              "type": "uint32"
            },
            {
              "internalType": "uint128",
              "name": "maximumBaseFee",
              "type": "uint128"
            }
          ],
          "internalType": "struct ResourceMetering.ResourceConfig",
          "name": "_config",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "version",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "enum SystemConfig.UpdateType",
          "name": "updateType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ConfigUpdate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "UNSAFE_BLOCK_SIGNER_SLOT",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "batcherHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "gasLimit",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_overhead",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_scalar",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_batcherHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "_gasLimit",
          "type": "uint64"
        },
        {
          "internalType": "address",
          "name": "_unsafeBlockSigner",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "maxResourceLimit",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "elasticityMultiplier",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "baseFeeMaxChangeDenominator",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "minimumBaseFee",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "systemTxMaxGas",
              "type": "uint32"
            },
            {
              "internalType": "uint128",
              "name": "maximumBaseFee",
              "type": "uint128"
            }
          ],
          "internalType": "struct ResourceMetering.ResourceConfig",
          "name": "_config",
          "type": "tuple"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "minimumGasLimit",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "overhead",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "resourceConfig",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "maxResourceLimit",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "elasticityMultiplier",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "baseFeeMaxChangeDenominator",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "minimumBaseFee",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "systemTxMaxGas",
              "type": "uint32"
            },
            {
              "internalType": "uint128",
              "name": "maximumBaseFee",
              "type": "uint128"
            }
          ],
          "internalType": "struct ResourceMetering.ResourceConfig",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "scalar",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_batcherHash",
          "type": "bytes32"
        }
      ],
      "name": "setBatcherHash",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_overhead",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_scalar",
          "type": "uint256"
        }
      ],
      "name": "setGasConfig",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_gasLimit",
          "type": "uint64"
        }
      ],
      "name": "setGasLimit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "maxResourceLimit",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "elasticityMultiplier",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "baseFeeMaxChangeDenominator",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "minimumBaseFee",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "systemTxMaxGas",
              "type": "uint32"
            },
            {
              "internalType": "uint128",
              "name": "maximumBaseFee",
              "type": "uint128"
            }
          ],
          "internalType": "struct ResourceMetering.ResourceConfig",
          "name": "_config",
          "type": "tuple"
        }
      ],
      "name": "setResourceConfig",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_unsafeBlockSigner",
          "type": "address"
        }
      ],
      "name": "setUnsafeBlockSigner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unsafeBlockSigner",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr_",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "address": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
  "args": [
    "0x000000000000000000000000000000000000dEaD",
    "0",
    "0",
    "0x0000000000000000000000000000000000000000000000000000000000000000",
    "21000000",
    "0x0000000000000000000000000000000000000000",
    "(20000000, 10, 8, 1000000000, 1000000, 340282366920938463463374607431768211455)"
  ],
  "bytecode": "[encoded data, 17168 characters]",
  "deployedBytecode": "[encoded data, 10750 characters]",
  "devdoc": {
    "version": 1,
    "kind": "dev",
    "methods": {
      "constructor": {
        "params": {
          "_batcherHash": "Initial batcher hash.",
          "_config": "Initial resource config.",
          "_gasLimit": "Initial gas limit.",
          "_overhead": "Initial overhead value.",
          "_owner": "Initial owner of the contract.",
          "_scalar": "Initial scalar value.",
          "_unsafeBlockSigner": "Initial unsafe block signer address."
        }
      },
      "initialize(address,uint256,uint256,bytes32,uint64,address,(uint32,uint8,uint8,uint32,uint32,uint128))": {
        "params": {
          "_batcherHash": "Initial batcher hash.",
          "_config": "Initial ResourceConfig.",
          "_gasLimit": "Initial gas limit.",
          "_overhead": "Initial overhead value.",
          "_owner": "Initial owner of the contract.",
          "_scalar": "Initial scalar value.",
          "_unsafeBlockSigner": "Initial unsafe block signer address."
        }
      },
      "minimumGasLimit()": {
        "returns": {
          "_0": "uint64 Minimum gas limit."
        }
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "resourceConfig()": {
        "returns": {
          "_0": "ResourceConfig"
        }
      },
      "setBatcherHash(bytes32)": {
        "params": {
          "_batcherHash": "New batcher hash."
        }
      },
      "setGasConfig(uint256,uint256)": {
        "params": {
          "_overhead": "New overhead value.",
          "_scalar": "New scalar value."
        }
      },
      "setGasLimit(uint64)": {
        "params": {
          "_gasLimit": "New gas limit."
        }
      },
      "setResourceConfig((uint32,uint8,uint8,uint32,uint32,uint128))": {
        "params": {
          "_config": "The new resource config values."
        }
      },
      "setUnsafeBlockSigner(address)": {
        "params": {
          "_unsafeBlockSigner": "New unsafe block signer address."
        }
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      },
      "unsafeBlockSigner()": {
        "returns": {
          "addr_": "Address of the unsafe block signer."
        }
      }
    },
    "events": {
      "ConfigUpdate(uint256,uint8,bytes)": {
        "params": {
          "data": "Encoded update data.",
          "updateType": "Type of update.",
          "version": "SystemConfig version."
        }
      }
    },
    "title": "SystemConfig"
  },
  "metadata": "{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_overhead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scalar\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_batcherHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_unsafeBlockSigner\",\"type\":\"address\"},{\"internalType\":\"struct ResourceMetering.ResourceConfig\",\"name\":\"_config\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxResourceLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"elasticityMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minimumBaseFee\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"systemTxMaxGas\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"maximumBaseFee\",\"type\":\"uint128\"}]}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\",\"indexed\":true},{\"internalType\":\"enum SystemConfig.UpdateType\",\"name\":\"updateType\",\"type\":\"uint8\",\"indexed\":true},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false}],\"type\":\"event\",\"name\":\"ConfigUpdate\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false}],\"type\":\"event\",\"name\":\"Initialized\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true}],\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"UNSAFE_BLOCK_SIGNER_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"batcherHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"gasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_overhead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scalar\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_batcherHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_unsafeBlockSigner\",\"type\":\"address\"},{\"internalType\":\"struct ResourceMetering.ResourceConfig\",\"name\":\"_config\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxResourceLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"elasticityMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minimumBaseFee\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"systemTxMaxGas\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"maximumBaseFee\",\"type\":\"uint128\"}]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"initialize\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"minimumGasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"overhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"renounceOwnership\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"resourceConfig\",\"outputs\":[{\"internalType\":\"struct ResourceMetering.ResourceConfig\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxResourceLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"elasticityMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minimumBaseFee\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"systemTxMaxGas\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"maximumBaseFee\",\"type\":\"uint128\"}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"scalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_batcherHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setBatcherHash\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_overhead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_scalar\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setGasConfig\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_gasLimit\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setGasLimit\"},{\"inputs\":[{\"internalType\":\"struct ResourceMetering.ResourceConfig\",\"name\":\"_config\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxResourceLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"elasticityMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"minimumBaseFee\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"systemTxMaxGas\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"maximumBaseFee\",\"type\":\"uint128\"}]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setResourceConfig\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_unsafeBlockSigner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setUnsafeBlockSigner\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferOwnership\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"unsafeBlockSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr_\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_batcherHash\":\"Initial batcher hash.\",\"_config\":\"Initial resource config.\",\"_gasLimit\":\"Initial gas limit.\",\"_overhead\":\"Initial overhead value.\",\"_owner\":\"Initial owner of the contract.\",\"_scalar\":\"Initial scalar value.\",\"_unsafeBlockSigner\":\"Initial unsafe block signer address.\"}},\"initialize(address,uint256,uint256,bytes32,uint64,address,(uint32,uint8,uint8,uint32,uint32,uint128))\":{\"params\":{\"_batcherHash\":\"Initial batcher hash.\",\"_config\":\"Initial ResourceConfig.\",\"_gasLimit\":\"Initial gas limit.\",\"_overhead\":\"Initial overhead value.\",\"_owner\":\"Initial owner of the contract.\",\"_scalar\":\"Initial scalar value.\",\"_unsafeBlockSigner\":\"Initial unsafe block signer address.\"}},\"minimumGasLimit()\":{\"returns\":{\"_0\":\"uint64 Minimum gas limit.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"resourceConfig()\":{\"returns\":{\"_0\":\"ResourceConfig\"}},\"setBatcherHash(bytes32)\":{\"params\":{\"_batcherHash\":\"New batcher hash.\"}},\"setGasConfig(uint256,uint256)\":{\"params\":{\"_overhead\":\"New overhead value.\",\"_scalar\":\"New scalar value.\"}},\"setGasLimit(uint64)\":{\"params\":{\"_gasLimit\":\"New gas limit.\"}},\"setResourceConfig((uint32,uint8,uint8,uint32,uint32,uint128))\":{\"params\":{\"_config\":\"The new resource config values.\"}},\"setUnsafeBlockSigner(address)\":{\"params\":{\"_unsafeBlockSigner\":\"New unsafe block signer address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unsafeBlockSigner()\":{\"returns\":{\"addr_\":\"Address of the unsafe block signer.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"UNSAFE_BLOCK_SIGNER_SLOT()\":{\"notice\":\"Storage slot that the unsafe block signer is stored at.         Storing it at this deterministic storage slot allows for decoupling the storage         layout from the way that `solc` lays out storage. The `op-node` uses a storage         proof to fetch this value.\"},\"VERSION()\":{\"notice\":\"Version identifier, used for upgrades.\"},\"batcherHash()\":{\"notice\":\"Identifier for the batcher.         For version 1 of this configuration, this is represented as an address left-padded         with zeros to 32 bytes.\"},\"constructor\":{\"notice\":\"Constructs the SystemConfig contract. Cannot set         the owner to `address(0)` due to the Ownable contract's         implementation, so set it to `address(0xdEaD)`\"},\"gasLimit()\":{\"notice\":\"L2 block gas limit.\"},\"initialize(address,uint256,uint256,bytes32,uint64,address,(uint32,uint8,uint8,uint32,uint32,uint128))\":{\"notice\":\"Initializer.         The resource config must be set before the require check.\"},\"minimumGasLimit()\":{\"notice\":\"Returns the minimum L2 gas limit that can be safely set for the system to         operate. The L2 gas limit must be larger than or equal to the amount of         gas that is allocated for deposits per block plus the amount of gas that         is allocated for the system transaction.         This function is used to determine if changes to parameters are safe.\"},\"overhead()\":{\"notice\":\"Fixed L2 gas overhead. Used as part of the L2 fee calculation.\"},\"resourceConfig()\":{\"notice\":\"A getter for the resource config.         Ensures that the struct is returned instead of a tuple.\"},\"scalar()\":{\"notice\":\"Dynamic L2 gas overhead. Used as part of the L2 fee calculation.\"},\"setBatcherHash(bytes32)\":{\"notice\":\"Updates the batcher hash. Can only be called by the owner.\"},\"setGasConfig(uint256,uint256)\":{\"notice\":\"Updates gas config. Can only be called by the owner.\"},\"setGasLimit(uint64)\":{\"notice\":\"Updates the L2 gas limit. Can only be called by the owner.\"},\"setResourceConfig((uint32,uint8,uint8,uint32,uint32,uint128))\":{\"notice\":\"An external setter for the resource config.         In the future, this method may emit an event that the `op-node` picks up         for when the resource config is changed.\"},\"setUnsafeBlockSigner(address)\":{\"notice\":\"Updates the unsafe block signer address. Can only be called by the owner.\"},\"unsafeBlockSigner()\":{\"notice\":\"High level getter for the unsafe block signer address.         Unsafe blocks can be propagated across the p2p network if they are signed by the         key corresponding to this address.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@cwia/=lib/clones-with-immutable-args/src/\",\"@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\"@rari-capital/solmate/=lib/solmate/\",\"clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\"openzeppelin-contracts/=lib/openzeppelin-contracts/\",\"safe-contracts/=lib/safe-contracts/contracts/\",\"solmate/=lib/solmate/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":999999},\"metadata\":{\"bytecodeHash\":\"none\"},\"compilationTarget\":{\"src/L1/SystemConfig.sol\":\"SystemConfig\"},\"libraries\":{}},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"],\"license\":\"MIT\"},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"],\"license\":\"MIT\"},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"],\"license\":\"MIT\"},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"],\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"],\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"],\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"],\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"],\"license\":\"MIT\"},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"],\"license\":\"MIT\"},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x4a03e4a42900cecb4e923b92a7a10edb367347260bf38a937ce31826f1644330\",\"urls\":[\"bzz-raw://29dbfb9f323dfb9c4ce23c27a876dd7caddda6a3a5d483429cda433021d9f145\",\"dweb:/ipfs/QmZff2htQcExkwLdoGZ6e81zCFeGZV8oXgn4BhpW8Sccq7\"],\"license\":\"MIT\"},\"src/L1/SystemConfig.sol\":{\"keccak256\":\"0x5c6346060b3e8d3bf4289b20fd869a66fbad8f69dc0b095845f990066b6c4d2b\",\"urls\":[\"bzz-raw://161277a9935cc567d76096a9a3ffc54632fda2020e02b4c5dc5541bfad3d166f\",\"dweb:/ipfs/QmXiDP2A4MPsN9VDNf9YbqbQQTU2J5tffWbJHg45f9LJyN\"],\"license\":\"MIT\"},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x06a5a8b00527843f0cfc1bb3c0661316966a6cc432f88be31f23cde78cd07560\",\"urls\":[\"bzz-raw://d5209e78e5415c0bf8b350362a825cc56152811abd6fcf2df3d4fa47766d3dee\",\"dweb:/ipfs/Qmf43xyc4Um32NmccayDfhm8kSnS2mhHXpPZnwABJS7cWm\"],\"license\":\"MIT\"},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"],\"license\":\"MIT\"},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x8fcbc468fa4924f81538d4a6674031e12b62b61a88e869fdf099158a0d0c6a19\",\"urls\":[\"bzz-raw://fc7b9bca6c12fdd38e556650ec1eda3cccb0de4d474d2e97904cbd483b147359\",\"dweb:/ipfs/QmW4oKjDtHJj4cNfMhMLDteQEHSUuZtwrrFUJRnZCbQTJd\"],\"license\":\"MIT\"},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"],\"license\":\"MIT\"},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"],\"license\":\"MIT\"}},\"version\":1}",
  "numDeployments": 8,
  "receipt": {
    "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
    "transactionIndex": "0x12",
    "blockHash": "0x6b36d67b55b6e74f9d3f8cf93380be49442229bd6ca7f6222d2905896042dad5",
    "blockNumber": "0x49d203",
    "from": "0x354F3f4ECdcA5E0A7acE08d71348cdC1Dab48960",
    "to": null,
    "cumulativeGasUsed": "0x6cc314",
    "gasUsed": "0x14f3ca",
    "contractAddress": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
    "logs": [
      {
        "address": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
        "topics": [
          "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x000000000000000000000000354f3f4ecdca5e0a7ace08d71348cdc1dab48960"
        ],
        "data": "0x",
        "blockHash": "0x6b36d67b55b6e74f9d3f8cf93380be49442229bd6ca7f6222d2905896042dad5",
        "blockNumber": "0x49d203",
        "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
        "transactionIndex": "0x12",
        "logIndex": "0x4",
        "removed": false
      },
      {
        "address": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
        "topics": [
          "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
          "0x000000000000000000000000354f3f4ecdca5e0a7ace08d71348cdc1dab48960",
          "0x000000000000000000000000000000000000000000000000000000000000dead"
        ],
        "data": "0x",
        "blockHash": "0x6b36d67b55b6e74f9d3f8cf93380be49442229bd6ca7f6222d2905896042dad5",
        "blockNumber": "0x49d203",
        "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
        "transactionIndex": "0x12",
        "logIndex": "0x5",
        "removed": false
      },
      {
        "address": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
        "topics": [
          "0x1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x0000000000000000000000000000000000000000000000000000000000000000"
        ],
        "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000",
        "blockHash": "0x6b36d67b55b6e74f9d3f8cf93380be49442229bd6ca7f6222d2905896042dad5",
        "blockNumber": "0x49d203",
        "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
        "transactionIndex": "0x12",
        "logIndex": "0x6",
        "removed": false
      },
      {
        "address": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
        "topics": [
          "0x1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x0000000000000000000000000000000000000000000000000000000000000001"
        ],
        "data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "blockHash": "0x6b36d67b55b6e74f9d3f8cf93380be49442229bd6ca7f6222d2905896042dad5",
        "blockNumber": "0x49d203",
        "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
        "transactionIndex": "0x12",
        "logIndex": "0x7",
        "removed": false
      },
      {
        "address": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
        "topics": [
          "0x1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x0000000000000000000000000000000000000000000000000000000000000002"
        ],
        "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000001406f40",
        "blockHash": "0x6b36d67b55b6e74f9d3f8cf93380be49442229bd6ca7f6222d2905896042dad5",
        "blockNumber": "0x49d203",
        "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
        "transactionIndex": "0x12",
        "logIndex": "0x8",
        "removed": false
      },
      {
        "address": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
        "topics": [
          "0x1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x0000000000000000000000000000000000000000000000000000000000000003"
        ],
        "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000",
        "blockHash": "0x6b36d67b55b6e74f9d3f8cf93380be49442229bd6ca7f6222d2905896042dad5",
        "blockNumber": "0x49d203",
        "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
        "transactionIndex": "0x12",
        "logIndex": "0x9",
        "removed": false
      },
      {
        "address": "0xce77d580E0bEFbb1561376A722217017651B9dbF",
        "topics": [
          "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"
        ],
        "data": "0x0000000000000000000000000000000000000000000000000000000000000001",
        "blockHash": "0x6b36d67b55b6e74f9d3f8cf93380be49442229bd6ca7f6222d2905896042dad5",
        "blockNumber": "0x49d203",
        "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
        "transactionIndex": "0x12",
        "logIndex": "0xa",
        "removed": false
      }
    ],
    "status": "0x1",
    "logsBloom": "0x04000800000010000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000020008000000000000040000000000000000000000000000000000000001000000040000000000000000000000000000020000000000000000800800000000000000000000000000000000400200000000000000000004060000000020000000000080000000000000000000000000010000000000000100000400000000000000800000000000000000400000000400000000000000000000040000000000000000000000000000000060000000000000000000000000000000000000000000008000000000008000000000",
    "type": "0x2",
    "effectiveGasPrice": "0xb872d82e"
  },
  "solcInputHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "storageLayout": {
    "storage": [
      {
        "astId": 44768,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "_initialized",
        "offset": 0,
        "slot": "0",
        "type": "t_uint8"
      },
      {
        "astId": 44771,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "_initializing",
        "offset": 1,
        "slot": "0",
        "type": "t_bool"
      },
      {
        "astId": 45196,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "__gap",
        "offset": 0,
        "slot": "1",
        "type": "t_array(t_uint256)50_storage"
      },
      {
        "astId": 44640,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "_owner",
        "offset": 0,
        "slot": "51",
        "type": "t_address"
      },
      {
        "astId": 44760,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "__gap",
        "offset": 0,
        "slot": "52",
        "type": "t_array(t_uint256)49_storage"
      },
      {
        "astId": 75120,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "overhead",
        "offset": 0,
        "slot": "101",
        "type": "t_uint256"
      },
      {
        "astId": 75123,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "scalar",
        "offset": 0,
        "slot": "102",
        "type": "t_uint256"
      },
      {
        "astId": 75126,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "batcherHash",
        "offset": 0,
        "slot": "103",
        "type": "t_bytes32"
      },
      {
        "astId": 75129,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "gasLimit",
        "offset": 0,
        "slot": "104",
        "type": "t_uint64"
      },
      {
        "astId": 75133,
        "contract": "src/L1/SystemConfig.sol:SystemConfig",
        "label": "_resourceConfig",
        "offset": 0,
        "slot": "105",
        "type": "t_struct(ResourceConfig)74551_storage"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_array(t_uint256)49_storage": {
        "encoding": "inplace",
        "label": "uint256[49]",
        "numberOfBytes": "1568",
        "base": "t_uint256"
      },
      "t_array(t_uint256)50_storage": {
        "encoding": "inplace",
        "label": "uint256[50]",
        "numberOfBytes": "1600",
        "base": "t_uint256"
      },
      "t_bool": {
        "encoding": "inplace",
        "label": "bool",
        "numberOfBytes": "1"
      },
      "t_bytes32": {
        "encoding": "inplace",
        "label": "bytes32",
        "numberOfBytes": "32"
      },
      "t_struct(ResourceConfig)74551_storage": {
        "encoding": "inplace",
        "label": "struct ResourceMetering.ResourceConfig",
        "numberOfBytes": "32",
        "members": [
          {
            "astId": 74540,
            "contract": "src/L1/SystemConfig.sol:SystemConfig",
            "label": "maxResourceLimit",
            "offset": 0,
            "slot": "0",
            "type": "t_uint32"
          },
          {
            "astId": 74542,
            "contract": "src/L1/SystemConfig.sol:SystemConfig",
            "label": "elasticityMultiplier",
            "offset": 4,
            "slot": "0",
            "type": "t_uint8"
          },
          {
            "astId": 74544,
            "contract": "src/L1/SystemConfig.sol:SystemConfig",
            "label": "baseFeeMaxChangeDenominator",
            "offset": 5,
            "slot": "0",
            "type": "t_uint8"
          },
          {
            "astId": 74546,
            "contract": "src/L1/SystemConfig.sol:SystemConfig",
            "label": "minimumBaseFee",
            "offset": 6,
            "slot": "0",
            "type": "t_uint32"
          },
          {
            "astId": 74548,
            "contract": "src/L1/SystemConfig.sol:SystemConfig",
            "label": "systemTxMaxGas",
            "offset": 10,
            "slot": "0",
            "type": "t_uint32"
          },
          {
            "astId": 74550,
            "contract": "src/L1/SystemConfig.sol:SystemConfig",
            "label": "maximumBaseFee",
            "offset": 14,
            "slot": "0",
            "type": "t_uint128"
          }
        ]
      },
      "t_uint128": {
        "encoding": "inplace",
        "label": "uint128",
        "numberOfBytes": "16"
      },
      "t_uint256": {
        "encoding": "inplace",
        "label": "uint256",
        "numberOfBytes": "32"
      },
      "t_uint32": {
        "encoding": "inplace",
        "label": "uint32",
        "numberOfBytes": "4"
      },
      "t_uint64": {
        "encoding": "inplace",
        "label": "uint64",
        "numberOfBytes": "8"
      },
      "t_uint8": {
        "encoding": "inplace",
        "label": "uint8",
        "numberOfBytes": "1"
      }
    }
  },
  "transactionHash": "0x4cabb0ac950d5b765094f37eaac61f1873919d272f7be2c70b21e9dae2f2b56f",
  "userdoc": {
    "version": 1,
    "kind": "user",
    "methods": {
      "UNSAFE_BLOCK_SIGNER_SLOT()": {
        "notice": "Storage slot that the unsafe block signer is stored at.         Storing it at this deterministic storage slot allows for decoupling the storage         layout from the way that `solc` lays out storage. The `op-node` uses a storage         proof to fetch this value."
      },
      "VERSION()": {
        "notice": "Version identifier, used for upgrades."
      },
      "batcherHash()": {
        "notice": "Identifier for the batcher.         For version 1 of this configuration, this is represented as an address left-padded         with zeros to 32 bytes."
      },
      "constructor": {
        "notice": "Constructs the SystemConfig contract. Cannot set         the owner to `address(0)` due to the Ownable contract's         implementation, so set it to `address(0xdEaD)`"
      },
      "gasLimit()": {
        "notice": "L2 block gas limit."
      },
      "initialize(address,uint256,uint256,bytes32,uint64,address,(uint32,uint8,uint8,uint32,uint32,uint128))": {
        "notice": "Initializer.         The resource config must be set before the require check."
      },
      "minimumGasLimit()": {
        "notice": "Returns the minimum L2 gas limit that can be safely set for the system to         operate. The L2 gas limit must be larger than or equal to the amount of         gas that is allocated for deposits per block plus the amount of gas that         is allocated for the system transaction.         This function is used to determine if changes to parameters are safe."
      },
      "overhead()": {
        "notice": "Fixed L2 gas overhead. Used as part of the L2 fee calculation."
      },
      "resourceConfig()": {
        "notice": "A getter for the resource config.         Ensures that the struct is returned instead of a tuple."
      },
      "scalar()": {
        "notice": "Dynamic L2 gas overhead. Used as part of the L2 fee calculation."
      },
      "setBatcherHash(bytes32)": {
        "notice": "Updates the batcher hash. Can only be called by the owner."
      },
      "setGasConfig(uint256,uint256)": {
        "notice": "Updates gas config. Can only be called by the owner."
      },
      "setGasLimit(uint64)": {
        "notice": "Updates the L2 gas limit. Can only be called by the owner."
      },
      "setResourceConfig((uint32,uint8,uint8,uint32,uint32,uint128))": {
        "notice": "An external setter for the resource config.         In the future, this method may emit an event that the `op-node` picks up         for when the resource config is changed."
      },
      "setUnsafeBlockSigner(address)": {
        "notice": "Updates the unsafe block signer address. Can only be called by the owner."
      },
      "unsafeBlockSigner()": {
        "notice": "High level getter for the unsafe block signer address.         Unsafe blocks can be propagated across the p2p network if they are signed by the         key corresponding to this address."
      },
      "version()": {
        "notice": "Semantic version."
      }
    },
    "events": {
      "ConfigUpdate(uint256,uint8,bytes)": {
        "notice": "Emitted when configuration is updated."
      }
    },
    "notice": "The SystemConfig contract is used to manage configuration of an Optimism network.         All configuration is stored on L1 and picked up by L2 as part of the derviation of         the L2 chain."
  }
}