转移代币

通过一个或多个链从一个代币转移到另一个代币很简单。

以下部分将逐步解释如何跨一条或多条链转移代币。

第 1 步:请求报价

从 Gnosis 上的 1 USDC 转移到 Polygon 上的 USDC 的请求如下所示:

const getQuote = async (fromChain, toChain, fromToken, toToken, fromAmount, fromAddress) => {
    const result = await axios.get('https://li.quest/v1/quote', {
        params: {
            fromChain,
            toChain,
            fromToken,
            toToken,
            fromAmount,
            fromAddress,
        }
    });
    return result.data;
}

const fromChain = 'DAI';
const fromToken = 'USDC';
const toChain = 'POL';
const toToken = 'USDC';
const fromAmount = '1000000';
const fromAddress = YOUR_WALLET_ADDRESS;

const quote = await getQuote(fromChain, toChain, fromToken, toToken, fromAmount, fromAddress);

报价响应包含一个 transactionRequest 对象,可以直接传递给您的钱包/签名者。

第 2 步:发送交易

收到报价后,必须发送交易以触发转移。

首先,必须配置钱包。 以下示例将您的钱包连接到 Gnosis 链。

之后,可以使用先前检索到的报价中的 transactionRequest 发送交易:

对于单链上的简单交换,这就足够了。 对于跨链传输,处理需要更长的时间。 为了处理这个问题,API 提供了一个端点来检查传输状态。

第 3 步:等待传输完成

Checking the status of the transfer is only necessary for cross chain transfers

要检查令牌是否成功发送到接收链,可以调用 /status 端点:

所有东西都塞在一起

整个过程如下所示:

检查和设置津贴

在发送任何交易之前,必须确保用户允许从他的钱包发送请求的金额。

这可以这样实现:

Last updated