8.2 KiB
L1ScrollMessenger
L1ScrollMessenger
The L1ScrollMessenger contract can: 1. send messages from layer 1 to layer 2; 2. relay messages from layer 2 layer 1; 3. replay failed message by replacing the gas limit; 4. drop expired message due to sequencer problems.
All deposited Ether (including WETH deposited throng L1WETHGateway) will locked in this contract.
Methods
counterpart
function counterpart() external view returns (address)
The address of counterpart ScrollMessenger contract in L1/L2.
Returns
| Name | Type | Description |
|---|---|---|
| _0 | address | undefined |
feeVault
function feeVault() external view returns (address)
The address of fee vault, collecting cross domain messaging fee.
Returns
| Name | Type | Description |
|---|---|---|
| _0 | address | undefined |
initialize
function initialize(address _counterpart, address _feeVault, address _rollup, address _messageQueue) external nonpayable
Initialize the storage of L1ScrollMessenger.
Parameters
| Name | Type | Description |
|---|---|---|
| _counterpart | address | The address of L2ScrollMessenger contract in L2. |
| _feeVault | address | The address of fee vault, which will be used to collect relayer fee. |
| _rollup | address | The address of ScrollChain contract. |
| _messageQueue | address | The address of L1MessageQueue contract. |
isL1MessageSent
function isL1MessageSent(bytes32) external view returns (bool)
Mapping from L1 message hash to sent status.
Parameters
| Name | Type | Description |
|---|---|---|
| _0 | bytes32 | undefined |
Returns
| Name | Type | Description |
|---|---|---|
| _0 | bool | undefined |
isL2MessageExecuted
function isL2MessageExecuted(bytes32) external view returns (bool)
Mapping from L2 message hash to a boolean value indicating if the message has been successfully executed.
Parameters
| Name | Type | Description |
|---|---|---|
| _0 | bytes32 | undefined |
Returns
| Name | Type | Description |
|---|---|---|
| _0 | bool | undefined |
messageQueue
function messageQueue() external view returns (address)
The address of L1MessageQueue contract.
Returns
| Name | Type | Description |
|---|---|---|
| _0 | address | undefined |
owner
function owner() external view returns (address)
Returns the address of the current owner.
Returns
| Name | Type | Description |
|---|---|---|
| _0 | address | undefined |
paused
function paused() external view returns (bool)
Returns true if the contract is paused, and false otherwise.
Returns
| Name | Type | Description |
|---|---|---|
| _0 | bool | undefined |
relayMessageWithProof
function relayMessageWithProof(address _from, address _to, uint256 _value, uint256 _nonce, bytes _message, IL1ScrollMessenger.L2MessageProof _proof) external nonpayable
Parameters
| Name | Type | Description |
|---|---|---|
| _from | address | undefined |
| _to | address | undefined |
| _value | uint256 | undefined |
| _nonce | uint256 | undefined |
| _message | bytes | undefined |
| _proof | IL1ScrollMessenger.L2MessageProof | undefined |
renounceOwnership
function renounceOwnership() external nonpayable
Leaves the contract without owner. It will not be possible to call onlyOwner functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.
replayMessage
function replayMessage(address _from, address _to, uint256 _value, uint256 _queueIndex, bytes _message, uint32 _newGasLimit, address _refundAddress) external payable
Replay an existing message.
Parameters
| Name | Type | Description |
|---|---|---|
| _from | address | undefined |
| _to | address | undefined |
| _value | uint256 | undefined |
| _queueIndex | uint256 | undefined |
| _message | bytes | undefined |
| _newGasLimit | uint32 | undefined |
| _refundAddress | address | undefined |
rollup
function rollup() external view returns (address)
The address of Rollup contract.
Returns
| Name | Type | Description |
|---|---|---|
| _0 | address | undefined |
sendMessage
function sendMessage(address _to, uint256 _value, bytes _message, uint256 _gasLimit, address _refundAddress) external payable
Send cross chain message from L1 to L2 or L2 to L1.
Parameters
| Name | Type | Description |
|---|---|---|
| _to | address | undefined |
| _value | uint256 | undefined |
| _message | bytes | undefined |
| _gasLimit | uint256 | undefined |
| _refundAddress | address | undefined |
sendMessage
function sendMessage(address _to, uint256 _value, bytes _message, uint256 _gasLimit) external payable
Send cross chain message from L1 to L2 or L2 to L1.
Parameters
| Name | Type | Description |
|---|---|---|
| _to | address | undefined |
| _value | uint256 | undefined |
| _message | bytes | undefined |
| _gasLimit | uint256 | undefined |
setPause
function setPause(bool _status) external nonpayable
Pause the contract
This function can only called by contract owner.
Parameters
| Name | Type | Description |
|---|---|---|
| _status | bool | The pause status to update. |
transferOwnership
function transferOwnership(address newOwner) external nonpayable
Transfers ownership of the contract to a new account (newOwner). Can only be called by the current owner.
Parameters
| Name | Type | Description |
|---|---|---|
| newOwner | address | undefined |
updateFeeVault
function updateFeeVault(address _newFeeVault) external nonpayable
Update fee vault contract.
This function can only called by contract owner.
Parameters
| Name | Type | Description |
|---|---|---|
| _newFeeVault | address | The address of new fee vault contract. |
xDomainMessageSender
function xDomainMessageSender() external view returns (address)
See {IScrollMessenger-xDomainMessageSender}
Returns
| Name | Type | Description |
|---|---|---|
| _0 | address | undefined |
Events
FailedRelayedMessage
event FailedRelayedMessage(bytes32 indexed messageHash)
Emitted when a cross domain message is failed to relay.
Parameters
| Name | Type | Description |
|---|---|---|
messageHash indexed |
bytes32 | undefined |
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Parameters
| Name | Type | Description |
|---|---|---|
previousOwner indexed |
address | undefined |
newOwner indexed |
address | undefined |
Paused
event Paused(address account)
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | undefined |
RelayedMessage
event RelayedMessage(bytes32 indexed messageHash)
Emitted when a cross domain message is relayed successfully.
Parameters
| Name | Type | Description |
|---|---|---|
messageHash indexed |
bytes32 | undefined |
SentMessage
event SentMessage(address indexed sender, address indexed target, uint256 value, uint256 messageNonce, uint256 gasLimit, bytes message)
Emitted when a cross domain message is sent.
Parameters
| Name | Type | Description |
|---|---|---|
sender indexed |
address | undefined |
target indexed |
address | undefined |
| value | uint256 | undefined |
| messageNonce | uint256 | undefined |
| gasLimit | uint256 | undefined |
| message | bytes | undefined |
Unpaused
event Unpaused(address account)
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | undefined |
UpdateFeeVault
event UpdateFeeVault(address _oldFeeVault, address _newFeeVault)
Emitted when owner updates fee vault contract.
Parameters
| Name | Type | Description |
|---|---|---|
| _oldFeeVault | address | undefined |
| _newFeeVault | address | undefined |