Axelar跨链机制
reference: https://docs.axelar.dev/
跨链转移Token
情况一:Call sendToken()
on an EVM source chain
- step 1: 找到 source chain 的 Gateway 的合约地址。
EVM 链使用 Axelar Gateway 智能合约发送Token。 这些是应用程序层智能合约,用于发送和接收有效负载以及监控交易状态。
Gateway合约的接口如下。
1 | function sendToken( |
- step 2: 调用 source chain 的approve()。
- step 3: 在 source chain 上,利用Gateway合约将调用sendToken()。
1 | sendToken( |
此时,token将出现在目标链(destination chain)的地址上。
情况二:## Call sendToken()
on a Cosmos-based source chain
基于COSMOS的 source chain的话,sendToken()是一笔IBC的交易。消息(message)被投送到 Axelar 到一个固定的地址上axelar1dv4u5k73pzqrxlzujxg3qp8kvc3pje7jtdvu72npnt5zhq05ejcsn5qme5
,该地址在Axelar网络上,被用于接收GMP消息,消息格式如下:
1 | { |
利用AxelarJS SDK调用sendToken()
前端应用可以利用AxelarJS SDK调用sendToken()。
使用存款地址(deposit address)转移资产
存款地址(deposit address)是由 Axelar 中继服务(Relayer)创建和监控的临时一次性地址。 存款地址通常最多可运行 24 小时。如果出现以下情况,请使用存款地址:
- 您需要 sendToken() 方法未提供的功能,例如 Cosmos-to-X。
- 您希望允许从不与 Axelar 交互的钱包进行Token转移,例如从中心化交易所提取资金时。
如需使用存款地址转移资产,需要使用AxelarJS SDK并发起AxelarAssetTransfer。
构建跨链代币(Interchain Token)
链间代币是可在多个区块链上使用的 ERC-20 token。借助 Axelar 的链间代币服务 (Interchain Token Service),可以从头开始创建新的跨链代币,也可以更新以太坊区块链上已存在的Token。如果Token不被 Axelar 支持,将该Token加入链间代币服务 (Interchain Token Service)即可。