As an application I want to bridge my protocol tokens between chains from my application interface.
Objectives:
Build a bridging application that lets users bridge tokens between chains.
Implementation tips:
As an application deploying their own tokens on multiple chain,
You can choose to deploy a lock and mint bridge that mints wrapped token representations under your project name.
You can choose to deploy a burn and mint for tokens you first deploy on different chains and whitelist for your bridge.
To further improve ease of integration you can choose to build the scaffolding of a UI or widget that protocols can then use.
Creative use of Acknowledgements
In IBC when a packet is sent, it goes through three distinct phases of the packet lifecycle: (1) the initiating sendPacket transaction from the source chain, (2) the corresponding recvPacket transaction on the destination chain that executes a specific action (referred to as the 'onRecvPacket' callback action), and (3) finally a acknowledgment or timeout transaction. The acknowledgment serves as a notification to the originating chain about the receipt of the packet on the destination.
NOTE: timeouts are currently not supported on testnet
If the action involves the minting of a specific token on the destination chain, there are ways to improve UX: the user tokens on source are unlocked or not burned in case of a failed onRecvPacket callback action of minting new tokens.
User story:
Objectives:
Implementation tips:
As an application deploying their own tokens on multiple chain,
Creative use of Acknowledgements
In IBC when a packet is sent, it goes through three distinct phases of the packet lifecycle: (1) the initiating sendPacket transaction from the source chain, (2) the corresponding recvPacket transaction on the destination chain that executes a specific action (referred to as the 'onRecvPacket' callback action), and (3) finally a acknowledgment or timeout transaction. The acknowledgment serves as a notification to the originating chain about the receipt of the packet on the destination.
NOTE: timeouts are currently not supported on testnet
If the action involves the minting of a specific token on the destination chain, there are ways to improve UX: the user tokens on source are unlocked or not burned in case of a failed onRecvPacket callback action of minting new tokens.
References: Lock/burn and mint bridge , xERC20, OFT