@aave/governance-crosschain-bridges
Version:
Contracts of Aave Governance Crosschain Bridges
19,257 lines • 985 kB
JSON
{
"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
}
}
}
}