123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- // Copyright 2021-2022, Offchain Labs, Inc.
- // For license information, see https://github.com/nitro/blob/master/LICENSE
- // SPDX-License-Identifier: BUSL-1.1
- // OpenZeppelin Contracts (last updated v4.8.0-rc.2) (vendor/arbitrum/IBridge.sol)
- // solhint-disable-next-line compiler-version
- pragma solidity >=0.6.9 <0.9.0;
- interface IBridge {
- event MessageDelivered(
- uint256 indexed messageIndex,
- bytes32 indexed beforeInboxAcc,
- address inbox,
- uint8 kind,
- address sender,
- bytes32 messageDataHash,
- uint256 baseFeeL1,
- uint64 timestamp
- );
- event BridgeCallTriggered(address indexed outbox, address indexed to, uint256 value, bytes data);
- event InboxToggle(address indexed inbox, bool enabled);
- event OutboxToggle(address indexed outbox, bool enabled);
- event SequencerInboxUpdated(address newSequencerInbox);
- function allowedDelayedInboxList(uint256) external returns (address);
- function allowedOutboxList(uint256) external returns (address);
- /// @dev Accumulator for delayed inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.
- function delayedInboxAccs(uint256) external view returns (bytes32);
- /// @dev Accumulator for sequencer inbox messages; tail represents hash of the current state; each element represents the inclusion of a new message.
- function sequencerInboxAccs(uint256) external view returns (bytes32);
- // OpenZeppelin: changed return type from IOwnable
- function rollup() external view returns (address);
- function sequencerInbox() external view returns (address);
- function activeOutbox() external view returns (address);
- function allowedDelayedInboxes(address inbox) external view returns (bool);
- function allowedOutboxes(address outbox) external view returns (bool);
- function sequencerReportedSubMessageCount() external view returns (uint256);
- /**
- * @dev 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.
- */
- function enqueueDelayedMessage(
- uint8 kind,
- address sender,
- bytes32 messageDataHash
- ) external payable returns (uint256);
- function executeCall(
- address to,
- uint256 value,
- bytes calldata data
- ) external returns (bool success, bytes memory returnData);
- function delayedMessageCount() external view returns (uint256);
- function sequencerMessageCount() external view returns (uint256);
- // ---------- onlySequencerInbox functions ----------
- function enqueueSequencerMessage(
- bytes32 dataHash,
- uint256 afterDelayedMessagesRead,
- uint256 prevMessageCount,
- uint256 newMessageCount
- )
- external
- returns (
- uint256 seqMessageIndex,
- bytes32 beforeAcc,
- bytes32 delayedAcc,
- bytes32 acc
- );
- /**
- * @dev 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.
- */
- function submitBatchSpendingReport(address batchPoster, bytes32 dataHash) external returns (uint256 msgNum);
- // ---------- onlyRollupOrOwner functions ----------
- function setSequencerInbox(address _sequencerInbox) external;
- function setDelayedInbox(address inbox, bool enabled) external;
- function setOutbox(address inbox, bool enabled) external;
- // ---------- initializer ----------
- // OpenZeppelin: changed rollup_ type from IOwnable
- function initialize(address rollup_) external;
- }
|