Files
scroll/contracts/docs/apis/L2ScrollMessenger.md

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

Parameters

Name Type Description
_counterpart 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 undefined

Initialized

event Initialized(uint8 version)

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)

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

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 undefined
newMaxFailedExecutionTimes uint256 undefined