{
  "_format": "hh-sol-artifact-1",
  "contractName": "LineaRollup",
  "sourceName": "contracts/LineaRollup.sol",
  "abi": [
    { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" },
    { "inputs": [], "name": "ArrayLengthsDoNotMatch", "type": "error" },
    {
      "inputs": [{ "internalType": "uint256", "name": "emptyBlobIndex", "type": "uint256" }],
      "name": "BlobSubmissionDataEmpty",
      "type": "error"
    },
    { "inputs": [], "name": "BlobSubmissionDataIsMissing", "type": "error" },
    { "inputs": [], "name": "BytesLengthNotMultipleOf32", "type": "error" },
    {
      "inputs": [{ "internalType": "uint256", "name": "bytesLength", "type": "uint256" }],
      "name": "BytesLengthNotMultipleOfTwo",
      "type": "error"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "currentDataHash", "type": "bytes32" }],
      "name": "DataAlreadySubmitted",
      "type": "error"
    },
    {
      "inputs": [{ "internalType": "uint256", "name": "index", "type": "uint256" }],
      "name": "EmptyBlobDataAtIndex",
      "type": "error"
    },
    { "inputs": [], "name": "EmptySubmissionData", "type": "error" },
    {
      "inputs": [{ "internalType": "address", "name": "recipient", "type": "address" }],
      "name": "FeePaymentFailed",
      "type": "error"
    },
    { "inputs": [], "name": "FeeTooLow", "type": "error" },
    {
      "inputs": [{ "internalType": "bytes32", "name": "shnarf", "type": "bytes32" }],
      "name": "FinalBlobNotSubmitted",
      "type": "error"
    },
    {
      "inputs": [
        { "internalType": "uint256", "name": "finalBlockNumber", "type": "uint256" },
        { "internalType": "uint256", "name": "lastFinalizedBlock", "type": "uint256" }
      ],
      "name": "FinalBlockNumberLessThanOrEqualToLastFinalizedBlock",
      "type": "error"
    },
    { "inputs": [], "name": "FinalBlockStateEqualsZeroHash", "type": "error" },
    {
      "inputs": [
        { "internalType": "bytes32", "name": "expected", "type": "bytes32" },
        { "internalType": "bytes32", "name": "value", "type": "bytes32" }
      ],
      "name": "FinalShnarfWrong",
      "type": "error"
    },
    {
      "inputs": [
        { "internalType": "uint256", "name": "l2BlockTimestamp", "type": "uint256" },
        { "internalType": "uint256", "name": "currentBlockTimestamp", "type": "uint256" }
      ],
      "name": "FinalizationInTheFuture",
      "type": "error"
    },
    {
      "inputs": [
        { "internalType": "bytes32", "name": "expected", "type": "bytes32" },
        { "internalType": "bytes32", "name": "value", "type": "bytes32" }
      ],
      "name": "FinalizationStateIncorrect",
      "type": "error"
    },
    { "inputs": [], "name": "FirstByteIsNotZero", "type": "error" },
    { "inputs": [], "name": "InvalidMerkleProof", "type": "error" },
    { "inputs": [], "name": "InvalidProof", "type": "error" },
    {
      "inputs": [{ "internalType": "string", "name": "errorReason", "type": "string" }],
      "name": "InvalidProofOrProofVerificationRanOutOfGas",
      "type": "error"
    },
    { "inputs": [], "name": "InvalidProofType", "type": "error" },
    {
      "inputs": [{ "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" }],
      "name": "IsNotPaused",
      "type": "error"
    },
    {
      "inputs": [{ "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" }],
      "name": "IsPaused",
      "type": "error"
    },
    {
      "inputs": [
        { "internalType": "uint256", "name": "messageNumber", "type": "uint256" },
        { "internalType": "bytes32", "name": "rollingHash", "type": "bytes32" }
      ],
      "name": "L1RollingHashDoesNotExistOnL1",
      "type": "error"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }],
      "name": "L2MerkleRootAlreadyAnchored",
      "type": "error"
    },
    { "inputs": [], "name": "L2MerkleRootDoesNotExist", "type": "error" },
    { "inputs": [], "name": "LastFinalizationTimeNotLapsed", "type": "error" },
    {
      "inputs": [
        { "internalType": "uint32", "name": "leafIndex", "type": "uint32" },
        { "internalType": "uint32", "name": "maxAllowedIndex", "type": "uint32" }
      ],
      "name": "LeafIndexOutOfBounds",
      "type": "error"
    },
    { "inputs": [], "name": "LimitIsZero", "type": "error" },
    {
      "inputs": [{ "internalType": "uint256", "name": "messageIndex", "type": "uint256" }],
      "name": "MessageAlreadyClaimed",
      "type": "error"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "messageHash", "type": "bytes32" }],
      "name": "MessageDoesNotExistOrHasAlreadyBeenClaimed",
      "type": "error"
    },
    {
      "inputs": [{ "internalType": "address", "name": "destination", "type": "address" }],
      "name": "MessageSendingFailed",
      "type": "error"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "rollingHash", "type": "bytes32" }],
      "name": "MissingMessageNumberForRollingHash",
      "type": "error"
    },
    {
      "inputs": [{ "internalType": "uint256", "name": "messageNumber", "type": "uint256" }],
      "name": "MissingRollingHashForMessageNumber",
      "type": "error"
    },
    { "inputs": [], "name": "OnlyNonFallbackOperator", "type": "error" },
    {
      "inputs": [{ "internalType": "bytes32", "name": "shnarf", "type": "bytes32" }],
      "name": "ParentBlobNotSubmitted",
      "type": "error"
    },
    { "inputs": [], "name": "PeriodIsZero", "type": "error" },
    { "inputs": [], "name": "PointEvaluationFailed", "type": "error" },
    {
      "inputs": [
        { "internalType": "uint256", "name": "fieldElements", "type": "uint256" },
        { "internalType": "uint256", "name": "blsCurveModulus", "type": "uint256" }
      ],
      "name": "PointEvaluationResponseInvalid",
      "type": "error"
    },
    {
      "inputs": [
        { "internalType": "uint256", "name": "expected", "type": "uint256" },
        { "internalType": "uint256", "name": "actual", "type": "uint256" }
      ],
      "name": "PrecompileReturnDataLengthWrong",
      "type": "error"
    },
    { "inputs": [], "name": "ProofIsEmpty", "type": "error" },
    {
      "inputs": [
        { "internalType": "uint256", "name": "actual", "type": "uint256" },
        { "internalType": "uint256", "name": "expected", "type": "uint256" }
      ],
      "name": "ProofLengthDifferentThanMerkleDepth",
      "type": "error"
    },
    { "inputs": [], "name": "RateLimitExceeded", "type": "error" },
    { "inputs": [], "name": "ReentrantCall", "type": "error" },
    {
      "inputs": [
        { "internalType": "uint8", "name": "bits", "type": "uint8" },
        { "internalType": "uint256", "name": "value", "type": "uint256" }
      ],
      "name": "SafeCastOverflowedUintDowncast",
      "type": "error"
    },
    { "inputs": [], "name": "StartingRootHashDoesNotMatch", "type": "error" },
    { "inputs": [], "name": "ValueSentTooLow", "type": "error" },
    { "inputs": [], "name": "ZeroAddressNotAllowed", "type": "error" },
    { "inputs": [], "name": "ZeroHashNotAllowed", "type": "error" },
    {
      "anonymous": false,
      "inputs": [{ "indexed": true, "internalType": "address", "name": "resettingAddress", "type": "address" }],
      "name": "AmountUsedInPeriodReset",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "uint256", "name": "startBlockNumber", "type": "uint256" },
        { "indexed": true, "internalType": "uint256", "name": "endBlockNumber", "type": "uint256" },
        { "indexed": true, "internalType": "bytes32", "name": "shnarf", "type": "bytes32" },
        { "indexed": false, "internalType": "bytes32", "name": "parentStateRootHash", "type": "bytes32" },
        { "indexed": false, "internalType": "bytes32", "name": "finalStateRootHash", "type": "bytes32" }
      ],
      "name": "DataFinalizedV3",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": false, "internalType": "bytes32", "name": "parentShnarf", "type": "bytes32" },
        { "indexed": true, "internalType": "bytes32", "name": "shnarf", "type": "bytes32" },
        { "indexed": false, "internalType": "bytes32", "name": "finalStateRootHash", "type": "bytes32" }
      ],
      "name": "DataSubmittedV3",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "address", "name": "caller", "type": "address" },
        { "indexed": true, "internalType": "address", "name": "fallbackOperator", "type": "address" }
      ],
      "name": "FallbackOperatorAddressSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "address", "name": "caller", "type": "address" },
        { "indexed": true, "internalType": "address", "name": "fallbackOperator", "type": "address" }
      ],
      "name": "FallbackOperatorRoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [{ "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" }],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "bytes32", "name": "l2MerkleRoot", "type": "bytes32" },
        { "indexed": true, "internalType": "uint256", "name": "treeDepth", "type": "uint256" }
      ],
      "name": "L2MerkleRootAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [{ "indexed": true, "internalType": "uint256", "name": "l2Block", "type": "uint256" }],
      "name": "L2MessagingBlockAnchored",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "address", "name": "amountChangeBy", "type": "address" },
        { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" },
        { "indexed": false, "internalType": "bool", "name": "amountUsedLoweredToLimit", "type": "bool" },
        { "indexed": false, "internalType": "bool", "name": "usedAmountResetToZero", "type": "bool" }
      ],
      "name": "LimitAmountChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "bytes8", "name": "previousVersion", "type": "bytes8" },
        { "indexed": true, "internalType": "bytes8", "name": "newVersion", "type": "bytes8" }
      ],
      "name": "LineaRollupVersionChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [{ "indexed": true, "internalType": "bytes32", "name": "_messageHash", "type": "bytes32" }],
      "name": "MessageClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "address", "name": "_from", "type": "address" },
        { "indexed": true, "internalType": "address", "name": "_to", "type": "address" },
        { "indexed": false, "internalType": "uint256", "name": "_fee", "type": "uint256" },
        { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" },
        { "indexed": false, "internalType": "uint256", "name": "_nonce", "type": "uint256" },
        { "indexed": false, "internalType": "bytes", "name": "_calldata", "type": "bytes" },
        { "indexed": true, "internalType": "bytes32", "name": "_messageHash", "type": "bytes32" }
      ],
      "name": "MessageSent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" },
        { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }
      ],
      "name": "PauseTypeRoleSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": false, "internalType": "address", "name": "messageSender", "type": "address" },
        { "indexed": true, "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": false, "internalType": "uint256", "name": "periodInSeconds", "type": "uint256" },
        { "indexed": false, "internalType": "uint256", "name": "limitInWei", "type": "uint256" },
        { "indexed": false, "internalType": "uint256", "name": "currentPeriodEnd", "type": "uint256" }
      ],
      "name": "RateLimitInitialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" },
        { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" },
        { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" },
        { "indexed": true, "internalType": "address", "name": "account", "type": "address" },
        { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" },
        { "indexed": true, "internalType": "address", "name": "account", "type": "address" },
        { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "uint256", "name": "messageNumber", "type": "uint256" },
        { "indexed": true, "internalType": "bytes32", "name": "rollingHash", "type": "bytes32" },
        { "indexed": true, "internalType": "bytes32", "name": "messageHash", "type": "bytes32" }
      ],
      "name": "RollingHashUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "enum IPauseManager.PauseType", "name": "unPauseType", "type": "uint8" },
        { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }
      ],
      "name": "UnPauseTypeRoleSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": false, "internalType": "address", "name": "messageSender", "type": "address" },
        { "indexed": true, "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" }
      ],
      "name": "UnPaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        { "indexed": true, "internalType": "address", "name": "verifierAddress", "type": "address" },
        { "indexed": true, "internalType": "uint256", "name": "proofType", "type": "uint256" },
        { "indexed": true, "internalType": "address", "name": "verifierSetBy", "type": "address" },
        { "indexed": false, "internalType": "address", "name": "oldVerifierAddress", "type": "address" }
      ],
      "name": "VerifierAddressChanged",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "CONTRACT_VERSION",
      "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GENESIS_SHNARF",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INBOX_STATUS_RECEIVED",
      "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INBOX_STATUS_UNKNOWN",
      "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OPERATOR_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OUTBOX_STATUS_RECEIVED",
      "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OUTBOX_STATUS_SENT",
      "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OUTBOX_STATUS_UNKNOWN",
      "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSE_ALL_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSE_BLOB_SUBMISSION_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSE_FINALIZATION_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSE_L1_L2_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSE_L2_L1_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "RATE_LIMIT_SETTER_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UNPAUSE_ALL_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UNPAUSE_BLOB_SUBMISSION_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UNPAUSE_FINALIZATION_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UNPAUSE_L1_L2_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UNPAUSE_L2_L1_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "USED_RATE_LIMIT_RESETTER_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "VERIFIER_SETTER_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "VERIFIER_UNSETTER_ROLE",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "shnarf", "type": "bytes32" }],
      "name": "blobShnarfExists",
      "outputs": [{ "internalType": "uint256", "name": "exists", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "address", "name": "_from", "type": "address" },
        { "internalType": "address", "name": "_to", "type": "address" },
        { "internalType": "uint256", "name": "_fee", "type": "uint256" },
        { "internalType": "uint256", "name": "_value", "type": "uint256" },
        { "internalType": "address payable", "name": "_feeRecipient", "type": "address" },
        { "internalType": "bytes", "name": "_calldata", "type": "bytes" },
        { "internalType": "uint256", "name": "_nonce", "type": "uint256" }
      ],
      "name": "claimMessage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" },
            { "internalType": "uint256", "name": "messageNumber", "type": "uint256" },
            { "internalType": "uint32", "name": "leafIndex", "type": "uint32" },
            { "internalType": "address", "name": "from", "type": "address" },
            { "internalType": "address", "name": "to", "type": "address" },
            { "internalType": "uint256", "name": "fee", "type": "uint256" },
            { "internalType": "uint256", "name": "value", "type": "uint256" },
            { "internalType": "address payable", "name": "feeRecipient", "type": "address" },
            { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" },
            { "internalType": "bytes", "name": "data", "type": "bytes" }
          ],
          "internalType": "struct IL1MessageService.ClaimMessageWithProofParams",
          "name": "_params",
          "type": "tuple"
        }
      ],
      "name": "claimMessageWithProof",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentFinalizedShnarf",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentFinalizedState",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentL2BlockNumber",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentL2StoredL1MessageNumber",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentL2StoredL1RollingHash",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentPeriodAmountInWei",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentPeriodEnd",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentTimestamp",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "dataHash", "type": "bytes32" }],
      "name": "dataEndingBlock",
      "outputs": [{ "internalType": "uint256", "name": "endingBlock", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "dataHash", "type": "bytes32" }],
      "name": "dataFinalStateRootHashes",
      "outputs": [{ "internalType": "bytes32", "name": "finalStateRootHash", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "dataHash", "type": "bytes32" }],
      "name": "dataParents",
      "outputs": [{ "internalType": "bytes32", "name": "parentHash", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "dataHash", "type": "bytes32" }],
      "name": "dataShnarfHashes",
      "outputs": [{ "internalType": "bytes32", "name": "shnarfHash", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "dataHash", "type": "bytes32" }],
      "name": "dataStartingBlock",
      "outputs": [{ "internalType": "uint256", "name": "startingBlock", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "fallbackOperator",
      "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "bytes", "name": "_aggregatedProof", "type": "bytes" },
        { "internalType": "uint256", "name": "_proofType", "type": "uint256" },
        {
          "components": [
            { "internalType": "bytes32", "name": "parentStateRootHash", "type": "bytes32" },
            { "internalType": "uint256", "name": "endBlockNumber", "type": "uint256" },
            {
              "components": [
                { "internalType": "bytes32", "name": "parentShnarf", "type": "bytes32" },
                { "internalType": "bytes32", "name": "snarkHash", "type": "bytes32" },
                { "internalType": "bytes32", "name": "finalStateRootHash", "type": "bytes32" },
                { "internalType": "bytes32", "name": "dataEvaluationPoint", "type": "bytes32" },
                { "internalType": "bytes32", "name": "dataEvaluationClaim", "type": "bytes32" }
              ],
              "internalType": "struct ILineaRollup.ShnarfData",
              "name": "shnarfData",
              "type": "tuple"
            },
            { "internalType": "uint256", "name": "lastFinalizedTimestamp", "type": "uint256" },
            { "internalType": "uint256", "name": "finalTimestamp", "type": "uint256" },
            { "internalType": "bytes32", "name": "lastFinalizedL1RollingHash", "type": "bytes32" },
            { "internalType": "bytes32", "name": "l1RollingHash", "type": "bytes32" },
            { "internalType": "uint256", "name": "lastFinalizedL1RollingHashMessageNumber", "type": "uint256" },
            { "internalType": "uint256", "name": "l1RollingHashMessageNumber", "type": "uint256" },
            { "internalType": "uint256", "name": "l2MerkleTreesDepth", "type": "uint256" },
            { "internalType": "bytes32[]", "name": "l2MerkleRoots", "type": "bytes32[]" },
            { "internalType": "bytes", "name": "l2MessagingBlocksOffsets", "type": "bytes" }
          ],
          "internalType": "struct ILineaRollup.FinalizationDataV3",
          "name": "_finalizationData",
          "type": "tuple"
        }
      ],
      "name": "finalizeBlocks",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "role", "type": "bytes32" }],
      "name": "getRoleAdmin",
      "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "bytes32", "name": "role", "type": "bytes32" },
        { "internalType": "address", "name": "account", "type": "address" }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "bytes32", "name": "role", "type": "bytes32" },
        { "internalType": "address", "name": "account", "type": "address" }
      ],
      "name": "hasRole",
      "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "messageHash", "type": "bytes32" }],
      "name": "inboxL2L1MessageStatus",
      "outputs": [{ "internalType": "uint256", "name": "messageStatus", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            { "internalType": "bytes32", "name": "initialStateRootHash", "type": "bytes32" },
            { "internalType": "uint256", "name": "initialL2BlockNumber", "type": "uint256" },
            { "internalType": "uint256", "name": "genesisTimestamp", "type": "uint256" },
            { "internalType": "address", "name": "defaultVerifier", "type": "address" },
            { "internalType": "uint256", "name": "rateLimitPeriodInSeconds", "type": "uint256" },
            { "internalType": "uint256", "name": "rateLimitAmountInWei", "type": "uint256" },
            {
              "components": [
                { "internalType": "address", "name": "addressWithRole", "type": "address" },
                { "internalType": "bytes32", "name": "role", "type": "bytes32" }
              ],
              "internalType": "struct IPermissionsManager.RoleAddress[]",
              "name": "roleAddresses",
              "type": "tuple[]"
            },
            {
              "components": [
                { "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" },
                { "internalType": "bytes32", "name": "role", "type": "bytes32" }
              ],
              "internalType": "struct IPauseManager.PauseTypeRole[]",
              "name": "pauseTypeRoles",
              "type": "tuple[]"
            },
            {
              "components": [
                { "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" },
                { "internalType": "bytes32", "name": "role", "type": "bytes32" }
              ],
              "internalType": "struct IPauseManager.PauseTypeRole[]",
              "name": "unpauseTypeRoles",
              "type": "tuple[]"
            },
            { "internalType": "address", "name": "fallbackOperator", "type": "address" },
            { "internalType": "address", "name": "defaultAdmin", "type": "address" }
          ],
          "internalType": "struct ILineaRollup.InitializationData",
          "name": "_initializationData",
          "type": "tuple"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "uint256", "name": "_messageNumber", "type": "uint256" }],
      "name": "isMessageClaimed",
      "outputs": [{ "internalType": "bool", "name": "isClaimed", "type": "bool" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "enum IPauseManager.PauseType", "name": "_pauseType", "type": "uint8" }],
      "name": "isPaused",
      "outputs": [{ "internalType": "bool", "name": "pauseTypeIsPaused", "type": "bool" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }],
      "name": "l2MerkleRootsDepths",
      "outputs": [{ "internalType": "uint256", "name": "treeDepth", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "limitInWei",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nextMessageNumber",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "messageHash", "type": "bytes32" }],
      "name": "outboxL1L2MessageStatus",
      "outputs": [{ "internalType": "uint256", "name": "messageStatus", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "enum IPauseManager.PauseType", "name": "_pauseType", "type": "uint8" }],
      "name": "pauseByType",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes32", "name": "pauseType", "type": "bytes32" }],
      "name": "pauseTypeStatuses",
      "outputs": [{ "internalType": "bool", "name": "pauseStatus", "type": "bool" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "periodInSeconds",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            { "internalType": "address", "name": "addressWithRole", "type": "address" },
            { "internalType": "bytes32", "name": "role", "type": "bytes32" }
          ],
          "internalType": "struct IPermissionsManager.RoleAddress[]",
          "name": "_roleAddresses",
          "type": "tuple[]"
        },
        {
          "components": [
            { "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" },
            { "internalType": "bytes32", "name": "role", "type": "bytes32" }
          ],
          "internalType": "struct IPauseManager.PauseTypeRole[]",
          "name": "_pauseTypeRoles",
          "type": "tuple[]"
        },
        {
          "components": [
            { "internalType": "enum IPauseManager.PauseType", "name": "pauseType", "type": "uint8" },
            { "internalType": "bytes32", "name": "role", "type": "bytes32" }
          ],
          "internalType": "struct IPauseManager.PauseTypeRole[]",
          "name": "_unpauseTypeRoles",
          "type": "tuple[]"
        },
        { "internalType": "address", "name": "_fallbackOperator", "type": "address" }
      ],
      "name": "reinitializeLineaRollupV6",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "bytes32", "name": "_role", "type": "bytes32" },
        { "internalType": "address", "name": "_account", "type": "address" }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "resetAmountUsedInPeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "uint256", "name": "_amount", "type": "uint256" }],
      "name": "resetRateLimitAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "bytes32", "name": "role", "type": "bytes32" },
        { "internalType": "address", "name": "account", "type": "address" }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "uint256", "name": "messageNumber", "type": "uint256" }],
      "name": "rollingHashes",
      "outputs": [{ "internalType": "bytes32", "name": "rollingHash", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "address", "name": "_to", "type": "address" },
        { "internalType": "uint256", "name": "_fee", "type": "uint256" },
        { "internalType": "bytes", "name": "_calldata", "type": "bytes" }
      ],
      "name": "sendMessage",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "sender",
      "outputs": [{ "internalType": "address", "name": "originalSender", "type": "address" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "uint256", "name": "_messageNumber", "type": "uint256" },
        { "internalType": "bytes32", "name": "_rollingHash", "type": "bytes32" },
        { "internalType": "uint256", "name": "_lastFinalizedTimestamp", "type": "uint256" }
      ],
      "name": "setFallbackOperator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        { "internalType": "address", "name": "_newVerifierAddress", "type": "address" },
        { "internalType": "uint256", "name": "_proofType", "type": "uint256" }
      ],
      "name": "setVerifierAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "uint256", "name": "blockNumber", "type": "uint256" }],
      "name": "stateRootHashes",
      "outputs": [{ "internalType": "bytes32", "name": "stateRootHash", "type": "bytes32" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            { "internalType": "uint256", "name": "dataEvaluationClaim", "type": "uint256" },
            { "internalType": "bytes", "name": "kzgCommitment", "type": "bytes" },
            { "internalType": "bytes", "name": "kzgProof", "type": "bytes" },
            { "internalType": "bytes32", "name": "finalStateRootHash", "type": "bytes32" },
            { "internalType": "bytes32", "name": "snarkHash", "type": "bytes32" }
          ],
          "internalType": "struct ILineaRollup.BlobSubmission[]",
          "name": "_blobSubmissions",
          "type": "tuple[]"
        },
        { "internalType": "bytes32", "name": "_parentShnarf", "type": "bytes32" },
        { "internalType": "bytes32", "name": "_finalBlobShnarf", "type": "bytes32" }
      ],
      "name": "submitBlobs",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            { "internalType": "bytes32", "name": "finalStateRootHash", "type": "bytes32" },
            { "internalType": "bytes32", "name": "snarkHash", "type": "bytes32" },
            { "internalType": "bytes", "name": "compressedData", "type": "bytes" }
          ],
          "internalType": "struct ILineaRollup.CompressedCalldataSubmission",
          "name": "_submission",
          "type": "tuple"
        },
        { "internalType": "bytes32", "name": "_parentShnarf", "type": "bytes32" },
        { "internalType": "bytes32", "name": "_expectedShnarf", "type": "bytes32" }
      ],
      "name": "submitDataAsCalldata",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }],
      "name": "supportsInterface",
      "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "systemMigrationBlock",
      "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "enum IPauseManager.PauseType", "name": "_pauseType", "type": "uint8" }],
      "name": "unPauseByType",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "uint256", "name": "_proofType", "type": "uint256" }],
      "name": "unsetVerifierAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [{ "internalType": "uint256", "name": "proofType", "type": "uint256" }],
      "name": "verifiers",
      "outputs": [{ "internalType": "address", "name": "verifierAddress", "type": "address" }],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "[encoded data, 43652 characters]",
  "deployedBytecode": "[encoded data, 43206 characters]",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
