Files
scroll/contracts/docs/apis/L2ScrollMessenger.md
2024-03-14 00:35:58 +08:00

8.3 KiB

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

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) external nonpayable

Parameters

Name Type Description
_0 address undefined

isL1MessageExecuted

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

function messageQueue() external view returns (address)

The address of L2MessageQueue.

Returns

Name Type Description
_0 address undefined

messageSendTimestamp

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

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

relayMessage

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

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

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

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 The hash of the message.

Initialized

event Initialized(uint8 version)

Triggered when the contract has been initialized or reinitialized.

Parameters

Name Type Description
version uint8 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)

Emitted when the pause is triggered by 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 The hash of the message.

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 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

event Unpaused(address account)

Emitted when the pause is lifted by 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 The address of old fee vault contract.
_newFeeVault address The address of new fee vault contract.

UpdateMaxFailedExecutionTimes

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

error ErrorZeroAddress()

Thrown when the given address is address(0).