LibStargate
This library is implementing a bridge for cross-chain communication using the Stargate protocol.
The code defines three structs:
StargateBridgeInData
contains the chain ID of the recipient on the other chain, the IDs of the source and destination pools, and the amount of fees to be paid.
Field | Type | Description |
---|---|---|
This field is an unsigned 16-bit integer that represents the chain ID of the recipient on Layer 0. Layer 0 typically refers to the root blockchain or the main chain. | ||
This field is a | ||
This field is a | ||
This field is a | ||
The amount of gas fees one needs to execute the transaction. |
StargateBridgeOutData
contains the address of the sender's bridge contract, a nonce, and the ID of the sender's chain.
Field | Type | Description |
---|---|---|
This field is of type | ||
This field is of type | ||
This field is of type |
ExecuteBridgeInArgs
this struct is used to encapsulate the necessary input arguments for executing a bridge operation in the context of a Stargate bridge system. The fields hold relevant information such as network ID, token details, router address, recipient address, and additional bridge-specific data
Field | Type | Description |
---|---|---|
This field is of type | ||
This field is of type | ||
This field is of type | ||
LibStargate has the below functions:
updateSettings
updates the stargateSettings struct in the contract's AppStorage struct.
Input
Field | Type | Description |
---|---|---|
decodeBridgeOutPayload
decodes the bridgeOutPayload and returns the StargateBridgeOutData.
Input
Field | Type | Description |
---|---|---|
Payload consisting of data necessary for bridging out |
Output
Field | Type | Description |
---|---|---|
decodeBridgeInPayload
decodes the bridgeInPayload and returns the StargateBridgeInData.
Input
Field | Type | Description |
---|---|---|
Payload consisting of data necessary for bridging in. |
Output
Field | Type | Description |
---|---|---|
getMinAmountLD
returns the minimum amount of tokens that can be bridged.
Input
Field | Type | Description |
---|---|---|
The amount that needs to be swapped | ||
Output
Field | Type | Description |
---|---|---|
The minimum amount out |
encodeRecipientAddress
this function is responsible for converting a bytes32
Ethereum address into a 20-byte bytes
representation, suitable for further processing or storage within the contract.
Input
Field | Type | Description |
---|---|---|
The recipient address in bytes32 |
Output
Field | Type | Description |
---|---|---|
The receipient address in bytes |
getLzTxObj
this function is responsible for creating and returning a layerZero transaction object (lzTxObj
) based on the provided sender address.
Input
Field | Type | Description |
---|---|---|
The address that initiated the transaction. |
Output
Field | Type | Description |
---|---|---|
bridgeIn
this function facilitates the bridging of tokens from the caller's network to a recipient network. It sets the necessary parameters, including the recipient address, bridge input data, lazy transaction object, token sequence, amount, network ID, and router address, and then calls the executeBridgeIn
function to execute the bridge operation.
Input
Field | Type | Description |
---|---|---|
The network identifier of the destination chain | ||
The amount that needs to be swapped | ||
The final token that needs to be received |
Output
Field | Type | Description |
---|---|---|
The sequence received after a successful bridging in |
executeBridgeIn
this function is responsible for executing the bridge-in operation by calling the swap
function of the StargateRouter contract with the necessary arguments. It handles the transaction fee, source and destination pool IDs, sender address, amount, minimum acceptable amount, lazy transaction object, recipient address, and payload.
Input
Field | Type | Description |
---|---|---|
bridgeOut
this function is responsible for executing the bridge out operation. It decodes the payload, retrieves the sender address, and calls the withdraw
function of the IMagpieStargateBridge
contract to withdraw tokens based on the provided arguments. The deposited amount for the fromAssetAddress
is reduced accordingly.
Input
Field | Type | Description |
---|---|---|
Payload consisting of data necessary for briding out. | ||
Output
Field | Type | Description |
---|---|---|
The amount received after bridging out. |
addStargateBridgeAddresses():
It updates the Magpie Stargate bridge addresses for specific network IDs within the application storage.
Input
Field | Type | Description |
---|---|---|
An array of unsigned 16-bit integers ( | ||
An array of |
addstargateBridgeV2Addresses():
It updates the Magpie Stargate bridge addresses for specific network IDs within the application storage.
Input
Field | Type | Description |
---|---|---|
An array of unsigned 16-bit integers ( | ||
An array of |
Events:
Last updated