UNPKG

@aave/governance-crosschain-bridges

Version:
19,257 lines 985 kB
{
  "id": "24bd75884cb7e6dd61d165494879503b",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.8.10",
  "solcLongVersion": "0.8.10+commit.fc410830",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/dependencies/arbitrum/interfaces/IBridge.sol": {
        "content": "// Copyright 2021-2022, Offchain Labs, Inc.\n// For license information, see https://github.com/nitro/blob/master/LICENSE\n// SPDX-License-Identifier: BUSL-1.1\n\n// solhint-disable-next-line compiler-version\npragma solidity >=0.6.9 <0.9.0;\n\nimport './IOwnable.sol';\n\ninterface IBridge {\n  event MessageDelivered(\n    uint256 indexed messageIndex,\n    bytes32 indexed beforeInboxAcc,\n    address inbox,\n    uint8 kind,\n    address sender,\n    bytes32 messageDataHash,\n    uint256 baseFeeL1,\n    uint64 timestamp\n  );\n\n  event BridgeCallTriggered(address indexed outbox, address indexed to, uint256 value, bytes data);\n\n  event InboxToggle(address indexed inbox, bool enabled);\n\n  event OutboxToggle(address indexed outbox, bool enabled);\n\n  event SequencerInboxUpdated(address newSequencerInbox);\n\n  function allowedDelayedInboxList(uint256) external returns (address);\n\n  function allowedOutboxList(uint256) external returns (address);\n\n  /// @dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\n  function delayedInboxAccs(uint256) external view returns (bytes32);\n\n  /// @dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\n  function sequencerInboxAccs(uint256) external view returns (bytes32);\n\n  function rollup() external view returns (IOwnable);\n\n  function sequencerInbox() external view returns (address);\n\n  function activeOutbox() external view returns (address);\n\n  function allowedDelayedInboxes(address inbox) external view returns (bool);\n\n  function allowedOutboxes(address outbox) external view returns (bool);\n\n  /**\n   * @dev Enqueue a message in the delayed inbox accumulator.\n   *      These messages are later sequenced in the SequencerInbox, either\n   *      by the sequencer as part of a normal batch, or by force inclusion.\n   */\n  function enqueueDelayedMessage(\n    uint8 kind,\n    address sender,\n    bytes32 messageDataHash\n  ) external payable returns (uint256);\n\n  function executeCall(\n    address to,\n    uint256 value,\n    bytes calldata data\n  ) external returns (bool success, bytes memory returnData);\n\n  function delayedMessageCount() external view returns (uint256);\n\n  function sequencerMessageCount() external view returns (uint256);\n\n  // ---------- onlySequencerInbox functions ----------\n\n  function enqueueSequencerMessage(bytes32 dataHash, uint256 afterDelayedMessagesRead)\n    external\n    returns (\n      uint256 seqMessageIndex,\n      bytes32 beforeAcc,\n      bytes32 delayedAcc,\n      bytes32 acc\n    );\n\n  /**\n   * @dev Allows the sequencer inbox to submit a delayed message of the batchPostingReport type\n   *      This is done through a separate function entrypoint instead of allowing the sequencer inbox\n   *      to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either\n   *      every delayed inbox or every sequencer inbox call.\n   */\n  function submitBatchSpendingReport(address batchPoster, bytes32 dataHash)\n    external\n    returns (uint256 msgNum);\n\n  // ---------- onlyRollupOrOwner functions ----------\n\n  function setSequencerInbox(address _sequencerInbox) external;\n\n  function setDelayedInbox(address inbox, bool enabled) external;\n\n  function setOutbox(address inbox, bool enabled) external;\n\n  // ---------- initializer ----------\n\n  function initialize(IOwnable rollup_) external;\n}\n"
      },
      "contracts/dependencies/arbitrum/interfaces/IOwnable.sol": {
        "content": "// Copyright 2021-2022, Offchain Labs, Inc.\n// For license information, see https://github.com/nitro/blob/master/LICENSE\n// SPDX-License-Identifier: BUSL-1.1\n\n// solhint-disable-next-line compiler-version\npragma solidity >=0.4.21 <0.9.0;\n\ninterface IOwnable {\n  function owner() external view returns (address);\n}\n"
      },
      "contracts/mocks/MockInbox.sol": {
        "content": "//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.10;\n\nimport {IInbox} from '../dependencies/arbitrum/interfaces/IInbox.sol';\nimport {IBridge} from '../dependencies/arbitrum/interfaces/IBridge.sol';\nimport {ISequencerInbox} from '../dependencies/arbitrum/interfaces/ISequencerInbox.sol';\n\ncontract MockInbox is IInbox {\n  uint256 public messageNum;\n\n  function setMessageNum(uint256 msgNum) external {\n    messageNum = msgNum;\n  }\n\n  function bridge() external view override returns (IBridge) {\n    return IBridge(address(1));\n  }\n\n  function sequencerInbox() external view override returns (ISequencerInbox) {\n    return ISequencerInbox(address(1));\n  }\n\n  function sendL2MessageFromOrigin(\n    bytes calldata // messageData\n  ) external override returns (uint256) {\n    return messageNum;\n  }\n\n  function sendL2Message(\n    bytes calldata // messageData\n  ) external override returns (uint256) {\n    return messageNum;\n  }\n\n  function sendL1FundedUnsignedTransaction(\n    uint256, // gasLimit\n    uint256, // maxFeePerGas\n    uint256, // nonce\n    address, // to\n    bytes calldata // data\n  ) external payable override returns (uint256) {\n    return messageNum;\n  }\n\n  function sendL1FundedContractTransaction(\n    uint256, // gasLimit\n    uint256, // maxFeePerGas\n    address, // to\n    bytes calldata // data\n  ) external payable override returns (uint256) {\n    return messageNum;\n  }\n\n  function sendUnsignedTransaction(\n    uint256, // gasLimit\n    uint256, // maxFeePerGas\n    uint256, // nonce\n    address, // to\n    uint256, // value\n    bytes calldata // data\n  ) external override returns (uint256) {\n    return messageNum;\n  }\n\n  function sendContractTransaction(\n    uint256, // gasLimit\n    uint256, // maxFeePerGas\n    address, // to\n    uint256, // value\n    bytes calldata // data\n  ) external override returns (uint256) {\n    return messageNum;\n  }\n\n  function calculateRetryableSubmissionFee(\n    uint256 dataLength,\n    uint256 // baseFee\n  ) external view override returns (uint256) {\n    return 1_000_000;\n  }\n\n  function depositEth() external payable override returns (uint256) {\n    return messageNum;\n  }\n\n  function createRetryableTicket(\n    address to, // to\n    uint256, // l2CallValue\n    uint256, // maxSubmissionCost\n    address, // excessFeeRefundAddress\n    address, // callValueRefundAddress\n    uint256 gasLimit,\n    uint256, // maxFeePerGas\n    bytes calldata data\n  ) external payable override returns (uint256) {\n    bool success;\n    (success, ) = to.call{gas: gasLimit}(data);\n    return messageNum;\n  }\n\n  function unsafeCreateRetryableTicket(\n    address, // to\n    uint256, // l2CallValue\n    uint256, // maxSubmissionCost\n    address, // excessFeeRefundAddress\n    address, // callValueRefundAddress\n    uint256, // gasLimit\n    uint256, // maxFeePerGas\n    bytes calldata // data\n  ) external payable override returns (uint256) {}\n\n  function pause() external override {}\n\n  function unpause() external override {}\n\n  function postUpgradeInit(IBridge _bridge) external override {}\n\n  function initialize(IBridge _bridge, ISequencerInbox _sequencerInbox) external override {}\n}\n"
      },
      "contracts/dependencies/arbitrum/interfaces/IInbox.sol": {
        "content": "// Copyright 2021-2022, Offchain Labs, Inc.\n// For license information, see https://github.com/nitro/blob/master/LICENSE\n// SPDX-License-Identifier: BUSL-1.1\n\n// solhint-disable-next-line compiler-version\npragma solidity >=0.6.9 <0.9.0;\n\nimport './IBridge.sol';\nimport './IDelayedMessageProvider.sol';\nimport './ISequencerInbox.sol';\n\ninterface IInbox is IDelayedMessageProvider {\n  function bridge() external view returns (IBridge);\n\n  function sequencerInbox() external view returns (ISequencerInbox);\n\n  /**\n   * @notice Send a generic L2 message to the chain\n   * @dev This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to be able to parse the data from the transaction's input\n   * @param messageData Data of the message being sent\n   */\n  function sendL2MessageFromOrigin(bytes calldata messageData) external returns (uint256);\n\n  /**\n   * @notice Send a generic L2 message to the chain\n   * @dev This method can be used to send any type of message that doesn't require L1 validation\n   * @param messageData Data of the message being sent\n   */\n  function sendL2Message(bytes calldata messageData) external returns (uint256);\n\n  function sendL1FundedUnsignedTransaction(\n    uint256 gasLimit,\n    uint256 maxFeePerGas,\n    uint256 nonce,\n    address to,\n    bytes calldata data\n  ) external payable returns (uint256);\n\n  function sendL1FundedContractTransaction(\n    uint256 gasLimit,\n    uint256 maxFeePerGas,\n    address to,\n    bytes calldata data\n  ) external payable returns (uint256);\n\n  function sendUnsignedTransaction(\n    uint256 gasLimit,\n    uint256 maxFeePerGas,\n    uint256 nonce,\n    address to,\n    uint256 value,\n    bytes calldata data\n  ) external returns (uint256);\n\n  function sendContractTransaction(\n    uint256 gasLimit,\n    uint256 maxFeePerGas,\n    address to,\n    uint256 value,\n    bytes calldata data\n  ) external returns (uint256);\n\n  /**\n   * @notice Get the L1 fee for submitting a retryable\n   * @dev This fee can be paid by funds already in the L2 aliased address or by the current message value\n   * @dev This formula may change in the future, to future proof your code query this method instead of inlining!!\n   * @param dataLength The length of the retryable's calldata, in bytes\n   * @param baseFee The block basefee when the retryable is included in the chain, if 0 current block.basefee will be used\n   */\n  function calculateRetryableSubmissionFee(uint256 dataLength, uint256 baseFee)\n    external\n    view\n    returns (uint256);\n\n  /**\n   * @notice Deposit eth from L1 to L2\n   * @dev This does not trigger the fallback function when receiving in the L2 side.\n   *      Look into retryable tickets if you are interested in this functionality.\n   * @dev This function should not be called inside contract constructors\n   */\n  function depositEth() external payable returns (uint256);\n\n  /**\n   * @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\n   * @dev all msg.value will deposited to callValueRefundAddress on L2\n   * @dev Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\n   * @param to destination L2 contract address\n   * @param l2CallValue call value for retryable L2 message\n   * @param maxSubmissionCost Max gas deducted from user's L2 balance to cover base submission fee\n   * @param excessFeeRefundAddress gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\n   * @param callValueRefundAddress l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\n   * @param gasLimit Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\n   * @param maxFeePerGas price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\n   * @param data ABI encoded data of L2 message\n   * @return unique message number of the retryable transaction\n   */\n  function createRetryableTicket(\n    address to,\n    uint256 l2CallValue,\n    uint256 maxSubmissionCost,\n    address excessFeeRefundAddress,\n    address callValueRefundAddress,\n    uint256 gasLimit,\n    uint256 maxFeePerGas,\n    bytes calldata data\n  ) external payable returns (uint256);\n\n  /**\n   * @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\n   * @dev Same as createRetryableTicket, but does not guarantee that submission will succeed by requiring the needed funds\n   * come from the deposit alone, rather than falling back on the user's L2 balance\n   * @dev Advanced usage only (does not rewrite aliases for excessFeeRefundAddress and callValueRefundAddress).\n   * createRetryableTicket method is the recommended standard.\n   * @dev Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\n   * @param to destination L2 contract address\n   * @param l2CallValue call value for retryable L2 message\n   * @param maxSubmissionCost Max gas deducted from user's L2 balance to cover base submission fee\n   * @param excessFeeRefundAddress gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\n   * @param callValueRefundAddress l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\n   * @param gasLimit Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\n   * @param maxFeePerGas price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\n   * @param data ABI encoded data of L2 message\n   * @return unique message number of the retryable transaction\n   */\n  function unsafeCreateRetryableTicket(\n    address to,\n    uint256 l2CallValue,\n    uint256 maxSubmissionCost,\n    address excessFeeRefundAddress,\n    address callValueRefundAddress,\n    uint256 gasLimit,\n    uint256 maxFeePerGas,\n    bytes calldata data\n  ) external payable returns (uint256);\n\n  // ---------- onlyRollupOrOwner functions ----------\n\n  /// @notice pauses all inbox functionality\n  function pause() external;\n\n  /// @notice unpauses all inbox functionality\n  function unpause() external;\n\n  // ---------- initializer ----------\n\n  /**\n   * @dev function to be called one time during the inbox upgrade process\n   *      this is used to fix the storage slots\n   */\n  function postUpgradeInit(IBridge _bridge) external;\n\n  function initialize(IBridge _bridge, ISequencerInbox _sequencerInbox) external;\n}\n"
      },
      "contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol": {
        "content": "// Copyright 2021-2022, Offchain Labs, Inc.\n// For license information, see https://github.com/nitro/blob/master/LICENSE\n// SPDX-License-Identifier: BUSL-1.1\n\n// solhint-disable-next-line compiler-version\npragma solidity >=0.6.9 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport '../libraries/IGasRefunder.sol';\nimport './IDelayedMessageProvider.sol';\nimport './IBridge.sol';\n\ninterface ISequencerInbox is IDelayedMessageProvider {\n  struct MaxTimeVariation {\n    uint256 delayBlocks;\n    uint256 futureBlocks;\n    uint256 delaySeconds;\n    uint256 futureSeconds;\n  }\n\n  struct TimeBounds {\n    uint64 minTimestamp;\n    uint64 maxTimestamp;\n    uint64 minBlockNumber;\n    uint64 maxBlockNumber;\n  }\n\n  enum BatchDataLocation {\n    TxInput,\n    SeparateBatchEvent,\n    NoData\n  }\n\n  event SequencerBatchDelivered(\n    uint256 indexed batchSequenceNumber,\n    bytes32 indexed beforeAcc,\n    bytes32 indexed afterAcc,\n    bytes32 delayedAcc,\n    uint256 afterDelayedMessagesRead,\n    TimeBounds timeBounds,\n    BatchDataLocation dataLocation\n  );\n\n  event OwnerFunctionCalled(uint256 indexed id);\n\n  /// @dev a separate event that emits batch data when this isn't easily accessible in the tx.input\n  event SequencerBatchData(uint256 indexed batchSequenceNumber, bytes data);\n\n  /// @dev a valid keyset was added\n  event SetValidKeyset(bytes32 indexed keysetHash, bytes keysetBytes);\n\n  /// @dev a keyset was invalidated\n  event InvalidateKeyset(bytes32 indexed keysetHash);\n\n  function totalDelayedMessagesRead() external view returns (uint256);\n\n  function bridge() external view returns (IBridge);\n\n  /// @dev The size of the batch header\n  // solhint-disable-next-line func-name-mixedcase\n  function HEADER_LENGTH() external view returns (uint256);\n\n  /// @dev If the first batch data byte after the header has this bit set,\n  ///      the sequencer inbox has authenticated the data. Currently not used.\n  // solhint-disable-next-line func-name-mixedcase\n  function DATA_AUTHENTICATED_FLAG() external view returns (bytes1);\n\n  function rollup() external view returns (IOwnable);\n\n  function isBatchPoster(address) external view returns (bool);\n\n  struct DasKeySetInfo {\n    bool isValidKeyset;\n    uint64 creationBlock;\n  }\n\n  // https://github.com/ethereum/solidity/issues/11826\n  // function maxTimeVariation() external view returns (MaxTimeVariation calldata);\n  // function dasKeySetInfo(bytes32) external view returns (DasKeySetInfo calldata);\n\n  /// @notice Force messages from the delayed inbox to be included in the chain\n  ///         Callable by any address, but message can only be force-included after maxTimeVariation.delayBlocks and\n  ///         maxTimeVariation.delaySeconds has elapsed. As part of normal behaviour the sequencer will include these\n  ///         messages so it's only necessary to call this if the sequencer is down, or not including any delayed messages.\n  /// @param _totalDelayedMessagesRead The total number of messages to read up to\n  /// @param kind The kind of the last message to be included\n  /// @param l1BlockAndTime The l1 block and the l1 timestamp of the last message to be included\n  /// @param baseFeeL1 The l1 gas price of the last message to be included\n  /// @param sender The sender of the last message to be included\n  /// @param messageDataHash The messageDataHash of the last message to be included\n  function forceInclusion(\n    uint256 _totalDelayedMessagesRead,\n    uint8 kind,\n    uint64[2] calldata l1BlockAndTime,\n    uint256 baseFeeL1,\n    address sender,\n    bytes32 messageDataHash\n  ) external;\n\n  function inboxAccs(uint256 index) external view returns (bytes32);\n\n  function batchCount() external view returns (uint256);\n\n  function isValidKeysetHash(bytes32 ksHash) external view returns (bool);\n\n  /// @notice the creation block is intended to still be available after a keyset is deleted\n  function getKeysetCreationBlock(bytes32 ksHash) external view returns (uint256);\n\n  // ---------- BatchPoster functions ----------\n\n  function addSequencerL2BatchFromOrigin(\n    uint256 sequenceNumber,\n    bytes calldata data,\n    uint256 afterDelayedMessagesRead,\n    IGasRefunder gasRefunder\n  ) external;\n\n  function addSequencerL2Batch(\n    uint256 sequenceNumber,\n    bytes calldata data,\n    uint256 afterDelayedMessagesRead,\n    IGasRefunder gasRefunder\n  ) external;\n\n  // ---------- onlyRollupOrOwner functions ----------\n\n  /**\n   * @notice Set max delay for sequencer inbox\n   * @param maxTimeVariation_ the maximum time variation parameters\n   */\n  function setMaxTimeVariation(MaxTimeVariation memory maxTimeVariation_) external;\n\n  /**\n   * @notice Updates whether an address is authorized to be a batch poster at the sequencer inbox\n   * @param addr the address\n   * @param isBatchPoster_ if the specified address should be authorized as a batch poster\n   */\n  function setIsBatchPoster(address addr, bool isBatchPoster_) external;\n\n  /**\n   * @notice Makes Data Availability Service keyset valid\n   * @param keysetBytes bytes of the serialized keyset\n   */\n  function setValidKeyset(bytes calldata keysetBytes) external;\n\n  /**\n   * @notice Invalidates a Data Availability Service keyset\n   * @param ksHash hash of the keyset\n   */\n  function invalidateKeysetHash(bytes32 ksHash) external;\n\n  // ---------- initializer ----------\n\n  function initialize(IBridge bridge_, MaxTimeVariation calldata maxTimeVariation_) external;\n}\n"
      },
      "contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol": {
        "content": "// Copyright 2021-2022, Offchain Labs, Inc.\n// For license information, see https://github.com/nitro/blob/master/LICENSE\n// SPDX-License-Identifier: BUSL-1.1\n\n// solhint-disable-next-line compiler-version\npragma solidity >=0.6.9 <0.9.0;\n\ninterface IDelayedMessageProvider {\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\n  event InboxMessageDelivered(uint256 indexed messageNum, bytes data);\n\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\n  /// same as InboxMessageDelivered but the batch data is available in tx.input\n  event InboxMessageDeliveredFromOrigin(uint256 indexed messageNum);\n}\n"
      },
      "contracts/dependencies/arbitrum/libraries/IGasRefunder.sol": {
        "content": "// Copyright 2021-2022, Offchain Labs, Inc.\n// For license information, see https://github.com/nitro/blob/master/LICENSE\n// SPDX-License-Identifier: BUSL-1.1\n\n// solhint-disable-next-line compiler-version\npragma solidity >=0.6.9 <0.9.0;\n\ninterface IGasRefunder {\n  function onGasSpent(\n    address payable spender,\n    uint256 gasUsed,\n    uint256 calldataSize\n  ) external returns (bool success);\n}\n\nabstract contract GasRefundEnabled {\n  /// @dev this refunds the sender for execution costs of the tx\n  /// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging\n  /// for the `tx.input`. this avoids a possible attack where you generate large calldata from a contract and get over-refunded\n  modifier refundsGas(IGasRefunder gasRefunder) {\n    uint256 startGasLeft = gasleft();\n    _;\n    if (address(gasRefunder) != address(0)) {\n      uint256 calldataSize = 0;\n      // if triggered in a contract call, the spender may be overrefunded by appending dummy data to the call\n      // so we check if it is a top level call, which would mean the sender paid calldata as part of tx.input\n      // solhint-disable-next-line avoid-tx-origin\n      if (msg.sender == tx.origin) {\n        assembly {\n          calldataSize := calldatasize()\n        }\n      }\n      gasRefunder.onGasSpent(payable(msg.sender), startGasLeft - gasleft(), calldataSize);\n    }\n  }\n}\n"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers",
            "metadata",
            "devdoc",
            "userdoc",
            "storageLayout",
            "evm.gasEstimates"
          ],
          "": [
            "ast"
          ]
        }
      },
      "metadata": {
        "useLiteralContent": true
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/dependencies/arbitrum/interfaces/IBridge.sol": {
        "IBridge": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "outbox",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "BridgeCallTriggered",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "inbox",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "enabled",
                  "type": "bool"
                }
              ],
              "name": "InboxToggle",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageIndex",
                  "type": "uint256"
                },
                {
                  "indexed": true,
                  "internalType": "bytes32",
                  "name": "beforeInboxAcc",
                  "type": "bytes32"
                },
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "inbox",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint8",
                  "name": "kind",
                  "type": "uint8"
                },
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "sender",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bytes32",
                  "name": "messageDataHash",
                  "type": "bytes32"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "baseFeeL1",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint64",
                  "name": "timestamp",
                  "type": "uint64"
                }
              ],
              "name": "MessageDelivered",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "outbox",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "enabled",
                  "type": "bool"
                }
              ],
              "name": "OutboxToggle",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "newSequencerInbox",
                  "type": "address"
                }
              ],
              "name": "SequencerInboxUpdated",
              "type": "event"
            },
            {
              "inputs": [],
              "name": "activeOutbox",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "name": "allowedDelayedInboxList",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "inbox",
                  "type": "address"
                }
              ],
              "name": "allowedDelayedInboxes",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "name": "allowedOutboxList",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "outbox",
                  "type": "address"
                }
              ],
              "name": "allowedOutboxes",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "name": "delayedInboxAccs",
              "outputs": [
                {
                  "internalType": "bytes32",
                  "name": "",
                  "type": "bytes32"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "delayedMessageCount",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint8",
                  "name": "kind",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "sender",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "messageDataHash",
                  "type": "bytes32"
                }
              ],
              "name": "enqueueDelayedMessage",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes32",
                  "name": "dataHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "afterDelayedMessagesRead",
                  "type": "uint256"
                }
              ],
              "name": "enqueueSequencerMessage",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "seqMessageIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "beforeAcc",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "delayedAcc",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "acc",
                  "type": "bytes32"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "executeCall",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "success",
                  "type": "bool"
                },
                {
                  "internalType": "bytes",
                  "name": "returnData",
                  "type": "bytes"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "contract IOwnable",
                  "name": "rollup_",
                  "type": "address"
                }
              ],
              "name": "initialize",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "rollup",
              "outputs": [
                {
                  "internalType": "contract IOwnable",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "sequencerInbox",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "name": "sequencerInboxAccs",
              "outputs": [
                {
                  "internalType": "bytes32",
                  "name": "",
                  "type": "bytes32"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "sequencerMessageCount",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "inbox",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "enabled",
                  "type": "bool"
                }
              ],
              "name": "setDelayedInbox",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "inbox",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "enabled",
                  "type": "bool"
                }
              ],
              "name": "setOutbox",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "_sequencerInbox",
                  "type": "address"
                }
              ],
              "name": "setSequencerInbox",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "batchPoster",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "dataHash",
                  "type": "bytes32"
                }
              ],
              "name": "submitBatchSpendingReport",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "msgNum",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "devdoc": {
            "kind": "dev",
            "methods": {
              "delayedInboxAccs(uint256)": {
                "details": "Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message."
              },
              "enqueueDelayedMessage(uint8,address,bytes32)": {
                "details": "Enqueue a message in the delayed inbox accumulator.      These messages are later sequenced in the SequencerInbox, either      by the sequencer as part of a normal batch, or by force inclusion."
              },
              "sequencerInboxAccs(uint256)": {
                "details": "Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message."
              },
              "submitBatchSpendingReport(address,bytes32)": {
                "details": "Allows the sequencer inbox to submit a delayed message of the batchPostingReport type      This is done through a separate function entrypoint instead of allowing the sequencer inbox      to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either      every delayed inbox or every sequencer inbox call."
              }
            },
            "version": 1
          },
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "gasEstimates": null,
            "methodIdentifiers": {
              "activeOutbox()": "ab5d8943",
              "allowedDelayedInboxList(uint256)": "e76f5c8d",
              "allowedDelayedInboxes(address)": "ae60bd13",
              "allowedOutboxList(uint256)": "945e1147",
              "allowedOutboxes(address)": "413b35bd",
              "delayedInboxAccs(uint256)": "d5719dc2",
              "delayedMessageCount()": "eca067ad",
              "enqueueDelayedMessage(uint8,address,bytes32)": "8db5993b",
              "enqueueSequencerMessage(bytes32,uint256)": "845bde82",
              "executeCall(address,uint256,bytes)": "9e5d4c49",
              "initialize(address)": "c4d66de8",
              "rollup()": "cb23bcb5",
              "sequencerInbox()": "ee35f327",
              "sequencerInboxAccs(uint256)": "16bf5579",
              "sequencerMessageCount()": "0084120c",
              "setDelayedInbox(address,bool)": "47fb24c5",
              "setOutbox(address,bool)": "cee3d728",
              "setSequencerInbox(address)": "4f61f850",
              "submitBatchSpendingReport(address,bytes32)": "7a88b107"
            }
          },
          "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"BridgeCallTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"InboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeInboxAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"MessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"OutboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"activeOutbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedDelayedInboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"allowedDelayedInboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedOutboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"allowedOutboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"delayedInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delayedMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"enqueueDelayedMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"}],\"name\":\"enqueueSequencerMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"seqMessageIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"acc\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IOwnable\",\"name\":\"rollup_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contract IOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sequencerInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"}],\"name\":\"submitBatchSpendingReport\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"msgNum\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"delayedInboxAccs(uint256)\":{\"details\":\"Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\"},\"enqueueDelayedMessage(uint8,address,bytes32)\":{\"details\":\"Enqueue a message in the delayed inbox accumulator.      These messages are later sequenced in the SequencerInbox, either      by the sequencer as part of a normal batch, or by force inclusion.\"},\"sequencerInboxAccs(uint256)\":{\"details\":\"Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\"},\"submitBatchSpendingReport(address,bytes32)\":{\"details\":\"Allows the sequencer inbox to submit a delayed message of the batchPostingReport type      This is done through a separate function entrypoint instead of allowing the sequencer inbox      to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either      every delayed inbox or every sequencer inbox call.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/dependencies/arbitrum/interfaces/IBridge.sol\":\"IBridge\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/arbitrum/interfaces/IBridge.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\nimport './IOwnable.sol';\\n\\ninterface IBridge {\\n  event MessageDelivered(\\n    uint256 indexed messageIndex,\\n    bytes32 indexed beforeInboxAcc,\\n    address inbox,\\n    uint8 kind,\\n    address sender,\\n    bytes32 messageDataHash,\\n    uint256 baseFeeL1,\\n    uint64 timestamp\\n  );\\n\\n  event BridgeCallTriggered(address indexed outbox, address indexed to, uint256 value, bytes data);\\n\\n  event InboxToggle(address indexed inbox, bool enabled);\\n\\n  event OutboxToggle(address indexed outbox, bool enabled);\\n\\n  event SequencerInboxUpdated(address newSequencerInbox);\\n\\n  function allowedDelayedInboxList(uint256) external returns (address);\\n\\n  function allowedOutboxList(uint256) external returns (address);\\n\\n  /// @dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\\n  function delayedInboxAccs(uint256) external view returns (bytes32);\\n\\n  /// @dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\\n  function sequencerInboxAccs(uint256) external view returns (bytes32);\\n\\n  function rollup() external view returns (IOwnable);\\n\\n  function sequencerInbox() external view returns (address);\\n\\n  function activeOutbox() external view returns (address);\\n\\n  function allowedDelayedInboxes(address inbox) external view returns (bool);\\n\\n  function allowedOutboxes(address outbox) external view returns (bool);\\n\\n  /**\\n   * @dev Enqueue a message in the delayed inbox accumulator.\\n   *      These messages are later sequenced in the SequencerInbox, either\\n   *      by the sequencer as part of a normal batch, or by force inclusion.\\n   */\\n  function enqueueDelayedMessage(\\n    uint8 kind,\\n    address sender,\\n    bytes32 messageDataHash\\n  ) external payable returns (uint256);\\n\\n  function executeCall(\\n    address to,\\n    uint256 value,\\n    bytes calldata data\\n  ) external returns (bool success, bytes memory returnData);\\n\\n  function delayedMessageCount() external view returns (uint256);\\n\\n  function sequencerMessageCount() external view returns (uint256);\\n\\n  // ---------- onlySequencerInbox functions ----------\\n\\n  function enqueueSequencerMessage(bytes32 dataHash, uint256 afterDelayedMessagesRead)\\n    external\\n    returns (\\n      uint256 seqMessageIndex,\\n      bytes32 beforeAcc,\\n      bytes32 delayedAcc,\\n      bytes32 acc\\n    );\\n\\n  /**\\n   * @dev Allows the sequencer inbox to submit a delayed message of the batchPostingReport type\\n   *      This is done through a separate function entrypoint instead of allowing the sequencer inbox\\n   *      to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either\\n   *      every delayed inbox or every sequencer inbox call.\\n   */\\n  function submitBatchSpendingReport(address batchPoster, bytes32 dataHash)\\n    external\\n    returns (uint256 msgNum);\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  function setSequencerInbox(address _sequencerInbox) external;\\n\\n  function setDelayedInbox(address inbox, bool enabled) external;\\n\\n  function setOutbox(address inbox, bool enabled) external;\\n\\n  // ---------- initializer ----------\\n\\n  function initialize(IOwnable rollup_) external;\\n}\\n\",\"keccak256\":\"0x6ef502fd06f8775452f060097d342465cbddb8ca2b88698ab4ed40050a63be77\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IOwnable.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.4.21 <0.9.0;\\n\\ninterface IOwnable {\\n  function owner() external view returns (address);\\n}\\n\",\"keccak256\":\"0x9b6a2009e2751bd581fc2a1e0f677d97989ee0e6683432b4ff39bce9d9a79a91\",\"license\":\"BUSL-1.1\"}},\"version\":1}",
          "storageLayout": {
            "storage": [],
            "types": null
          },
          "userdoc": {
            "kind": "user",
            "methods": {},
            "version": 1
          }
        }
      },
      "contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol": {
        "IDelayedMessageProvider": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageNum",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "InboxMessageDelivered",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageNum",
                  "type": "uint256"
                }
              ],
              "name": "InboxMessageDeliveredFromOrigin",
              "type": "event"
            }
          ],
          "devdoc": {
            "events": {
              "InboxMessageDelivered(uint256,bytes)": {
                "details": "event emitted when a inbox message is added to the Bridge's delayed accumulator"
              },
              "InboxMessageDeliveredFromOrigin(uint256)": {
                "details": "event emitted when a inbox message is added to the Bridge's delayed accumulator same as InboxMessageDelivered but the batch data is available in tx.input"
              }
            },
            "kind": "dev",
            "methods": {},
            "version": 1
          },
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "gasEstimates": null,
            "methodIdentifiers": {}
          },
          "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"InboxMessageDelivered(uint256,bytes)\":{\"details\":\"event emitted when a inbox message is added to the Bridge's delayed accumulator\"},\"InboxMessageDeliveredFromOrigin(uint256)\":{\"details\":\"event emitted when a inbox message is added to the Bridge's delayed accumulator same as InboxMessageDelivered but the batch data is available in tx.input\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol\":\"IDelayedMessageProvider\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IDelayedMessageProvider {\\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\\n  event InboxMessageDelivered(uint256 indexed messageNum, bytes data);\\n\\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\\n  /// same as InboxMessageDelivered but the batch data is available in tx.input\\n  event InboxMessageDeliveredFromOrigin(uint256 indexed messageNum);\\n}\\n\",\"keccak256\":\"0x297281f276a4bf4b70c50663d4fc314fe67245f6027c7154f61e56886d679632\",\"license\":\"BUSL-1.1\"}},\"version\":1}",
          "storageLayout": {
            "storage": [],
            "types": null
          },
          "userdoc": {
            "kind": "user",
            "methods": {},
            "version": 1
          }
        }
      },
      "contracts/dependencies/arbitrum/interfaces/IInbox.sol": {
        "IInbox": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageNum",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "InboxMessageDelivered",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageNum",
                  "type": "uint256"
                }
              ],
              "name": "InboxMessageDeliveredFromOrigin",
              "type": "event"
            },
            {
              "inputs": [],
              "name": "bridge",
              "outputs": [
                {
                  "internalType": "contract IBridge",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "dataLength",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "baseFee",
                  "type": "uint256"
                }
              ],
              "name": "calculateRetryableSubmissionFee",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "l2CallValue",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxSubmissionCost",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "excessFeeRefundAddress",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "callValueRefundAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "gasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxFeePerGas",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "createRetryableTicket",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "depositEth",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "contract IBridge",
                  "name": "_bridge",
                  "type": "address"
                },
                {
                  "internalType": "contract ISequencerInbox",
                  "name": "_sequencerInbox",
                  "type": "address"
                }
              ],
              "name": "initialize",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "pause",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "contract IBridge",
                  "name": "_bridge",
                  "type": "address"
                }
              ],
              "name": "postUpgradeInit",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "gasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxFeePerGas",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "sendContractTransaction",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "gasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxFeePerGas",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "sendL1FundedContractTransaction",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "gasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxFeePerGas",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "sendL1FundedUnsignedTransaction",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes",
                  "name": "messageData",
                  "type": "bytes"
                }
              ],
              "name": "sendL2Message",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes",
                  "name": "messageData",
                  "type": "bytes"
                }
              ],
              "name": "sendL2MessageFromOrigin",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "gasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxFeePerGas",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "sendUnsignedTransaction",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "sequencerInbox",
              "outputs": [
                {
                  "internalType": "contract ISequencerInbox",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "unpause",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "l2CallValue",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxSubmissionCost",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "excessFeeRefundAddress",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "callValueRefundAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "gasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxFeePerGas",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "unsafeCreateRetryableTicket",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            }
          ],
          "devdoc": {
            "kind": "dev",
            "methods": {
              "calculateRetryableSubmissionFee(uint256,uint256)": {
                "details": "This fee can be paid by funds already in the L2 aliased address or by the current message valueThis formula may change in the future, to future proof your code query this method instead of inlining!!",
                "params": {
                  "baseFee": "The block basefee when the retryable is included in the chain, if 0 current block.basefee will be used",
                  "dataLength": "The length of the retryable's calldata, in bytes"
                }
              },
              "createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": {
                "details": "all msg.value will deposited to callValueRefundAddress on L2Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error",
                "params": {
                  "callValueRefundAddress": "l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled",
                  "data": "ABI encoded data of L2 message",
                  "excessFeeRefundAddress": "gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance",
                  "gasLimit": "Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)",
                  "l2CallValue": "call value for retryable L2 message",
                  "maxFeePerGas": "price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)",
                  "maxSubmissionCost": "Max gas deducted from user's L2 balance to cover base submission fee",
                  "to": "destination L2 contract address"
                },
                "returns": {
                  "_0": "unique message number of the retryable transaction"
                }
              },
              "depositEth()": {
                "details": "This does not trigger the fallback function when receiving in the L2 side.      Look into retryable tickets if you are interested in this functionality.This function should not be called inside contract constructors"
              },
              "postUpgradeInit(address)": {
                "details": "function to be called one time during the inbox upgrade process      this is used to fix the storage slots"
              },
              "sendL2Message(bytes)": {
                "details": "This method can be used to send any type of message that doesn't require L1 validation",
                "params": {
                  "messageData": "Data of the message being sent"
                }
              },
              "sendL2MessageFromOrigin(bytes)": {
                "details": "This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to be able to parse the data from the transaction's input",
                "params": {
                  "messageData": "Data of the message being sent"
                }
              },
              "unsafeCreateRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": {
                "details": "Same as createRetryableTicket, but does not guarantee that submission will succeed by requiring the needed funds come from the deposit alone, rather than falling back on the user's L2 balanceAdvanced usage only (does not rewrite aliases for excessFeeRefundAddress and callValueRefundAddress). createRetryableTicket method is the recommended standard.Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error",
                "params": {
                  "callValueRefundAddress": "l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled",
                  "data": "ABI encoded data of L2 message",
                  "excessFeeRefundAddress": "gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance",
                  "gasLimit": "Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)",
                  "l2CallValue": "call value for retryable L2 message",
                  "maxFeePerGas": "price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)",
                  "maxSubmissionCost": "Max gas deducted from user's L2 balance to cover base submission fee",
                  "to": "destination L2 contract address"
                },
                "returns": {
                  "_0": "unique message number of the retryable transaction"
                }
              }
            },
            "version": 1
          },
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "gasEstimates": null,
            "methodIdentifiers": {
              "bridge()": "e78cea92",
              "calculateRetryableSubmissionFee(uint256,uint256)": "a66b327d",
              "createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": "679b6ded",
              "depositEth()": "439370b1",
              "initialize(address,address)": "485cc955",
              "pause()": "8456cb59",
              "postUpgradeInit(address)": "c474d2c5",
              "sendContractTransaction(uint256,uint256,address,uint256,bytes)": "8a631aa6",
              "sendL1FundedContractTransaction(uint256,uint256,address,bytes)": "5e916758",
              "sendL1FundedUnsignedTransaction(uint256,uint256,uint256,address,bytes)": "67ef3ab8",
              "sendL2Message(bytes)": "b75436bb",
              "sendL2MessageFromOrigin(bytes)": "1fe927cf",
              "sendUnsignedTransaction(uint256,uint256,uint256,address,uint256,bytes)": "5075788b",
              "sequencerInbox()": "ee35f327",
              "unpause()": "3f4ba83a",
              "unsafeCreateRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": "6e6e8a6a"
            }
          },
          "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contract ISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contract ISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"calculateRetryableSubmissionFee(uint256,uint256)\":{\"details\":\"This fee can be paid by funds already in the L2 aliased address or by the current message valueThis formula may change in the future, to future proof your code query this method instead of inlining!!\",\"params\":{\"baseFee\":\"The block basefee when the retryable is included in the chain, if 0 current block.basefee will be used\",\"dataLength\":\"The length of the retryable's calldata, in bytes\"}},\"createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)\":{\"details\":\"all msg.value will deposited to callValueRefundAddress on L2Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\",\"params\":{\"callValueRefundAddress\":\"l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\",\"data\":\"ABI encoded data of L2 message\",\"excessFeeRefundAddress\":\"gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\",\"gasLimit\":\"Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\",\"l2CallValue\":\"call value for retryable L2 message\",\"maxFeePerGas\":\"price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\",\"maxSubmissionCost\":\"Max gas deducted from user's L2 balance to cover base submission fee\",\"to\":\"destination L2 contract address\"},\"returns\":{\"_0\":\"unique message number of the retryable transaction\"}},\"depositEth()\":{\"details\":\"This does not trigger the fallback function when receiving in the L2 side.      Look into retryable tickets if you are interested in this functionality.This function should not be called inside contract constructors\"},\"postUpgradeInit(address)\":{\"details\":\"function to be called one time during the inbox upgrade process      this is used to fix the storage slots\"},\"sendL2Message(bytes)\":{\"details\":\"This method can be used to send any type of message that doesn't require L1 validation\",\"params\":{\"messageData\":\"Data of the message being sent\"}},\"sendL2MessageFromOrigin(bytes)\":{\"details\":\"This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to be able to parse the data from the transaction's input\",\"params\":{\"messageData\":\"Data of the message being sent\"}},\"unsafeCreateRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)\":{\"details\":\"Same as createRetryableTicket, but does not guarantee that submission will succeed by requiring the needed funds come from the deposit alone, rather than falling back on the user's L2 balanceAdvanced usage only (does not rewrite aliases for excessFeeRefundAddress and callValueRefundAddress). createRetryableTicket method is the recommended standard.Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\",\"params\":{\"callValueRefundAddress\":\"l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\",\"data\":\"ABI encoded data of L2 message\",\"excessFeeRefundAddress\":\"gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\",\"gasLimit\":\"Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\",\"l2CallValue\":\"call value for retryable L2 message\",\"maxFeePerGas\":\"price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\",\"maxSubmissionCost\":\"Max gas deducted from user's L2 balance to cover base submission fee\",\"to\":\"destination L2 contract address\"},\"returns\":{\"_0\":\"unique message number of the retryable transaction\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"calculateRetryableSubmissionFee(uint256,uint256)\":{\"notice\":\"Get the L1 fee for submitting a retryable\"},\"createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)\":{\"notice\":\"Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\"},\"depositEth()\":{\"notice\":\"Deposit eth from L1 to L2\"},\"pause()\":{\"notice\":\"pauses all inbox functionality\"},\"sendL2Message(bytes)\":{\"notice\":\"Send a generic L2 message to the chain\"},\"sendL2MessageFromOrigin(bytes)\":{\"notice\":\"Send a generic L2 message to the chain\"},\"unpause()\":{\"notice\":\"unpauses all inbox functionality\"},\"unsafeCreateRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)\":{\"notice\":\"Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/dependencies/arbitrum/interfaces/IInbox.sol\":\"IInbox\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/arbitrum/interfaces/IBridge.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\nimport './IOwnable.sol';\\n\\ninterface IBridge {\\n  event MessageDelivered(\\n    uint256 indexed messageIndex,\\n    bytes32 indexed beforeInboxAcc,\\n    address inbox,\\n    uint8 kind,\\n    address sender,\\n    bytes32 messageDataHash,\\n    uint256 baseFeeL1,\\n    uint64 timestamp\\n  );\\n\\n  event BridgeCallTriggered(address indexed outbox, address indexed to, uint256 value, bytes data);\\n\\n  event InboxToggle(address indexed inbox, bool enabled);\\n\\n  event OutboxToggle(address indexed outbox, bool enabled);\\n\\n  event SequencerInboxUpdated(address newSequencerInbox);\\n\\n  function allowedDelayedInboxList(uint256) external returns (address);\\n\\n  function allowedOutboxList(uint256) external returns (address);\\n\\n  /// @dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\\n  function delayedInboxAccs(uint256) external view returns (bytes32);\\n\\n  /// @dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\\n  function sequencerInboxAccs(uint256) external view returns (bytes32);\\n\\n  function rollup() external view returns (IOwnable);\\n\\n  function sequencerInbox() external view returns (address);\\n\\n  function activeOutbox() external view returns (address);\\n\\n  function allowedDelayedInboxes(address inbox) external view returns (bool);\\n\\n  function allowedOutboxes(address outbox) external view returns (bool);\\n\\n  /**\\n   * @dev Enqueue a message in the delayed inbox accumulator.\\n   *      These messages are later sequenced in the SequencerInbox, either\\n   *      by the sequencer as part of a normal batch, or by force inclusion.\\n   */\\n  function enqueueDelayedMessage(\\n    uint8 kind,\\n    address sender,\\n    bytes32 messageDataHash\\n  ) external payable returns (uint256);\\n\\n  function executeCall(\\n    address to,\\n    uint256 value,\\n    bytes calldata data\\n  ) external returns (bool success, bytes memory returnData);\\n\\n  function delayedMessageCount() external view returns (uint256);\\n\\n  function sequencerMessageCount() external view returns (uint256);\\n\\n  // ---------- onlySequencerInbox functions ----------\\n\\n  function enqueueSequencerMessage(bytes32 dataHash, uint256 afterDelayedMessagesRead)\\n    external\\n    returns (\\n      uint256 seqMessageIndex,\\n      bytes32 beforeAcc,\\n      bytes32 delayedAcc,\\n      bytes32 acc\\n    );\\n\\n  /**\\n   * @dev Allows the sequencer inbox to submit a delayed message of the batchPostingReport type\\n   *      This is done through a separate function entrypoint instead of allowing the sequencer inbox\\n   *      to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either\\n   *      every delayed inbox or every sequencer inbox call.\\n   */\\n  function submitBatchSpendingReport(address batchPoster, bytes32 dataHash)\\n    external\\n    returns (uint256 msgNum);\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  function setSequencerInbox(address _sequencerInbox) external;\\n\\n  function setDelayedInbox(address inbox, bool enabled) external;\\n\\n  function setOutbox(address inbox, bool enabled) external;\\n\\n  // ---------- initializer ----------\\n\\n  function initialize(IOwnable rollup_) external;\\n}\\n\",\"keccak256\":\"0x6ef502fd06f8775452f060097d342465cbddb8ca2b88698ab4ed40050a63be77\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IDelayedMessageProvider {\\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\\n  event InboxMessageDelivered(uint256 indexed messageNum, bytes data);\\n\\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\\n  /// same as InboxMessageDelivered but the batch data is available in tx.input\\n  event InboxMessageDeliveredFromOrigin(uint256 indexed messageNum);\\n}\\n\",\"keccak256\":\"0x297281f276a4bf4b70c50663d4fc314fe67245f6027c7154f61e56886d679632\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IInbox.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\nimport './IBridge.sol';\\nimport './IDelayedMessageProvider.sol';\\nimport './ISequencerInbox.sol';\\n\\ninterface IInbox is IDelayedMessageProvider {\\n  function bridge() external view returns (IBridge);\\n\\n  function sequencerInbox() external view returns (ISequencerInbox);\\n\\n  /**\\n   * @notice Send a generic L2 message to the chain\\n   * @dev This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to be able to parse the data from the transaction's input\\n   * @param messageData Data of the message being sent\\n   */\\n  function sendL2MessageFromOrigin(bytes calldata messageData) external returns (uint256);\\n\\n  /**\\n   * @notice Send a generic L2 message to the chain\\n   * @dev This method can be used to send any type of message that doesn't require L1 validation\\n   * @param messageData Data of the message being sent\\n   */\\n  function sendL2Message(bytes calldata messageData) external returns (uint256);\\n\\n  function sendL1FundedUnsignedTransaction(\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    uint256 nonce,\\n    address to,\\n    bytes calldata data\\n  ) external payable returns (uint256);\\n\\n  function sendL1FundedContractTransaction(\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    address to,\\n    bytes calldata data\\n  ) external payable returns (uint256);\\n\\n  function sendUnsignedTransaction(\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    uint256 nonce,\\n    address to,\\n    uint256 value,\\n    bytes calldata data\\n  ) external returns (uint256);\\n\\n  function sendContractTransaction(\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    address to,\\n    uint256 value,\\n    bytes calldata data\\n  ) external returns (uint256);\\n\\n  /**\\n   * @notice Get the L1 fee for submitting a retryable\\n   * @dev This fee can be paid by funds already in the L2 aliased address or by the current message value\\n   * @dev This formula may change in the future, to future proof your code query this method instead of inlining!!\\n   * @param dataLength The length of the retryable's calldata, in bytes\\n   * @param baseFee The block basefee when the retryable is included in the chain, if 0 current block.basefee will be used\\n   */\\n  function calculateRetryableSubmissionFee(uint256 dataLength, uint256 baseFee)\\n    external\\n    view\\n    returns (uint256);\\n\\n  /**\\n   * @notice Deposit eth from L1 to L2\\n   * @dev This does not trigger the fallback function when receiving in the L2 side.\\n   *      Look into retryable tickets if you are interested in this functionality.\\n   * @dev This function should not be called inside contract constructors\\n   */\\n  function depositEth() external payable returns (uint256);\\n\\n  /**\\n   * @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\\n   * @dev all msg.value will deposited to callValueRefundAddress on L2\\n   * @dev Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\\n   * @param to destination L2 contract address\\n   * @param l2CallValue call value for retryable L2 message\\n   * @param maxSubmissionCost Max gas deducted from user's L2 balance to cover base submission fee\\n   * @param excessFeeRefundAddress gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\\n   * @param callValueRefundAddress l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\\n   * @param gasLimit Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\\n   * @param maxFeePerGas price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\\n   * @param data ABI encoded data of L2 message\\n   * @return unique message number of the retryable transaction\\n   */\\n  function createRetryableTicket(\\n    address to,\\n    uint256 l2CallValue,\\n    uint256 maxSubmissionCost,\\n    address excessFeeRefundAddress,\\n    address callValueRefundAddress,\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    bytes calldata data\\n  ) external payable returns (uint256);\\n\\n  /**\\n   * @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\\n   * @dev Same as createRetryableTicket, but does not guarantee that submission will succeed by requiring the needed funds\\n   * come from the deposit alone, rather than falling back on the user's L2 balance\\n   * @dev Advanced usage only (does not rewrite aliases for excessFeeRefundAddress and callValueRefundAddress).\\n   * createRetryableTicket method is the recommended standard.\\n   * @dev Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\\n   * @param to destination L2 contract address\\n   * @param l2CallValue call value for retryable L2 message\\n   * @param maxSubmissionCost Max gas deducted from user's L2 balance to cover base submission fee\\n   * @param excessFeeRefundAddress gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\\n   * @param callValueRefundAddress l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\\n   * @param gasLimit Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\\n   * @param maxFeePerGas price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\\n   * @param data ABI encoded data of L2 message\\n   * @return unique message number of the retryable transaction\\n   */\\n  function unsafeCreateRetryableTicket(\\n    address to,\\n    uint256 l2CallValue,\\n    uint256 maxSubmissionCost,\\n    address excessFeeRefundAddress,\\n    address callValueRefundAddress,\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    bytes calldata data\\n  ) external payable returns (uint256);\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  /// @notice pauses all inbox functionality\\n  function pause() external;\\n\\n  /// @notice unpauses all inbox functionality\\n  function unpause() external;\\n\\n  // ---------- initializer ----------\\n\\n  /**\\n   * @dev function to be called one time during the inbox upgrade process\\n   *      this is used to fix the storage slots\\n   */\\n  function postUpgradeInit(IBridge _bridge) external;\\n\\n  function initialize(IBridge _bridge, ISequencerInbox _sequencerInbox) external;\\n}\\n\",\"keccak256\":\"0x759eca70310819220d4b77894bd4882af7eddbce3a7cef640443d72a67636824\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IOwnable.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.4.21 <0.9.0;\\n\\ninterface IOwnable {\\n  function owner() external view returns (address);\\n}\\n\",\"keccak256\":\"0x9b6a2009e2751bd581fc2a1e0f677d97989ee0e6683432b4ff39bce9d9a79a91\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\npragma experimental ABIEncoderV2;\\n\\nimport '../libraries/IGasRefunder.sol';\\nimport './IDelayedMessageProvider.sol';\\nimport './IBridge.sol';\\n\\ninterface ISequencerInbox is IDelayedMessageProvider {\\n  struct MaxTimeVariation {\\n    uint256 delayBlocks;\\n    uint256 futureBlocks;\\n    uint256 delaySeconds;\\n    uint256 futureSeconds;\\n  }\\n\\n  struct TimeBounds {\\n    uint64 minTimestamp;\\n    uint64 maxTimestamp;\\n    uint64 minBlockNumber;\\n    uint64 maxBlockNumber;\\n  }\\n\\n  enum BatchDataLocation {\\n    TxInput,\\n    SeparateBatchEvent,\\n    NoData\\n  }\\n\\n  event SequencerBatchDelivered(\\n    uint256 indexed batchSequenceNumber,\\n    bytes32 indexed beforeAcc,\\n    bytes32 indexed afterAcc,\\n    bytes32 delayedAcc,\\n    uint256 afterDelayedMessagesRead,\\n    TimeBounds timeBounds,\\n    BatchDataLocation dataLocation\\n  );\\n\\n  event OwnerFunctionCalled(uint256 indexed id);\\n\\n  /// @dev a separate event that emits batch data when this isn't easily accessible in the tx.input\\n  event SequencerBatchData(uint256 indexed batchSequenceNumber, bytes data);\\n\\n  /// @dev a valid keyset was added\\n  event SetValidKeyset(bytes32 indexed keysetHash, bytes keysetBytes);\\n\\n  /// @dev a keyset was invalidated\\n  event InvalidateKeyset(bytes32 indexed keysetHash);\\n\\n  function totalDelayedMessagesRead() external view returns (uint256);\\n\\n  function bridge() external view returns (IBridge);\\n\\n  /// @dev The size of the batch header\\n  // solhint-disable-next-line func-name-mixedcase\\n  function HEADER_LENGTH() external view returns (uint256);\\n\\n  /// @dev If the first batch data byte after the header has this bit set,\\n  ///      the sequencer inbox has authenticated the data. Currently not used.\\n  // solhint-disable-next-line func-name-mixedcase\\n  function DATA_AUTHENTICATED_FLAG() external view returns (bytes1);\\n\\n  function rollup() external view returns (IOwnable);\\n\\n  function isBatchPoster(address) external view returns (bool);\\n\\n  struct DasKeySetInfo {\\n    bool isValidKeyset;\\n    uint64 creationBlock;\\n  }\\n\\n  // https://github.com/ethereum/solidity/issues/11826\\n  // function maxTimeVariation() external view returns (MaxTimeVariation calldata);\\n  // function dasKeySetInfo(bytes32) external view returns (DasKeySetInfo calldata);\\n\\n  /// @notice Force messages from the delayed inbox to be included in the chain\\n  ///         Callable by any address, but message can only be force-included after maxTimeVariation.delayBlocks and\\n  ///         maxTimeVariation.delaySeconds has elapsed. As part of normal behaviour the sequencer will include these\\n  ///         messages so it's only necessary to call this if the sequencer is down, or not including any delayed messages.\\n  /// @param _totalDelayedMessagesRead The total number of messages to read up to\\n  /// @param kind The kind of the last message to be included\\n  /// @param l1BlockAndTime The l1 block and the l1 timestamp of the last message to be included\\n  /// @param baseFeeL1 The l1 gas price of the last message to be included\\n  /// @param sender The sender of the last message to be included\\n  /// @param messageDataHash The messageDataHash of the last message to be included\\n  function forceInclusion(\\n    uint256 _totalDelayedMessagesRead,\\n    uint8 kind,\\n    uint64[2] calldata l1BlockAndTime,\\n    uint256 baseFeeL1,\\n    address sender,\\n    bytes32 messageDataHash\\n  ) external;\\n\\n  function inboxAccs(uint256 index) external view returns (bytes32);\\n\\n  function batchCount() external view returns (uint256);\\n\\n  function isValidKeysetHash(bytes32 ksHash) external view returns (bool);\\n\\n  /// @notice the creation block is intended to still be available after a keyset is deleted\\n  function getKeysetCreationBlock(bytes32 ksHash) external view returns (uint256);\\n\\n  // ---------- BatchPoster functions ----------\\n\\n  function addSequencerL2BatchFromOrigin(\\n    uint256 sequenceNumber,\\n    bytes calldata data,\\n    uint256 afterDelayedMessagesRead,\\n    IGasRefunder gasRefunder\\n  ) external;\\n\\n  function addSequencerL2Batch(\\n    uint256 sequenceNumber,\\n    bytes calldata data,\\n    uint256 afterDelayedMessagesRead,\\n    IGasRefunder gasRefunder\\n  ) external;\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  /**\\n   * @notice Set max delay for sequencer inbox\\n   * @param maxTimeVariation_ the maximum time variation parameters\\n   */\\n  function setMaxTimeVariation(MaxTimeVariation memory maxTimeVariation_) external;\\n\\n  /**\\n   * @notice Updates whether an address is authorized to be a batch poster at the sequencer inbox\\n   * @param addr the address\\n   * @param isBatchPoster_ if the specified address should be authorized as a batch poster\\n   */\\n  function setIsBatchPoster(address addr, bool isBatchPoster_) external;\\n\\n  /**\\n   * @notice Makes Data Availability Service keyset valid\\n   * @param keysetBytes bytes of the serialized keyset\\n   */\\n  function setValidKeyset(bytes calldata keysetBytes) external;\\n\\n  /**\\n   * @notice Invalidates a Data Availability Service keyset\\n   * @param ksHash hash of the keyset\\n   */\\n  function invalidateKeysetHash(bytes32 ksHash) external;\\n\\n  // ---------- initializer ----------\\n\\n  function initialize(IBridge bridge_, MaxTimeVariation calldata maxTimeVariation_) external;\\n}\\n\",\"keccak256\":\"0x7b8bab6cdb49d865c66edb0a9a6c302b0d4dbd4c55345dd8b245068d787bd447\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/libraries/IGasRefunder.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IGasRefunder {\\n  function onGasSpent(\\n    address payable spender,\\n    uint256 gasUsed,\\n    uint256 calldataSize\\n  ) external returns (bool success);\\n}\\n\\nabstract contract GasRefundEnabled {\\n  /// @dev this refunds the sender for execution costs of the tx\\n  /// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging\\n  /// for the `tx.input`. this avoids a possible attack where you generate large calldata from a contract and get over-refunded\\n  modifier refundsGas(IGasRefunder gasRefunder) {\\n    uint256 startGasLeft = gasleft();\\n    _;\\n    if (address(gasRefunder) != address(0)) {\\n      uint256 calldataSize = 0;\\n      // if triggered in a contract call, the spender may be overrefunded by appending dummy data to the call\\n      // so we check if it is a top level call, which would mean the sender paid calldata as part of tx.input\\n      // solhint-disable-next-line avoid-tx-origin\\n      if (msg.sender == tx.origin) {\\n        assembly {\\n          calldataSize := calldatasize()\\n        }\\n      }\\n      gasRefunder.onGasSpent(payable(msg.sender), startGasLeft - gasleft(), calldataSize);\\n    }\\n  }\\n}\\n\",\"keccak256\":\"0x130dcf15897094013a7ad2798926ec8381ab9b4b71101f085d6a92d85aba4558\",\"license\":\"BUSL-1.1\"}},\"version\":1}",
          "storageLayout": {
            "storage": [],
            "types": null
          },
          "userdoc": {
            "kind": "user",
            "methods": {
              "calculateRetryableSubmissionFee(uint256,uint256)": {
                "notice": "Get the L1 fee for submitting a retryable"
              },
              "createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": {
                "notice": "Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts"
              },
              "depositEth()": {
                "notice": "Deposit eth from L1 to L2"
              },
              "pause()": {
                "notice": "pauses all inbox functionality"
              },
              "sendL2Message(bytes)": {
                "notice": "Send a generic L2 message to the chain"
              },
              "sendL2MessageFromOrigin(bytes)": {
                "notice": "Send a generic L2 message to the chain"
              },
              "unpause()": {
                "notice": "unpauses all inbox functionality"
              },
              "unsafeCreateRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": {
                "notice": "Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts"
              }
            },
            "version": 1
          }
        }
      },
      "contracts/dependencies/arbitrum/interfaces/IOwnable.sol": {
        "IOwnable": {
          "abi": [
            {
              "inputs": [],
              "name": "owner",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "devdoc": {
            "kind": "dev",
            "methods": {},
            "version": 1
          },
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "gasEstimates": null,
            "methodIdentifiers": {
              "owner()": "8da5cb5b"
            }
          },
          "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/dependencies/arbitrum/interfaces/IOwnable.sol\":\"IOwnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/arbitrum/interfaces/IOwnable.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.4.21 <0.9.0;\\n\\ninterface IOwnable {\\n  function owner() external view returns (address);\\n}\\n\",\"keccak256\":\"0x9b6a2009e2751bd581fc2a1e0f677d97989ee0e6683432b4ff39bce9d9a79a91\",\"license\":\"BUSL-1.1\"}},\"version\":1}",
          "storageLayout": {
            "storage": [],
            "types": null
          },
          "userdoc": {
            "kind": "user",
            "methods": {},
            "version": 1
          }
        }
      },
      "contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol": {
        "ISequencerInbox": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageNum",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "InboxMessageDelivered",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageNum",
                  "type": "uint256"
                }
              ],
              "name": "InboxMessageDeliveredFromOrigin",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "bytes32",
                  "name": "keysetHash",
                  "type": "bytes32"
                }
              ],
              "name": "InvalidateKeyset",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "OwnerFunctionCalled",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "batchSequenceNumber",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "SequencerBatchData",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "batchSequenceNumber",
                  "type": "uint256"
                },
                {
                  "indexed": true,
                  "internalType": "bytes32",
                  "name": "beforeAcc",
                  "type": "bytes32"
                },
                {
                  "indexed": true,
                  "internalType": "bytes32",
                  "name": "afterAcc",
                  "type": "bytes32"
                },
                {
                  "indexed": false,
                  "internalType": "bytes32",
                  "name": "delayedAcc",
                  "type": "bytes32"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "afterDelayedMessagesRead",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint64",
                      "name": "minTimestamp",
                      "type": "uint64"
                    },
                    {
                      "internalType": "uint64",
                      "name": "maxTimestamp",
                      "type": "uint64"
                    },
                    {
                      "internalType": "uint64",
                      "name": "minBlockNumber",
                      "type": "uint64"
                    },
                    {
                      "internalType": "uint64",
                      "name": "maxBlockNumber",
                      "type": "uint64"
                    }
                  ],
                  "indexed": false,
                  "internalType": "struct ISequencerInbox.TimeBounds",
                  "name": "timeBounds",
                  "type": "tuple"
                },
                {
                  "indexed": false,
                  "internalType": "enum ISequencerInbox.BatchDataLocation",
                  "name": "dataLocation",
                  "type": "uint8"
                }
              ],
              "name": "SequencerBatchDelivered",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "bytes32",
                  "name": "keysetHash",
                  "type": "bytes32"
                },
                {
                  "indexed": false,
                  "internalType": "bytes",
                  "name": "keysetBytes",
                  "type": "bytes"
                }
              ],
              "name": "SetValidKeyset",
              "type": "event"
            },
            {
              "inputs": [],
              "name": "DATA_AUTHENTICATED_FLAG",
              "outputs": [
                {
                  "internalType": "bytes1",
                  "name": "",
                  "type": "bytes1"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "HEADER_LENGTH",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "sequenceNumber",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "afterDelayedMessagesRead",
                  "type": "uint256"
                },
                {
                  "internalType": "contract IGasRefunder",
                  "name": "gasRefunder",
                  "type": "address"
                }
              ],
              "name": "addSequencerL2Batch",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "sequenceNumber",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "afterDelayedMessagesRead",
                  "type": "uint256"
                },
                {
                  "internalType": "contract IGasRefunder",
                  "name": "gasRefunder",
                  "type": "address"
                }
              ],
              "name": "addSequencerL2BatchFromOrigin",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "batchCount",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "bridge",
              "outputs": [
                {
                  "internalType": "contract IBridge",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "_totalDelayedMessagesRead",
                  "type": "uint256"
                },
                {
                  "internalType": "uint8",
                  "name": "kind",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64[2]",
                  "name": "l1BlockAndTime",
                  "type": "uint64[2]"
                },
                {
                  "internalType": "uint256",
                  "name": "baseFeeL1",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "sender",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "messageDataHash",
                  "type": "bytes32"
                }
              ],
              "name": "forceInclusion",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes32",
                  "name": "ksHash",
                  "type": "bytes32"
                }
              ],
              "name": "getKeysetCreationBlock",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "index",
                  "type": "uint256"
                }
              ],
              "name": "inboxAccs",
              "outputs": [
                {
                  "internalType": "bytes32",
                  "name": "",
                  "type": "bytes32"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "contract IBridge",
                  "name": "bridge_",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "delayBlocks",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "futureBlocks",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "delaySeconds",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "futureSeconds",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct ISequencerInbox.MaxTimeVariation",
                  "name": "maxTimeVariation_",
                  "type": "tuple"
                }
              ],
              "name": "initialize",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes32",
                  "name": "ksHash",
                  "type": "bytes32"
                }
              ],
              "name": "invalidateKeysetHash",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "name": "isBatchPoster",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes32",
                  "name": "ksHash",
                  "type": "bytes32"
                }
              ],
              "name": "isValidKeysetHash",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "rollup",
              "outputs": [
                {
                  "internalType": "contract IOwnable",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "addr",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "isBatchPoster_",
                  "type": "bool"
                }
              ],
              "name": "setIsBatchPoster",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "delayBlocks",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "futureBlocks",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "delaySeconds",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "futureSeconds",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct ISequencerInbox.MaxTimeVariation",
                  "name": "maxTimeVariation_",
                  "type": "tuple"
                }
              ],
              "name": "setMaxTimeVariation",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes",
                  "name": "keysetBytes",
                  "type": "bytes"
                }
              ],
              "name": "setValidKeyset",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "totalDelayedMessagesRead",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "devdoc": {
            "events": {
              "InvalidateKeyset(bytes32)": {
                "details": "a keyset was invalidated"
              },
              "SequencerBatchData(uint256,bytes)": {
                "details": "a separate event that emits batch data when this isn't easily accessible in the tx.input"
              },
              "SetValidKeyset(bytes32,bytes)": {
                "details": "a valid keyset was added"
              }
            },
            "kind": "dev",
            "methods": {
              "DATA_AUTHENTICATED_FLAG()": {
                "details": "If the first batch data byte after the header has this bit set,      the sequencer inbox has authenticated the data. Currently not used."
              },
              "HEADER_LENGTH()": {
                "details": "The size of the batch header"
              },
              "forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32)": {
                "params": {
                  "_totalDelayedMessagesRead": "The total number of messages to read up to",
                  "baseFeeL1": "The l1 gas price of the last message to be included",
                  "kind": "The kind of the last message to be included",
                  "l1BlockAndTime": "The l1 block and the l1 timestamp of the last message to be included",
                  "messageDataHash": "The messageDataHash of the last message to be included",
                  "sender": "The sender of the last message to be included"
                }
              },
              "invalidateKeysetHash(bytes32)": {
                "params": {
                  "ksHash": "hash of the keyset"
                }
              },
              "setIsBatchPoster(address,bool)": {
                "params": {
                  "addr": "the address",
                  "isBatchPoster_": "if the specified address should be authorized as a batch poster"
                }
              },
              "setMaxTimeVariation((uint256,uint256,uint256,uint256))": {
                "params": {
                  "maxTimeVariation_": "the maximum time variation parameters"
                }
              },
              "setValidKeyset(bytes)": {
                "params": {
                  "keysetBytes": "bytes of the serialized keyset"
                }
              }
            },
            "version": 1
          },
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "gasEstimates": null,
            "methodIdentifiers": {
              "DATA_AUTHENTICATED_FLAG()": "e5a358c8",
              "HEADER_LENGTH()": "27957a49",
              "addSequencerL2Batch(uint256,bytes,uint256,address)": "61a93f8f",
              "addSequencerL2BatchFromOrigin(uint256,bytes,uint256,address)": "6f12b0c9",
              "batchCount()": "06f13056",
              "bridge()": "e78cea92",
              "forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32)": "f1981578",
              "getKeysetCreationBlock(bytes32)": "258f0495",
              "inboxAccs(uint256)": "d9dd67ab",
              "initialize(address,(uint256,uint256,uint256,uint256))": "1f7a92b2",
              "invalidateKeysetHash(bytes32)": "84420860",
              "isBatchPoster(address)": "71c3e6fe",
              "isValidKeysetHash(bytes32)": "1637be48",
              "rollup()": "cb23bcb5",
              "setIsBatchPoster(address,bool)": "6e7df3e7",
              "setMaxTimeVariation((uint256,uint256,uint256,uint256))": "b31761f8",
              "setValidKeyset(bytes)": "d1ce8da8",
              "totalDelayedMessagesRead()": "7fa3a40e"
            }
          },
          "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidateKeyset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"OwnerFunctionCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SequencerBatchData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"afterAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxBlockNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct ISequencerInbox.TimeBounds\",\"name\":\"timeBounds\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"enum ISequencerInbox.BatchDataLocation\",\"name\":\"dataLocation\",\"type\":\"uint8\"}],\"name\":\"SequencerBatchDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"SetValidKeyset\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DATA_AUTHENTICATED_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEADER_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contract IGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"}],\"name\":\"addSequencerL2Batch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contract IGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64[2]\",\"name\":\"l1BlockAndTime\",\"type\":\"uint64[2]\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"forceInclusion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"getKeysetCreationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"inboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"struct ISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"invalidateKeysetHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBatchPoster\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"isValidKeysetHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contract IOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBatchPoster_\",\"type\":\"bool\"}],\"name\":\"setIsBatchPoster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"struct ISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"}],\"name\":\"setMaxTimeVariation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"setValidKeyset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDelayedMessagesRead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"InvalidateKeyset(bytes32)\":{\"details\":\"a keyset was invalidated\"},\"SequencerBatchData(uint256,bytes)\":{\"details\":\"a separate event that emits batch data when this isn't easily accessible in the tx.input\"},\"SetValidKeyset(bytes32,bytes)\":{\"details\":\"a valid keyset was added\"}},\"kind\":\"dev\",\"methods\":{\"DATA_AUTHENTICATED_FLAG()\":{\"details\":\"If the first batch data byte after the header has this bit set,      the sequencer inbox has authenticated the data. Currently not used.\"},\"HEADER_LENGTH()\":{\"details\":\"The size of the batch header\"},\"forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32)\":{\"params\":{\"_totalDelayedMessagesRead\":\"The total number of messages to read up to\",\"baseFeeL1\":\"The l1 gas price of the last message to be included\",\"kind\":\"The kind of the last message to be included\",\"l1BlockAndTime\":\"The l1 block and the l1 timestamp of the last message to be included\",\"messageDataHash\":\"The messageDataHash of the last message to be included\",\"sender\":\"The sender of the last message to be included\"}},\"invalidateKeysetHash(bytes32)\":{\"params\":{\"ksHash\":\"hash of the keyset\"}},\"setIsBatchPoster(address,bool)\":{\"params\":{\"addr\":\"the address\",\"isBatchPoster_\":\"if the specified address should be authorized as a batch poster\"}},\"setMaxTimeVariation((uint256,uint256,uint256,uint256))\":{\"params\":{\"maxTimeVariation_\":\"the maximum time variation parameters\"}},\"setValidKeyset(bytes)\":{\"params\":{\"keysetBytes\":\"bytes of the serialized keyset\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32)\":{\"notice\":\"Force messages from the delayed inbox to be included in the chain         Callable by any address, but message can only be force-included after maxTimeVariation.delayBlocks and         maxTimeVariation.delaySeconds has elapsed. As part of normal behaviour the sequencer will include these         messages so it's only necessary to call this if the sequencer is down, or not including any delayed messages.\"},\"getKeysetCreationBlock(bytes32)\":{\"notice\":\"the creation block is intended to still be available after a keyset is deleted\"},\"invalidateKeysetHash(bytes32)\":{\"notice\":\"Invalidates a Data Availability Service keyset\"},\"setIsBatchPoster(address,bool)\":{\"notice\":\"Updates whether an address is authorized to be a batch poster at the sequencer inbox\"},\"setMaxTimeVariation((uint256,uint256,uint256,uint256))\":{\"notice\":\"Set max delay for sequencer inbox\"},\"setValidKeyset(bytes)\":{\"notice\":\"Makes Data Availability Service keyset valid\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol\":\"ISequencerInbox\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/arbitrum/interfaces/IBridge.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\nimport './IOwnable.sol';\\n\\ninterface IBridge {\\n  event MessageDelivered(\\n    uint256 indexed messageIndex,\\n    bytes32 indexed beforeInboxAcc,\\n    address inbox,\\n    uint8 kind,\\n    address sender,\\n    bytes32 messageDataHash,\\n    uint256 baseFeeL1,\\n    uint64 timestamp\\n  );\\n\\n  event BridgeCallTriggered(address indexed outbox, address indexed to, uint256 value, bytes data);\\n\\n  event InboxToggle(address indexed inbox, bool enabled);\\n\\n  event OutboxToggle(address indexed outbox, bool enabled);\\n\\n  event SequencerInboxUpdated(address newSequencerInbox);\\n\\n  function allowedDelayedInboxList(uint256) external returns (address);\\n\\n  function allowedOutboxList(uint256) external returns (address);\\n\\n  /// @dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\\n  function delayedInboxAccs(uint256) external view returns (bytes32);\\n\\n  /// @dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\\n  function sequencerInboxAccs(uint256) external view returns (bytes32);\\n\\n  function rollup() external view returns (IOwnable);\\n\\n  function sequencerInbox() external view returns (address);\\n\\n  function activeOutbox() external view returns (address);\\n\\n  function allowedDelayedInboxes(address inbox) external view returns (bool);\\n\\n  function allowedOutboxes(address outbox) external view returns (bool);\\n\\n  /**\\n   * @dev Enqueue a message in the delayed inbox accumulator.\\n   *      These messages are later sequenced in the SequencerInbox, either\\n   *      by the sequencer as part of a normal batch, or by force inclusion.\\n   */\\n  function enqueueDelayedMessage(\\n    uint8 kind,\\n    address sender,\\n    bytes32 messageDataHash\\n  ) external payable returns (uint256);\\n\\n  function executeCall(\\n    address to,\\n    uint256 value,\\n    bytes calldata data\\n  ) external returns (bool success, bytes memory returnData);\\n\\n  function delayedMessageCount() external view returns (uint256);\\n\\n  function sequencerMessageCount() external view returns (uint256);\\n\\n  // ---------- onlySequencerInbox functions ----------\\n\\n  function enqueueSequencerMessage(bytes32 dataHash, uint256 afterDelayedMessagesRead)\\n    external\\n    returns (\\n      uint256 seqMessageIndex,\\n      bytes32 beforeAcc,\\n      bytes32 delayedAcc,\\n      bytes32 acc\\n    );\\n\\n  /**\\n   * @dev Allows the sequencer inbox to submit a delayed message of the batchPostingReport type\\n   *      This is done through a separate function entrypoint instead of allowing the sequencer inbox\\n   *      to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either\\n   *      every delayed inbox or every sequencer inbox call.\\n   */\\n  function submitBatchSpendingReport(address batchPoster, bytes32 dataHash)\\n    external\\n    returns (uint256 msgNum);\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  function setSequencerInbox(address _sequencerInbox) external;\\n\\n  function setDelayedInbox(address inbox, bool enabled) external;\\n\\n  function setOutbox(address inbox, bool enabled) external;\\n\\n  // ---------- initializer ----------\\n\\n  function initialize(IOwnable rollup_) external;\\n}\\n\",\"keccak256\":\"0x6ef502fd06f8775452f060097d342465cbddb8ca2b88698ab4ed40050a63be77\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IDelayedMessageProvider {\\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\\n  event InboxMessageDelivered(uint256 indexed messageNum, bytes data);\\n\\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\\n  /// same as InboxMessageDelivered but the batch data is available in tx.input\\n  event InboxMessageDeliveredFromOrigin(uint256 indexed messageNum);\\n}\\n\",\"keccak256\":\"0x297281f276a4bf4b70c50663d4fc314fe67245f6027c7154f61e56886d679632\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IOwnable.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.4.21 <0.9.0;\\n\\ninterface IOwnable {\\n  function owner() external view returns (address);\\n}\\n\",\"keccak256\":\"0x9b6a2009e2751bd581fc2a1e0f677d97989ee0e6683432b4ff39bce9d9a79a91\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\npragma experimental ABIEncoderV2;\\n\\nimport '../libraries/IGasRefunder.sol';\\nimport './IDelayedMessageProvider.sol';\\nimport './IBridge.sol';\\n\\ninterface ISequencerInbox is IDelayedMessageProvider {\\n  struct MaxTimeVariation {\\n    uint256 delayBlocks;\\n    uint256 futureBlocks;\\n    uint256 delaySeconds;\\n    uint256 futureSeconds;\\n  }\\n\\n  struct TimeBounds {\\n    uint64 minTimestamp;\\n    uint64 maxTimestamp;\\n    uint64 minBlockNumber;\\n    uint64 maxBlockNumber;\\n  }\\n\\n  enum BatchDataLocation {\\n    TxInput,\\n    SeparateBatchEvent,\\n    NoData\\n  }\\n\\n  event SequencerBatchDelivered(\\n    uint256 indexed batchSequenceNumber,\\n    bytes32 indexed beforeAcc,\\n    bytes32 indexed afterAcc,\\n    bytes32 delayedAcc,\\n    uint256 afterDelayedMessagesRead,\\n    TimeBounds timeBounds,\\n    BatchDataLocation dataLocation\\n  );\\n\\n  event OwnerFunctionCalled(uint256 indexed id);\\n\\n  /// @dev a separate event that emits batch data when this isn't easily accessible in the tx.input\\n  event SequencerBatchData(uint256 indexed batchSequenceNumber, bytes data);\\n\\n  /// @dev a valid keyset was added\\n  event SetValidKeyset(bytes32 indexed keysetHash, bytes keysetBytes);\\n\\n  /// @dev a keyset was invalidated\\n  event InvalidateKeyset(bytes32 indexed keysetHash);\\n\\n  function totalDelayedMessagesRead() external view returns (uint256);\\n\\n  function bridge() external view returns (IBridge);\\n\\n  /// @dev The size of the batch header\\n  // solhint-disable-next-line func-name-mixedcase\\n  function HEADER_LENGTH() external view returns (uint256);\\n\\n  /// @dev If the first batch data byte after the header has this bit set,\\n  ///      the sequencer inbox has authenticated the data. Currently not used.\\n  // solhint-disable-next-line func-name-mixedcase\\n  function DATA_AUTHENTICATED_FLAG() external view returns (bytes1);\\n\\n  function rollup() external view returns (IOwnable);\\n\\n  function isBatchPoster(address) external view returns (bool);\\n\\n  struct DasKeySetInfo {\\n    bool isValidKeyset;\\n    uint64 creationBlock;\\n  }\\n\\n  // https://github.com/ethereum/solidity/issues/11826\\n  // function maxTimeVariation() external view returns (MaxTimeVariation calldata);\\n  // function dasKeySetInfo(bytes32) external view returns (DasKeySetInfo calldata);\\n\\n  /// @notice Force messages from the delayed inbox to be included in the chain\\n  ///         Callable by any address, but message can only be force-included after maxTimeVariation.delayBlocks and\\n  ///         maxTimeVariation.delaySeconds has elapsed. As part of normal behaviour the sequencer will include these\\n  ///         messages so it's only necessary to call this if the sequencer is down, or not including any delayed messages.\\n  /// @param _totalDelayedMessagesRead The total number of messages to read up to\\n  /// @param kind The kind of the last message to be included\\n  /// @param l1BlockAndTime The l1 block and the l1 timestamp of the last message to be included\\n  /// @param baseFeeL1 The l1 gas price of the last message to be included\\n  /// @param sender The sender of the last message to be included\\n  /// @param messageDataHash The messageDataHash of the last message to be included\\n  function forceInclusion(\\n    uint256 _totalDelayedMessagesRead,\\n    uint8 kind,\\n    uint64[2] calldata l1BlockAndTime,\\n    uint256 baseFeeL1,\\n    address sender,\\n    bytes32 messageDataHash\\n  ) external;\\n\\n  function inboxAccs(uint256 index) external view returns (bytes32);\\n\\n  function batchCount() external view returns (uint256);\\n\\n  function isValidKeysetHash(bytes32 ksHash) external view returns (bool);\\n\\n  /// @notice the creation block is intended to still be available after a keyset is deleted\\n  function getKeysetCreationBlock(bytes32 ksHash) external view returns (uint256);\\n\\n  // ---------- BatchPoster functions ----------\\n\\n  function addSequencerL2BatchFromOrigin(\\n    uint256 sequenceNumber,\\n    bytes calldata data,\\n    uint256 afterDelayedMessagesRead,\\n    IGasRefunder gasRefunder\\n  ) external;\\n\\n  function addSequencerL2Batch(\\n    uint256 sequenceNumber,\\n    bytes calldata data,\\n    uint256 afterDelayedMessagesRead,\\n    IGasRefunder gasRefunder\\n  ) external;\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  /**\\n   * @notice Set max delay for sequencer inbox\\n   * @param maxTimeVariation_ the maximum time variation parameters\\n   */\\n  function setMaxTimeVariation(MaxTimeVariation memory maxTimeVariation_) external;\\n\\n  /**\\n   * @notice Updates whether an address is authorized to be a batch poster at the sequencer inbox\\n   * @param addr the address\\n   * @param isBatchPoster_ if the specified address should be authorized as a batch poster\\n   */\\n  function setIsBatchPoster(address addr, bool isBatchPoster_) external;\\n\\n  /**\\n   * @notice Makes Data Availability Service keyset valid\\n   * @param keysetBytes bytes of the serialized keyset\\n   */\\n  function setValidKeyset(bytes calldata keysetBytes) external;\\n\\n  /**\\n   * @notice Invalidates a Data Availability Service keyset\\n   * @param ksHash hash of the keyset\\n   */\\n  function invalidateKeysetHash(bytes32 ksHash) external;\\n\\n  // ---------- initializer ----------\\n\\n  function initialize(IBridge bridge_, MaxTimeVariation calldata maxTimeVariation_) external;\\n}\\n\",\"keccak256\":\"0x7b8bab6cdb49d865c66edb0a9a6c302b0d4dbd4c55345dd8b245068d787bd447\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/libraries/IGasRefunder.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IGasRefunder {\\n  function onGasSpent(\\n    address payable spender,\\n    uint256 gasUsed,\\n    uint256 calldataSize\\n  ) external returns (bool success);\\n}\\n\\nabstract contract GasRefundEnabled {\\n  /// @dev this refunds the sender for execution costs of the tx\\n  /// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging\\n  /// for the `tx.input`. this avoids a possible attack where you generate large calldata from a contract and get over-refunded\\n  modifier refundsGas(IGasRefunder gasRefunder) {\\n    uint256 startGasLeft = gasleft();\\n    _;\\n    if (address(gasRefunder) != address(0)) {\\n      uint256 calldataSize = 0;\\n      // if triggered in a contract call, the spender may be overrefunded by appending dummy data to the call\\n      // so we check if it is a top level call, which would mean the sender paid calldata as part of tx.input\\n      // solhint-disable-next-line avoid-tx-origin\\n      if (msg.sender == tx.origin) {\\n        assembly {\\n          calldataSize := calldatasize()\\n        }\\n      }\\n      gasRefunder.onGasSpent(payable(msg.sender), startGasLeft - gasleft(), calldataSize);\\n    }\\n  }\\n}\\n\",\"keccak256\":\"0x130dcf15897094013a7ad2798926ec8381ab9b4b71101f085d6a92d85aba4558\",\"license\":\"BUSL-1.1\"}},\"version\":1}",
          "storageLayout": {
            "storage": [],
            "types": null
          },
          "userdoc": {
            "kind": "user",
            "methods": {
              "forceInclusion(uint256,uint8,uint64[2],uint256,address,bytes32)": {
                "notice": "Force messages from the delayed inbox to be included in the chain         Callable by any address, but message can only be force-included after maxTimeVariation.delayBlocks and         maxTimeVariation.delaySeconds has elapsed. As part of normal behaviour the sequencer will include these         messages so it's only necessary to call this if the sequencer is down, or not including any delayed messages."
              },
              "getKeysetCreationBlock(bytes32)": {
                "notice": "the creation block is intended to still be available after a keyset is deleted"
              },
              "invalidateKeysetHash(bytes32)": {
                "notice": "Invalidates a Data Availability Service keyset"
              },
              "setIsBatchPoster(address,bool)": {
                "notice": "Updates whether an address is authorized to be a batch poster at the sequencer inbox"
              },
              "setMaxTimeVariation((uint256,uint256,uint256,uint256))": {
                "notice": "Set max delay for sequencer inbox"
              },
              "setValidKeyset(bytes)": {
                "notice": "Makes Data Availability Service keyset valid"
              }
            },
            "version": 1
          }
        }
      },
      "contracts/dependencies/arbitrum/libraries/IGasRefunder.sol": {
        "GasRefundEnabled": {
          "abi": [],
          "devdoc": {
            "kind": "dev",
            "methods": {},
            "version": 1
          },
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "gasEstimates": null,
            "methodIdentifiers": {}
          },
          "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/dependencies/arbitrum/libraries/IGasRefunder.sol\":\"GasRefundEnabled\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/arbitrum/libraries/IGasRefunder.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IGasRefunder {\\n  function onGasSpent(\\n    address payable spender,\\n    uint256 gasUsed,\\n    uint256 calldataSize\\n  ) external returns (bool success);\\n}\\n\\nabstract contract GasRefundEnabled {\\n  /// @dev this refunds the sender for execution costs of the tx\\n  /// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging\\n  /// for the `tx.input`. this avoids a possible attack where you generate large calldata from a contract and get over-refunded\\n  modifier refundsGas(IGasRefunder gasRefunder) {\\n    uint256 startGasLeft = gasleft();\\n    _;\\n    if (address(gasRefunder) != address(0)) {\\n      uint256 calldataSize = 0;\\n      // if triggered in a contract call, the spender may be overrefunded by appending dummy data to the call\\n      // so we check if it is a top level call, which would mean the sender paid calldata as part of tx.input\\n      // solhint-disable-next-line avoid-tx-origin\\n      if (msg.sender == tx.origin) {\\n        assembly {\\n          calldataSize := calldatasize()\\n        }\\n      }\\n      gasRefunder.onGasSpent(payable(msg.sender), startGasLeft - gasleft(), calldataSize);\\n    }\\n  }\\n}\\n\",\"keccak256\":\"0x130dcf15897094013a7ad2798926ec8381ab9b4b71101f085d6a92d85aba4558\",\"license\":\"BUSL-1.1\"}},\"version\":1}",
          "storageLayout": {
            "storage": [],
            "types": null
          },
          "userdoc": {
            "kind": "user",
            "methods": {},
            "version": 1
          }
        },
        "IGasRefunder": {
          "abi": [
            {
              "inputs": [
                {
                  "internalType": "address payable",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "gasUsed",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "calldataSize",
                  "type": "uint256"
                }
              ],
              "name": "onGasSpent",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "success",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "devdoc": {
            "kind": "dev",
            "methods": {},
            "version": 1
          },
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "gasEstimates": null,
            "methodIdentifiers": {
              "onGasSpent(address,uint256,uint256)": "e3db8a49"
            }
          },
          "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"calldataSize\",\"type\":\"uint256\"}],\"name\":\"onGasSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/dependencies/arbitrum/libraries/IGasRefunder.sol\":\"IGasRefunder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/arbitrum/libraries/IGasRefunder.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IGasRefunder {\\n  function onGasSpent(\\n    address payable spender,\\n    uint256 gasUsed,\\n    uint256 calldataSize\\n  ) external returns (bool success);\\n}\\n\\nabstract contract GasRefundEnabled {\\n  /// @dev this refunds the sender for execution costs of the tx\\n  /// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging\\n  /// for the `tx.input`. this avoids a possible attack where you generate large calldata from a contract and get over-refunded\\n  modifier refundsGas(IGasRefunder gasRefunder) {\\n    uint256 startGasLeft = gasleft();\\n    _;\\n    if (address(gasRefunder) != address(0)) {\\n      uint256 calldataSize = 0;\\n      // if triggered in a contract call, the spender may be overrefunded by appending dummy data to the call\\n      // so we check if it is a top level call, which would mean the sender paid calldata as part of tx.input\\n      // solhint-disable-next-line avoid-tx-origin\\n      if (msg.sender == tx.origin) {\\n        assembly {\\n          calldataSize := calldatasize()\\n        }\\n      }\\n      gasRefunder.onGasSpent(payable(msg.sender), startGasLeft - gasleft(), calldataSize);\\n    }\\n  }\\n}\\n\",\"keccak256\":\"0x130dcf15897094013a7ad2798926ec8381ab9b4b71101f085d6a92d85aba4558\",\"license\":\"BUSL-1.1\"}},\"version\":1}",
          "storageLayout": {
            "storage": [],
            "types": null
          },
          "userdoc": {
            "kind": "user",
            "methods": {},
            "version": 1
          }
        }
      },
      "contracts/mocks/MockInbox.sol": {
        "MockInbox": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageNum",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "InboxMessageDelivered",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "messageNum",
                  "type": "uint256"
                }
              ],
              "name": "InboxMessageDeliveredFromOrigin",
              "type": "event"
            },
            {
              "inputs": [],
              "name": "bridge",
              "outputs": [
                {
                  "internalType": "contract IBridge",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "dataLength",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "name": "calculateRetryableSubmissionFee",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "gasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "createRetryableTicket",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "depositEth",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "contract IBridge",
                  "name": "_bridge",
                  "type": "address"
                },
                {
                  "internalType": "contract ISequencerInbox",
                  "name": "_sequencerInbox",
                  "type": "address"
                }
              ],
              "name": "initialize",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "messageNum",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "pause",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "contract IBridge",
                  "name": "_bridge",
                  "type": "address"
                }
              ],
              "name": "postUpgradeInit",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "name": "sendContractTransaction",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "name": "sendL1FundedContractTransaction",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "name": "sendL1FundedUnsignedTransaction",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "name": "sendL2Message",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "name": "sendL2MessageFromOrigin",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "name": "sendUnsignedTransaction",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "sequencerInbox",
              "outputs": [
                {
                  "internalType": "contract ISequencerInbox",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "msgNum",
                  "type": "uint256"
                }
              ],
              "name": "setMessageNum",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "unpause",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "name": "unsafeCreateRetryableTicket",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            }
          ],
          "devdoc": {
            "kind": "dev",
            "methods": {
              "depositEth()": {
                "details": "This does not trigger the fallback function when receiving in the L2 side.      Look into retryable tickets if you are interested in this functionality.This function should not be called inside contract constructors"
              },
              "postUpgradeInit(address)": {
                "details": "function to be called one time during the inbox upgrade process      this is used to fix the storage slots"
              }
            },
            "version": 1
          },
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "608060405234801561001057600080fd5b50610701806100206000396000f3fe6080604052600436106101095760003560e01c806367ef3ab811610095578063a66b327d11610064578063a66b327d1461025a578063b75436bb1461010e578063c474d2c51461027f578063e78cea921461029d578063ee35f3271461029d57600080fd5b806367ef3ab8146102075780636e6e8a6a146102225780638456cb59146101445780638a631aa61461023f57600080fd5b80635075788b116100dc5780635075788b1461017b57806356367114146101a457806358c5261e146101ba5780635e916758146101da578063679b6ded146101f457600080fd5b80631fe927cf1461010e5780633f4ba83a14610144578063439370b114610154578063485cc9551461015c575b600080fd5b34801561011a57600080fd5b50610131610129366004610378565b505060005490565b6040519081526020015b60405180910390f35b34801561015057600080fd5b505b005b600054610131565b34801561016857600080fd5b506101526101773660046103cf565b5050565b34801561018757600080fd5b50610131610196366004610408565b600054979650505050505050565b3480156101b057600080fd5b5061013160005481565b3480156101c657600080fd5b506101526101d5366004610485565b600055565b6101316101e836600461049e565b60005495945050505050565b610131610202366004610508565b6102b9565b6101316102153660046105ad565b6000549695505050505050565b610131610230366004610508565b60009998505050505050505050565b34801561024b57600080fd5b50610131610215366004610620565b34801561026657600080fd5b50610131610275366004610675565b620f424092915050565b34801561028b57600080fd5b5061015261029a366004610697565b50565b3480156102a957600080fd5b506040516001815260200161013b565b6000808a6001600160a01b03168685856040516102d79291906106bb565b60006040518083038160008787f1925050503d8060008114610315576040519150601f19603f3d011682016040523d82523d6000602084013e61031a565b606091505b50506000549c9b505050505050505050505050565b60008083601f84011261034157600080fd5b50813567ffffffffffffffff81111561035957600080fd5b60208301915083602082850101111561037157600080fd5b9250929050565b6000806020838503121561038b57600080fd5b823567ffffffffffffffff8111156103a257600080fd5b6103ae8582860161032f565b90969095509350505050565b6001600160a01b038116811461029a57600080fd5b600080604083850312156103e257600080fd5b82356103ed816103ba565b915060208301356103fd816103ba565b809150509250929050565b600080600080600080600060c0888a03121561042357600080fd5b8735965060208801359550604088013594506060880135610443816103ba565b93506080880135925060a088013567ffffffffffffffff81111561046657600080fd5b6104728a828b0161032f565b989b979a50959850939692959293505050565b60006020828403121561049757600080fd5b5035919050565b6000806000806000608086880312156104b657600080fd5b853594506020860135935060408601356104cf816103ba565b9250606086013567ffffffffffffffff8111156104eb57600080fd5b6104f78882890161032f565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561052757600080fd5b8935610532816103ba565b985060208a0135975060408a0135965060608a0135610550816103ba565b955060808a0135610560816103ba565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff81111561058a57600080fd5b6105968c828d0161032f565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156105c657600080fd5b86359550602087013594506040870135935060608701356105e6816103ba565b9250608087013567ffffffffffffffff81111561060257600080fd5b61060e89828a0161032f565b979a9699509497509295939492505050565b60008060008060008060a0878903121561063957600080fd5b86359550602087013594506040870135610652816103ba565b935060608701359250608087013567ffffffffffffffff81111561060257600080fd5b6000806040838503121561068857600080fd5b50508035926020909101359150565b6000602082840312156106a957600080fd5b81356106b4816103ba565b9392505050565b818382376000910190815291905056fea2646970667358221220c54da1d607a54fb13b2deb6e56345f01a1d4d8787c87b5cdc434394405f9f57a64736f6c634300080a0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x701 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x109 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x67EF3AB8 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xA66B327D GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xA66B327D EQ PUSH2 0x25A JUMPI DUP1 PUSH4 0xB75436BB EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0xC474D2C5 EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xE78CEA92 EQ PUSH2 0x29D JUMPI DUP1 PUSH4 0xEE35F327 EQ PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x67EF3AB8 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x6E6E8A6A EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x8A631AA6 EQ PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5075788B GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x5075788B EQ PUSH2 0x17B JUMPI DUP1 PUSH4 0x56367114 EQ PUSH2 0x1A4 JUMPI DUP1 PUSH4 0x58C5261E EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x5E916758 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x679B6DED EQ PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FE927CF EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x439370B1 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x15C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x378 JUMP JUMPDEST POP POP PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x131 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x152 PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CF JUMP JUMPDEST POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x408 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x152 PUSH2 0x1D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x131 PUSH2 0x1E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x131 PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0x508 JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x131 PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0x5AD JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x131 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x508 JUMP JUMPDEST PUSH1 0x0 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0x620 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x266 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x275 CALLDATASIZE PUSH1 0x4 PUSH2 0x675 JUMP JUMPDEST PUSH3 0xF4240 SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x152 PUSH2 0x29A CALLDATASIZE PUSH1 0x4 PUSH2 0x697 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2D7 SWAP3 SWAP2 SWAP1 PUSH2 0x6BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP8 CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x31A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP PUSH1 0x0 SLOAD SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x341 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x371 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3AE DUP6 DUP3 DUP7 ADD PUSH2 0x32F JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x29A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3ED DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3FD DUP2 PUSH2 0x3BA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x443 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x472 DUP11 DUP3 DUP12 ADD PUSH2 0x32F JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x4CF DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4F7 DUP9 DUP3 DUP10 ADD PUSH2 0x32F JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH2 0x532 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP7 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH2 0x550 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD PUSH2 0x560 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP3 POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x58A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x596 DUP13 DUP3 DUP14 ADD PUSH2 0x32F JUMP JUMPDEST SWAP2 POP DUP1 SWAP4 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0x5E6 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60E DUP10 DUP3 DUP11 ADD PUSH2 0x32F JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x639 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0x652 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x6B4 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0x4D LOG1 0xD6 SMOD 0xA5 0x4F 0xB1 EXTCODESIZE 0x2D 0xEB PUSH15 0x56345F01A1D4D8787C87B5CDC43439 DIFFICULTY SDIV 0xF9 CREATE2 PUSH27 0x64736F6C634300080A003300000000000000000000000000000000 ",
              "sourceMap": "297:2835:6:-:0;;;;;;;;;;;;;;;;;;;"
            },
            "deployedBytecode": {
              "functionDebugData": {
                "@bridge_716": {
                  "entryPoint": null,
                  "id": 716,
                  "parameterSlots": 0,
                  "returnSlots": 1
                },
                "@calculateRetryableSubmissionFee_842": {
                  "entryPoint": null,
                  "id": 842,
                  "parameterSlots": 2,
                  "returnSlots": 1
                },
                "@createRetryableTicket_889": {
                  "entryPoint": 697,
                  "id": 889,
                  "parameterSlots": 9,
                  "returnSlots": 1
                },
                "@depositEth_851": {
                  "entryPoint": null,
                  "id": 851,
                  "parameterSlots": 0,
                  "returnSlots": 1
                },
                "@initialize_941": {
                  "entryPoint": null,
                  "id": 941,
                  "parameterSlots": 2,
                  "returnSlots": 0
                },
                "@messageNum_691": {
                  "entryPoint": null,
                  "id": 691,
                  "parameterSlots": 0,
                  "returnSlots": 0
                },
                "@pause_917": {
                  "entryPoint": null,
                  "id": 917,
                  "parameterSlots": 0,
                  "returnSlots": 0
                },
                "@postUpgradeInit_930": {
                  "entryPoint": null,
                  "id": 930,
                  "parameterSlots": 1,
                  "returnSlots": 0
                },
                "@sendContractTransaction_829": {
                  "entryPoint": null,
                  "id": 829,
                  "parameterSlots": 6,
                  "returnSlots": 1
                },
                "@sendL1FundedContractTransaction_789": {
                  "entryPoint": null,
                  "id": 789,
                  "parameterSlots": 5,
                  "returnSlots": 1
                },
                "@sendL1FundedUnsignedTransaction_772": {
                  "entryPoint": null,
                  "id": 772,
                  "parameterSlots": 6,
                  "returnSlots": 1
                },
                "@sendL2MessageFromOrigin_742": {
                  "entryPoint": null,
                  "id": 742,
                  "parameterSlots": 2,
                  "returnSlots": 1
                },
                "@sendL2Message_753": {
                  "entryPoint": null,
                  "id": 753,
                  "parameterSlots": 2,
                  "returnSlots": 1
                },
                "@sendUnsignedTransaction_810": {
                  "entryPoint": null,
                  "id": 810,
                  "parameterSlots": 7,
                  "returnSlots": 1
                },
                "@sequencerInbox_731": {
                  "entryPoint": null,
                  "id": 731,
                  "parameterSlots": 0,
                  "returnSlots": 1
                },
                "@setMessageNum_701": {
                  "entryPoint": null,
                  "id": 701,
                  "parameterSlots": 1,
                  "returnSlots": 0
                },
                "@unpause_922": {
                  "entryPoint": null,
                  "id": 922,
                  "parameterSlots": 0,
                  "returnSlots": 0
                },
                "@unsafeCreateRetryableTicket_912": {
                  "entryPoint": null,
                  "id": 912,
                  "parameterSlots": 9,
                  "returnSlots": 1
                },
                "abi_decode_bytes_calldata": {
                  "entryPoint": 815,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 2
                },
                "abi_decode_tuple_t_addresst_uint256t_uint256t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr": {
                  "entryPoint": 1288,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 9
                },
                "abi_decode_tuple_t_bytes_calldata_ptr": {
                  "entryPoint": 888,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 2
                },
                "abi_decode_tuple_t_contract$_IBridge_$192": {
                  "entryPoint": 1687,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 1
                },
                "abi_decode_tuple_t_contract$_IBridge_$192t_contract$_ISequencerInbox_$613": {
                  "entryPoint": 975,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 2
                },
                "abi_decode_tuple_t_uint256": {
                  "entryPoint": 1157,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 1
                },
                "abi_decode_tuple_t_uint256t_uint256": {
                  "entryPoint": 1653,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 2
                },
                "abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr": {
                  "entryPoint": 1182,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 5
                },
                "abi_decode_tuple_t_uint256t_uint256t_addresst_uint256t_bytes_calldata_ptr": {
                  "entryPoint": 1568,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 6
                },
                "abi_decode_tuple_t_uint256t_uint256t_uint256t_addresst_bytes_calldata_ptr": {
                  "entryPoint": 1453,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 6
                },
                "abi_decode_tuple_t_uint256t_uint256t_uint256t_addresst_uint256t_bytes_calldata_ptr": {
                  "entryPoint": 1032,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 7
                },
                "abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
                  "entryPoint": 1723,
                  "id": null,
                  "parameterSlots": 3,
                  "returnSlots": 1
                },
                "abi_encode_tuple_t_contract$_IBridge_$192__to_t_address__fromStack_reversed": {
                  "entryPoint": null,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 1
                },
                "abi_encode_tuple_t_contract$_ISequencerInbox_$613__to_t_address__fromStack_reversed": {
                  "entryPoint": null,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 1
                },
                "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
                  "entryPoint": null,
                  "id": null,
                  "parameterSlots": 2,
                  "returnSlots": 1
                },
                "validator_revert_contract_IBridge": {
                  "entryPoint": 954,
                  "id": null,
                  "parameterSlots": 1,
                  "returnSlots": 0
                }
              },
              "generatedSources": [
                {
                  "ast": {
                    "nodeType": "YulBlock",
                    "src": "0:7188:7",
                    "statements": [
                      {
                        "nodeType": "YulBlock",
                        "src": "6:3:7",
                        "statements": []
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "86:275:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "135:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "144:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "147:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "137:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "137:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "137:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "offset",
                                            "nodeType": "YulIdentifier",
                                            "src": "114:6:7"
                                          },
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "122:4:7",
                                            "type": "",
                                            "value": "0x1f"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "110:3:7"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "110:17:7"
                                      },
                                      {
                                        "name": "end",
                                        "nodeType": "YulIdentifier",
                                        "src": "129:3:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "slt",
                                      "nodeType": "YulIdentifier",
                                      "src": "106:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "106:27:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "99:6:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "99:35:7"
                              },
                              "nodeType": "YulIf",
                              "src": "96:55:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "160:30:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "183:6:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "170:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "170:20:7"
                              },
                              "variableNames": [
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "160:6:7"
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "233:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "242:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "245:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "235:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "235:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "235:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "205:6:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "213:18:7",
                                    "type": "",
                                    "value": "0xffffffffffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "202:2:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "202:30:7"
                              },
                              "nodeType": "YulIf",
                              "src": "199:50:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "258:29:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "274:6:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "282:4:7",
                                    "type": "",
                                    "value": "0x20"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "270:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "270:17:7"
                              },
                              "variableNames": [
                                {
                                  "name": "arrayPos",
                                  "nodeType": "YulIdentifier",
                                  "src": "258:8:7"
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "339:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "348:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "351:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "341:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "341:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "341:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "offset",
                                            "nodeType": "YulIdentifier",
                                            "src": "310:6:7"
                                          },
                                          {
                                            "name": "length",
                                            "nodeType": "YulIdentifier",
                                            "src": "318:6:7"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "306:3:7"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "306:19:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "327:4:7",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "302:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "302:30:7"
                                  },
                                  {
                                    "name": "end",
                                    "nodeType": "YulIdentifier",
                                    "src": "334:3:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "299:2:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "299:39:7"
                              },
                              "nodeType": "YulIf",
                              "src": "296:59:7"
                            }
                          ]
                        },
                        "name": "abi_decode_bytes_calldata",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "offset",
                            "nodeType": "YulTypedName",
                            "src": "49:6:7",
                            "type": ""
                          },
                          {
                            "name": "end",
                            "nodeType": "YulTypedName",
                            "src": "57:3:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "arrayPos",
                            "nodeType": "YulTypedName",
                            "src": "65:8:7",
                            "type": ""
                          },
                          {
                            "name": "length",
                            "nodeType": "YulTypedName",
                            "src": "75:6:7",
                            "type": ""
                          }
                        ],
                        "src": "14:347:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "455:320:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "501:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "510:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "513:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "503:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "503:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "503:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "476:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "485:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "472:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "472:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "497:2:7",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "468:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "468:32:7"
                              },
                              "nodeType": "YulIf",
                              "src": "465:52:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "526:37:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "553:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "540:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "540:23:7"
                              },
                              "variables": [
                                {
                                  "name": "offset",
                                  "nodeType": "YulTypedName",
                                  "src": "530:6:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "606:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "615:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "618:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "608:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "608:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "608:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "578:6:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "586:18:7",
                                    "type": "",
                                    "value": "0xffffffffffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "575:2:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "575:30:7"
                              },
                              "nodeType": "YulIf",
                              "src": "572:50:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "631:84:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "687:9:7"
                                      },
                                      {
                                        "name": "offset",
                                        "nodeType": "YulIdentifier",
                                        "src": "698:6:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "683:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "683:22:7"
                                  },
                                  {
                                    "name": "dataEnd",
                                    "nodeType": "YulIdentifier",
                                    "src": "707:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_decode_bytes_calldata",
                                  "nodeType": "YulIdentifier",
                                  "src": "657:25:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "657:58:7"
                              },
                              "variables": [
                                {
                                  "name": "value0_1",
                                  "nodeType": "YulTypedName",
                                  "src": "635:8:7",
                                  "type": ""
                                },
                                {
                                  "name": "value1_1",
                                  "nodeType": "YulTypedName",
                                  "src": "645:8:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "724:18:7",
                              "value": {
                                "name": "value0_1",
                                "nodeType": "YulIdentifier",
                                "src": "734:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "724:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "751:18:7",
                              "value": {
                                "name": "value1_1",
                                "nodeType": "YulIdentifier",
                                "src": "761:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value1",
                                  "nodeType": "YulIdentifier",
                                  "src": "751:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_bytes_calldata_ptr",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "413:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "424:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "436:6:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "444:6:7",
                            "type": ""
                          }
                        ],
                        "src": "366:409:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "881:76:7",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "891:26:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "903:9:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "914:2:7",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "899:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "899:18:7"
                              },
                              "variableNames": [
                                {
                                  "name": "tail",
                                  "nodeType": "YulIdentifier",
                                  "src": "891:4:7"
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "933:9:7"
                                  },
                                  {
                                    "name": "value0",
                                    "nodeType": "YulIdentifier",
                                    "src": "944:6:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "926:6:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "926:25:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "926:25:7"
                            }
                          ]
                        },
                        "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "850:9:7",
                            "type": ""
                          },
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "861:6:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "tail",
                            "nodeType": "YulTypedName",
                            "src": "872:4:7",
                            "type": ""
                          }
                        ],
                        "src": "780:177:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "1016:86:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "1080:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1089:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1092:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "1082:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1082:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1082:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "value",
                                        "nodeType": "YulIdentifier",
                                        "src": "1039:5:7"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "value",
                                            "nodeType": "YulIdentifier",
                                            "src": "1050:5:7"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "kind": "number",
                                                    "nodeType": "YulLiteral",
                                                    "src": "1065:3:7",
                                                    "type": "",
                                                    "value": "160"
                                                  },
                                                  {
                                                    "kind": "number",
                                                    "nodeType": "YulLiteral",
                                                    "src": "1070:1:7",
                                                    "type": "",
                                                    "value": "1"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shl",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "1061:3:7"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "1061:11:7"
                                              },
                                              {
                                                "kind": "number",
                                                "nodeType": "YulLiteral",
                                                "src": "1074:1:7",
                                                "type": "",
                                                "value": "1"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "sub",
                                              "nodeType": "YulIdentifier",
                                              "src": "1057:3:7"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "1057:19:7"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "1046:3:7"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "1046:31:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "eq",
                                      "nodeType": "YulIdentifier",
                                      "src": "1036:2:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1036:42:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "1029:6:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1029:50:7"
                              },
                              "nodeType": "YulIf",
                              "src": "1026:70:7"
                            }
                          ]
                        },
                        "name": "validator_revert_contract_IBridge",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "1005:5:7",
                            "type": ""
                          }
                        ],
                        "src": "962:140:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "1232:319:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "1278:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1287:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1290:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "1280:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1280:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1280:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "1253:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "1262:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "1249:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1249:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1274:2:7",
                                    "type": "",
                                    "value": "64"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "1245:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1245:32:7"
                              },
                              "nodeType": "YulIf",
                              "src": "1242:52:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "1303:36:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "1329:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "1316:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1316:23:7"
                              },
                              "variables": [
                                {
                                  "name": "value",
                                  "nodeType": "YulTypedName",
                                  "src": "1307:5:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "1382:5:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "1348:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1348:40:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "1348:40:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "1397:15:7",
                              "value": {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "1407:5:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "1397:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "1421:47:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "1453:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1464:2:7",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "1449:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1449:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "1436:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1436:32:7"
                              },
                              "variables": [
                                {
                                  "name": "value_1",
                                  "nodeType": "YulTypedName",
                                  "src": "1425:7:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "1511:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "1477:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1477:42:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "1477:42:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "1528:17:7",
                              "value": {
                                "name": "value_1",
                                "nodeType": "YulIdentifier",
                                "src": "1538:7:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value1",
                                  "nodeType": "YulIdentifier",
                                  "src": "1528:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_contract$_IBridge_$192t_contract$_ISequencerInbox_$613",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "1190:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "1201:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "1213:6:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "1221:6:7",
                            "type": ""
                          }
                        ],
                        "src": "1107:444:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "1730:654:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "1777:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1786:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1789:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "1779:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1779:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1779:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "1751:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "1760:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "1747:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1747:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1772:3:7",
                                    "type": "",
                                    "value": "192"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "1743:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1743:33:7"
                              },
                              "nodeType": "YulIf",
                              "src": "1740:53:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "1802:33:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "1825:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "1812:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1812:23:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "1802:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "1844:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "1871:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1882:2:7",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "1867:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1867:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "1854:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1854:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value1",
                                  "nodeType": "YulIdentifier",
                                  "src": "1844:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "1895:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "1922:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1933:2:7",
                                        "type": "",
                                        "value": "64"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "1918:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1918:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "1905:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1905:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value2",
                                  "nodeType": "YulIdentifier",
                                  "src": "1895:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "1946:45:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "1976:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1987:2:7",
                                        "type": "",
                                        "value": "96"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "1972:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1972:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "1959:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1959:32:7"
                              },
                              "variables": [
                                {
                                  "name": "value",
                                  "nodeType": "YulTypedName",
                                  "src": "1950:5:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "2034:5:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "2000:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2000:40:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "2000:40:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "2049:15:7",
                              "value": {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "2059:5:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value3",
                                  "nodeType": "YulIdentifier",
                                  "src": "2049:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "2073:43:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "2100:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "2111:3:7",
                                        "type": "",
                                        "value": "128"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "2096:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2096:19:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "2083:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2083:33:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value4",
                                  "nodeType": "YulIdentifier",
                                  "src": "2073:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "2125:47:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "2156:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "2167:3:7",
                                        "type": "",
                                        "value": "160"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "2152:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2152:19:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "2139:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2139:33:7"
                              },
                              "variables": [
                                {
                                  "name": "offset",
                                  "nodeType": "YulTypedName",
                                  "src": "2129:6:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "2215:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "2224:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "2227:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "2217:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "2217:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "2217:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "2187:6:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2195:18:7",
                                    "type": "",
                                    "value": "0xffffffffffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "2184:2:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2184:30:7"
                              },
                              "nodeType": "YulIf",
                              "src": "2181:50:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "2240:84:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "2296:9:7"
                                      },
                                      {
                                        "name": "offset",
                                        "nodeType": "YulIdentifier",
                                        "src": "2307:6:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "2292:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2292:22:7"
                                  },
                                  {
                                    "name": "dataEnd",
                                    "nodeType": "YulIdentifier",
                                    "src": "2316:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_decode_bytes_calldata",
                                  "nodeType": "YulIdentifier",
                                  "src": "2266:25:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2266:58:7"
                              },
                              "variables": [
                                {
                                  "name": "value5_1",
                                  "nodeType": "YulTypedName",
                                  "src": "2244:8:7",
                                  "type": ""
                                },
                                {
                                  "name": "value6_1",
                                  "nodeType": "YulTypedName",
                                  "src": "2254:8:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "2333:18:7",
                              "value": {
                                "name": "value5_1",
                                "nodeType": "YulIdentifier",
                                "src": "2343:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value5",
                                  "nodeType": "YulIdentifier",
                                  "src": "2333:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "2360:18:7",
                              "value": {
                                "name": "value6_1",
                                "nodeType": "YulIdentifier",
                                "src": "2370:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value6",
                                  "nodeType": "YulIdentifier",
                                  "src": "2360:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_uint256t_uint256t_uint256t_addresst_uint256t_bytes_calldata_ptr",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "1648:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "1659:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "1671:6:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "1679:6:7",
                            "type": ""
                          },
                          {
                            "name": "value2",
                            "nodeType": "YulTypedName",
                            "src": "1687:6:7",
                            "type": ""
                          },
                          {
                            "name": "value3",
                            "nodeType": "YulTypedName",
                            "src": "1695:6:7",
                            "type": ""
                          },
                          {
                            "name": "value4",
                            "nodeType": "YulTypedName",
                            "src": "1703:6:7",
                            "type": ""
                          },
                          {
                            "name": "value5",
                            "nodeType": "YulTypedName",
                            "src": "1711:6:7",
                            "type": ""
                          },
                          {
                            "name": "value6",
                            "nodeType": "YulTypedName",
                            "src": "1719:6:7",
                            "type": ""
                          }
                        ],
                        "src": "1556:828:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "2459:110:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "2505:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "2514:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "2517:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "2507:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "2507:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "2507:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "2480:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "2489:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "2476:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2476:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2501:2:7",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "2472:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2472:32:7"
                              },
                              "nodeType": "YulIf",
                              "src": "2469:52:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "2530:33:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "2553:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "2540:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2540:23:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "2530:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_uint256",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "2425:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "2436:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "2448:6:7",
                            "type": ""
                          }
                        ],
                        "src": "2389:180:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "2714:550:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "2761:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "2770:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "2773:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "2763:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "2763:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "2763:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "2735:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "2744:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "2731:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2731:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2756:3:7",
                                    "type": "",
                                    "value": "128"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "2727:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2727:33:7"
                              },
                              "nodeType": "YulIf",
                              "src": "2724:53:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "2786:33:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "2809:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "2796:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2796:23:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "2786:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "2828:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "2855:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "2866:2:7",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "2851:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2851:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "2838:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2838:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value1",
                                  "nodeType": "YulIdentifier",
                                  "src": "2828:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "2879:45:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "2909:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "2920:2:7",
                                        "type": "",
                                        "value": "64"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "2905:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2905:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "2892:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2892:32:7"
                              },
                              "variables": [
                                {
                                  "name": "value",
                                  "nodeType": "YulTypedName",
                                  "src": "2883:5:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "2967:5:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "2933:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2933:40:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "2933:40:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "2982:15:7",
                              "value": {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "2992:5:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value2",
                                  "nodeType": "YulIdentifier",
                                  "src": "2982:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "3006:46:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "3037:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3048:2:7",
                                        "type": "",
                                        "value": "96"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3033:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3033:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "3020:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3020:32:7"
                              },
                              "variables": [
                                {
                                  "name": "offset",
                                  "nodeType": "YulTypedName",
                                  "src": "3010:6:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "3095:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3104:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3107:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "3097:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "3097:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "3097:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "3067:6:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3075:18:7",
                                    "type": "",
                                    "value": "0xffffffffffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "3064:2:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3064:30:7"
                              },
                              "nodeType": "YulIf",
                              "src": "3061:50:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "3120:84:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "3176:9:7"
                                      },
                                      {
                                        "name": "offset",
                                        "nodeType": "YulIdentifier",
                                        "src": "3187:6:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3172:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3172:22:7"
                                  },
                                  {
                                    "name": "dataEnd",
                                    "nodeType": "YulIdentifier",
                                    "src": "3196:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_decode_bytes_calldata",
                                  "nodeType": "YulIdentifier",
                                  "src": "3146:25:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3146:58:7"
                              },
                              "variables": [
                                {
                                  "name": "value3_1",
                                  "nodeType": "YulTypedName",
                                  "src": "3124:8:7",
                                  "type": ""
                                },
                                {
                                  "name": "value4_1",
                                  "nodeType": "YulTypedName",
                                  "src": "3134:8:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "3213:18:7",
                              "value": {
                                "name": "value3_1",
                                "nodeType": "YulIdentifier",
                                "src": "3223:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value3",
                                  "nodeType": "YulIdentifier",
                                  "src": "3213:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "3240:18:7",
                              "value": {
                                "name": "value4_1",
                                "nodeType": "YulIdentifier",
                                "src": "3250:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value4",
                                  "nodeType": "YulIdentifier",
                                  "src": "3240:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "2648:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "2659:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "2671:6:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "2679:6:7",
                            "type": ""
                          },
                          {
                            "name": "value2",
                            "nodeType": "YulTypedName",
                            "src": "2687:6:7",
                            "type": ""
                          },
                          {
                            "name": "value3",
                            "nodeType": "YulTypedName",
                            "src": "2695:6:7",
                            "type": ""
                          },
                          {
                            "name": "value4",
                            "nodeType": "YulTypedName",
                            "src": "2703:6:7",
                            "type": ""
                          }
                        ],
                        "src": "2574:690:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "3477:922:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "3524:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3533:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3536:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "3526:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "3526:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "3526:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "3498:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "3507:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "3494:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3494:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3519:3:7",
                                    "type": "",
                                    "value": "256"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "3490:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3490:33:7"
                              },
                              "nodeType": "YulIf",
                              "src": "3487:53:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "3549:36:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "3575:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "3562:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3562:23:7"
                              },
                              "variables": [
                                {
                                  "name": "value",
                                  "nodeType": "YulTypedName",
                                  "src": "3553:5:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "3628:5:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "3594:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3594:40:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "3594:40:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "3643:15:7",
                              "value": {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "3653:5:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "3643:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "3667:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "3694:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3705:2:7",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3690:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3690:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "3677:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3677:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value1",
                                  "nodeType": "YulIdentifier",
                                  "src": "3667:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "3718:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "3745:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3756:2:7",
                                        "type": "",
                                        "value": "64"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3741:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3741:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "3728:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3728:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value2",
                                  "nodeType": "YulIdentifier",
                                  "src": "3718:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "3769:47:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "3801:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3812:2:7",
                                        "type": "",
                                        "value": "96"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3797:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3797:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "3784:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3784:32:7"
                              },
                              "variables": [
                                {
                                  "name": "value_1",
                                  "nodeType": "YulTypedName",
                                  "src": "3773:7:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "3859:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "3825:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3825:42:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "3825:42:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "3876:17:7",
                              "value": {
                                "name": "value_1",
                                "nodeType": "YulIdentifier",
                                "src": "3886:7:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value3",
                                  "nodeType": "YulIdentifier",
                                  "src": "3876:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "3902:48:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "3934:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3945:3:7",
                                        "type": "",
                                        "value": "128"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3930:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3930:19:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "3917:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3917:33:7"
                              },
                              "variables": [
                                {
                                  "name": "value_2",
                                  "nodeType": "YulTypedName",
                                  "src": "3906:7:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value_2",
                                    "nodeType": "YulIdentifier",
                                    "src": "3993:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "3959:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3959:42:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "3959:42:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4010:17:7",
                              "value": {
                                "name": "value_2",
                                "nodeType": "YulIdentifier",
                                "src": "4020:7:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value4",
                                  "nodeType": "YulIdentifier",
                                  "src": "4010:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4036:43:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4063:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "4074:3:7",
                                        "type": "",
                                        "value": "160"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "4059:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4059:19:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "4046:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4046:33:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value5",
                                  "nodeType": "YulIdentifier",
                                  "src": "4036:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4088:43:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4115:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "4126:3:7",
                                        "type": "",
                                        "value": "192"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "4111:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4111:19:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "4098:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4098:33:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value6",
                                  "nodeType": "YulIdentifier",
                                  "src": "4088:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "4140:47:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4171:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "4182:3:7",
                                        "type": "",
                                        "value": "224"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "4167:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4167:19:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "4154:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4154:33:7"
                              },
                              "variables": [
                                {
                                  "name": "offset",
                                  "nodeType": "YulTypedName",
                                  "src": "4144:6:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "4230:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "4239:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "4242:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "4232:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "4232:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "4232:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "4202:6:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "4210:18:7",
                                    "type": "",
                                    "value": "0xffffffffffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "4199:2:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4199:30:7"
                              },
                              "nodeType": "YulIf",
                              "src": "4196:50:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "4255:84:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4311:9:7"
                                      },
                                      {
                                        "name": "offset",
                                        "nodeType": "YulIdentifier",
                                        "src": "4322:6:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "4307:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4307:22:7"
                                  },
                                  {
                                    "name": "dataEnd",
                                    "nodeType": "YulIdentifier",
                                    "src": "4331:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_decode_bytes_calldata",
                                  "nodeType": "YulIdentifier",
                                  "src": "4281:25:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4281:58:7"
                              },
                              "variables": [
                                {
                                  "name": "value7_1",
                                  "nodeType": "YulTypedName",
                                  "src": "4259:8:7",
                                  "type": ""
                                },
                                {
                                  "name": "value8_1",
                                  "nodeType": "YulTypedName",
                                  "src": "4269:8:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4348:18:7",
                              "value": {
                                "name": "value7_1",
                                "nodeType": "YulIdentifier",
                                "src": "4358:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value7",
                                  "nodeType": "YulIdentifier",
                                  "src": "4348:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4375:18:7",
                              "value": {
                                "name": "value8_1",
                                "nodeType": "YulIdentifier",
                                "src": "4385:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value8",
                                  "nodeType": "YulIdentifier",
                                  "src": "4375:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "3379:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "3390:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "3402:6:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "3410:6:7",
                            "type": ""
                          },
                          {
                            "name": "value2",
                            "nodeType": "YulTypedName",
                            "src": "3418:6:7",
                            "type": ""
                          },
                          {
                            "name": "value3",
                            "nodeType": "YulTypedName",
                            "src": "3426:6:7",
                            "type": ""
                          },
                          {
                            "name": "value4",
                            "nodeType": "YulTypedName",
                            "src": "3434:6:7",
                            "type": ""
                          },
                          {
                            "name": "value5",
                            "nodeType": "YulTypedName",
                            "src": "3442:6:7",
                            "type": ""
                          },
                          {
                            "name": "value6",
                            "nodeType": "YulTypedName",
                            "src": "3450:6:7",
                            "type": ""
                          },
                          {
                            "name": "value7",
                            "nodeType": "YulTypedName",
                            "src": "3458:6:7",
                            "type": ""
                          },
                          {
                            "name": "value8",
                            "nodeType": "YulTypedName",
                            "src": "3466:6:7",
                            "type": ""
                          }
                        ],
                        "src": "3269:1130:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "4561:602:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "4608:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "4617:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "4620:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "4610:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "4610:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "4610:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "4582:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4591:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "4578:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4578:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "4603:3:7",
                                    "type": "",
                                    "value": "160"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "4574:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4574:33:7"
                              },
                              "nodeType": "YulIf",
                              "src": "4571:53:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4633:33:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "4656:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "4643:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4643:23:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "4633:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4675:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4702:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "4713:2:7",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "4698:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4698:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "4685:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4685:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value1",
                                  "nodeType": "YulIdentifier",
                                  "src": "4675:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4726:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4753:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "4764:2:7",
                                        "type": "",
                                        "value": "64"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "4749:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4749:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "4736:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4736:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value2",
                                  "nodeType": "YulIdentifier",
                                  "src": "4726:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "4777:45:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4807:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "4818:2:7",
                                        "type": "",
                                        "value": "96"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "4803:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4803:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "4790:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4790:32:7"
                              },
                              "variables": [
                                {
                                  "name": "value",
                                  "nodeType": "YulTypedName",
                                  "src": "4781:5:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "4865:5:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "4831:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4831:40:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "4831:40:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "4880:15:7",
                              "value": {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "4890:5:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value3",
                                  "nodeType": "YulIdentifier",
                                  "src": "4880:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "4904:47:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "4935:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "4946:3:7",
                                        "type": "",
                                        "value": "128"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "4931:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "4931:19:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "4918:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4918:33:7"
                              },
                              "variables": [
                                {
                                  "name": "offset",
                                  "nodeType": "YulTypedName",
                                  "src": "4908:6:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "4994:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "5003:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "5006:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "4996:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "4996:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "4996:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "4966:6:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "4974:18:7",
                                    "type": "",
                                    "value": "0xffffffffffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "4963:2:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4963:30:7"
                              },
                              "nodeType": "YulIf",
                              "src": "4960:50:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "5019:84:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "5075:9:7"
                                      },
                                      {
                                        "name": "offset",
                                        "nodeType": "YulIdentifier",
                                        "src": "5086:6:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "5071:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "5071:22:7"
                                  },
                                  {
                                    "name": "dataEnd",
                                    "nodeType": "YulIdentifier",
                                    "src": "5095:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_decode_bytes_calldata",
                                  "nodeType": "YulIdentifier",
                                  "src": "5045:25:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5045:58:7"
                              },
                              "variables": [
                                {
                                  "name": "value4_1",
                                  "nodeType": "YulTypedName",
                                  "src": "5023:8:7",
                                  "type": ""
                                },
                                {
                                  "name": "value5_1",
                                  "nodeType": "YulTypedName",
                                  "src": "5033:8:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "5112:18:7",
                              "value": {
                                "name": "value4_1",
                                "nodeType": "YulIdentifier",
                                "src": "5122:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value4",
                                  "nodeType": "YulIdentifier",
                                  "src": "5112:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "5139:18:7",
                              "value": {
                                "name": "value5_1",
                                "nodeType": "YulIdentifier",
                                "src": "5149:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value5",
                                  "nodeType": "YulIdentifier",
                                  "src": "5139:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_uint256t_uint256t_uint256t_addresst_bytes_calldata_ptr",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "4487:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "4498:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "4510:6:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "4518:6:7",
                            "type": ""
                          },
                          {
                            "name": "value2",
                            "nodeType": "YulTypedName",
                            "src": "4526:6:7",
                            "type": ""
                          },
                          {
                            "name": "value3",
                            "nodeType": "YulTypedName",
                            "src": "4534:6:7",
                            "type": ""
                          },
                          {
                            "name": "value4",
                            "nodeType": "YulTypedName",
                            "src": "4542:6:7",
                            "type": ""
                          },
                          {
                            "name": "value5",
                            "nodeType": "YulTypedName",
                            "src": "4550:6:7",
                            "type": ""
                          }
                        ],
                        "src": "4404:759:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "5325:602:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "5372:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "5381:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "5384:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "5374:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "5374:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "5374:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "5346:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "5355:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "5342:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "5342:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5367:3:7",
                                    "type": "",
                                    "value": "160"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "5338:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5338:33:7"
                              },
                              "nodeType": "YulIf",
                              "src": "5335:53:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "5397:33:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "5420:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "5407:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5407:23:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "5397:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "5439:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "5466:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "5477:2:7",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "5462:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "5462:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "5449:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5449:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value1",
                                  "nodeType": "YulIdentifier",
                                  "src": "5439:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "5490:45:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "5520:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "5531:2:7",
                                        "type": "",
                                        "value": "64"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "5516:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "5516:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "5503:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5503:32:7"
                              },
                              "variables": [
                                {
                                  "name": "value",
                                  "nodeType": "YulTypedName",
                                  "src": "5494:5:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "5578:5:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "5544:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5544:40:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "5544:40:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "5593:15:7",
                              "value": {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "5603:5:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value2",
                                  "nodeType": "YulIdentifier",
                                  "src": "5593:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "5617:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "5644:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "5655:2:7",
                                        "type": "",
                                        "value": "96"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "5640:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "5640:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "5627:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5627:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value3",
                                  "nodeType": "YulIdentifier",
                                  "src": "5617:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "5668:47:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "5699:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "5710:3:7",
                                        "type": "",
                                        "value": "128"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "5695:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "5695:19:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "5682:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5682:33:7"
                              },
                              "variables": [
                                {
                                  "name": "offset",
                                  "nodeType": "YulTypedName",
                                  "src": "5672:6:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "5758:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "5767:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "5770:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "5760:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "5760:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "5760:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "5730:6:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5738:18:7",
                                    "type": "",
                                    "value": "0xffffffffffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "5727:2:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5727:30:7"
                              },
                              "nodeType": "YulIf",
                              "src": "5724:50:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "5783:84:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "5839:9:7"
                                      },
                                      {
                                        "name": "offset",
                                        "nodeType": "YulIdentifier",
                                        "src": "5850:6:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "5835:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "5835:22:7"
                                  },
                                  {
                                    "name": "dataEnd",
                                    "nodeType": "YulIdentifier",
                                    "src": "5859:7:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_decode_bytes_calldata",
                                  "nodeType": "YulIdentifier",
                                  "src": "5809:25:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5809:58:7"
                              },
                              "variables": [
                                {
                                  "name": "value4_1",
                                  "nodeType": "YulTypedName",
                                  "src": "5787:8:7",
                                  "type": ""
                                },
                                {
                                  "name": "value5_1",
                                  "nodeType": "YulTypedName",
                                  "src": "5797:8:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "5876:18:7",
                              "value": {
                                "name": "value4_1",
                                "nodeType": "YulIdentifier",
                                "src": "5886:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value4",
                                  "nodeType": "YulIdentifier",
                                  "src": "5876:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "5903:18:7",
                              "value": {
                                "name": "value5_1",
                                "nodeType": "YulIdentifier",
                                "src": "5913:8:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value5",
                                  "nodeType": "YulIdentifier",
                                  "src": "5903:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_uint256t_uint256t_addresst_uint256t_bytes_calldata_ptr",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "5251:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "5262:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "5274:6:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "5282:6:7",
                            "type": ""
                          },
                          {
                            "name": "value2",
                            "nodeType": "YulTypedName",
                            "src": "5290:6:7",
                            "type": ""
                          },
                          {
                            "name": "value3",
                            "nodeType": "YulTypedName",
                            "src": "5298:6:7",
                            "type": ""
                          },
                          {
                            "name": "value4",
                            "nodeType": "YulTypedName",
                            "src": "5306:6:7",
                            "type": ""
                          },
                          {
                            "name": "value5",
                            "nodeType": "YulTypedName",
                            "src": "5314:6:7",
                            "type": ""
                          }
                        ],
                        "src": "5168:759:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "6019:161:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "6065:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "6074:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "6077:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "6067:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "6067:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "6067:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "6040:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "6049:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "6036:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6036:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6061:2:7",
                                    "type": "",
                                    "value": "64"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "6032:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6032:32:7"
                              },
                              "nodeType": "YulIf",
                              "src": "6029:52:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "6090:33:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "6113:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "6100:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6100:23:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "6090:6:7"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "6132:42:7",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "6159:9:7"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "6170:2:7",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "6155:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6155:18:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "6142:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6142:32:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value1",
                                  "nodeType": "YulIdentifier",
                                  "src": "6132:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_uint256t_uint256",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "5977:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "5988:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "6000:6:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "6008:6:7",
                            "type": ""
                          }
                        ],
                        "src": "5932:248:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "6270:186:7",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "6316:16:7",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "6325:1:7",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "6328:1:7",
                                          "type": "",
                                          "value": "0"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "6318:6:7"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "6318:12:7"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "6318:12:7"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "6291:7:7"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "6300:9:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "6287:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6287:23:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6312:2:7",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "6283:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6283:32:7"
                              },
                              "nodeType": "YulIf",
                              "src": "6280:52:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "6341:36:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "6367:9:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "6354:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6354:23:7"
                              },
                              "variables": [
                                {
                                  "name": "value",
                                  "nodeType": "YulTypedName",
                                  "src": "6345:5:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "6420:5:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "validator_revert_contract_IBridge",
                                  "nodeType": "YulIdentifier",
                                  "src": "6386:33:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6386:40:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "6386:40:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "6435:15:7",
                              "value": {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "6445:5:7"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "6435:6:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_contract$_IBridge_$192",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "6236:9:7",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "6247:7:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "6259:6:7",
                            "type": ""
                          }
                        ],
                        "src": "6185:271:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "6577:102:7",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "6587:26:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "6599:9:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6610:2:7",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "6595:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6595:18:7"
                              },
                              "variableNames": [
                                {
                                  "name": "tail",
                                  "nodeType": "YulIdentifier",
                                  "src": "6587:4:7"
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "6629:9:7"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "value0",
                                        "nodeType": "YulIdentifier",
                                        "src": "6644:6:7"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "kind": "number",
                                                "nodeType": "YulLiteral",
                                                "src": "6660:3:7",
                                                "type": "",
                                                "value": "160"
                                              },
                                              {
                                                "kind": "number",
                                                "nodeType": "YulLiteral",
                                                "src": "6665:1:7",
                                                "type": "",
                                                "value": "1"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "shl",
                                              "nodeType": "YulIdentifier",
                                              "src": "6656:3:7"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "6656:11:7"
                                          },
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "6669:1:7",
                                            "type": "",
                                            "value": "1"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "sub",
                                          "nodeType": "YulIdentifier",
                                          "src": "6652:3:7"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "6652:19:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "and",
                                      "nodeType": "YulIdentifier",
                                      "src": "6640:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6640:32:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "6622:6:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6622:51:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "6622:51:7"
                            }
                          ]
                        },
                        "name": "abi_encode_tuple_t_contract$_IBridge_$192__to_t_address__fromStack_reversed",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "6546:9:7",
                            "type": ""
                          },
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "6557:6:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "tail",
                            "nodeType": "YulTypedName",
                            "src": "6568:4:7",
                            "type": ""
                          }
                        ],
                        "src": "6461:218:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "6808:102:7",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "6818:26:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "6830:9:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6841:2:7",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "6826:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6826:18:7"
                              },
                              "variableNames": [
                                {
                                  "name": "tail",
                                  "nodeType": "YulIdentifier",
                                  "src": "6818:4:7"
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "6860:9:7"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "value0",
                                        "nodeType": "YulIdentifier",
                                        "src": "6875:6:7"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "kind": "number",
                                                "nodeType": "YulLiteral",
                                                "src": "6891:3:7",
                                                "type": "",
                                                "value": "160"
                                              },
                                              {
                                                "kind": "number",
                                                "nodeType": "YulLiteral",
                                                "src": "6896:1:7",
                                                "type": "",
                                                "value": "1"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "shl",
                                              "nodeType": "YulIdentifier",
                                              "src": "6887:3:7"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "6887:11:7"
                                          },
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "6900:1:7",
                                            "type": "",
                                            "value": "1"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "sub",
                                          "nodeType": "YulIdentifier",
                                          "src": "6883:3:7"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "6883:19:7"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "and",
                                      "nodeType": "YulIdentifier",
                                      "src": "6871:3:7"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6871:32:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "6853:6:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6853:51:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "6853:51:7"
                            }
                          ]
                        },
                        "name": "abi_encode_tuple_t_contract$_ISequencerInbox_$613__to_t_address__fromStack_reversed",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "6777:9:7",
                            "type": ""
                          },
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "6788:6:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "tail",
                            "nodeType": "YulTypedName",
                            "src": "6799:4:7",
                            "type": ""
                          }
                        ],
                        "src": "6684:226:7"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "7062:124:7",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "pos",
                                    "nodeType": "YulIdentifier",
                                    "src": "7085:3:7"
                                  },
                                  {
                                    "name": "value0",
                                    "nodeType": "YulIdentifier",
                                    "src": "7090:6:7"
                                  },
                                  {
                                    "name": "value1",
                                    "nodeType": "YulIdentifier",
                                    "src": "7098:6:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldatacopy",
                                  "nodeType": "YulIdentifier",
                                  "src": "7072:12:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "7072:33:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "7072:33:7"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "7114:26:7",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "pos",
                                    "nodeType": "YulIdentifier",
                                    "src": "7128:3:7"
                                  },
                                  {
                                    "name": "value1",
                                    "nodeType": "YulIdentifier",
                                    "src": "7133:6:7"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "7124:3:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "7124:16:7"
                              },
                              "variables": [
                                {
                                  "name": "_1",
                                  "nodeType": "YulTypedName",
                                  "src": "7118:2:7",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "7156:2:7"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "7160:1:7",
                                    "type": "",
                                    "value": "0"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "7149:6:7"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "7149:13:7"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "7149:13:7"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "7171:9:7",
                              "value": {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "7178:2:7"
                              },
                              "variableNames": [
                                {
                                  "name": "end",
                                  "nodeType": "YulIdentifier",
                                  "src": "7171:3:7"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "pos",
                            "nodeType": "YulTypedName",
                            "src": "7030:3:7",
                            "type": ""
                          },
                          {
                            "name": "value1",
                            "nodeType": "YulTypedName",
                            "src": "7035:6:7",
                            "type": ""
                          },
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "7043:6:7",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "end",
                            "nodeType": "YulTypedName",
                            "src": "7054:3:7",
                            "type": ""
                          }
                        ],
                        "src": "6915:271:7"
                      }
                    ]
                  },
                  "contents": "{\n    { }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_contract_IBridge(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IBridge_$192t_contract$_ISequencerInbox_$613(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IBridge(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_contract_IBridge(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let value := calldataload(add(headStart, 96))\n        validator_revert_contract_IBridge(value)\n        value3 := value\n        value4 := calldataload(add(headStart, 128))\n        let offset := calldataload(add(headStart, 160))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value5 := value5_1\n        value6 := value6_1\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_contract_IBridge(value)\n        value2 := value\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_addresst_uint256t_uint256t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n    {\n        if slt(sub(dataEnd, headStart), 256) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IBridge(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let value_1 := calldataload(add(headStart, 96))\n        validator_revert_contract_IBridge(value_1)\n        value3 := value_1\n        let value_2 := calldataload(add(headStart, 128))\n        validator_revert_contract_IBridge(value_2)\n        value4 := value_2\n        value5 := calldataload(add(headStart, 160))\n        value6 := calldataload(add(headStart, 192))\n        let offset := calldataload(add(headStart, 224))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value7_1, value8_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value7 := value7_1\n        value8 := value8_1\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let value := calldataload(add(headStart, 96))\n        validator_revert_contract_IBridge(value)\n        value3 := value\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_contract_IBridge(value)\n        value2 := value\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_contract$_IBridge_$192(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IBridge(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_contract$_IBridge_$192__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_ISequencerInbox_$613__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n}",
                  "id": 7,
                  "language": "Yul",
                  "name": "#utility.yul"
                }
              ],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "6080604052600436106101095760003560e01c806367ef3ab811610095578063a66b327d11610064578063a66b327d1461025a578063b75436bb1461010e578063c474d2c51461027f578063e78cea921461029d578063ee35f3271461029d57600080fd5b806367ef3ab8146102075780636e6e8a6a146102225780638456cb59146101445780638a631aa61461023f57600080fd5b80635075788b116100dc5780635075788b1461017b57806356367114146101a457806358c5261e146101ba5780635e916758146101da578063679b6ded146101f457600080fd5b80631fe927cf1461010e5780633f4ba83a14610144578063439370b114610154578063485cc9551461015c575b600080fd5b34801561011a57600080fd5b50610131610129366004610378565b505060005490565b6040519081526020015b60405180910390f35b34801561015057600080fd5b505b005b600054610131565b34801561016857600080fd5b506101526101773660046103cf565b5050565b34801561018757600080fd5b50610131610196366004610408565b600054979650505050505050565b3480156101b057600080fd5b5061013160005481565b3480156101c657600080fd5b506101526101d5366004610485565b600055565b6101316101e836600461049e565b60005495945050505050565b610131610202366004610508565b6102b9565b6101316102153660046105ad565b6000549695505050505050565b610131610230366004610508565b60009998505050505050505050565b34801561024b57600080fd5b50610131610215366004610620565b34801561026657600080fd5b50610131610275366004610675565b620f424092915050565b34801561028b57600080fd5b5061015261029a366004610697565b50565b3480156102a957600080fd5b506040516001815260200161013b565b6000808a6001600160a01b03168685856040516102d79291906106bb565b60006040518083038160008787f1925050503d8060008114610315576040519150601f19603f3d011682016040523d82523d6000602084013e61031a565b606091505b50506000549c9b505050505050505050505050565b60008083601f84011261034157600080fd5b50813567ffffffffffffffff81111561035957600080fd5b60208301915083602082850101111561037157600080fd5b9250929050565b6000806020838503121561038b57600080fd5b823567ffffffffffffffff8111156103a257600080fd5b6103ae8582860161032f565b90969095509350505050565b6001600160a01b038116811461029a57600080fd5b600080604083850312156103e257600080fd5b82356103ed816103ba565b915060208301356103fd816103ba565b809150509250929050565b600080600080600080600060c0888a03121561042357600080fd5b8735965060208801359550604088013594506060880135610443816103ba565b93506080880135925060a088013567ffffffffffffffff81111561046657600080fd5b6104728a828b0161032f565b989b979a50959850939692959293505050565b60006020828403121561049757600080fd5b5035919050565b6000806000806000608086880312156104b657600080fd5b853594506020860135935060408601356104cf816103ba565b9250606086013567ffffffffffffffff8111156104eb57600080fd5b6104f78882890161032f565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561052757600080fd5b8935610532816103ba565b985060208a0135975060408a0135965060608a0135610550816103ba565b955060808a0135610560816103ba565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff81111561058a57600080fd5b6105968c828d0161032f565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156105c657600080fd5b86359550602087013594506040870135935060608701356105e6816103ba565b9250608087013567ffffffffffffffff81111561060257600080fd5b61060e89828a0161032f565b979a9699509497509295939492505050565b60008060008060008060a0878903121561063957600080fd5b86359550602087013594506040870135610652816103ba565b935060608701359250608087013567ffffffffffffffff81111561060257600080fd5b6000806040838503121561068857600080fd5b50508035926020909101359150565b6000602082840312156106a957600080fd5b81356106b4816103ba565b9392505050565b818382376000910190815291905056fea2646970667358221220c54da1d607a54fb13b2deb6e56345f01a1d4d8787c87b5cdc434394405f9f57a64736f6c634300080a0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x109 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x67EF3AB8 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xA66B327D GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xA66B327D EQ PUSH2 0x25A JUMPI DUP1 PUSH4 0xB75436BB EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0xC474D2C5 EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0xE78CEA92 EQ PUSH2 0x29D JUMPI DUP1 PUSH4 0xEE35F327 EQ PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x67EF3AB8 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x6E6E8A6A EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x8A631AA6 EQ PUSH2 0x23F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5075788B GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x5075788B EQ PUSH2 0x17B JUMPI DUP1 PUSH4 0x56367114 EQ PUSH2 0x1A4 JUMPI DUP1 PUSH4 0x58C5261E EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x5E916758 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x679B6DED EQ PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FE927CF EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x439370B1 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x15C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x378 JUMP JUMPDEST POP POP PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x131 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x152 PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CF JUMP JUMPDEST POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x408 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x152 PUSH2 0x1D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x131 PUSH2 0x1E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x131 PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0x508 JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x131 PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0x5AD JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x131 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x508 JUMP JUMPDEST PUSH1 0x0 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0x620 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x266 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x131 PUSH2 0x275 CALLDATASIZE PUSH1 0x4 PUSH2 0x675 JUMP JUMPDEST PUSH3 0xF4240 SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x152 PUSH2 0x29A CALLDATASIZE PUSH1 0x4 PUSH2 0x697 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2D7 SWAP3 SWAP2 SWAP1 PUSH2 0x6BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP8 CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x315 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x31A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP PUSH1 0x0 SLOAD SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x341 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x371 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3AE DUP6 DUP3 DUP7 ADD PUSH2 0x32F JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x29A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3ED DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3FD DUP2 PUSH2 0x3BA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x443 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x472 DUP11 DUP3 DUP12 ADD PUSH2 0x32F JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x4CF DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4F7 DUP9 DUP3 DUP10 ADD PUSH2 0x32F JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH2 0x532 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP7 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH2 0x550 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD PUSH2 0x560 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP3 POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x58A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x596 DUP13 DUP3 DUP14 ADD PUSH2 0x32F JUMP JUMPDEST SWAP2 POP DUP1 SWAP4 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0x5E6 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60E DUP10 DUP3 DUP11 ADD PUSH2 0x32F JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x639 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0x652 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x6B4 DUP2 PUSH2 0x3BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0x4D LOG1 0xD6 SMOD 0xA5 0x4F 0xB1 EXTCODESIZE 0x2D 0xEB PUSH15 0x56345F01A1D4D8787C87B5CDC43439 DIFFICULTY SDIV 0xF9 CREATE2 PUSH27 0x64736F6C634300080A003300000000000000000000000000000000 ",
              "sourceMap": "297:2835:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:136;;;;;;;;;;-1:-1:-1;666:136:6;;;;;:::i;:::-;-1:-1:-1;;765:7:6;787:10;;666:136;;;;926:25:7;;;914:2;899:18;666:136:6;;;;;;;;2931:39;;;;;;;;;;;;;2045:94;2102:7;2124:10;2045:94;;3040:90;;;;;;;;;;-1:-1:-1;3040:90:6;;;;;:::i;:::-;;;;1402:246;;;;;;;;;;-1:-1:-1;1402:246:6;;;;;:::i;:::-;1611:7;1633:10;1402:246;;;;;;;;;;330:25;;;;;;;;;;;;;;;;360:78;;;;;;;;;;-1:-1:-1;360:78:6;;;;;:::i;:::-;414:10;:19;360:78;1180:218;;;;;;:::i;:::-;1361:7;1383:10;1180:218;;;;;;;;2143:411;;;;;;:::i;:::-;;:::i;936:240::-;;;;;;:::i;:::-;1139:7;1161:10;936:240;;;;;;;;;2558:328;;;;;;:::i;:::-;2875:7;2558:328;;;;;;;;;;;;1652:224;;;;;;;;;;-1:-1:-1;1652:224:6;;;;;:::i;1880:161::-;;;;;;;;;;-1:-1:-1;1880:161:6;;;;;:::i;:::-;2027:9;1880:161;;;;;2974:62;;;;;;;;;;-1:-1:-1;2974:62:6;;;;;:::i;:::-;;;442:96;;;;;;;;;;-1:-1:-1;442:96:6;;530:1;6622:51:7;;6610:2;6595:18;442:96:6;6461:218:7;2143:411:6;2451:7;2466:12;2498:2;-1:-1:-1;;;;;2498:7:6;2511:8;2521:4;;2498:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2539:10:6;;;2143:411;-1:-1:-1;;;;;;;;;;;;2143:411:6:o;14:347:7:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:7;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:409::-;436:6;444;497:2;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;553:9;540:23;586:18;578:6;575:30;572:50;;;618:1;615;608:12;572:50;657:58;707:7;698:6;687:9;683:22;657:58;:::i;:::-;734:8;;631:84;;-1:-1:-1;366:409:7;-1:-1:-1;;;;366:409:7:o;962:140::-;-1:-1:-1;;;;;1046:31:7;;1036:42;;1026:70;;1092:1;1089;1082:12;1107:444;1213:6;1221;1274:2;1262:9;1253:7;1249:23;1245:32;1242:52;;;1290:1;1287;1280:12;1242:52;1329:9;1316:23;1348:40;1382:5;1348:40;:::i;:::-;1407:5;-1:-1:-1;1464:2:7;1449:18;;1436:32;1477:42;1436:32;1477:42;:::i;:::-;1538:7;1528:17;;;1107:444;;;;;:::o;1556:828::-;1671:6;1679;1687;1695;1703;1711;1719;1772:3;1760:9;1751:7;1747:23;1743:33;1740:53;;;1789:1;1786;1779:12;1740:53;1825:9;1812:23;1802:33;;1882:2;1871:9;1867:18;1854:32;1844:42;;1933:2;1922:9;1918:18;1905:32;1895:42;;1987:2;1976:9;1972:18;1959:32;2000:40;2034:5;2000:40;:::i;:::-;2059:5;-1:-1:-1;2111:3:7;2096:19;;2083:33;;-1:-1:-1;2167:3:7;2152:19;;2139:33;2195:18;2184:30;;2181:50;;;2227:1;2224;2217:12;2181:50;2266:58;2316:7;2307:6;2296:9;2292:22;2266:58;:::i;:::-;1556:828;;;;-1:-1:-1;1556:828:7;;-1:-1:-1;1556:828:7;;;;2240:84;;-1:-1:-1;;;1556:828:7:o;2389:180::-;2448:6;2501:2;2489:9;2480:7;2476:23;2472:32;2469:52;;;2517:1;2514;2507:12;2469:52;-1:-1:-1;2540:23:7;;2389:180;-1:-1:-1;2389:180:7:o;2574:690::-;2671:6;2679;2687;2695;2703;2756:3;2744:9;2735:7;2731:23;2727:33;2724:53;;;2773:1;2770;2763:12;2724:53;2809:9;2796:23;2786:33;;2866:2;2855:9;2851:18;2838:32;2828:42;;2920:2;2909:9;2905:18;2892:32;2933:40;2967:5;2933:40;:::i;:::-;2992:5;-1:-1:-1;3048:2:7;3033:18;;3020:32;3075:18;3064:30;;3061:50;;;3107:1;3104;3097:12;3061:50;3146:58;3196:7;3187:6;3176:9;3172:22;3146:58;:::i;:::-;2574:690;;;;-1:-1:-1;2574:690:7;;-1:-1:-1;3223:8:7;;3120:84;2574:690;-1:-1:-1;;;2574:690:7:o;3269:1130::-;3402:6;3410;3418;3426;3434;3442;3450;3458;3466;3519:3;3507:9;3498:7;3494:23;3490:33;3487:53;;;3536:1;3533;3526:12;3487:53;3575:9;3562:23;3594:40;3628:5;3594:40;:::i;:::-;3653:5;-1:-1:-1;3705:2:7;3690:18;;3677:32;;-1:-1:-1;3756:2:7;3741:18;;3728:32;;-1:-1:-1;3812:2:7;3797:18;;3784:32;3825:42;3784:32;3825:42;:::i;:::-;3886:7;-1:-1:-1;3945:3:7;3930:19;;3917:33;3959:42;3917:33;3959:42;:::i;:::-;4020:7;-1:-1:-1;4074:3:7;4059:19;;4046:33;;-1:-1:-1;4126:3:7;4111:19;;4098:33;;-1:-1:-1;4182:3:7;4167:19;;4154:33;4210:18;4199:30;;4196:50;;;4242:1;4239;4232:12;4196:50;4281:58;4331:7;4322:6;4311:9;4307:22;4281:58;:::i;:::-;4255:84;;4358:8;4348:18;;;4385:8;4375:18;;;3269:1130;;;;;;;;;;;:::o;4404:759::-;4510:6;4518;4526;4534;4542;4550;4603:3;4591:9;4582:7;4578:23;4574:33;4571:53;;;4620:1;4617;4610:12;4571:53;4656:9;4643:23;4633:33;;4713:2;4702:9;4698:18;4685:32;4675:42;;4764:2;4753:9;4749:18;4736:32;4726:42;;4818:2;4807:9;4803:18;4790:32;4831:40;4865:5;4831:40;:::i;:::-;4890:5;-1:-1:-1;4946:3:7;4931:19;;4918:33;4974:18;4963:30;;4960:50;;;5006:1;5003;4996:12;4960:50;5045:58;5095:7;5086:6;5075:9;5071:22;5045:58;:::i;:::-;4404:759;;;;-1:-1:-1;4404:759:7;;-1:-1:-1;4404:759:7;;5122:8;;4404:759;-1:-1:-1;;;4404:759:7:o;5168:::-;5274:6;5282;5290;5298;5306;5314;5367:3;5355:9;5346:7;5342:23;5338:33;5335:53;;;5384:1;5381;5374:12;5335:53;5420:9;5407:23;5397:33;;5477:2;5466:9;5462:18;5449:32;5439:42;;5531:2;5520:9;5516:18;5503:32;5544:40;5578:5;5544:40;:::i;:::-;5603:5;-1:-1:-1;5655:2:7;5640:18;;5627:32;;-1:-1:-1;5710:3:7;5695:19;;5682:33;5738:18;5727:30;;5724:50;;;5770:1;5767;5760:12;5932:248;6000:6;6008;6061:2;6049:9;6040:7;6036:23;6032:32;6029:52;;;6077:1;6074;6067:12;6029:52;-1:-1:-1;;6100:23:7;;;6170:2;6155:18;;;6142:32;;-1:-1:-1;5932:248:7:o;6185:271::-;6259:6;6312:2;6300:9;6291:7;6287:23;6283:32;6280:52;;;6328:1;6325;6318:12;6280:52;6367:9;6354:23;6386:40;6420:5;6386:40;:::i;:::-;6445:5;6185:271;-1:-1:-1;;;6185:271:7:o;6915:::-;7098:6;7090;7085:3;7072:33;7054:3;7124:16;;7149:13;;;7124:16;6915:271;-1:-1:-1;6915:271:7:o"
            },
            "gasEstimates": {
              "creation": {
                "codeDepositCost": "358600",
                "executionCost": "399",
                "totalCost": "358999"
              },
              "external": {
                "bridge()": "265",
                "calculateRetryableSubmissionFee(uint256,uint256)": "313",
                "createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": "infinite",
                "depositEth()": "2325",
                "initialize(address,address)": "infinite",
                "messageNum()": "2329",
                "pause()": "190",
                "postUpgradeInit(address)": "infinite",
                "sendContractTransaction(uint256,uint256,address,uint256,bytes)": "2850",
                "sendL1FundedContractTransaction(uint256,uint256,address,bytes)": "2801",
                "sendL1FundedUnsignedTransaction(uint256,uint256,uint256,address,bytes)": "2760",
                "sendL2Message(bytes)": "2626",
                "sendL2MessageFromOrigin(bytes)": "2606",
                "sendUnsignedTransaction(uint256,uint256,uint256,address,uint256,bytes)": "2809",
                "sequencerInbox()": "287",
                "setMessageNum(uint256)": "22379",
                "unpause()": "169",
                "unsafeCreateRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": "infinite"
              }
            },
            "methodIdentifiers": {
              "bridge()": "e78cea92",
              "calculateRetryableSubmissionFee(uint256,uint256)": "a66b327d",
              "createRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": "679b6ded",
              "depositEth()": "439370b1",
              "initialize(address,address)": "485cc955",
              "messageNum()": "56367114",
              "pause()": "8456cb59",
              "postUpgradeInit(address)": "c474d2c5",
              "sendContractTransaction(uint256,uint256,address,uint256,bytes)": "8a631aa6",
              "sendL1FundedContractTransaction(uint256,uint256,address,bytes)": "5e916758",
              "sendL1FundedUnsignedTransaction(uint256,uint256,uint256,address,bytes)": "67ef3ab8",
              "sendL2Message(bytes)": "b75436bb",
              "sendL2MessageFromOrigin(bytes)": "1fe927cf",
              "sendUnsignedTransaction(uint256,uint256,uint256,address,uint256,bytes)": "5075788b",
              "sequencerInbox()": "ee35f327",
              "setMessageNum(uint256)": "58c5261e",
              "unpause()": "3f4ba83a",
              "unsafeCreateRetryableTicket(address,uint256,uint256,address,address,uint256,uint256,bytes)": "6e6e8a6a"
            }
          },
          "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contract ISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contract ISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgNum\",\"type\":\"uint256\"}],\"name\":\"setMessageNum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"depositEth()\":{\"details\":\"This does not trigger the fallback function when receiving in the L2 side.      Look into retryable tickets if you are interested in this functionality.This function should not be called inside contract constructors\"},\"postUpgradeInit(address)\":{\"details\":\"function to be called one time during the inbox upgrade process      this is used to fix the storage slots\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"depositEth()\":{\"notice\":\"Deposit eth from L1 to L2\"},\"pause()\":{\"notice\":\"pauses all inbox functionality\"},\"unpause()\":{\"notice\":\"unpauses all inbox functionality\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/MockInbox.sol\":\"MockInbox\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/arbitrum/interfaces/IBridge.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\nimport './IOwnable.sol';\\n\\ninterface IBridge {\\n  event MessageDelivered(\\n    uint256 indexed messageIndex,\\n    bytes32 indexed beforeInboxAcc,\\n    address inbox,\\n    uint8 kind,\\n    address sender,\\n    bytes32 messageDataHash,\\n    uint256 baseFeeL1,\\n    uint64 timestamp\\n  );\\n\\n  event BridgeCallTriggered(address indexed outbox, address indexed to, uint256 value, bytes data);\\n\\n  event InboxToggle(address indexed inbox, bool enabled);\\n\\n  event OutboxToggle(address indexed outbox, bool enabled);\\n\\n  event SequencerInboxUpdated(address newSequencerInbox);\\n\\n  function allowedDelayedInboxList(uint256) external returns (address);\\n\\n  function allowedOutboxList(uint256) external returns (address);\\n\\n  /// @dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\\n  function delayedInboxAccs(uint256) external view returns (bytes32);\\n\\n  /// @dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.\\n  function sequencerInboxAccs(uint256) external view returns (bytes32);\\n\\n  function rollup() external view returns (IOwnable);\\n\\n  function sequencerInbox() external view returns (address);\\n\\n  function activeOutbox() external view returns (address);\\n\\n  function allowedDelayedInboxes(address inbox) external view returns (bool);\\n\\n  function allowedOutboxes(address outbox) external view returns (bool);\\n\\n  /**\\n   * @dev Enqueue a message in the delayed inbox accumulator.\\n   *      These messages are later sequenced in the SequencerInbox, either\\n   *      by the sequencer as part of a normal batch, or by force inclusion.\\n   */\\n  function enqueueDelayedMessage(\\n    uint8 kind,\\n    address sender,\\n    bytes32 messageDataHash\\n  ) external payable returns (uint256);\\n\\n  function executeCall(\\n    address to,\\n    uint256 value,\\n    bytes calldata data\\n  ) external returns (bool success, bytes memory returnData);\\n\\n  function delayedMessageCount() external view returns (uint256);\\n\\n  function sequencerMessageCount() external view returns (uint256);\\n\\n  // ---------- onlySequencerInbox functions ----------\\n\\n  function enqueueSequencerMessage(bytes32 dataHash, uint256 afterDelayedMessagesRead)\\n    external\\n    returns (\\n      uint256 seqMessageIndex,\\n      bytes32 beforeAcc,\\n      bytes32 delayedAcc,\\n      bytes32 acc\\n    );\\n\\n  /**\\n   * @dev Allows the sequencer inbox to submit a delayed message of the batchPostingReport type\\n   *      This is done through a separate function entrypoint instead of allowing the sequencer inbox\\n   *      to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either\\n   *      every delayed inbox or every sequencer inbox call.\\n   */\\n  function submitBatchSpendingReport(address batchPoster, bytes32 dataHash)\\n    external\\n    returns (uint256 msgNum);\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  function setSequencerInbox(address _sequencerInbox) external;\\n\\n  function setDelayedInbox(address inbox, bool enabled) external;\\n\\n  function setOutbox(address inbox, bool enabled) external;\\n\\n  // ---------- initializer ----------\\n\\n  function initialize(IOwnable rollup_) external;\\n}\\n\",\"keccak256\":\"0x6ef502fd06f8775452f060097d342465cbddb8ca2b88698ab4ed40050a63be77\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IDelayedMessageProvider {\\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\\n  event InboxMessageDelivered(uint256 indexed messageNum, bytes data);\\n\\n  /// @dev event emitted when a inbox message is added to the Bridge's delayed accumulator\\n  /// same as InboxMessageDelivered but the batch data is available in tx.input\\n  event InboxMessageDeliveredFromOrigin(uint256 indexed messageNum);\\n}\\n\",\"keccak256\":\"0x297281f276a4bf4b70c50663d4fc314fe67245f6027c7154f61e56886d679632\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IInbox.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\nimport './IBridge.sol';\\nimport './IDelayedMessageProvider.sol';\\nimport './ISequencerInbox.sol';\\n\\ninterface IInbox is IDelayedMessageProvider {\\n  function bridge() external view returns (IBridge);\\n\\n  function sequencerInbox() external view returns (ISequencerInbox);\\n\\n  /**\\n   * @notice Send a generic L2 message to the chain\\n   * @dev This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to be able to parse the data from the transaction's input\\n   * @param messageData Data of the message being sent\\n   */\\n  function sendL2MessageFromOrigin(bytes calldata messageData) external returns (uint256);\\n\\n  /**\\n   * @notice Send a generic L2 message to the chain\\n   * @dev This method can be used to send any type of message that doesn't require L1 validation\\n   * @param messageData Data of the message being sent\\n   */\\n  function sendL2Message(bytes calldata messageData) external returns (uint256);\\n\\n  function sendL1FundedUnsignedTransaction(\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    uint256 nonce,\\n    address to,\\n    bytes calldata data\\n  ) external payable returns (uint256);\\n\\n  function sendL1FundedContractTransaction(\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    address to,\\n    bytes calldata data\\n  ) external payable returns (uint256);\\n\\n  function sendUnsignedTransaction(\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    uint256 nonce,\\n    address to,\\n    uint256 value,\\n    bytes calldata data\\n  ) external returns (uint256);\\n\\n  function sendContractTransaction(\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    address to,\\n    uint256 value,\\n    bytes calldata data\\n  ) external returns (uint256);\\n\\n  /**\\n   * @notice Get the L1 fee for submitting a retryable\\n   * @dev This fee can be paid by funds already in the L2 aliased address or by the current message value\\n   * @dev This formula may change in the future, to future proof your code query this method instead of inlining!!\\n   * @param dataLength The length of the retryable's calldata, in bytes\\n   * @param baseFee The block basefee when the retryable is included in the chain, if 0 current block.basefee will be used\\n   */\\n  function calculateRetryableSubmissionFee(uint256 dataLength, uint256 baseFee)\\n    external\\n    view\\n    returns (uint256);\\n\\n  /**\\n   * @notice Deposit eth from L1 to L2\\n   * @dev This does not trigger the fallback function when receiving in the L2 side.\\n   *      Look into retryable tickets if you are interested in this functionality.\\n   * @dev This function should not be called inside contract constructors\\n   */\\n  function depositEth() external payable returns (uint256);\\n\\n  /**\\n   * @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\\n   * @dev all msg.value will deposited to callValueRefundAddress on L2\\n   * @dev Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\\n   * @param to destination L2 contract address\\n   * @param l2CallValue call value for retryable L2 message\\n   * @param maxSubmissionCost Max gas deducted from user's L2 balance to cover base submission fee\\n   * @param excessFeeRefundAddress gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\\n   * @param callValueRefundAddress l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\\n   * @param gasLimit Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\\n   * @param maxFeePerGas price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\\n   * @param data ABI encoded data of L2 message\\n   * @return unique message number of the retryable transaction\\n   */\\n  function createRetryableTicket(\\n    address to,\\n    uint256 l2CallValue,\\n    uint256 maxSubmissionCost,\\n    address excessFeeRefundAddress,\\n    address callValueRefundAddress,\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    bytes calldata data\\n  ) external payable returns (uint256);\\n\\n  /**\\n   * @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\\n   * @dev Same as createRetryableTicket, but does not guarantee that submission will succeed by requiring the needed funds\\n   * come from the deposit alone, rather than falling back on the user's L2 balance\\n   * @dev Advanced usage only (does not rewrite aliases for excessFeeRefundAddress and callValueRefundAddress).\\n   * createRetryableTicket method is the recommended standard.\\n   * @dev Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\\n   * @param to destination L2 contract address\\n   * @param l2CallValue call value for retryable L2 message\\n   * @param maxSubmissionCost Max gas deducted from user's L2 balance to cover base submission fee\\n   * @param excessFeeRefundAddress gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\\n   * @param callValueRefundAddress l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\\n   * @param gasLimit Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\\n   * @param maxFeePerGas price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\\n   * @param data ABI encoded data of L2 message\\n   * @return unique message number of the retryable transaction\\n   */\\n  function unsafeCreateRetryableTicket(\\n    address to,\\n    uint256 l2CallValue,\\n    uint256 maxSubmissionCost,\\n    address excessFeeRefundAddress,\\n    address callValueRefundAddress,\\n    uint256 gasLimit,\\n    uint256 maxFeePerGas,\\n    bytes calldata data\\n  ) external payable returns (uint256);\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  /// @notice pauses all inbox functionality\\n  function pause() external;\\n\\n  /// @notice unpauses all inbox functionality\\n  function unpause() external;\\n\\n  // ---------- initializer ----------\\n\\n  /**\\n   * @dev function to be called one time during the inbox upgrade process\\n   *      this is used to fix the storage slots\\n   */\\n  function postUpgradeInit(IBridge _bridge) external;\\n\\n  function initialize(IBridge _bridge, ISequencerInbox _sequencerInbox) external;\\n}\\n\",\"keccak256\":\"0x759eca70310819220d4b77894bd4882af7eddbce3a7cef640443d72a67636824\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/IOwnable.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.4.21 <0.9.0;\\n\\ninterface IOwnable {\\n  function owner() external view returns (address);\\n}\\n\",\"keccak256\":\"0x9b6a2009e2751bd581fc2a1e0f677d97989ee0e6683432b4ff39bce9d9a79a91\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\npragma experimental ABIEncoderV2;\\n\\nimport '../libraries/IGasRefunder.sol';\\nimport './IDelayedMessageProvider.sol';\\nimport './IBridge.sol';\\n\\ninterface ISequencerInbox is IDelayedMessageProvider {\\n  struct MaxTimeVariation {\\n    uint256 delayBlocks;\\n    uint256 futureBlocks;\\n    uint256 delaySeconds;\\n    uint256 futureSeconds;\\n  }\\n\\n  struct TimeBounds {\\n    uint64 minTimestamp;\\n    uint64 maxTimestamp;\\n    uint64 minBlockNumber;\\n    uint64 maxBlockNumber;\\n  }\\n\\n  enum BatchDataLocation {\\n    TxInput,\\n    SeparateBatchEvent,\\n    NoData\\n  }\\n\\n  event SequencerBatchDelivered(\\n    uint256 indexed batchSequenceNumber,\\n    bytes32 indexed beforeAcc,\\n    bytes32 indexed afterAcc,\\n    bytes32 delayedAcc,\\n    uint256 afterDelayedMessagesRead,\\n    TimeBounds timeBounds,\\n    BatchDataLocation dataLocation\\n  );\\n\\n  event OwnerFunctionCalled(uint256 indexed id);\\n\\n  /// @dev a separate event that emits batch data when this isn't easily accessible in the tx.input\\n  event SequencerBatchData(uint256 indexed batchSequenceNumber, bytes data);\\n\\n  /// @dev a valid keyset was added\\n  event SetValidKeyset(bytes32 indexed keysetHash, bytes keysetBytes);\\n\\n  /// @dev a keyset was invalidated\\n  event InvalidateKeyset(bytes32 indexed keysetHash);\\n\\n  function totalDelayedMessagesRead() external view returns (uint256);\\n\\n  function bridge() external view returns (IBridge);\\n\\n  /// @dev The size of the batch header\\n  // solhint-disable-next-line func-name-mixedcase\\n  function HEADER_LENGTH() external view returns (uint256);\\n\\n  /// @dev If the first batch data byte after the header has this bit set,\\n  ///      the sequencer inbox has authenticated the data. Currently not used.\\n  // solhint-disable-next-line func-name-mixedcase\\n  function DATA_AUTHENTICATED_FLAG() external view returns (bytes1);\\n\\n  function rollup() external view returns (IOwnable);\\n\\n  function isBatchPoster(address) external view returns (bool);\\n\\n  struct DasKeySetInfo {\\n    bool isValidKeyset;\\n    uint64 creationBlock;\\n  }\\n\\n  // https://github.com/ethereum/solidity/issues/11826\\n  // function maxTimeVariation() external view returns (MaxTimeVariation calldata);\\n  // function dasKeySetInfo(bytes32) external view returns (DasKeySetInfo calldata);\\n\\n  /// @notice Force messages from the delayed inbox to be included in the chain\\n  ///         Callable by any address, but message can only be force-included after maxTimeVariation.delayBlocks and\\n  ///         maxTimeVariation.delaySeconds has elapsed. As part of normal behaviour the sequencer will include these\\n  ///         messages so it's only necessary to call this if the sequencer is down, or not including any delayed messages.\\n  /// @param _totalDelayedMessagesRead The total number of messages to read up to\\n  /// @param kind The kind of the last message to be included\\n  /// @param l1BlockAndTime The l1 block and the l1 timestamp of the last message to be included\\n  /// @param baseFeeL1 The l1 gas price of the last message to be included\\n  /// @param sender The sender of the last message to be included\\n  /// @param messageDataHash The messageDataHash of the last message to be included\\n  function forceInclusion(\\n    uint256 _totalDelayedMessagesRead,\\n    uint8 kind,\\n    uint64[2] calldata l1BlockAndTime,\\n    uint256 baseFeeL1,\\n    address sender,\\n    bytes32 messageDataHash\\n  ) external;\\n\\n  function inboxAccs(uint256 index) external view returns (bytes32);\\n\\n  function batchCount() external view returns (uint256);\\n\\n  function isValidKeysetHash(bytes32 ksHash) external view returns (bool);\\n\\n  /// @notice the creation block is intended to still be available after a keyset is deleted\\n  function getKeysetCreationBlock(bytes32 ksHash) external view returns (uint256);\\n\\n  // ---------- BatchPoster functions ----------\\n\\n  function addSequencerL2BatchFromOrigin(\\n    uint256 sequenceNumber,\\n    bytes calldata data,\\n    uint256 afterDelayedMessagesRead,\\n    IGasRefunder gasRefunder\\n  ) external;\\n\\n  function addSequencerL2Batch(\\n    uint256 sequenceNumber,\\n    bytes calldata data,\\n    uint256 afterDelayedMessagesRead,\\n    IGasRefunder gasRefunder\\n  ) external;\\n\\n  // ---------- onlyRollupOrOwner functions ----------\\n\\n  /**\\n   * @notice Set max delay for sequencer inbox\\n   * @param maxTimeVariation_ the maximum time variation parameters\\n   */\\n  function setMaxTimeVariation(MaxTimeVariation memory maxTimeVariation_) external;\\n\\n  /**\\n   * @notice Updates whether an address is authorized to be a batch poster at the sequencer inbox\\n   * @param addr the address\\n   * @param isBatchPoster_ if the specified address should be authorized as a batch poster\\n   */\\n  function setIsBatchPoster(address addr, bool isBatchPoster_) external;\\n\\n  /**\\n   * @notice Makes Data Availability Service keyset valid\\n   * @param keysetBytes bytes of the serialized keyset\\n   */\\n  function setValidKeyset(bytes calldata keysetBytes) external;\\n\\n  /**\\n   * @notice Invalidates a Data Availability Service keyset\\n   * @param ksHash hash of the keyset\\n   */\\n  function invalidateKeysetHash(bytes32 ksHash) external;\\n\\n  // ---------- initializer ----------\\n\\n  function initialize(IBridge bridge_, MaxTimeVariation calldata maxTimeVariation_) external;\\n}\\n\",\"keccak256\":\"0x7b8bab6cdb49d865c66edb0a9a6c302b0d4dbd4c55345dd8b245068d787bd447\",\"license\":\"BUSL-1.1\"},\"contracts/dependencies/arbitrum/libraries/IGasRefunder.sol\":{\"content\":\"// Copyright 2021-2022, Offchain Labs, Inc.\\n// For license information, see https://github.com/nitro/blob/master/LICENSE\\n// SPDX-License-Identifier: BUSL-1.1\\n\\n// solhint-disable-next-line compiler-version\\npragma solidity >=0.6.9 <0.9.0;\\n\\ninterface IGasRefunder {\\n  function onGasSpent(\\n    address payable spender,\\n    uint256 gasUsed,\\n    uint256 calldataSize\\n  ) external returns (bool success);\\n}\\n\\nabstract contract GasRefundEnabled {\\n  /// @dev this refunds the sender for execution costs of the tx\\n  /// calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging\\n  /// for the `tx.input`. this avoids a possible attack where you generate large calldata from a contract and get over-refunded\\n  modifier refundsGas(IGasRefunder gasRefunder) {\\n    uint256 startGasLeft = gasleft();\\n    _;\\n    if (address(gasRefunder) != address(0)) {\\n      uint256 calldataSize = 0;\\n      // if triggered in a contract call, the spender may be overrefunded by appending dummy data to the call\\n      // so we check if it is a top level call, which would mean the sender paid calldata as part of tx.input\\n      // solhint-disable-next-line avoid-tx-origin\\n      if (msg.sender == tx.origin) {\\n        assembly {\\n          calldataSize := calldatasize()\\n        }\\n      }\\n      gasRefunder.onGasSpent(payable(msg.sender), startGasLeft - gasleft(), calldataSize);\\n    }\\n  }\\n}\\n\",\"keccak256\":\"0x130dcf15897094013a7ad2798926ec8381ab9b4b71101f085d6a92d85aba4558\",\"license\":\"BUSL-1.1\"},\"contracts/mocks/MockInbox.sol\":{\"content\":\"//SPDX-License-Identifier: Unlicense\\npragma solidity ^0.8.10;\\n\\nimport {IInbox} from '../dependencies/arbitrum/interfaces/IInbox.sol';\\nimport {IBridge} from '../dependencies/arbitrum/interfaces/IBridge.sol';\\nimport {ISequencerInbox} from '../dependencies/arbitrum/interfaces/ISequencerInbox.sol';\\n\\ncontract MockInbox is IInbox {\\n  uint256 public messageNum;\\n\\n  function setMessageNum(uint256 msgNum) external {\\n    messageNum = msgNum;\\n  }\\n\\n  function bridge() external view override returns (IBridge) {\\n    return IBridge(address(1));\\n  }\\n\\n  function sequencerInbox() external view override returns (ISequencerInbox) {\\n    return ISequencerInbox(address(1));\\n  }\\n\\n  function sendL2MessageFromOrigin(\\n    bytes calldata // messageData\\n  ) external override returns (uint256) {\\n    return messageNum;\\n  }\\n\\n  function sendL2Message(\\n    bytes calldata // messageData\\n  ) external override returns (uint256) {\\n    return messageNum;\\n  }\\n\\n  function sendL1FundedUnsignedTransaction(\\n    uint256, // gasLimit\\n    uint256, // maxFeePerGas\\n    uint256, // nonce\\n    address, // to\\n    bytes calldata // data\\n  ) external payable override returns (uint256) {\\n    return messageNum;\\n  }\\n\\n  function sendL1FundedContractTransaction(\\n    uint256, // gasLimit\\n    uint256, // maxFeePerGas\\n    address, // to\\n    bytes calldata // data\\n  ) external payable override returns (uint256) {\\n    return messageNum;\\n  }\\n\\n  function sendUnsignedTransaction(\\n    uint256, // gasLimit\\n    uint256, // maxFeePerGas\\n    uint256, // nonce\\n    address, // to\\n    uint256, // value\\n    bytes calldata // data\\n  ) external override returns (uint256) {\\n    return messageNum;\\n  }\\n\\n  function sendContractTransaction(\\n    uint256, // gasLimit\\n    uint256, // maxFeePerGas\\n    address, // to\\n    uint256, // value\\n    bytes calldata // data\\n  ) external override returns (uint256) {\\n    return messageNum;\\n  }\\n\\n  function calculateRetryableSubmissionFee(\\n    uint256 dataLength,\\n    uint256 // baseFee\\n  ) external view override returns (uint256) {\\n    return 1_000_000;\\n  }\\n\\n  function depositEth() external payable override returns (uint256) {\\n    return messageNum;\\n  }\\n\\n  function createRetryableTicket(\\n    address to, // to\\n    uint256, // l2CallValue\\n    uint256, // maxSubmissionCost\\n    address, // excessFeeRefundAddress\\n    address, // callValueRefundAddress\\n    uint256 gasLimit,\\n    uint256, // maxFeePerGas\\n    bytes calldata data\\n  ) external payable override returns (uint256) {\\n    bool success;\\n    (success, ) = to.call{gas: gasLimit}(data);\\n    return messageNum;\\n  }\\n\\n  function unsafeCreateRetryableTicket(\\n    address, // to\\n    uint256, // l2CallValue\\n    uint256, // maxSubmissionCost\\n    address, // excessFeeRefundAddress\\n    address, // callValueRefundAddress\\n    uint256, // gasLimit\\n    uint256, // maxFeePerGas\\n    bytes calldata // data\\n  ) external payable override returns (uint256) {}\\n\\n  function pause() external override {}\\n\\n  function unpause() external override {}\\n\\n  function postUpgradeInit(IBridge _bridge) external override {}\\n\\n  function initialize(IBridge _bridge, ISequencerInbox _sequencerInbox) external override {}\\n}\\n\",\"keccak256\":\"0xfafe95734920c558644a75fbec6b83d1a75a2041bf23cc0cae265188268a8e1d\",\"license\":\"Unlicense\"}},\"version\":1}",
          "storageLayout": {
            "storage": [
              {
                "astId": 691,
                "contract": "contracts/mocks/MockInbox.sol:MockInbox",
                "label": "messageNum",
                "offset": 0,
                "slot": "0",
                "type": "t_uint256"
              }
            ],
            "types": {
              "t_uint256": {
                "encoding": "inplace",
                "label": "uint256",
                "numberOfBytes": "32"
              }
            }
          },
          "userdoc": {
            "kind": "user",
            "methods": {
              "depositEth()": {
                "notice": "Deposit eth from L1 to L2"
              },
              "pause()": {
                "notice": "pauses all inbox functionality"
              },
              "unpause()": {
                "notice": "unpauses all inbox functionality"
              }
            },
            "version": 1
          }
        }
      }
    },
    "errors": [
      {
        "component": "general",
        "errorCode": "5667",
        "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/mocks/MockInbox.sol:76:5:\n   |\n76 |     uint256 dataLength,\n   |     ^^^^^^^^^^^^^^^^^^\n\n",
        "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.",
        "severity": "warning",
        "sourceLocation": {
          "end": 1944,
          "file": "contracts/mocks/MockInbox.sol",
          "start": 1926
        },
        "type": "Warning"
      },
      {
        "component": "general",
        "errorCode": "2018",
        "formattedMessage": "Warning: Function state mutability can be restricted to pure\n  --> contracts/mocks/MockInbox.sol:15:3:\n   |\n15 |   function bridge() external view override returns (IBridge) {\n   |   ^ (Relevant source part starts here and spans across multiple lines).\n\n",
        "message": "Function state mutability can be restricted to pure",
        "severity": "warning",
        "sourceLocation": {
          "end": 538,
          "file": "contracts/mocks/MockInbox.sol",
          "start": 442
        },
        "type": "Warning"
      },
      {
        "component": "general",
        "errorCode": "2018",
        "formattedMessage": "Warning: Function state mutability can be restricted to pure\n  --> contracts/mocks/MockInbox.sol:19:3:\n   |\n19 |   function sequencerInbox() external view override returns (ISequencerInbox) {\n   |   ^ (Relevant source part starts here and spans across multiple lines).\n\n",
        "message": "Function state mutability can be restricted to pure",
        "severity": "warning",
        "sourceLocation": {
          "end": 662,
          "file": "contracts/mocks/MockInbox.sol",
          "start": 542
        },
        "type": "Warning"
      },
      {
        "component": "general",
        "errorCode": "2018",
        "formattedMessage": "Warning: Function state mutability can be restricted to view\n  --> contracts/mocks/MockInbox.sol:23:3:\n   |\n23 |   function sendL2MessageFromOrigin(\n   |   ^ (Relevant source part starts here and spans across multiple lines).\n\n",
        "message": "Function state mutability can be restricted to view",
        "severity": "warning",
        "sourceLocation": {
          "end": 802,
          "file": "contracts/mocks/MockInbox.sol",
          "start": 666
        },
        "type": "Warning"
      },
      {
        "component": "general",
        "errorCode": "2018",
        "formattedMessage": "Warning: Function state mutability can be restricted to view\n  --> contracts/mocks/MockInbox.sol:29:3:\n   |\n29 |   function sendL2Message(\n   |   ^ (Relevant source part starts here and spans across multiple lines).\n\n",
        "message": "Function state mutability can be restricted to view",
        "severity": "warning",
        "sourceLocation": {
          "end": 932,
          "file": "contracts/mocks/MockInbox.sol",
          "start": 806
        },
        "type": "Warning"
      },
      {
        "component": "general",
        "errorCode": "2018",
        "formattedMessage": "Warning: Function state mutability can be restricted to view\n  --> contracts/mocks/MockInbox.sol:54:3:\n   |\n54 |   function sendUnsignedTransaction(\n   |   ^ (Relevant source part starts here and spans across multiple lines).\n\n",
        "message": "Function state mutability can be restricted to view",
        "severity": "warning",
        "sourceLocation": {
          "end": 1648,
          "file": "contracts/mocks/MockInbox.sol",
          "start": 1402
        },
        "type": "Warning"
      },
      {
        "component": "general",
        "errorCode": "2018",
        "formattedMessage": "Warning: Function state mutability can be restricted to view\n  --> contracts/mocks/MockInbox.sol:65:3:\n   |\n65 |   function sendContractTransaction(\n   |   ^ (Relevant source part starts here and spans across multiple lines).\n\n",
        "message": "Function state mutability can be restricted to view",
        "severity": "warning",
        "sourceLocation": {
          "end": 1876,
          "file": "contracts/mocks/MockInbox.sol",
          "start": 1652
        },
        "type": "Warning"
      },
      {
        "component": "general",
        "errorCode": "2018",
        "formattedMessage": "Warning: Function state mutability can be restricted to pure\n  --> contracts/mocks/MockInbox.sol:75:3:\n   |\n75 |   function calculateRetryableSubmissionFee(\n   |   ^ (Relevant source part starts here and spans across multiple lines).\n\n",
        "message": "Function state mutability can be restricted to pure",
        "severity": "warning",
        "sourceLocation": {
          "end": 2041,
          "file": "contracts/mocks/MockInbox.sol",
          "start": 1880
        },
        "type": "Warning"
      }
    ],
    "sources": {
      "contracts/dependencies/arbitrum/interfaces/IBridge.sol": {
        "ast": {
          "absolutePath": "contracts/dependencies/arbitrum/interfaces/IBridge.sol",
          "exportedSymbols": {
            "IBridge": [
              192
            ],
            "IOwnable": [
              395
            ]
          },
          "id": 193,
          "license": "BUSL-1.1",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".9",
                "<",
                "0.9",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "205:31:0"
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/IOwnable.sol",
              "file": "./IOwnable.sol",
              "id": 2,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 193,
              "sourceUnit": 396,
              "src": "238:24:0",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "IBridge",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 192,
              "linearizedBaseContracts": [
                192
              ],
              "name": "IBridge",
              "nameLocation": "274:7:0",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "anonymous": false,
                  "id": 20,
                  "name": "MessageDelivered",
                  "nameLocation": "292:16:0",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 19,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 4,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "messageIndex",
                        "nameLocation": "330:12:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 20,
                        "src": "314:28:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "314:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 6,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "beforeInboxAcc",
                        "nameLocation": "364:14:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 20,
                        "src": "348:30:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 5,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "348:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 8,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "inbox",
                        "nameLocation": "392:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 20,
                        "src": "384:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 7,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "384:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 10,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "kind",
                        "nameLocation": "409:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 20,
                        "src": "403:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 9,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "403:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 12,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "sender",
                        "nameLocation": "427:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 20,
                        "src": "419:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 11,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "419:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 14,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "messageDataHash",
                        "nameLocation": "447:15:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 20,
                        "src": "439:23:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 13,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "439:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 16,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "baseFeeL1",
                        "nameLocation": "476:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 20,
                        "src": "468:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 15,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "468:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 18,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "timestamp",
                        "nameLocation": "498:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 20,
                        "src": "491:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "typeName": {
                          "id": 17,
                          "name": "uint64",
                          "nodeType": "ElementaryTypeName",
                          "src": "491:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "308:203:0"
                  },
                  "src": "286:226:0"
                },
                {
                  "anonymous": false,
                  "id": 30,
                  "name": "BridgeCallTriggered",
                  "nameLocation": "522:19:0",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 29,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 22,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "outbox",
                        "nameLocation": "558:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 30,
                        "src": "542:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 21,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "542:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 24,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "582:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 30,
                        "src": "566:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 23,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "566:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 26,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "value",
                        "nameLocation": "594:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 30,
                        "src": "586:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 25,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "586:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 28,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "607:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 30,
                        "src": "601:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 27,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "601:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "541:71:0"
                  },
                  "src": "516:97:0"
                },
                {
                  "anonymous": false,
                  "id": 36,
                  "name": "InboxToggle",
                  "nameLocation": "623:11:0",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 35,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 32,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "inbox",
                        "nameLocation": "651:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "635:21:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 31,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "635:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 34,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "enabled",
                        "nameLocation": "663:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "658:12:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 33,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "658:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "634:37:0"
                  },
                  "src": "617:55:0"
                },
                {
                  "anonymous": false,
                  "id": 42,
                  "name": "OutboxToggle",
                  "nameLocation": "682:12:0",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 41,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 38,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "outbox",
                        "nameLocation": "711:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 42,
                        "src": "695:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 37,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "695:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 40,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "enabled",
                        "nameLocation": "724:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 42,
                        "src": "719:12:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 39,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "719:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "694:38:0"
                  },
                  "src": "676:57:0"
                },
                {
                  "anonymous": false,
                  "id": 46,
                  "name": "SequencerInboxUpdated",
                  "nameLocation": "743:21:0",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 45,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 44,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "newSequencerInbox",
                        "nameLocation": "773:17:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 46,
                        "src": "765:25:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 43,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "765:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "764:27:0"
                  },
                  "src": "737:55:0"
                },
                {
                  "functionSelector": "e76f5c8d",
                  "id": 53,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "allowedDelayedInboxList",
                  "nameLocation": "805:23:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 49,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 48,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 53,
                        "src": "829:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 47,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "829:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "828:9:0"
                  },
                  "returnParameters": {
                    "id": 52,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 51,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 53,
                        "src": "856:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 50,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "856:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "855:9:0"
                  },
                  "scope": 192,
                  "src": "796:69:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "945e1147",
                  "id": 60,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "allowedOutboxList",
                  "nameLocation": "878:17:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 56,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 55,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 60,
                        "src": "896:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "896:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "895:9:0"
                  },
                  "returnParameters": {
                    "id": 59,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 58,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 60,
                        "src": "923:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 57,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "923:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "922:9:0"
                  },
                  "scope": 192,
                  "src": "869:63:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 61,
                    "nodeType": "StructuredDocumentation",
                    "src": "936:147:0",
                    "text": "@dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message."
                  },
                  "functionSelector": "d5719dc2",
                  "id": 68,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "delayedInboxAccs",
                  "nameLocation": "1095:16:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 64,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 63,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 68,
                        "src": "1112:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 62,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1112:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1111:9:0"
                  },
                  "returnParameters": {
                    "id": 67,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 66,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 68,
                        "src": "1144:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 65,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1144:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1143:9:0"
                  },
                  "scope": 192,
                  "src": "1086:67:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 69,
                    "nodeType": "StructuredDocumentation",
                    "src": "1157:149:0",
                    "text": "@dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message."
                  },
                  "functionSelector": "16bf5579",
                  "id": 76,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sequencerInboxAccs",
                  "nameLocation": "1318:18:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 72,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 71,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 76,
                        "src": "1337:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 70,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1337:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1336:9:0"
                  },
                  "returnParameters": {
                    "id": 75,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 74,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 76,
                        "src": "1369:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 73,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1369:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1368:9:0"
                  },
                  "scope": 192,
                  "src": "1309:69:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "cb23bcb5",
                  "id": 82,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "rollup",
                  "nameLocation": "1391:6:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 77,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1397:2:0"
                  },
                  "returnParameters": {
                    "id": 81,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 80,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 82,
                        "src": "1423:8:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOwnable_$395",
                          "typeString": "contract IOwnable"
                        },
                        "typeName": {
                          "id": 79,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 78,
                            "name": "IOwnable",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 395,
                            "src": "1423:8:0"
                          },
                          "referencedDeclaration": 395,
                          "src": "1423:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOwnable_$395",
                            "typeString": "contract IOwnable"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1422:10:0"
                  },
                  "scope": 192,
                  "src": "1382:51:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ee35f327",
                  "id": 87,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sequencerInbox",
                  "nameLocation": "1446:14:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 83,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1460:2:0"
                  },
                  "returnParameters": {
                    "id": 86,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 85,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 87,
                        "src": "1486:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 84,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1486:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1485:9:0"
                  },
                  "scope": 192,
                  "src": "1437:58:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ab5d8943",
                  "id": 92,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "activeOutbox",
                  "nameLocation": "1508:12:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 88,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1520:2:0"
                  },
                  "returnParameters": {
                    "id": 91,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 90,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 92,
                        "src": "1546:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 89,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1546:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1545:9:0"
                  },
                  "scope": 192,
                  "src": "1499:56:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ae60bd13",
                  "id": 99,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "allowedDelayedInboxes",
                  "nameLocation": "1568:21:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 95,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 94,
                        "mutability": "mutable",
                        "name": "inbox",
                        "nameLocation": "1598:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 99,
                        "src": "1590:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 93,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1590:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1589:15:0"
                  },
                  "returnParameters": {
                    "id": 98,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 97,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 99,
                        "src": "1628:4:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 96,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1628:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1627:6:0"
                  },
                  "scope": 192,
                  "src": "1559:75:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "413b35bd",
                  "id": 106,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "allowedOutboxes",
                  "nameLocation": "1647:15:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 102,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 101,
                        "mutability": "mutable",
                        "name": "outbox",
                        "nameLocation": "1671:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 106,
                        "src": "1663:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 100,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1663:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1662:16:0"
                  },
                  "returnParameters": {
                    "id": 105,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 104,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 106,
                        "src": "1702:4:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 103,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1702:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1701:6:0"
                  },
                  "scope": 192,
                  "src": "1638:70:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 107,
                    "nodeType": "StructuredDocumentation",
                    "src": "1712:223:0",
                    "text": " @dev Enqueue a message in the delayed inbox accumulator.\n      These messages are later sequenced in the SequencerInbox, either\n      by the sequencer as part of a normal batch, or by force inclusion."
                  },
                  "functionSelector": "8db5993b",
                  "id": 118,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "enqueueDelayedMessage",
                  "nameLocation": "1947:21:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 114,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 109,
                        "mutability": "mutable",
                        "name": "kind",
                        "nameLocation": "1980:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 118,
                        "src": "1974:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 108,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1974:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 111,
                        "mutability": "mutable",
                        "name": "sender",
                        "nameLocation": "1998:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 118,
                        "src": "1990:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 110,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1990:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 113,
                        "mutability": "mutable",
                        "name": "messageDataHash",
                        "nameLocation": "2018:15:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 118,
                        "src": "2010:23:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 112,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2010:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1968:69:0"
                  },
                  "returnParameters": {
                    "id": 117,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 116,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 118,
                        "src": "2064:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 115,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2064:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2063:9:0"
                  },
                  "scope": 192,
                  "src": "1938:135:0",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "9e5d4c49",
                  "id": 131,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "executeCall",
                  "nameLocation": "2086:11:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 125,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 120,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "2111:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 131,
                        "src": "2103:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 119,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2103:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 122,
                        "mutability": "mutable",
                        "name": "value",
                        "nameLocation": "2127:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 131,
                        "src": "2119:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 121,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2119:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 124,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "2153:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 131,
                        "src": "2138:19:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 123,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "2138:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2097:64:0"
                  },
                  "returnParameters": {
                    "id": 130,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 127,
                        "mutability": "mutable",
                        "name": "success",
                        "nameLocation": "2185:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 131,
                        "src": "2180:12:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 126,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "2180:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 129,
                        "mutability": "mutable",
                        "name": "returnData",
                        "nameLocation": "2207:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 131,
                        "src": "2194:23:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 128,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "2194:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2179:39:0"
                  },
                  "scope": 192,
                  "src": "2077:142:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "eca067ad",
                  "id": 136,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "delayedMessageCount",
                  "nameLocation": "2232:19:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 132,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2251:2:0"
                  },
                  "returnParameters": {
                    "id": 135,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 134,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 136,
                        "src": "2277:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 133,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2277:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2276:9:0"
                  },
                  "scope": 192,
                  "src": "2223:63:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "0084120c",
                  "id": 141,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sequencerMessageCount",
                  "nameLocation": "2299:21:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 137,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2320:2:0"
                  },
                  "returnParameters": {
                    "id": 140,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 139,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 141,
                        "src": "2346:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 138,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2346:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2345:9:0"
                  },
                  "scope": 192,
                  "src": "2290:65:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "845bde82",
                  "id": 156,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "enqueueSequencerMessage",
                  "nameLocation": "2425:23:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 146,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 143,
                        "mutability": "mutable",
                        "name": "dataHash",
                        "nameLocation": "2457:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 156,
                        "src": "2449:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 142,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2449:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 145,
                        "mutability": "mutable",
                        "name": "afterDelayedMessagesRead",
                        "nameLocation": "2475:24:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 156,
                        "src": "2467:32:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 144,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2467:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2448:52:0"
                  },
                  "returnParameters": {
                    "id": 155,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 148,
                        "mutability": "mutable",
                        "name": "seqMessageIndex",
                        "nameLocation": "2542:15:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 156,
                        "src": "2534:23:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 147,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2534:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 150,
                        "mutability": "mutable",
                        "name": "beforeAcc",
                        "nameLocation": "2573:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 156,
                        "src": "2565:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 149,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2565:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 152,
                        "mutability": "mutable",
                        "name": "delayedAcc",
                        "nameLocation": "2598:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 156,
                        "src": "2590:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 151,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2590:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 154,
                        "mutability": "mutable",
                        "name": "acc",
                        "nameLocation": "2624:3:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 156,
                        "src": "2616:11:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 153,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2616:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2526:107:0"
                  },
                  "scope": 192,
                  "src": "2416:218:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 157,
                    "nodeType": "StructuredDocumentation",
                    "src": "2638:364:0",
                    "text": " @dev Allows the sequencer inbox to submit a delayed message of the batchPostingReport type\n      This is done through a separate function entrypoint instead of allowing the sequencer inbox\n      to call `enqueueDelayedMessage` to avoid the gas overhead of an extra SLOAD in either\n      every delayed inbox or every sequencer inbox call."
                  },
                  "functionSelector": "7a88b107",
                  "id": 166,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "submitBatchSpendingReport",
                  "nameLocation": "3014:25:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 162,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 159,
                        "mutability": "mutable",
                        "name": "batchPoster",
                        "nameLocation": "3048:11:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 166,
                        "src": "3040:19:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 158,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3040:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 161,
                        "mutability": "mutable",
                        "name": "dataHash",
                        "nameLocation": "3069:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 166,
                        "src": "3061:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 160,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "3061:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3039:39:0"
                  },
                  "returnParameters": {
                    "id": 165,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 164,
                        "mutability": "mutable",
                        "name": "msgNum",
                        "nameLocation": "3113:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 166,
                        "src": "3105:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 163,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3105:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3104:16:0"
                  },
                  "scope": 192,
                  "src": "3005:116:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "4f61f850",
                  "id": 171,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setSequencerInbox",
                  "nameLocation": "3190:17:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 169,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 168,
                        "mutability": "mutable",
                        "name": "_sequencerInbox",
                        "nameLocation": "3216:15:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 171,
                        "src": "3208:23:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 167,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3208:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3207:25:0"
                  },
                  "returnParameters": {
                    "id": 170,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3241:0:0"
                  },
                  "scope": 192,
                  "src": "3181:61:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "47fb24c5",
                  "id": 178,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setDelayedInbox",
                  "nameLocation": "3255:15:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 176,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 173,
                        "mutability": "mutable",
                        "name": "inbox",
                        "nameLocation": "3279:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 178,
                        "src": "3271:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 172,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3271:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 175,
                        "mutability": "mutable",
                        "name": "enabled",
                        "nameLocation": "3291:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 178,
                        "src": "3286:12:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 174,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "3286:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3270:29:0"
                  },
                  "returnParameters": {
                    "id": 177,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3308:0:0"
                  },
                  "scope": 192,
                  "src": "3246:63:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "cee3d728",
                  "id": 185,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setOutbox",
                  "nameLocation": "3322:9:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 183,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 180,
                        "mutability": "mutable",
                        "name": "inbox",
                        "nameLocation": "3340:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 185,
                        "src": "3332:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 179,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3332:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 182,
                        "mutability": "mutable",
                        "name": "enabled",
                        "nameLocation": "3352:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 185,
                        "src": "3347:12:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 181,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "3347:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3331:29:0"
                  },
                  "returnParameters": {
                    "id": 184,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3369:0:0"
                  },
                  "scope": 192,
                  "src": "3313:57:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "c4d66de8",
                  "id": 191,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "initialize",
                  "nameLocation": "3423:10:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 189,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 188,
                        "mutability": "mutable",
                        "name": "rollup_",
                        "nameLocation": "3443:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 191,
                        "src": "3434:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOwnable_$395",
                          "typeString": "contract IOwnable"
                        },
                        "typeName": {
                          "id": 187,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 186,
                            "name": "IOwnable",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 395,
                            "src": "3434:8:0"
                          },
                          "referencedDeclaration": 395,
                          "src": "3434:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOwnable_$395",
                            "typeString": "contract IOwnable"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3433:18:0"
                  },
                  "returnParameters": {
                    "id": 190,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3460:0:0"
                  },
                  "scope": 192,
                  "src": "3414:47:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 193,
              "src": "264:3199:0",
              "usedErrors": []
            }
          ],
          "src": "205:3259:0"
        },
        "id": 0
      },
      "contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol": {
        "ast": {
          "absolutePath": "contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol",
          "exportedSymbols": {
            "IDelayedMessageProvider": [
              207
            ]
          },
          "id": 208,
          "license": "BUSL-1.1",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 194,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".9",
                "<",
                "0.9",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "205:31:1"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "IDelayedMessageProvider",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": true,
              "id": 207,
              "linearizedBaseContracts": [
                207
              ],
              "name": "IDelayedMessageProvider",
              "nameLocation": "248:23:1",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 195,
                    "nodeType": "StructuredDocumentation",
                    "src": "276:88:1",
                    "text": "@dev event emitted when a inbox message is added to the Bridge's delayed accumulator"
                  },
                  "id": 201,
                  "name": "InboxMessageDelivered",
                  "nameLocation": "373:21:1",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 200,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 197,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "messageNum",
                        "nameLocation": "411:10:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 201,
                        "src": "395:26:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 196,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "395:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 199,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "429:4:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 201,
                        "src": "423:10:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 198,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "423:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "394:40:1"
                  },
                  "src": "367:68:1"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 202,
                    "nodeType": "StructuredDocumentation",
                    "src": "439:168:1",
                    "text": "@dev event emitted when a inbox message is added to the Bridge's delayed accumulator\n same as InboxMessageDelivered but the batch data is available in tx.input"
                  },
                  "id": 206,
                  "name": "InboxMessageDeliveredFromOrigin",
                  "nameLocation": "616:31:1",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 205,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 204,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "messageNum",
                        "nameLocation": "664:10:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 206,
                        "src": "648:26:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 203,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "648:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "647:28:1"
                  },
                  "src": "610:66:1"
                }
              ],
              "scope": 208,
              "src": "238:440:1",
              "usedErrors": []
            }
          ],
          "src": "205:474:1"
        },
        "id": 1
      },
      "contracts/dependencies/arbitrum/interfaces/IInbox.sol": {
        "ast": {
          "absolutePath": "contracts/dependencies/arbitrum/interfaces/IInbox.sol",
          "exportedSymbols": {
            "GasRefundEnabled": [
              679
            ],
            "IBridge": [
              192
            ],
            "IDelayedMessageProvider": [
              207
            ],
            "IGasRefunder": [
              627
            ],
            "IInbox": [
              387
            ],
            "IOwnable": [
              395
            ],
            "ISequencerInbox": [
              613
            ]
          },
          "id": 388,
          "license": "BUSL-1.1",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 209,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".9",
                "<",
                "0.9",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "205:31:2"
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/IBridge.sol",
              "file": "./IBridge.sol",
              "id": 210,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 388,
              "sourceUnit": 193,
              "src": "238:23:2",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol",
              "file": "./IDelayedMessageProvider.sol",
              "id": 211,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 388,
              "sourceUnit": 208,
              "src": "262:39:2",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol",
              "file": "./ISequencerInbox.sol",
              "id": 212,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 388,
              "sourceUnit": 614,
              "src": "302:31:2",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [
                {
                  "baseName": {
                    "id": 213,
                    "name": "IDelayedMessageProvider",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 207,
                    "src": "355:23:2"
                  },
                  "id": 214,
                  "nodeType": "InheritanceSpecifier",
                  "src": "355:23:2"
                }
              ],
              "canonicalName": "IInbox",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 387,
              "linearizedBaseContracts": [
                387,
                207
              ],
              "name": "IInbox",
              "nameLocation": "345:6:2",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "e78cea92",
                  "id": 220,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "bridge",
                  "nameLocation": "392:6:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 215,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "398:2:2"
                  },
                  "returnParameters": {
                    "id": 219,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 218,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 220,
                        "src": "424:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBridge_$192",
                          "typeString": "contract IBridge"
                        },
                        "typeName": {
                          "id": 217,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 216,
                            "name": "IBridge",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 192,
                            "src": "424:7:2"
                          },
                          "referencedDeclaration": 192,
                          "src": "424:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "423:9:2"
                  },
                  "scope": 387,
                  "src": "383:50:2",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ee35f327",
                  "id": 226,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sequencerInbox",
                  "nameLocation": "446:14:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 221,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "460:2:2"
                  },
                  "returnParameters": {
                    "id": 225,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 224,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 226,
                        "src": "486:15:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                          "typeString": "contract ISequencerInbox"
                        },
                        "typeName": {
                          "id": 223,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 222,
                            "name": "ISequencerInbox",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 613,
                            "src": "486:15:2"
                          },
                          "referencedDeclaration": 613,
                          "src": "486:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                            "typeString": "contract ISequencerInbox"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "485:17:2"
                  },
                  "scope": 387,
                  "src": "437:66:2",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 227,
                    "nodeType": "StructuredDocumentation",
                    "src": "507:313:2",
                    "text": " @notice Send a generic L2 message to the chain\n @dev This method is an optimization to avoid having to emit the entirety of the messageData in a log. Instead validators are expected to be able to parse the data from the transaction's input\n @param messageData Data of the message being sent"
                  },
                  "functionSelector": "1fe927cf",
                  "id": 234,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendL2MessageFromOrigin",
                  "nameLocation": "832:23:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 230,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 229,
                        "mutability": "mutable",
                        "name": "messageData",
                        "nameLocation": "871:11:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 234,
                        "src": "856:26:2",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 228,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "856:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "855:28:2"
                  },
                  "returnParameters": {
                    "id": 233,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 232,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 234,
                        "src": "902:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 231,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "902:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "901:9:2"
                  },
                  "scope": 387,
                  "src": "823:88:2",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 235,
                    "nodeType": "StructuredDocumentation",
                    "src": "915:213:2",
                    "text": " @notice Send a generic L2 message to the chain\n @dev This method can be used to send any type of message that doesn't require L1 validation\n @param messageData Data of the message being sent"
                  },
                  "functionSelector": "b75436bb",
                  "id": 242,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendL2Message",
                  "nameLocation": "1140:13:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 238,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 237,
                        "mutability": "mutable",
                        "name": "messageData",
                        "nameLocation": "1169:11:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 242,
                        "src": "1154:26:2",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 236,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1154:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1153:28:2"
                  },
                  "returnParameters": {
                    "id": 241,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 240,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 242,
                        "src": "1200:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 239,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1200:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1199:9:2"
                  },
                  "scope": 387,
                  "src": "1131:78:2",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "67ef3ab8",
                  "id": 257,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendL1FundedUnsignedTransaction",
                  "nameLocation": "1222:31:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 253,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 244,
                        "mutability": "mutable",
                        "name": "gasLimit",
                        "nameLocation": "1267:8:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 257,
                        "src": "1259:16:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 243,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1259:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 246,
                        "mutability": "mutable",
                        "name": "maxFeePerGas",
                        "nameLocation": "1289:12:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 257,
                        "src": "1281:20:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 245,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1281:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 248,
                        "mutability": "mutable",
                        "name": "nonce",
                        "nameLocation": "1315:5:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 257,
                        "src": "1307:13:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 247,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1307:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 250,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1334:2:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 257,
                        "src": "1326:10:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 249,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1326:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 252,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "1357:4:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 257,
                        "src": "1342:19:2",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 251,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1342:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1253:112:2"
                  },
                  "returnParameters": {
                    "id": 256,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 255,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 257,
                        "src": "1392:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 254,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1392:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1391:9:2"
                  },
                  "scope": 387,
                  "src": "1213:188:2",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "5e916758",
                  "id": 270,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendL1FundedContractTransaction",
                  "nameLocation": "1414:31:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 266,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 259,
                        "mutability": "mutable",
                        "name": "gasLimit",
                        "nameLocation": "1459:8:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 270,
                        "src": "1451:16:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 258,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1451:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 261,
                        "mutability": "mutable",
                        "name": "maxFeePerGas",
                        "nameLocation": "1481:12:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 270,
                        "src": "1473:20:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 260,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1473:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 263,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1507:2:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 270,
                        "src": "1499:10:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 262,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1499:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 265,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "1530:4:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 270,
                        "src": "1515:19:2",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 264,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1515:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1445:93:2"
                  },
                  "returnParameters": {
                    "id": 269,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 268,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 270,
                        "src": "1565:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 267,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1565:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1564:9:2"
                  },
                  "scope": 387,
                  "src": "1405:169:2",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "5075788b",
                  "id": 287,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendUnsignedTransaction",
                  "nameLocation": "1587:23:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 283,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 272,
                        "mutability": "mutable",
                        "name": "gasLimit",
                        "nameLocation": "1624:8:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 287,
                        "src": "1616:16:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 271,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1616:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 274,
                        "mutability": "mutable",
                        "name": "maxFeePerGas",
                        "nameLocation": "1646:12:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 287,
                        "src": "1638:20:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 273,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1638:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 276,
                        "mutability": "mutable",
                        "name": "nonce",
                        "nameLocation": "1672:5:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 287,
                        "src": "1664:13:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 275,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1664:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 278,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1691:2:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 287,
                        "src": "1683:10:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 277,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1683:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 280,
                        "mutability": "mutable",
                        "name": "value",
                        "nameLocation": "1707:5:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 287,
                        "src": "1699:13:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 279,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1699:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 282,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "1733:4:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 287,
                        "src": "1718:19:2",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 281,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1718:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1610:131:2"
                  },
                  "returnParameters": {
                    "id": 286,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 285,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 287,
                        "src": "1760:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 284,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1760:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1759:9:2"
                  },
                  "scope": 387,
                  "src": "1578:191:2",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "8a631aa6",
                  "id": 302,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendContractTransaction",
                  "nameLocation": "1782:23:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 298,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 289,
                        "mutability": "mutable",
                        "name": "gasLimit",
                        "nameLocation": "1819:8:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 302,
                        "src": "1811:16:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 288,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1811:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 291,
                        "mutability": "mutable",
                        "name": "maxFeePerGas",
                        "nameLocation": "1841:12:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 302,
                        "src": "1833:20:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 290,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1833:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 293,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1867:2:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 302,
                        "src": "1859:10:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 292,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1859:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 295,
                        "mutability": "mutable",
                        "name": "value",
                        "nameLocation": "1883:5:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 302,
                        "src": "1875:13:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 294,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1875:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 297,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "1909:4:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 302,
                        "src": "1894:19:2",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 296,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1894:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1805:112:2"
                  },
                  "returnParameters": {
                    "id": 301,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 300,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 302,
                        "src": "1936:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 299,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1936:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1935:9:2"
                  },
                  "scope": 387,
                  "src": "1773:172:2",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 303,
                    "nodeType": "StructuredDocumentation",
                    "src": "1949:480:2",
                    "text": " @notice Get the L1 fee for submitting a retryable\n @dev This fee can be paid by funds already in the L2 aliased address or by the current message value\n @dev This formula may change in the future, to future proof your code query this method instead of inlining!!\n @param dataLength The length of the retryable's calldata, in bytes\n @param baseFee The block basefee when the retryable is included in the chain, if 0 current block.basefee will be used"
                  },
                  "functionSelector": "a66b327d",
                  "id": 312,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "calculateRetryableSubmissionFee",
                  "nameLocation": "2441:31:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 308,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 305,
                        "mutability": "mutable",
                        "name": "dataLength",
                        "nameLocation": "2481:10:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 312,
                        "src": "2473:18:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 304,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2473:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 307,
                        "mutability": "mutable",
                        "name": "baseFee",
                        "nameLocation": "2501:7:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 312,
                        "src": "2493:15:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 306,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2493:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2472:37:2"
                  },
                  "returnParameters": {
                    "id": 311,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 310,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 312,
                        "src": "2545:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 309,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2545:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2544:9:2"
                  },
                  "scope": 387,
                  "src": "2432:122:2",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 313,
                    "nodeType": "StructuredDocumentation",
                    "src": "2558:290:2",
                    "text": " @notice Deposit eth from L1 to L2\n @dev This does not trigger the fallback function when receiving in the L2 side.\n      Look into retryable tickets if you are interested in this functionality.\n @dev This function should not be called inside contract constructors"
                  },
                  "functionSelector": "439370b1",
                  "id": 318,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "depositEth",
                  "nameLocation": "2860:10:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 314,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2870:2:2"
                  },
                  "returnParameters": {
                    "id": 317,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 316,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 318,
                        "src": "2899:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 315,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2899:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2898:9:2"
                  },
                  "scope": 387,
                  "src": "2851:57:2",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 319,
                    "nodeType": "StructuredDocumentation",
                    "src": "2912:1136:2",
                    "text": " @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\n @dev all msg.value will deposited to callValueRefundAddress on L2\n @dev Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\n @param to destination L2 contract address\n @param l2CallValue call value for retryable L2 message\n @param maxSubmissionCost Max gas deducted from user's L2 balance to cover base submission fee\n @param excessFeeRefundAddress gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\n @param callValueRefundAddress l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\n @param gasLimit Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\n @param maxFeePerGas price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\n @param data ABI encoded data of L2 message\n @return unique message number of the retryable transaction"
                  },
                  "functionSelector": "679b6ded",
                  "id": 340,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "createRetryableTicket",
                  "nameLocation": "4060:21:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 336,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 321,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "4095:2:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4087:10:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 320,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4087:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 323,
                        "mutability": "mutable",
                        "name": "l2CallValue",
                        "nameLocation": "4111:11:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4103:19:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 322,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4103:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 325,
                        "mutability": "mutable",
                        "name": "maxSubmissionCost",
                        "nameLocation": "4136:17:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4128:25:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 324,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4128:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 327,
                        "mutability": "mutable",
                        "name": "excessFeeRefundAddress",
                        "nameLocation": "4167:22:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4159:30:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 326,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4159:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 329,
                        "mutability": "mutable",
                        "name": "callValueRefundAddress",
                        "nameLocation": "4203:22:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4195:30:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 328,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4195:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 331,
                        "mutability": "mutable",
                        "name": "gasLimit",
                        "nameLocation": "4239:8:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4231:16:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 330,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4231:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 333,
                        "mutability": "mutable",
                        "name": "maxFeePerGas",
                        "nameLocation": "4261:12:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4253:20:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 332,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4253:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 335,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "4294:4:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4279:19:2",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 334,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "4279:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4081:221:2"
                  },
                  "returnParameters": {
                    "id": 339,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 338,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 340,
                        "src": "4329:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 337,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4329:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4328:9:2"
                  },
                  "scope": 387,
                  "src": "4051:287:2",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 341,
                    "nodeType": "StructuredDocumentation",
                    "src": "4342:1447:2",
                    "text": " @notice Put a message in the L2 inbox that can be reexecuted for some fixed amount of time if it reverts\n @dev Same as createRetryableTicket, but does not guarantee that submission will succeed by requiring the needed funds\n come from the deposit alone, rather than falling back on the user's L2 balance\n @dev Advanced usage only (does not rewrite aliases for excessFeeRefundAddress and callValueRefundAddress).\n createRetryableTicket method is the recommended standard.\n @dev Gas limit and maxFeePerGas should not be set to 1 as that is used to trigger the RetryableData error\n @param to destination L2 contract address\n @param l2CallValue call value for retryable L2 message\n @param maxSubmissionCost Max gas deducted from user's L2 balance to cover base submission fee\n @param excessFeeRefundAddress gasLimit x maxFeePerGas - execution cost gets credited here on L2 balance\n @param callValueRefundAddress l2Callvalue gets credited here on L2 if retryable txn times out or gets cancelled\n @param gasLimit Max gas deducted from user's L2 balance to cover L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\n @param maxFeePerGas price bid for L2 execution. Should not be set to 1 (magic value used to trigger the RetryableData error)\n @param data ABI encoded data of L2 message\n @return unique message number of the retryable transaction"
                  },
                  "functionSelector": "6e6e8a6a",
                  "id": 362,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "unsafeCreateRetryableTicket",
                  "nameLocation": "5801:27:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 358,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 343,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "5842:2:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "5834:10:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 342,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5834:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 345,
                        "mutability": "mutable",
                        "name": "l2CallValue",
                        "nameLocation": "5858:11:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "5850:19:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 344,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5850:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 347,
                        "mutability": "mutable",
                        "name": "maxSubmissionCost",
                        "nameLocation": "5883:17:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "5875:25:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 346,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5875:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 349,
                        "mutability": "mutable",
                        "name": "excessFeeRefundAddress",
                        "nameLocation": "5914:22:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "5906:30:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 348,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5906:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 351,
                        "mutability": "mutable",
                        "name": "callValueRefundAddress",
                        "nameLocation": "5950:22:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "5942:30:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 350,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5942:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 353,
                        "mutability": "mutable",
                        "name": "gasLimit",
                        "nameLocation": "5986:8:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "5978:16:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 352,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5978:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 355,
                        "mutability": "mutable",
                        "name": "maxFeePerGas",
                        "nameLocation": "6008:12:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "6000:20:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 354,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "6000:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 357,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "6041:4:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "6026:19:2",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 356,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "6026:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5828:221:2"
                  },
                  "returnParameters": {
                    "id": 361,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 360,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 362,
                        "src": "6076:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 359,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "6076:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6075:9:2"
                  },
                  "scope": 387,
                  "src": "5792:293:2",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 363,
                    "nodeType": "StructuredDocumentation",
                    "src": "6145:42:2",
                    "text": "@notice pauses all inbox functionality"
                  },
                  "functionSelector": "8456cb59",
                  "id": 366,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "pause",
                  "nameLocation": "6199:5:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 364,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "6204:2:2"
                  },
                  "returnParameters": {
                    "id": 365,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "6215:0:2"
                  },
                  "scope": 387,
                  "src": "6190:26:2",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 367,
                    "nodeType": "StructuredDocumentation",
                    "src": "6220:44:2",
                    "text": "@notice unpauses all inbox functionality"
                  },
                  "functionSelector": "3f4ba83a",
                  "id": 370,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "unpause",
                  "nameLocation": "6276:7:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 368,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "6283:2:2"
                  },
                  "returnParameters": {
                    "id": 369,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "6294:0:2"
                  },
                  "scope": 387,
                  "src": "6267:28:2",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 371,
                    "nodeType": "StructuredDocumentation",
                    "src": "6339:131:2",
                    "text": " @dev function to be called one time during the inbox upgrade process\n      this is used to fix the storage slots"
                  },
                  "functionSelector": "c474d2c5",
                  "id": 377,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "postUpgradeInit",
                  "nameLocation": "6482:15:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 375,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 374,
                        "mutability": "mutable",
                        "name": "_bridge",
                        "nameLocation": "6506:7:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 377,
                        "src": "6498:15:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBridge_$192",
                          "typeString": "contract IBridge"
                        },
                        "typeName": {
                          "id": 373,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 372,
                            "name": "IBridge",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 192,
                            "src": "6498:7:2"
                          },
                          "referencedDeclaration": 192,
                          "src": "6498:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6497:17:2"
                  },
                  "returnParameters": {
                    "id": 376,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "6523:0:2"
                  },
                  "scope": 387,
                  "src": "6473:51:2",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "485cc955",
                  "id": 386,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "initialize",
                  "nameLocation": "6537:10:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 384,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 380,
                        "mutability": "mutable",
                        "name": "_bridge",
                        "nameLocation": "6556:7:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 386,
                        "src": "6548:15:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBridge_$192",
                          "typeString": "contract IBridge"
                        },
                        "typeName": {
                          "id": 379,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 378,
                            "name": "IBridge",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 192,
                            "src": "6548:7:2"
                          },
                          "referencedDeclaration": 192,
                          "src": "6548:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 383,
                        "mutability": "mutable",
                        "name": "_sequencerInbox",
                        "nameLocation": "6581:15:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 386,
                        "src": "6565:31:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                          "typeString": "contract ISequencerInbox"
                        },
                        "typeName": {
                          "id": 382,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 381,
                            "name": "ISequencerInbox",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 613,
                            "src": "6565:15:2"
                          },
                          "referencedDeclaration": 613,
                          "src": "6565:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                            "typeString": "contract ISequencerInbox"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6547:50:2"
                  },
                  "returnParameters": {
                    "id": 385,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "6606:0:2"
                  },
                  "scope": 387,
                  "src": "6528:79:2",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 388,
              "src": "335:6274:2",
              "usedErrors": []
            }
          ],
          "src": "205:6405:2"
        },
        "id": 2
      },
      "contracts/dependencies/arbitrum/interfaces/IOwnable.sol": {
        "ast": {
          "absolutePath": "contracts/dependencies/arbitrum/interfaces/IOwnable.sol",
          "exportedSymbols": {
            "IOwnable": [
              395
            ]
          },
          "id": 396,
          "license": "BUSL-1.1",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 389,
              "literals": [
                "solidity",
                ">=",
                "0.4",
                ".21",
                "<",
                "0.9",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "205:32:3"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "IOwnable",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 395,
              "linearizedBaseContracts": [
                395
              ],
              "name": "IOwnable",
              "nameLocation": "249:8:3",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "8da5cb5b",
                  "id": 394,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "owner",
                  "nameLocation": "271:5:3",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 390,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "276:2:3"
                  },
                  "returnParameters": {
                    "id": 393,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 392,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 394,
                        "src": "302:7:3",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 391,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "302:7:3",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "301:9:3"
                  },
                  "scope": 395,
                  "src": "262:49:3",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 396,
              "src": "239:74:3",
              "usedErrors": []
            }
          ],
          "src": "205:109:3"
        },
        "id": 3
      },
      "contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol": {
        "ast": {
          "absolutePath": "contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol",
          "exportedSymbols": {
            "GasRefundEnabled": [
              679
            ],
            "IBridge": [
              192
            ],
            "IDelayedMessageProvider": [
              207
            ],
            "IGasRefunder": [
              627
            ],
            "IOwnable": [
              395
            ],
            "ISequencerInbox": [
              613
            ]
          },
          "id": 614,
          "license": "BUSL-1.1",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 397,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".9",
                "<",
                "0.9",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "205:31:4"
            },
            {
              "id": 398,
              "literals": [
                "experimental",
                "ABIEncoderV2"
              ],
              "nodeType": "PragmaDirective",
              "src": "237:33:4"
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/libraries/IGasRefunder.sol",
              "file": "../libraries/IGasRefunder.sol",
              "id": 399,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 614,
              "sourceUnit": 680,
              "src": "272:39:4",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/IDelayedMessageProvider.sol",
              "file": "./IDelayedMessageProvider.sol",
              "id": 400,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 614,
              "sourceUnit": 208,
              "src": "312:39:4",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/IBridge.sol",
              "file": "./IBridge.sol",
              "id": 401,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 614,
              "sourceUnit": 193,
              "src": "352:23:4",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [
                {
                  "baseName": {
                    "id": 402,
                    "name": "IDelayedMessageProvider",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 207,
                    "src": "406:23:4"
                  },
                  "id": 403,
                  "nodeType": "InheritanceSpecifier",
                  "src": "406:23:4"
                }
              ],
              "canonicalName": "ISequencerInbox",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 613,
              "linearizedBaseContracts": [
                613,
                207
              ],
              "name": "ISequencerInbox",
              "nameLocation": "387:15:4",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "canonicalName": "ISequencerInbox.MaxTimeVariation",
                  "id": 412,
                  "members": [
                    {
                      "constant": false,
                      "id": 405,
                      "mutability": "mutable",
                      "name": "delayBlocks",
                      "nameLocation": "472:11:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 412,
                      "src": "464:19:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 404,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "464:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 407,
                      "mutability": "mutable",
                      "name": "futureBlocks",
                      "nameLocation": "497:12:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 412,
                      "src": "489:20:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 406,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "489:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 409,
                      "mutability": "mutable",
                      "name": "delaySeconds",
                      "nameLocation": "523:12:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 412,
                      "src": "515:20:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 408,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "515:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 411,
                      "mutability": "mutable",
                      "name": "futureSeconds",
                      "nameLocation": "549:13:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 412,
                      "src": "541:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 410,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "541:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "name": "MaxTimeVariation",
                  "nameLocation": "441:16:4",
                  "nodeType": "StructDefinition",
                  "scope": 613,
                  "src": "434:133:4",
                  "visibility": "public"
                },
                {
                  "canonicalName": "ISequencerInbox.TimeBounds",
                  "id": 421,
                  "members": [
                    {
                      "constant": false,
                      "id": 414,
                      "mutability": "mutable",
                      "name": "minTimestamp",
                      "nameLocation": "602:12:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 421,
                      "src": "595:19:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 413,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "595:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 416,
                      "mutability": "mutable",
                      "name": "maxTimestamp",
                      "nameLocation": "627:12:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 421,
                      "src": "620:19:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 415,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "620:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 418,
                      "mutability": "mutable",
                      "name": "minBlockNumber",
                      "nameLocation": "652:14:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 421,
                      "src": "645:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 417,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "645:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 420,
                      "mutability": "mutable",
                      "name": "maxBlockNumber",
                      "nameLocation": "679:14:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 421,
                      "src": "672:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 419,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "672:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "name": "TimeBounds",
                  "nameLocation": "578:10:4",
                  "nodeType": "StructDefinition",
                  "scope": 613,
                  "src": "571:127:4",
                  "visibility": "public"
                },
                {
                  "canonicalName": "ISequencerInbox.BatchDataLocation",
                  "id": 425,
                  "members": [
                    {
                      "id": 422,
                      "name": "TxInput",
                      "nameLocation": "731:7:4",
                      "nodeType": "EnumValue",
                      "src": "731:7:4"
                    },
                    {
                      "id": 423,
                      "name": "SeparateBatchEvent",
                      "nameLocation": "744:18:4",
                      "nodeType": "EnumValue",
                      "src": "744:18:4"
                    },
                    {
                      "id": 424,
                      "name": "NoData",
                      "nameLocation": "768:6:4",
                      "nodeType": "EnumValue",
                      "src": "768:6:4"
                    }
                  ],
                  "name": "BatchDataLocation",
                  "nameLocation": "707:17:4",
                  "nodeType": "EnumDefinition",
                  "src": "702:76:4"
                },
                {
                  "anonymous": false,
                  "id": 443,
                  "name": "SequencerBatchDelivered",
                  "nameLocation": "788:23:4",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 442,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 427,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "batchSequenceNumber",
                        "nameLocation": "833:19:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 443,
                        "src": "817:35:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 426,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "817:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 429,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "beforeAcc",
                        "nameLocation": "874:9:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 443,
                        "src": "858:25:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 428,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "858:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 431,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "afterAcc",
                        "nameLocation": "905:8:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 443,
                        "src": "889:24:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 430,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "889:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 433,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "delayedAcc",
                        "nameLocation": "927:10:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 443,
                        "src": "919:18:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 432,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "919:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 435,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "afterDelayedMessagesRead",
                        "nameLocation": "951:24:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 443,
                        "src": "943:32:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 434,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "943:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 438,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "timeBounds",
                        "nameLocation": "992:10:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 443,
                        "src": "981:21:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_TimeBounds_$421_memory_ptr",
                          "typeString": "struct ISequencerInbox.TimeBounds"
                        },
                        "typeName": {
                          "id": 437,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 436,
                            "name": "TimeBounds",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 421,
                            "src": "981:10:4"
                          },
                          "referencedDeclaration": 421,
                          "src": "981:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TimeBounds_$421_storage_ptr",
                            "typeString": "struct ISequencerInbox.TimeBounds"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 441,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "dataLocation",
                        "nameLocation": "1026:12:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 443,
                        "src": "1008:30:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_BatchDataLocation_$425",
                          "typeString": "enum ISequencerInbox.BatchDataLocation"
                        },
                        "typeName": {
                          "id": 440,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 439,
                            "name": "BatchDataLocation",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 425,
                            "src": "1008:17:4"
                          },
                          "referencedDeclaration": 425,
                          "src": "1008:17:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_BatchDataLocation_$425",
                            "typeString": "enum ISequencerInbox.BatchDataLocation"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "811:231:4"
                  },
                  "src": "782:261:4"
                },
                {
                  "anonymous": false,
                  "id": 447,
                  "name": "OwnerFunctionCalled",
                  "nameLocation": "1053:19:4",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 446,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 445,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "id",
                        "nameLocation": "1089:2:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 447,
                        "src": "1073:18:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 444,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1073:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1072:20:4"
                  },
                  "src": "1047:46:4"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 448,
                    "nodeType": "StructuredDocumentation",
                    "src": "1097:97:4",
                    "text": "@dev a separate event that emits batch data when this isn't easily accessible in the tx.input"
                  },
                  "id": 454,
                  "name": "SequencerBatchData",
                  "nameLocation": "1203:18:4",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 453,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 450,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "batchSequenceNumber",
                        "nameLocation": "1238:19:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 454,
                        "src": "1222:35:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 449,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1222:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 452,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "1265:4:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 454,
                        "src": "1259:10:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 451,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1259:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1221:49:4"
                  },
                  "src": "1197:74:4"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 455,
                    "nodeType": "StructuredDocumentation",
                    "src": "1275:33:4",
                    "text": "@dev a valid keyset was added"
                  },
                  "id": 461,
                  "name": "SetValidKeyset",
                  "nameLocation": "1317:14:4",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 460,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 457,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "keysetHash",
                        "nameLocation": "1348:10:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 461,
                        "src": "1332:26:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 456,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1332:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 459,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "keysetBytes",
                        "nameLocation": "1366:11:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 461,
                        "src": "1360:17:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 458,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1360:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1331:47:4"
                  },
                  "src": "1311:68:4"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 462,
                    "nodeType": "StructuredDocumentation",
                    "src": "1383:33:4",
                    "text": "@dev a keyset was invalidated"
                  },
                  "id": 466,
                  "name": "InvalidateKeyset",
                  "nameLocation": "1425:16:4",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 465,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 464,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "keysetHash",
                        "nameLocation": "1458:10:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 466,
                        "src": "1442:26:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 463,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1442:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1441:28:4"
                  },
                  "src": "1419:51:4"
                },
                {
                  "functionSelector": "7fa3a40e",
                  "id": 471,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "totalDelayedMessagesRead",
                  "nameLocation": "1483:24:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 467,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1507:2:4"
                  },
                  "returnParameters": {
                    "id": 470,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 469,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1533:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 468,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1533:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1532:9:4"
                  },
                  "scope": 613,
                  "src": "1474:68:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "e78cea92",
                  "id": 477,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "bridge",
                  "nameLocation": "1555:6:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 472,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1561:2:4"
                  },
                  "returnParameters": {
                    "id": 476,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 475,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 477,
                        "src": "1587:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBridge_$192",
                          "typeString": "contract IBridge"
                        },
                        "typeName": {
                          "id": 474,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 473,
                            "name": "IBridge",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 192,
                            "src": "1587:7:4"
                          },
                          "referencedDeclaration": 192,
                          "src": "1587:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1586:9:4"
                  },
                  "scope": 613,
                  "src": "1546:50:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 478,
                    "nodeType": "StructuredDocumentation",
                    "src": "1600:37:4",
                    "text": "@dev The size of the batch header"
                  },
                  "functionSelector": "27957a49",
                  "id": 483,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "HEADER_LENGTH",
                  "nameLocation": "1700:13:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 479,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1713:2:4"
                  },
                  "returnParameters": {
                    "id": 482,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 481,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 483,
                        "src": "1739:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 480,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1739:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1738:9:4"
                  },
                  "scope": 613,
                  "src": "1691:57:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 484,
                    "nodeType": "StructuredDocumentation",
                    "src": "1752:151:4",
                    "text": "@dev If the first batch data byte after the header has this bit set,\n      the sequencer inbox has authenticated the data. Currently not used."
                  },
                  "functionSelector": "e5a358c8",
                  "id": 489,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "DATA_AUTHENTICATED_FLAG",
                  "nameLocation": "1966:23:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 485,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1989:2:4"
                  },
                  "returnParameters": {
                    "id": 488,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 487,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 489,
                        "src": "2015:6:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes1",
                          "typeString": "bytes1"
                        },
                        "typeName": {
                          "id": 486,
                          "name": "bytes1",
                          "nodeType": "ElementaryTypeName",
                          "src": "2015:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2014:8:4"
                  },
                  "scope": 613,
                  "src": "1957:66:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "cb23bcb5",
                  "id": 495,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "rollup",
                  "nameLocation": "2036:6:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 490,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2042:2:4"
                  },
                  "returnParameters": {
                    "id": 494,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 493,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 495,
                        "src": "2068:8:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOwnable_$395",
                          "typeString": "contract IOwnable"
                        },
                        "typeName": {
                          "id": 492,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 491,
                            "name": "IOwnable",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 395,
                            "src": "2068:8:4"
                          },
                          "referencedDeclaration": 395,
                          "src": "2068:8:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOwnable_$395",
                            "typeString": "contract IOwnable"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2067:10:4"
                  },
                  "scope": 613,
                  "src": "2027:51:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "71c3e6fe",
                  "id": 502,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "isBatchPoster",
                  "nameLocation": "2091:13:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 498,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 497,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 502,
                        "src": "2105:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 496,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2105:7:4",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2104:9:4"
                  },
                  "returnParameters": {
                    "id": 501,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 500,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 502,
                        "src": "2137:4:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 499,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "2137:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2136:6:4"
                  },
                  "scope": 613,
                  "src": "2082:61:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "canonicalName": "ISequencerInbox.DasKeySetInfo",
                  "id": 507,
                  "members": [
                    {
                      "constant": false,
                      "id": 504,
                      "mutability": "mutable",
                      "name": "isValidKeyset",
                      "nameLocation": "2179:13:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 507,
                      "src": "2174:18:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 503,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2174:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 506,
                      "mutability": "mutable",
                      "name": "creationBlock",
                      "nameLocation": "2205:13:4",
                      "nodeType": "VariableDeclaration",
                      "scope": 507,
                      "src": "2198:20:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 505,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "2198:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "name": "DasKeySetInfo",
                  "nameLocation": "2154:13:4",
                  "nodeType": "StructDefinition",
                  "scope": 613,
                  "src": "2147:76:4",
                  "visibility": "public"
                },
                {
                  "documentation": {
                    "id": 508,
                    "nodeType": "StructuredDocumentation",
                    "src": "2452:902:4",
                    "text": "@notice Force messages from the delayed inbox to be included in the chain\n         Callable by any address, but message can only be force-included after maxTimeVariation.delayBlocks and\n         maxTimeVariation.delaySeconds has elapsed. As part of normal behaviour the sequencer will include these\n         messages so it's only necessary to call this if the sequencer is down, or not including any delayed messages.\n @param _totalDelayedMessagesRead The total number of messages to read up to\n @param kind The kind of the last message to be included\n @param l1BlockAndTime The l1 block and the l1 timestamp of the last message to be included\n @param baseFeeL1 The l1 gas price of the last message to be included\n @param sender The sender of the last message to be included\n @param messageDataHash The messageDataHash of the last message to be included"
                  },
                  "functionSelector": "f1981578",
                  "id": 525,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "forceInclusion",
                  "nameLocation": "3366:14:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 523,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 510,
                        "mutability": "mutable",
                        "name": "_totalDelayedMessagesRead",
                        "nameLocation": "3394:25:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 525,
                        "src": "3386:33:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 509,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3386:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 512,
                        "mutability": "mutable",
                        "name": "kind",
                        "nameLocation": "3431:4:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 525,
                        "src": "3425:10:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 511,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "3425:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 516,
                        "mutability": "mutable",
                        "name": "l1BlockAndTime",
                        "nameLocation": "3460:14:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 525,
                        "src": "3441:33:4",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint64_$2_calldata_ptr",
                          "typeString": "uint64[2]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 513,
                            "name": "uint64",
                            "nodeType": "ElementaryTypeName",
                            "src": "3441:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "id": 515,
                          "length": {
                            "hexValue": "32",
                            "id": 514,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3448:1:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "2"
                          },
                          "nodeType": "ArrayTypeName",
                          "src": "3441:9:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint64_$2_storage_ptr",
                            "typeString": "uint64[2]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 518,
                        "mutability": "mutable",
                        "name": "baseFeeL1",
                        "nameLocation": "3488:9:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 525,
                        "src": "3480:17:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 517,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3480:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 520,
                        "mutability": "mutable",
                        "name": "sender",
                        "nameLocation": "3511:6:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 525,
                        "src": "3503:14:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 519,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3503:7:4",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 522,
                        "mutability": "mutable",
                        "name": "messageDataHash",
                        "nameLocation": "3531:15:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 525,
                        "src": "3523:23:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 521,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "3523:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3380:170:4"
                  },
                  "returnParameters": {
                    "id": 524,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3559:0:4"
                  },
                  "scope": 613,
                  "src": "3357:203:4",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "d9dd67ab",
                  "id": 532,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "inboxAccs",
                  "nameLocation": "3573:9:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 528,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 527,
                        "mutability": "mutable",
                        "name": "index",
                        "nameLocation": "3591:5:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 532,
                        "src": "3583:13:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 526,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3583:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3582:15:4"
                  },
                  "returnParameters": {
                    "id": 531,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 530,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 532,
                        "src": "3621:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 529,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "3621:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3620:9:4"
                  },
                  "scope": 613,
                  "src": "3564:66:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "06f13056",
                  "id": 537,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "batchCount",
                  "nameLocation": "3643:10:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 533,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3653:2:4"
                  },
                  "returnParameters": {
                    "id": 536,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 535,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 537,
                        "src": "3679:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 534,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3679:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3678:9:4"
                  },
                  "scope": 613,
                  "src": "3634:54:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "1637be48",
                  "id": 544,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "isValidKeysetHash",
                  "nameLocation": "3701:17:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 540,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 539,
                        "mutability": "mutable",
                        "name": "ksHash",
                        "nameLocation": "3727:6:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 544,
                        "src": "3719:14:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 538,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "3719:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3718:16:4"
                  },
                  "returnParameters": {
                    "id": 543,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 542,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 544,
                        "src": "3758:4:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 541,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "3758:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3757:6:4"
                  },
                  "scope": 613,
                  "src": "3692:72:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 545,
                    "nodeType": "StructuredDocumentation",
                    "src": "3768:90:4",
                    "text": "@notice the creation block is intended to still be available after a keyset is deleted"
                  },
                  "functionSelector": "258f0495",
                  "id": 552,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getKeysetCreationBlock",
                  "nameLocation": "3870:22:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 548,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 547,
                        "mutability": "mutable",
                        "name": "ksHash",
                        "nameLocation": "3901:6:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 552,
                        "src": "3893:14:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 546,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "3893:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3892:16:4"
                  },
                  "returnParameters": {
                    "id": 551,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 550,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 552,
                        "src": "3932:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 549,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3932:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3931:9:4"
                  },
                  "scope": 613,
                  "src": "3861:80:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "6f12b0c9",
                  "id": 564,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "addSequencerL2BatchFromOrigin",
                  "nameLocation": "4004:29:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 562,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 554,
                        "mutability": "mutable",
                        "name": "sequenceNumber",
                        "nameLocation": "4047:14:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 564,
                        "src": "4039:22:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 553,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4039:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 556,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "4082:4:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 564,
                        "src": "4067:19:4",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 555,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "4067:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 558,
                        "mutability": "mutable",
                        "name": "afterDelayedMessagesRead",
                        "nameLocation": "4100:24:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 564,
                        "src": "4092:32:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 557,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4092:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 561,
                        "mutability": "mutable",
                        "name": "gasRefunder",
                        "nameLocation": "4143:11:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 564,
                        "src": "4130:24:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IGasRefunder_$627",
                          "typeString": "contract IGasRefunder"
                        },
                        "typeName": {
                          "id": 560,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 559,
                            "name": "IGasRefunder",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 627,
                            "src": "4130:12:4"
                          },
                          "referencedDeclaration": 627,
                          "src": "4130:12:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IGasRefunder_$627",
                            "typeString": "contract IGasRefunder"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4033:125:4"
                  },
                  "returnParameters": {
                    "id": 563,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "4167:0:4"
                  },
                  "scope": 613,
                  "src": "3995:173:4",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "61a93f8f",
                  "id": 576,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "addSequencerL2Batch",
                  "nameLocation": "4181:19:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 574,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 566,
                        "mutability": "mutable",
                        "name": "sequenceNumber",
                        "nameLocation": "4214:14:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 576,
                        "src": "4206:22:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 565,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4206:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 568,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "4249:4:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 576,
                        "src": "4234:19:4",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 567,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "4234:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 570,
                        "mutability": "mutable",
                        "name": "afterDelayedMessagesRead",
                        "nameLocation": "4267:24:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 576,
                        "src": "4259:32:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 569,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4259:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 573,
                        "mutability": "mutable",
                        "name": "gasRefunder",
                        "nameLocation": "4310:11:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 576,
                        "src": "4297:24:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IGasRefunder_$627",
                          "typeString": "contract IGasRefunder"
                        },
                        "typeName": {
                          "id": 572,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 571,
                            "name": "IGasRefunder",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 627,
                            "src": "4297:12:4"
                          },
                          "referencedDeclaration": 627,
                          "src": "4297:12:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IGasRefunder_$627",
                            "typeString": "contract IGasRefunder"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4200:125:4"
                  },
                  "returnParameters": {
                    "id": 575,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "4334:0:4"
                  },
                  "scope": 613,
                  "src": "4172:163:4",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 577,
                    "nodeType": "StructuredDocumentation",
                    "src": "4395:124:4",
                    "text": " @notice Set max delay for sequencer inbox\n @param maxTimeVariation_ the maximum time variation parameters"
                  },
                  "functionSelector": "b31761f8",
                  "id": 583,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setMaxTimeVariation",
                  "nameLocation": "4531:19:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 581,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 580,
                        "mutability": "mutable",
                        "name": "maxTimeVariation_",
                        "nameLocation": "4575:17:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 583,
                        "src": "4551:41:4",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_MaxTimeVariation_$412_memory_ptr",
                          "typeString": "struct ISequencerInbox.MaxTimeVariation"
                        },
                        "typeName": {
                          "id": 579,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 578,
                            "name": "MaxTimeVariation",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 412,
                            "src": "4551:16:4"
                          },
                          "referencedDeclaration": 412,
                          "src": "4551:16:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MaxTimeVariation_$412_storage_ptr",
                            "typeString": "struct ISequencerInbox.MaxTimeVariation"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4550:43:4"
                  },
                  "returnParameters": {
                    "id": 582,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "4602:0:4"
                  },
                  "scope": 613,
                  "src": "4522:81:4",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 584,
                    "nodeType": "StructuredDocumentation",
                    "src": "4607:227:4",
                    "text": " @notice Updates whether an address is authorized to be a batch poster at the sequencer inbox\n @param addr the address\n @param isBatchPoster_ if the specified address should be authorized as a batch poster"
                  },
                  "functionSelector": "6e7df3e7",
                  "id": 591,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setIsBatchPoster",
                  "nameLocation": "4846:16:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 589,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 586,
                        "mutability": "mutable",
                        "name": "addr",
                        "nameLocation": "4871:4:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 591,
                        "src": "4863:12:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 585,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4863:7:4",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 588,
                        "mutability": "mutable",
                        "name": "isBatchPoster_",
                        "nameLocation": "4882:14:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 591,
                        "src": "4877:19:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 587,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "4877:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4862:35:4"
                  },
                  "returnParameters": {
                    "id": 590,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "4906:0:4"
                  },
                  "scope": 613,
                  "src": "4837:70:4",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 592,
                    "nodeType": "StructuredDocumentation",
                    "src": "4911:122:4",
                    "text": " @notice Makes Data Availability Service keyset valid\n @param keysetBytes bytes of the serialized keyset"
                  },
                  "functionSelector": "d1ce8da8",
                  "id": 597,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setValidKeyset",
                  "nameLocation": "5045:14:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 595,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 594,
                        "mutability": "mutable",
                        "name": "keysetBytes",
                        "nameLocation": "5075:11:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 597,
                        "src": "5060:26:4",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 593,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "5060:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5059:28:4"
                  },
                  "returnParameters": {
                    "id": 596,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "5096:0:4"
                  },
                  "scope": 613,
                  "src": "5036:61:4",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 598,
                    "nodeType": "StructuredDocumentation",
                    "src": "5101:107:4",
                    "text": " @notice Invalidates a Data Availability Service keyset\n @param ksHash hash of the keyset"
                  },
                  "functionSelector": "84420860",
                  "id": 603,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "invalidateKeysetHash",
                  "nameLocation": "5220:20:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 601,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 600,
                        "mutability": "mutable",
                        "name": "ksHash",
                        "nameLocation": "5249:6:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 603,
                        "src": "5241:14:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 599,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "5241:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5240:16:4"
                  },
                  "returnParameters": {
                    "id": 602,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "5265:0:4"
                  },
                  "scope": 613,
                  "src": "5211:55:4",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "1f7a92b2",
                  "id": 612,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "initialize",
                  "nameLocation": "5319:10:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 610,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 606,
                        "mutability": "mutable",
                        "name": "bridge_",
                        "nameLocation": "5338:7:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 612,
                        "src": "5330:15:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBridge_$192",
                          "typeString": "contract IBridge"
                        },
                        "typeName": {
                          "id": 605,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 604,
                            "name": "IBridge",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 192,
                            "src": "5330:7:4"
                          },
                          "referencedDeclaration": 192,
                          "src": "5330:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 609,
                        "mutability": "mutable",
                        "name": "maxTimeVariation_",
                        "nameLocation": "5373:17:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 612,
                        "src": "5347:43:4",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_MaxTimeVariation_$412_calldata_ptr",
                          "typeString": "struct ISequencerInbox.MaxTimeVariation"
                        },
                        "typeName": {
                          "id": 608,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 607,
                            "name": "MaxTimeVariation",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 412,
                            "src": "5347:16:4"
                          },
                          "referencedDeclaration": 412,
                          "src": "5347:16:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MaxTimeVariation_$412_storage_ptr",
                            "typeString": "struct ISequencerInbox.MaxTimeVariation"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5329:62:4"
                  },
                  "returnParameters": {
                    "id": 611,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "5400:0:4"
                  },
                  "scope": 613,
                  "src": "5310:91:4",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 614,
              "src": "377:5026:4",
              "usedErrors": []
            }
          ],
          "src": "205:5199:4"
        },
        "id": 4
      },
      "contracts/dependencies/arbitrum/libraries/IGasRefunder.sol": {
        "ast": {
          "absolutePath": "contracts/dependencies/arbitrum/libraries/IGasRefunder.sol",
          "exportedSymbols": {
            "GasRefundEnabled": [
              679
            ],
            "IGasRefunder": [
              627
            ]
          },
          "id": 680,
          "license": "BUSL-1.1",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 615,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".9",
                "<",
                "0.9",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "205:31:5"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "IGasRefunder",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 627,
              "linearizedBaseContracts": [
                627
              ],
              "name": "IGasRefunder",
              "nameLocation": "248:12:5",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "e3db8a49",
                  "id": 626,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "onGasSpent",
                  "nameLocation": "274:10:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 622,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 617,
                        "mutability": "mutable",
                        "name": "spender",
                        "nameLocation": "306:7:5",
                        "nodeType": "VariableDeclaration",
                        "scope": 626,
                        "src": "290:23:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        "typeName": {
                          "id": 616,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "290:15:5",
                          "stateMutability": "payable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 619,
                        "mutability": "mutable",
                        "name": "gasUsed",
                        "nameLocation": "327:7:5",
                        "nodeType": "VariableDeclaration",
                        "scope": 626,
                        "src": "319:15:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 618,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "319:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 621,
                        "mutability": "mutable",
                        "name": "calldataSize",
                        "nameLocation": "348:12:5",
                        "nodeType": "VariableDeclaration",
                        "scope": 626,
                        "src": "340:20:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 620,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "340:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "284:80:5"
                  },
                  "returnParameters": {
                    "id": 625,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 624,
                        "mutability": "mutable",
                        "name": "success",
                        "nameLocation": "388:7:5",
                        "nodeType": "VariableDeclaration",
                        "scope": 626,
                        "src": "383:12:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 623,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "383:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "382:14:5"
                  },
                  "scope": 627,
                  "src": "265:132:5",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 680,
              "src": "238:161:5",
              "usedErrors": []
            },
            {
              "abstract": true,
              "baseContracts": [],
              "canonicalName": "GasRefundEnabled",
              "contractDependencies": [],
              "contractKind": "contract",
              "fullyImplemented": true,
              "id": 679,
              "linearizedBaseContracts": [
                679
              ],
              "name": "GasRefundEnabled",
              "nameLocation": "419:16:5",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "body": {
                    "id": 677,
                    "nodeType": "Block",
                    "src": "799:611:5",
                    "statements": [
                      {
                        "assignments": [
                          634
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 634,
                            "mutability": "mutable",
                            "name": "startGasLeft",
                            "nameLocation": "813:12:5",
                            "nodeType": "VariableDeclaration",
                            "scope": 677,
                            "src": "805:20:5",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 633,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "805:7:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 637,
                        "initialValue": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 635,
                            "name": "gasleft",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -7,
                            "src": "828:7:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 636,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "828:9:5",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "805:32:5"
                      },
                      {
                        "id": 638,
                        "nodeType": "PlaceholderStatement",
                        "src": "843:1:5"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 641,
                                "name": "gasRefunder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 631,
                                "src": "862:11:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IGasRefunder_$627",
                                  "typeString": "contract IGasRefunder"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IGasRefunder_$627",
                                  "typeString": "contract IGasRefunder"
                                }
                              ],
                              "id": 640,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "854:7:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 639,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "854:7:5",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 642,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "854:20:5",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 645,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "886:1:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 644,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "878:7:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 643,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "878:7:5",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 646,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "878:10:5",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "854:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 676,
                        "nodeType": "IfStatement",
                        "src": "850:556:5",
                        "trueBody": {
                          "id": 675,
                          "nodeType": "Block",
                          "src": "890:516:5",
                          "statements": [
                            {
                              "assignments": [
                                649
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 649,
                                  "mutability": "mutable",
                                  "name": "calldataSize",
                                  "nameLocation": "906:12:5",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 675,
                                  "src": "898:20:5",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 648,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "898:7:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 651,
                              "initialValue": {
                                "hexValue": "30",
                                "id": 650,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "921:1:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "898:24:5"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 656,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 652,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -15,
                                    "src": "1205:3:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 653,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "src": "1205:10:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "expression": {
                                    "id": 654,
                                    "name": "tx",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -26,
                                    "src": "1219:2:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_transaction",
                                      "typeString": "tx"
                                    }
                                  },
                                  "id": 655,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "origin",
                                  "nodeType": "MemberAccess",
                                  "src": "1219:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "1205:23:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 659,
                              "nodeType": "IfStatement",
                              "src": "1201:108:5",
                              "trueBody": {
                                "id": 658,
                                "nodeType": "Block",
                                "src": "1230:79:5",
                                "statements": [
                                  {
                                    "AST": {
                                      "nodeType": "YulBlock",
                                      "src": "1249:52:5",
                                      "statements": [
                                        {
                                          "nodeType": "YulAssignment",
                                          "src": "1261:30:5",
                                          "value": {
                                            "arguments": [],
                                            "functionName": {
                                              "name": "calldatasize",
                                              "nodeType": "YulIdentifier",
                                              "src": "1277:12:5"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "1277:14:5"
                                          },
                                          "variableNames": [
                                            {
                                              "name": "calldataSize",
                                              "nodeType": "YulIdentifier",
                                              "src": "1261:12:5"
                                            }
                                          ]
                                        }
                                      ]
                                    },
                                    "evmVersion": "london",
                                    "externalReferences": [
                                      {
                                        "declaration": 649,
                                        "isOffset": false,
                                        "isSlot": false,
                                        "src": "1261:12:5",
                                        "valueSize": 1
                                      }
                                    ],
                                    "id": 657,
                                    "nodeType": "InlineAssembly",
                                    "src": "1240:61:5"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "expression": {
                                          "id": 665,
                                          "name": "msg",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": -15,
                                          "src": "1347:3:5",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_message",
                                            "typeString": "msg"
                                          }
                                        },
                                        "id": 666,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "1347:10:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 664,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1339:8:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_payable_$",
                                        "typeString": "type(address payable)"
                                      },
                                      "typeName": {
                                        "id": 663,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1339:8:5",
                                        "stateMutability": "payable",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 667,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1339:19:5",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 671,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 668,
                                      "name": "startGasLeft",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 634,
                                      "src": "1360:12:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 669,
                                        "name": "gasleft",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -7,
                                        "src": "1375:7:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
                                          "typeString": "function () view returns (uint256)"
                                        }
                                      },
                                      "id": 670,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1375:9:5",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "1360:24:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "id": 672,
                                    "name": "calldataSize",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 649,
                                    "src": "1386:12:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "id": 660,
                                    "name": "gasRefunder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 631,
                                    "src": "1316:11:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IGasRefunder_$627",
                                      "typeString": "contract IGasRefunder"
                                    }
                                  },
                                  "id": 662,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "onGasSpent",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 626,
                                  "src": "1316:22:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$_t_bool_$",
                                    "typeString": "function (address payable,uint256,uint256) external returns (bool)"
                                  }
                                },
                                "id": 673,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1316:83:5",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 674,
                              "nodeType": "ExpressionStatement",
                              "src": "1316:83:5"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "documentation": {
                    "id": 628,
                    "nodeType": "StructuredDocumentation",
                    "src": "440:310:5",
                    "text": "@dev this refunds the sender for execution costs of the tx\n calldata costs are only refunded if `msg.sender == tx.origin` to guarantee the value refunded relates to charging\n for the `tx.input`. this avoids a possible attack where you generate large calldata from a contract and get over-refunded"
                  },
                  "id": 678,
                  "name": "refundsGas",
                  "nameLocation": "762:10:5",
                  "nodeType": "ModifierDefinition",
                  "parameters": {
                    "id": 632,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 631,
                        "mutability": "mutable",
                        "name": "gasRefunder",
                        "nameLocation": "786:11:5",
                        "nodeType": "VariableDeclaration",
                        "scope": 678,
                        "src": "773:24:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IGasRefunder_$627",
                          "typeString": "contract IGasRefunder"
                        },
                        "typeName": {
                          "id": 630,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 629,
                            "name": "IGasRefunder",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 627,
                            "src": "773:12:5"
                          },
                          "referencedDeclaration": 627,
                          "src": "773:12:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IGasRefunder_$627",
                            "typeString": "contract IGasRefunder"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "772:26:5"
                  },
                  "src": "753:657:5",
                  "virtual": false,
                  "visibility": "internal"
                }
              ],
              "scope": 680,
              "src": "401:1011:5",
              "usedErrors": []
            }
          ],
          "src": "205:1208:5"
        },
        "id": 5
      },
      "contracts/mocks/MockInbox.sol": {
        "ast": {
          "absolutePath": "contracts/mocks/MockInbox.sol",
          "exportedSymbols": {
            "IBridge": [
              192
            ],
            "IInbox": [
              387
            ],
            "ISequencerInbox": [
              613
            ],
            "MockInbox": [
              942
            ]
          },
          "id": 943,
          "license": "Unlicense",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 681,
              "literals": [
                "solidity",
                "^",
                "0.8",
                ".10"
              ],
              "nodeType": "PragmaDirective",
              "src": "37:24:6"
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/IInbox.sol",
              "file": "../dependencies/arbitrum/interfaces/IInbox.sol",
              "id": 683,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 943,
              "sourceUnit": 388,
              "src": "63:70:6",
              "symbolAliases": [
                {
                  "foreign": {
                    "id": 682,
                    "name": "IInbox",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "src": "71:6:6",
                    "typeDescriptions": {}
                  },
                  "nameLocation": "-1:-1:-1"
                }
              ],
              "unitAlias": ""
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/IBridge.sol",
              "file": "../dependencies/arbitrum/interfaces/IBridge.sol",
              "id": 685,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 943,
              "sourceUnit": 193,
              "src": "134:72:6",
              "symbolAliases": [
                {
                  "foreign": {
                    "id": 684,
                    "name": "IBridge",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "src": "142:7:6",
                    "typeDescriptions": {}
                  },
                  "nameLocation": "-1:-1:-1"
                }
              ],
              "unitAlias": ""
            },
            {
              "absolutePath": "contracts/dependencies/arbitrum/interfaces/ISequencerInbox.sol",
              "file": "../dependencies/arbitrum/interfaces/ISequencerInbox.sol",
              "id": 687,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 943,
              "sourceUnit": 614,
              "src": "207:88:6",
              "symbolAliases": [
                {
                  "foreign": {
                    "id": 686,
                    "name": "ISequencerInbox",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "src": "215:15:6",
                    "typeDescriptions": {}
                  },
                  "nameLocation": "-1:-1:-1"
                }
              ],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [
                {
                  "baseName": {
                    "id": 688,
                    "name": "IInbox",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 387,
                    "src": "319:6:6"
                  },
                  "id": 689,
                  "nodeType": "InheritanceSpecifier",
                  "src": "319:6:6"
                }
              ],
              "canonicalName": "MockInbox",
              "contractDependencies": [],
              "contractKind": "contract",
              "fullyImplemented": true,
              "id": 942,
              "linearizedBaseContracts": [
                942,
                387,
                207
              ],
              "name": "MockInbox",
              "nameLocation": "306:9:6",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "constant": false,
                  "functionSelector": "56367114",
                  "id": 691,
                  "mutability": "mutable",
                  "name": "messageNum",
                  "nameLocation": "345:10:6",
                  "nodeType": "VariableDeclaration",
                  "scope": 942,
                  "src": "330:25:6",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 690,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "330:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 700,
                    "nodeType": "Block",
                    "src": "408:30:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 698,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 696,
                            "name": "messageNum",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 691,
                            "src": "414:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 697,
                            "name": "msgNum",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 693,
                            "src": "427:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "414:19:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 699,
                        "nodeType": "ExpressionStatement",
                        "src": "414:19:6"
                      }
                    ]
                  },
                  "functionSelector": "58c5261e",
                  "id": 701,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setMessageNum",
                  "nameLocation": "369:13:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 694,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 693,
                        "mutability": "mutable",
                        "name": "msgNum",
                        "nameLocation": "391:6:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 701,
                        "src": "383:14:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 692,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "383:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "382:16:6"
                  },
                  "returnParameters": {
                    "id": 695,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "408:0:6"
                  },
                  "scope": 942,
                  "src": "360:78:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    220
                  ],
                  "body": {
                    "id": 715,
                    "nodeType": "Block",
                    "src": "501:37:6",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "31",
                                  "id": 711,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "530:1:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  }
                                ],
                                "id": 710,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "522:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 709,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "522:7:6",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 712,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "522:10:6",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 708,
                            "name": "IBridge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 192,
                            "src": "514:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IBridge_$192_$",
                              "typeString": "type(contract IBridge)"
                            }
                          },
                          "id": 713,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "514:19:6",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "functionReturnParameters": 707,
                        "id": 714,
                        "nodeType": "Return",
                        "src": "507:26:6"
                      }
                    ]
                  },
                  "functionSelector": "e78cea92",
                  "id": 716,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "bridge",
                  "nameLocation": "451:6:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 703,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "474:8:6"
                  },
                  "parameters": {
                    "id": 702,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "457:2:6"
                  },
                  "returnParameters": {
                    "id": 707,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 706,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 716,
                        "src": "492:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBridge_$192",
                          "typeString": "contract IBridge"
                        },
                        "typeName": {
                          "id": 705,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 704,
                            "name": "IBridge",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 192,
                            "src": "492:7:6"
                          },
                          "referencedDeclaration": 192,
                          "src": "492:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "491:9:6"
                  },
                  "scope": 942,
                  "src": "442:96:6",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    226
                  ],
                  "body": {
                    "id": 730,
                    "nodeType": "Block",
                    "src": "617:45:6",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "31",
                                  "id": 726,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "654:1:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  }
                                ],
                                "id": 725,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "646:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 724,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "646:7:6",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 727,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "646:10:6",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 723,
                            "name": "ISequencerInbox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 613,
                            "src": "630:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ISequencerInbox_$613_$",
                              "typeString": "type(contract ISequencerInbox)"
                            }
                          },
                          "id": 728,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "630:27:6",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                            "typeString": "contract ISequencerInbox"
                          }
                        },
                        "functionReturnParameters": 722,
                        "id": 729,
                        "nodeType": "Return",
                        "src": "623:34:6"
                      }
                    ]
                  },
                  "functionSelector": "ee35f327",
                  "id": 731,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sequencerInbox",
                  "nameLocation": "551:14:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 718,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "582:8:6"
                  },
                  "parameters": {
                    "id": 717,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "565:2:6"
                  },
                  "returnParameters": {
                    "id": 722,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 721,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 731,
                        "src": "600:15:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                          "typeString": "contract ISequencerInbox"
                        },
                        "typeName": {
                          "id": 720,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 719,
                            "name": "ISequencerInbox",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 613,
                            "src": "600:15:6"
                          },
                          "referencedDeclaration": 613,
                          "src": "600:15:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                            "typeString": "contract ISequencerInbox"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "599:17:6"
                  },
                  "scope": 942,
                  "src": "542:120:6",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    234
                  ],
                  "body": {
                    "id": 741,
                    "nodeType": "Block",
                    "src": "774:28:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 739,
                          "name": "messageNum",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 691,
                          "src": "787:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 738,
                        "id": 740,
                        "nodeType": "Return",
                        "src": "780:17:6"
                      }
                    ]
                  },
                  "functionSelector": "1fe927cf",
                  "id": 742,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendL2MessageFromOrigin",
                  "nameLocation": "675:23:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 735,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "747:8:6"
                  },
                  "parameters": {
                    "id": 734,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 733,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 742,
                        "src": "704:14:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 732,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "704:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "698:39:6"
                  },
                  "returnParameters": {
                    "id": 738,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 737,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 742,
                        "src": "765:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 736,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "765:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "764:9:6"
                  },
                  "scope": 942,
                  "src": "666:136:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    242
                  ],
                  "body": {
                    "id": 752,
                    "nodeType": "Block",
                    "src": "904:28:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 750,
                          "name": "messageNum",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 691,
                          "src": "917:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 749,
                        "id": 751,
                        "nodeType": "Return",
                        "src": "910:17:6"
                      }
                    ]
                  },
                  "functionSelector": "b75436bb",
                  "id": 753,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendL2Message",
                  "nameLocation": "815:13:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 746,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "877:8:6"
                  },
                  "parameters": {
                    "id": 745,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 744,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 753,
                        "src": "834:14:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 743,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "834:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "828:39:6"
                  },
                  "returnParameters": {
                    "id": 749,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 748,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 753,
                        "src": "895:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 747,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "895:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "894:9:6"
                  },
                  "scope": 942,
                  "src": "806:126:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    257
                  ],
                  "body": {
                    "id": 771,
                    "nodeType": "Block",
                    "src": "1148:28:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 769,
                          "name": "messageNum",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 691,
                          "src": "1161:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 768,
                        "id": 770,
                        "nodeType": "Return",
                        "src": "1154:17:6"
                      }
                    ]
                  },
                  "functionSelector": "67ef3ab8",
                  "id": 772,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendL1FundedUnsignedTransaction",
                  "nameLocation": "945:31:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 765,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "1121:8:6"
                  },
                  "parameters": {
                    "id": 764,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 755,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 772,
                        "src": "982:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 754,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "982:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 757,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 772,
                        "src": "1007:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 756,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1007:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 759,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 772,
                        "src": "1036:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 758,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1036:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 761,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 772,
                        "src": "1058:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 760,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1058:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 763,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 772,
                        "src": "1077:14:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 762,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1077:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "976:127:6"
                  },
                  "returnParameters": {
                    "id": 768,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 767,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 772,
                        "src": "1139:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 766,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1139:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1138:9:6"
                  },
                  "scope": 942,
                  "src": "936:240:6",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    270
                  ],
                  "body": {
                    "id": 788,
                    "nodeType": "Block",
                    "src": "1370:28:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 786,
                          "name": "messageNum",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 691,
                          "src": "1383:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 785,
                        "id": 787,
                        "nodeType": "Return",
                        "src": "1376:17:6"
                      }
                    ]
                  },
                  "functionSelector": "5e916758",
                  "id": 789,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendL1FundedContractTransaction",
                  "nameLocation": "1189:31:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 782,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "1343:8:6"
                  },
                  "parameters": {
                    "id": 781,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 774,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 789,
                        "src": "1226:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 773,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1226:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 776,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 789,
                        "src": "1251:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 775,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1251:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 778,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 789,
                        "src": "1280:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 777,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1280:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 780,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 789,
                        "src": "1299:14:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 779,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1299:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1220:105:6"
                  },
                  "returnParameters": {
                    "id": 785,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 784,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 789,
                        "src": "1361:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 783,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1361:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1360:9:6"
                  },
                  "scope": 942,
                  "src": "1180:218:6",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    287
                  ],
                  "body": {
                    "id": 809,
                    "nodeType": "Block",
                    "src": "1620:28:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 807,
                          "name": "messageNum",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 691,
                          "src": "1633:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 806,
                        "id": 808,
                        "nodeType": "Return",
                        "src": "1626:17:6"
                      }
                    ]
                  },
                  "functionSelector": "5075788b",
                  "id": 810,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendUnsignedTransaction",
                  "nameLocation": "1411:23:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 803,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "1593:8:6"
                  },
                  "parameters": {
                    "id": 802,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 791,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 810,
                        "src": "1440:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 790,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1440:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 793,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 810,
                        "src": "1465:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 792,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1465:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 795,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 810,
                        "src": "1494:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 794,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1494:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 797,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 810,
                        "src": "1516:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 796,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1516:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 799,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 810,
                        "src": "1535:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 798,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1535:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 801,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 810,
                        "src": "1557:14:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 800,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1557:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1434:149:6"
                  },
                  "returnParameters": {
                    "id": 806,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 805,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 810,
                        "src": "1611:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 804,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1611:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1610:9:6"
                  },
                  "scope": 942,
                  "src": "1402:246:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    302
                  ],
                  "body": {
                    "id": 828,
                    "nodeType": "Block",
                    "src": "1848:28:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 826,
                          "name": "messageNum",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 691,
                          "src": "1861:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 825,
                        "id": 827,
                        "nodeType": "Return",
                        "src": "1854:17:6"
                      }
                    ]
                  },
                  "functionSelector": "8a631aa6",
                  "id": 829,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sendContractTransaction",
                  "nameLocation": "1661:23:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 822,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "1821:8:6"
                  },
                  "parameters": {
                    "id": 821,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 812,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "1690:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 811,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1690:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 814,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "1715:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 813,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1715:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 816,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "1744:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 815,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1744:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 818,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "1763:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 817,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1763:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 820,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "1785:14:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 819,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1785:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1684:127:6"
                  },
                  "returnParameters": {
                    "id": 825,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 824,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "1839:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 823,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1839:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1838:9:6"
                  },
                  "scope": 942,
                  "src": "1652:224:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    312
                  ],
                  "body": {
                    "id": 841,
                    "nodeType": "Block",
                    "src": "2014:27:6",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "315f3030305f303030",
                          "id": 839,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2027:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1000000_by_1",
                            "typeString": "int_const 1000000"
                          },
                          "value": "1_000_000"
                        },
                        "functionReturnParameters": 838,
                        "id": 840,
                        "nodeType": "Return",
                        "src": "2020:16:6"
                      }
                    ]
                  },
                  "functionSelector": "a66b327d",
                  "id": 842,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "calculateRetryableSubmissionFee",
                  "nameLocation": "1889:31:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 835,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "1987:8:6"
                  },
                  "parameters": {
                    "id": 834,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 831,
                        "mutability": "mutable",
                        "name": "dataLength",
                        "nameLocation": "1934:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 842,
                        "src": "1926:18:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 830,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1926:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 833,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 842,
                        "src": "1950:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 832,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1950:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1920:52:6"
                  },
                  "returnParameters": {
                    "id": 838,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 837,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 842,
                        "src": "2005:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 836,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2005:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2004:9:6"
                  },
                  "scope": 942,
                  "src": "1880:161:6",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    318
                  ],
                  "body": {
                    "id": 850,
                    "nodeType": "Block",
                    "src": "2111:28:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 848,
                          "name": "messageNum",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 691,
                          "src": "2124:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 847,
                        "id": 849,
                        "nodeType": "Return",
                        "src": "2117:17:6"
                      }
                    ]
                  },
                  "functionSelector": "439370b1",
                  "id": 851,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "depositEth",
                  "nameLocation": "2054:10:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 844,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "2084:8:6"
                  },
                  "parameters": {
                    "id": 843,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2064:2:6"
                  },
                  "returnParameters": {
                    "id": 847,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 846,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 851,
                        "src": "2102:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 845,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2102:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2101:9:6"
                  },
                  "scope": 942,
                  "src": "2045:94:6",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    340
                  ],
                  "body": {
                    "id": 888,
                    "nodeType": "Block",
                    "src": "2460:94:6",
                    "statements": [
                      {
                        "assignments": [
                          874
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 874,
                            "mutability": "mutable",
                            "name": "success",
                            "nameLocation": "2471:7:6",
                            "nodeType": "VariableDeclaration",
                            "scope": 888,
                            "src": "2466:12:6",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 873,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "2466:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 875,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2466:12:6"
                      },
                      {
                        "expression": {
                          "id": 884,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "components": [
                              {
                                "id": 876,
                                "name": "success",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 874,
                                "src": "2485:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              null
                            ],
                            "id": 877,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "2484:11:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_bool_$__$",
                              "typeString": "tuple(bool,)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 882,
                                "name": "data",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 867,
                                "src": "2521:4:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                ],
                                "expression": {
                                  "id": 878,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 853,
                                  "src": "2498:2:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 879,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "call",
                                "nodeType": "MemberAccess",
                                "src": "2498:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
                                }
                              },
                              "id": 881,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "names": [
                                "gas"
                              ],
                              "nodeType": "FunctionCallOptions",
                              "options": [
                                {
                                  "id": 880,
                                  "name": "gasLimit",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 863,
                                  "src": "2511:8:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "src": "2498:22:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas",
                                "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
                              }
                            },
                            "id": 883,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2498:28:6",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
                              "typeString": "tuple(bool,bytes memory)"
                            }
                          },
                          "src": "2484:42:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 885,
                        "nodeType": "ExpressionStatement",
                        "src": "2484:42:6"
                      },
                      {
                        "expression": {
                          "id": 886,
                          "name": "messageNum",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 691,
                          "src": "2539:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 872,
                        "id": 887,
                        "nodeType": "Return",
                        "src": "2532:17:6"
                      }
                    ]
                  },
                  "functionSelector": "679b6ded",
                  "id": 889,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "createRetryableTicket",
                  "nameLocation": "2152:21:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 869,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "2433:8:6"
                  },
                  "parameters": {
                    "id": 868,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 853,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "2187:2:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2179:10:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 852,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2179:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 855,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2201:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 854,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2201:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 857,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2229:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 856,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2229:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 859,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2263:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 858,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2263:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 861,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2302:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 860,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2302:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 863,
                        "mutability": "mutable",
                        "name": "gasLimit",
                        "nameLocation": "2349:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2341:16:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 862,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2341:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 865,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2363:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 864,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2363:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 867,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "2407:4:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2392:19:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 866,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "2392:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2173:242:6"
                  },
                  "returnParameters": {
                    "id": 872,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 871,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 889,
                        "src": "2451:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 870,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2451:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2450:9:6"
                  },
                  "scope": 942,
                  "src": "2143:411:6",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    362
                  ],
                  "body": {
                    "id": 911,
                    "nodeType": "Block",
                    "src": "2884:2:6",
                    "statements": []
                  },
                  "functionSelector": "6e6e8a6a",
                  "id": 912,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "unsafeCreateRetryableTicket",
                  "nameLocation": "2567:27:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 907,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "2857:8:6"
                  },
                  "parameters": {
                    "id": 906,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 891,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2600:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 890,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2600:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 893,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2619:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 892,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2619:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 895,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2647:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 894,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2647:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 897,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2681:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 896,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2681:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 899,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2720:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 898,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2720:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 901,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2759:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 900,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2759:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 903,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2784:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 902,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2784:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 905,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2813:14:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 904,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "2813:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2594:245:6"
                  },
                  "returnParameters": {
                    "id": 910,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 909,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 912,
                        "src": "2875:7:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 908,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2875:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2874:9:6"
                  },
                  "scope": 942,
                  "src": "2558:328:6",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    366
                  ],
                  "body": {
                    "id": 916,
                    "nodeType": "Block",
                    "src": "2925:2:6",
                    "statements": []
                  },
                  "functionSelector": "8456cb59",
                  "id": 917,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "pause",
                  "nameLocation": "2899:5:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 914,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "2916:8:6"
                  },
                  "parameters": {
                    "id": 913,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2904:2:6"
                  },
                  "returnParameters": {
                    "id": 915,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2925:0:6"
                  },
                  "scope": 942,
                  "src": "2890:37:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    370
                  ],
                  "body": {
                    "id": 921,
                    "nodeType": "Block",
                    "src": "2968:2:6",
                    "statements": []
                  },
                  "functionSelector": "3f4ba83a",
                  "id": 922,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "unpause",
                  "nameLocation": "2940:7:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 919,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "2959:8:6"
                  },
                  "parameters": {
                    "id": 918,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2947:2:6"
                  },
                  "returnParameters": {
                    "id": 920,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2968:0:6"
                  },
                  "scope": 942,
                  "src": "2931:39:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    377
                  ],
                  "body": {
                    "id": 929,
                    "nodeType": "Block",
                    "src": "3034:2:6",
                    "statements": []
                  },
                  "functionSelector": "c474d2c5",
                  "id": 930,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "postUpgradeInit",
                  "nameLocation": "2983:15:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 927,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "3025:8:6"
                  },
                  "parameters": {
                    "id": 926,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 925,
                        "mutability": "mutable",
                        "name": "_bridge",
                        "nameLocation": "3007:7:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 930,
                        "src": "2999:15:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBridge_$192",
                          "typeString": "contract IBridge"
                        },
                        "typeName": {
                          "id": 924,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 923,
                            "name": "IBridge",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 192,
                            "src": "2999:7:6"
                          },
                          "referencedDeclaration": 192,
                          "src": "2999:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2998:17:6"
                  },
                  "returnParameters": {
                    "id": 928,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3034:0:6"
                  },
                  "scope": 942,
                  "src": "2974:62:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "baseFunctions": [
                    386
                  ],
                  "body": {
                    "id": 940,
                    "nodeType": "Block",
                    "src": "3128:2:6",
                    "statements": []
                  },
                  "functionSelector": "485cc955",
                  "id": 941,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "initialize",
                  "nameLocation": "3049:10:6",
                  "nodeType": "FunctionDefinition",
                  "overrides": {
                    "id": 938,
                    "nodeType": "OverrideSpecifier",
                    "overrides": [],
                    "src": "3119:8:6"
                  },
                  "parameters": {
                    "id": 937,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 933,
                        "mutability": "mutable",
                        "name": "_bridge",
                        "nameLocation": "3068:7:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 941,
                        "src": "3060:15:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBridge_$192",
                          "typeString": "contract IBridge"
                        },
                        "typeName": {
                          "id": 932,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 931,
                            "name": "IBridge",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 192,
                            "src": "3060:7:6"
                          },
                          "referencedDeclaration": 192,
                          "src": "3060:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBridge_$192",
                            "typeString": "contract IBridge"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 936,
                        "mutability": "mutable",
                        "name": "_sequencerInbox",
                        "nameLocation": "3093:15:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 941,
                        "src": "3077:31:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                          "typeString": "contract ISequencerInbox"
                        },
                        "typeName": {
                          "id": 935,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 934,
                            "name": "ISequencerInbox",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 613,
                            "src": "3077:15:6"
                          },
                          "referencedDeclaration": 613,
                          "src": "3077:15:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ISequencerInbox_$613",
                            "typeString": "contract ISequencerInbox"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3059:50:6"
                  },
                  "returnParameters": {
                    "id": 939,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3128:0:6"
                  },
                  "scope": 942,
                  "src": "3040:90:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 943,
              "src": "297:2835:6",
              "usedErrors": []
            }
          ],
          "src": "37:3096:6"
        },
        "id": 6
      }
    }
  }
}