LibLayerZero
Last updated
Last updated
The LibLayerZero
library provides functions for updating Layer Zero settings, handling Layer Zero data transfers (in and out), decoding and encoding data transfer payloads, registering and retrieving extended payloads, and enforcing authorization for Layer Zero operations. It consist of two structs:
updates the LayerZero settings of the Magpie aggregator contract by storing the given LayerZeroSettings struct in the storage of the aggregator contract.
Input
Field | Type | Description |
---|---|---|
used to add a mapping of network IDs to chain IDs in LayerZero. Takes two arrays as input, networkIds and chainIds, where the i-th element of the networkIds array corresponds to the i-th element of the chainIds array.
Input
Field | Type | Description |
---|---|---|
used to add a mapping of chain IDs to network IDs in LayerZero. Takes two arrays as input, chainIds and networkIds, where the i-th element of the chainIds array corresponds to the i-th element of the networkIds array.
Input
Field | Type | Description |
---|---|---|
takes a byte array as input and returns a LayerZeroDataTransferInData struct. This struct contains the fee that is required to be paid for the data transfer.
Input
Output
this function is responsible for encoding the remote and local addresses into a bytes
array.
Input
Output
responsible for transferring data using LayerZero. It takes two parameters as input: payload, which is the data that is to be transferred, and protocol, which is a DataTransferInProtocol struct that contains the payload and network ID.
Input
takes a byte as input, which is the data transfer out payload, and returns the extended payload for the message using the sender network ID, sender address, and core sequence of the message.
Input
Output
takes a TransferKey struct and a byte array as input and registers the extended payload for the message in the storage of the aggregator contract.
Input
is called when a message is received by the contract. It takes three parameters as input: senderChainId, which is the ID of the chain that sent the message, localAndRemoteAddresses, which is a byte array that contains the local and remote addresses of the sender, and extendedPayload, which is the extended payload for the message. This function validates the message and registers the extended payload for the message in the storage of the aggregator contract.
Input
Field | Type | Description |
---|---|---|
Field | Type | Description |
---|---|---|
Field | Type | Description |
---|---|---|
Field | Type | Description |
---|---|---|
Field | Type | Description |
---|---|---|
Field | Type | Description |
---|---|---|
Field | Type | Description |
---|---|---|
Field | Type | Description |
---|---|---|
Field | Type | Description |
---|---|---|
An array of network identifiers provided by magpie team.
An array of layer zero blockchain identifiers
An array of layer zero blockchain identifiers
An array of network identifiers provided by magpie team.
Payload required for transfering data from one chain to another
target address
source address
concatenated target and source address
Payload necessary for data transfer
Payload necessary for data transfer
Payload + extra information like which data transfer type has been used
Payload + extra information like which data transfer type has been used
The layer zero chain identifier for the source chain
The address that will receive the data from layerzero
Payload + extra information like which data transfer type has been used