mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-04-23 03:00:50 -04:00
465 lines
8.3 KiB
Markdown
465 lines
8.3 KiB
Markdown
# L2ScrollMessenger
|
|
|
|
|
|
|
|
> L2ScrollMessenger
|
|
|
|
The `L2ScrollMessenger` contract can: 1. send messages from layer 2 to layer 1; 2. relay messages from layer 1 layer 2; 3. drop expired message due to sequencer problems.
|
|
|
|
*It should be a predeployed contract on layer 2 and should hold infinite amount of Ether (Specifically, `uint256(-1)`), which can be initialized in Genesis Block.*
|
|
|
|
## Methods
|
|
|
|
### counterpart
|
|
|
|
```solidity
|
|
function counterpart() external view returns (address)
|
|
```
|
|
|
|
The address of counterpart ScrollMessenger contract in L1/L2.
|
|
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | address | undefined |
|
|
|
|
### feeVault
|
|
|
|
```solidity
|
|
function feeVault() external view returns (address)
|
|
```
|
|
|
|
The address of fee vault, collecting cross domain messaging fee.
|
|
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | address | undefined |
|
|
|
|
### initialize
|
|
|
|
```solidity
|
|
function initialize(address) external nonpayable
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | address | undefined |
|
|
|
|
### isL1MessageExecuted
|
|
|
|
```solidity
|
|
function isL1MessageExecuted(bytes32) external view returns (bool)
|
|
```
|
|
|
|
Mapping from L1 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
|
|
|
|
```solidity
|
|
function messageQueue() external view returns (address)
|
|
```
|
|
|
|
The address of L2MessageQueue.
|
|
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | address | undefined |
|
|
|
|
### messageSendTimestamp
|
|
|
|
```solidity
|
|
function messageSendTimestamp(bytes32) external view returns (uint256)
|
|
```
|
|
|
|
Mapping from L2 message hash to the timestamp when the message is sent.
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | bytes32 | undefined |
|
|
|
|
#### Returns
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | uint256 | undefined |
|
|
|
|
### owner
|
|
|
|
```solidity
|
|
function owner() external view returns (address)
|
|
```
|
|
|
|
|
|
|
|
*Returns the address of the current owner.*
|
|
|
|
|
|
#### Returns
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | address | undefined |
|
|
|
|
### paused
|
|
|
|
```solidity
|
|
function paused() external view returns (bool)
|
|
```
|
|
|
|
|
|
|
|
*Returns true if the contract is paused, and false otherwise.*
|
|
|
|
|
|
#### Returns
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | bool | undefined |
|
|
|
|
### relayMessage
|
|
|
|
```solidity
|
|
function relayMessage(address _from, address _to, uint256 _value, uint256 _nonce, bytes _message) external nonpayable
|
|
```
|
|
|
|
execute L1 => L2 message
|
|
|
|
*Make sure this is only called by privileged accounts.*
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _from | address | undefined |
|
|
| _to | address | undefined |
|
|
| _value | uint256 | undefined |
|
|
| _nonce | uint256 | undefined |
|
|
| _message | bytes | undefined |
|
|
|
|
### renounceOwnership
|
|
|
|
```solidity
|
|
function renounceOwnership() external nonpayable
|
|
```
|
|
|
|
|
|
|
|
*Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.*
|
|
|
|
|
|
### sendMessage
|
|
|
|
```solidity
|
|
function sendMessage(address _to, uint256 _value, bytes _message, uint256 _gasLimit, address) 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 |
|
|
| _4 | address | undefined |
|
|
|
|
### sendMessage
|
|
|
|
```solidity
|
|
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
|
|
|
|
```solidity
|
|
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
|
|
|
|
```solidity
|
|
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
|
|
|
|
```solidity
|
|
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
|
|
|
|
```solidity
|
|
function xDomainMessageSender() external view returns (address)
|
|
```
|
|
|
|
See {IScrollMessenger-xDomainMessageSender}
|
|
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _0 | address | undefined |
|
|
|
|
|
|
|
|
## Events
|
|
|
|
### FailedRelayedMessage
|
|
|
|
```solidity
|
|
event FailedRelayedMessage(bytes32 indexed messageHash)
|
|
```
|
|
|
|
Emitted when a cross domain message is failed to relay.
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| messageHash `indexed` | bytes32 | The hash of the message. |
|
|
|
|
### Initialized
|
|
|
|
```solidity
|
|
event Initialized(uint8 version)
|
|
```
|
|
|
|
|
|
|
|
*Triggered when the contract has been initialized or reinitialized.*
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| version | uint8 | undefined |
|
|
|
|
### OwnershipTransferred
|
|
|
|
```solidity
|
|
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| previousOwner `indexed` | address | undefined |
|
|
| newOwner `indexed` | address | undefined |
|
|
|
|
### Paused
|
|
|
|
```solidity
|
|
event Paused(address account)
|
|
```
|
|
|
|
|
|
|
|
*Emitted when the pause is triggered by `account`.*
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| account | address | undefined |
|
|
|
|
### RelayedMessage
|
|
|
|
```solidity
|
|
event RelayedMessage(bytes32 indexed messageHash)
|
|
```
|
|
|
|
Emitted when a cross domain message is relayed successfully.
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| messageHash `indexed` | bytes32 | The hash of the message. |
|
|
|
|
### SentMessage
|
|
|
|
```solidity
|
|
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 | The address of the sender who initiates the message. |
|
|
| target `indexed` | address | The address of target contract to call. |
|
|
| value | uint256 | The amount of value passed to the target contract. |
|
|
| messageNonce | uint256 | The nonce of the message. |
|
|
| gasLimit | uint256 | The optional gas limit passed to L1 or L2. |
|
|
| message | bytes | The calldata passed to the target contract. |
|
|
|
|
### Unpaused
|
|
|
|
```solidity
|
|
event Unpaused(address account)
|
|
```
|
|
|
|
|
|
|
|
*Emitted when the pause is lifted by `account`.*
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| account | address | undefined |
|
|
|
|
### UpdateFeeVault
|
|
|
|
```solidity
|
|
event UpdateFeeVault(address _oldFeeVault, address _newFeeVault)
|
|
```
|
|
|
|
Emitted when owner updates fee vault contract.
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| _oldFeeVault | address | The address of old fee vault contract. |
|
|
| _newFeeVault | address | The address of new fee vault contract. |
|
|
|
|
### UpdateMaxFailedExecutionTimes
|
|
|
|
```solidity
|
|
event UpdateMaxFailedExecutionTimes(uint256 oldMaxFailedExecutionTimes, uint256 newMaxFailedExecutionTimes)
|
|
```
|
|
|
|
Emitted when the maximum number of times each message can fail in L2 is updated.
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
|---|---|---|
|
|
| oldMaxFailedExecutionTimes | uint256 | The old maximum number of times each message can fail in L2. |
|
|
| newMaxFailedExecutionTimes | uint256 | The new maximum number of times each message can fail in L2. |
|
|
|
|
|
|
|
|
## Errors
|
|
|
|
### ErrorZeroAddress
|
|
|
|
```solidity
|
|
error ErrorZeroAddress()
|
|
```
|
|
|
|
|
|
|
|
*Thrown when the given address is `address(0)`.*
|
|
|
|
|
|
|