{
  "_format": "hh-sol-artifact-1",
  "contractName": "IRollup",
  "sourceName": "contracts/rollup/IRollup.sol",
  "abi": [
    {
      "inputs": [],
      "name": "AddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BlockNumberOutOfRange",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Expired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InsufficientPenaltyFee",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidNonce",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyLiquidity",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyScrollMessenger",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PairingCheckFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SenderAccountIdsInvalidLength",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "TooManyAccountIds",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "TooManySenderPublicKeys",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "prevBlockHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "blockBuilder",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "timestamp",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "depositTreeRoot",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "signatureHash",
          "type": "bytes32"
        }
      ],
      "name": "BlockPosted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint32",
          "name": "depositIndex",
          "type": "uint32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "depositHash",
          "type": "bytes32"
        }
      ],
      "name": "DepositLeafInserted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "lastProcessedDepositId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "depositTreeRoot",
          "type": "bytes32"
        }
      ],
      "name": "DepositsProcessed",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "blockNumber",
          "type": "uint32"
        }
      ],
      "name": "getBlockHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLatestBlockNumber",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPenalty",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "txTreeRoot",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "expiry",
          "type": "uint64"
        },
        {
          "internalType": "uint32",
          "name": "builderNonce",
          "type": "uint32"
        },
        {
          "internalType": "bytes16",
          "name": "senderFlags",
          "type": "bytes16"
        },
        {
          "internalType": "bytes32[2]",
          "name": "aggregatedPublicKey",
          "type": "bytes32[2]"
        },
        {
          "internalType": "bytes32[4]",
          "name": "aggregatedSignature",
          "type": "bytes32[4]"
        },
        {
          "internalType": "bytes32[4]",
          "name": "messagePoint",
          "type": "bytes32[4]"
        },
        {
          "internalType": "bytes32",
          "name": "publicKeysHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "senderAccountIds",
          "type": "bytes"
        }
      ],
      "name": "postNonRegistrationBlock",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "txTreeRoot",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "expiry",
          "type": "uint64"
        },
        {
          "internalType": "uint32",
          "name": "builderNonce",
          "type": "uint32"
        },
        {
          "internalType": "bytes16",
          "name": "senderFlags",
          "type": "bytes16"
        },
        {
          "internalType": "bytes32[2]",
          "name": "aggregatedPublicKey",
          "type": "bytes32[2]"
        },
        {
          "internalType": "bytes32[4]",
          "name": "aggregatedSignature",
          "type": "bytes32[4]"
        },
        {
          "internalType": "bytes32[4]",
          "name": "messagePoint",
          "type": "bytes32[4]"
        },
        {
          "internalType": "uint256[]",
          "name": "senderPublicKeys",
          "type": "uint256[]"
        }
      ],
      "name": "postRegistrationBlock",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "lastProcessedDepositId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "depositHashes",
          "type": "bytes32[]"
        }
      ],
      "name": "processDeposits",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "thresholdInterval",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "alpha",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "k",
          "type": "uint256"
        }
      ],
      "name": "setRateLimitConstants",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "withdrawPenaltyFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
