Skip to main content

Module: message/L2ToL1Message

L2ToL1Message

Base functionality for L2->L1 messages

Extended By

Methods

fromEvent()

static fromEvent<T>(
l1SignerOrProvider,
event,
l1Provider?): L2ToL1MessageReaderOrWriter< T >

Instantiates a new L2ToL1MessageWriter or L2ToL1MessageReader object.

Type parameters
Parameter
T extends SignerOrProvider
Parameters
ParameterTypeDescription
l1SignerOrProviderTSigner or provider to be used for executing or reading the L2-to-L1 message.
eventL2ToL1TransactionEventThe event containing the data of the L2-to-L1 message.
l1Provider?ProviderOptional. Used to override the Provider which is attached to l1SignerOrProvider in case you need more control. This will be a required parameter in a future major version update.
Returns

L2ToL1MessageReaderOrWriter\< T >

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:73


getL2ToL1Events()

static getL2ToL1Events(
l2Provider,
filter,
position?,
destination?,
hash?,
indexInBatch?): Promise< Object[] >

Get event logs for L2ToL1 transactions.

Parameters
ParameterTypeDescription
l2ProviderProvider
filterobjectBlock range filter
filter.fromBlockBlockTag-
filter.toBlock?BlockTag-
position?BigNumberThe batchnumber indexed field was removed in nitro and a position indexed field was added.
For pre-nitro events the value passed in here will be used to find events with the same batchnumber.
For post nitro events it will be used to find events with the same position.
destination?stringThe L1 destination of the L2ToL1 message
hash?BigNumberThe uniqueId indexed field was removed in nitro and a hash indexed field was added.
For pre-nitro events the value passed in here will be used to find events with the same uniqueId.
For post nitro events it will be used to find events with the same hash.
indexInBatch?BigNumberThe index in the batch, only valid for pre-nitro events. This parameter is ignored post-nitro
Returns

Promise\< Object[] >

Any classic and nitro events that match the provided filters.

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:102


L2ToL1MessageReader

Provides read-only access for l2-to-l1-messages

Extends

Methods

getFirstExecutableBlock()

getFirstExecutableBlock(l2Provider): Promise< null | BigNumber >

Estimates the L1 block number in which this L2 to L1 tx will be available for execution. If the message can or already has been executed, this returns null

Parameters
ParameterTypeDescription
l2ProviderProvider
Returns

Promise\< null | BigNumber >

expected L1 block number where the L2 to L1 message will be executable. Returns null if the message can or already has been executed

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:258


status()

status(l2Provider): Promise< L2ToL1MessageStatus >

Get the status of this message In order to check if the message has been executed proof info must be provided.

Parameters
ParameterType
l2ProviderProvider
Returns

Promise\< L2ToL1MessageStatus >

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:226


waitUntilReadyToExecute()

waitUntilReadyToExecute(l2Provider, retryDelay = 500): Promise< CONFIRMED | EXECUTED >

Waits until the outbox entry has been created, and will not return until it has been. WARNING: Outbox entries are only created when the corresponding node is confirmed. Which can take 1 week+, so waiting here could be a very long operation.

Parameters
ParameterTypeDefault valueDescription
l2ProviderProviderundefined-
retryDelaynumber500
Returns

Promise\< CONFIRMED | EXECUTED >

outbox entry status (either executed or confirmed but not pending)

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:239


fromEvent()

static fromEvent&lt;T&gt;(
l1SignerOrProvider,
event,
l1Provider?): L2ToL1MessageReaderOrWriter< T >

Instantiates a new L2ToL1MessageWriter or L2ToL1MessageReader object.

Type parameters
Parameter
T extends SignerOrProvider
Parameters
ParameterTypeDescription
l1SignerOrProviderTSigner or provider to be used for executing or reading the L2-to-L1 message.
eventL2ToL1TransactionEventThe event containing the data of the L2-to-L1 message.
l1Provider?ProviderOptional. Used to override the Provider which is attached to l1SignerOrProvider in case you need more control. This will be a required parameter in a future major version update.
Returns

L2ToL1MessageReaderOrWriter\< T >

Inherited from

L2ToL1Message.fromEvent

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:73


getL2ToL1Events()

static getL2ToL1Events(
l2Provider,
filter,
position?,
destination?,
hash?,
indexInBatch?): Promise< Object[] >

Get event logs for L2ToL1 transactions.

Parameters
ParameterTypeDescription
l2ProviderProvider
filterobjectBlock range filter
filter.fromBlockBlockTag-
filter.toBlock?BlockTag-
position?BigNumberThe batchnumber indexed field was removed in nitro and a position indexed field was added.
For pre-nitro events the value passed in here will be used to find events with the same batchnumber.
For post nitro events it will be used to find events with the same position.
destination?stringThe L1 destination of the L2ToL1 message
hash?BigNumberThe uniqueId indexed field was removed in nitro and a hash indexed field was added.
For pre-nitro events the value passed in here will be used to find events with the same uniqueId.
For post nitro events it will be used to find events with the same hash.
indexInBatch?BigNumberThe index in the batch, only valid for pre-nitro events. This parameter is ignored post-nitro
Returns

Promise\< Object[] >

Any classic and nitro events that match the provided filters.

Inherited from

L2ToL1Message.getL2ToL1Events

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:102


L2ToL1MessageWriter

Provides read and write access for l2-to-l1-messages

Extends

Constructors

constructor()

new L2ToL1MessageWriter(
l1Signer,
event,
l1Provider?): L2ToL1MessageWriter

Instantiates a new L2ToL1MessageWriter object.

Parameters
ParameterTypeDescription
l1SignerSignerThe signer to be used for executing the L2-to-L1 message.
eventL2ToL1TransactionEventThe event containing the data of the L2-to-L1 message.
l1Provider?ProviderOptional. Used to override the Provider which is attached to l1Signer in case you need more control. This will be a required parameter in a future major version update.
Returns

L2ToL1MessageWriter

Overrides

L2ToL1MessageReader.constructor

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:281

Methods

execute()

execute(l2Provider, overrides?): Promise< ContractTransaction >

Executes the L2ToL1Message on L1. Will throw an error if the outbox entry has not been created, which happens when the corresponding assertion is confirmed.

Parameters
ParameterType
l2ProviderProvider
overrides?Overrides
Returns

Promise\< ContractTransaction >

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:310


getFirstExecutableBlock()

getFirstExecutableBlock(l2Provider): Promise< null | BigNumber >

Estimates the L1 block number in which this L2 to L1 tx will be available for execution. If the message can or already has been executed, this returns null

Parameters
ParameterTypeDescription
l2ProviderProvider
Returns

Promise\< null | BigNumber >

expected L1 block number where the L2 to L1 message will be executable. Returns null if the message can or already has been executed

Inherited from

L2ToL1MessageReader.getFirstExecutableBlock

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:258


status()

status(l2Provider): Promise< L2ToL1MessageStatus >

Get the status of this message In order to check if the message has been executed proof info must be provided.

Parameters
ParameterType
l2ProviderProvider
Returns

Promise\< L2ToL1MessageStatus >

Inherited from

L2ToL1MessageReader.status

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:226


waitUntilReadyToExecute()

waitUntilReadyToExecute(l2Provider, retryDelay = 500): Promise< CONFIRMED | EXECUTED >

Waits until the outbox entry has been created, and will not return until it has been. WARNING: Outbox entries are only created when the corresponding node is confirmed. Which can take 1 week+, so waiting here could be a very long operation.

Parameters
ParameterTypeDefault valueDescription
l2ProviderProviderundefined-
retryDelaynumber500
Returns

Promise\< CONFIRMED | EXECUTED >

outbox entry status (either executed or confirmed but not pending)

Inherited from

L2ToL1MessageReader.waitUntilReadyToExecute

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:239


fromEvent()

static fromEvent&lt;T&gt;(
l1SignerOrProvider,
event,
l1Provider?): L2ToL1MessageReaderOrWriter< T >

Instantiates a new L2ToL1MessageWriter or L2ToL1MessageReader object.

Type parameters
Parameter
T extends SignerOrProvider
Parameters
ParameterTypeDescription
l1SignerOrProviderTSigner or provider to be used for executing or reading the L2-to-L1 message.
eventL2ToL1TransactionEventThe event containing the data of the L2-to-L1 message.
l1Provider?ProviderOptional. Used to override the Provider which is attached to l1SignerOrProvider in case you need more control. This will be a required parameter in a future major version update.
Returns

L2ToL1MessageReaderOrWriter\< T >

Inherited from

L2ToL1MessageReader.fromEvent

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:73


getL2ToL1Events()

static getL2ToL1Events(
l2Provider,
filter,
position?,
destination?,
hash?,
indexInBatch?): Promise< Object[] >

Get event logs for L2ToL1 transactions.

Parameters
ParameterTypeDescription
l2ProviderProvider
filterobjectBlock range filter
filter.fromBlockBlockTag-
filter.toBlock?BlockTag-
position?BigNumberThe batchnumber indexed field was removed in nitro and a position indexed field was added.
For pre-nitro events the value passed in here will be used to find events with the same batchnumber.
For post nitro events it will be used to find events with the same position.
destination?stringThe L1 destination of the L2ToL1 message
hash?BigNumberThe uniqueId indexed field was removed in nitro and a hash indexed field was added.
For pre-nitro events the value passed in here will be used to find events with the same uniqueId.
For post nitro events it will be used to find events with the same hash.
indexInBatch?BigNumberThe index in the batch, only valid for pre-nitro events. This parameter is ignored post-nitro
Returns

Promise\< Object[] >

Any classic and nitro events that match the provided filters.

Inherited from

L2ToL1MessageReader.getL2ToL1Events

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:102


L2ToL1MessageReaderOrWriter

L2ToL1MessageReaderOrWriter: &lt;T&gt; T extends Provider ? L2ToL1MessageReader : L2ToL1MessageWriter

Conditional type for Signer or Provider. If T is of type Provider then L2ToL1MessageReaderOrWriter\<T> will be of type L2ToL1MessageReader. If T is of type Signer then L2ToL1MessageReaderOrWriter\<T> will be of type L2ToL1MessageWriter.

Type parameters

Parameter
T extends SignerOrProvider

Source

arbitrum-sdk/src/lib/message/L2ToL1Message.ts:51