npm 包 @0x/asset-swapper 使用教程

阅读时长 8 分钟读完

简介

在以太坊生态中,资产的交换一直是一个关键问题。@0x/asset-swapper 是一个能够方便地在以太坊生态中进行代币交换的 npm 包。它提供了实时价格数据以及交易所订单薄的信息,并支持通过 router 交易的方式,将代币从一个链转移到另一个链。

安装

在安装 @0x/asset-swapper 之前,需要安装 Node.js。同时,也需要确保有一个以太坊钱包地址,这样可以通过该地址进行交易。然后使用以下命令来安装 npm 包:

使用方法

设置 provider

在使用 @0x/asset-swapper 之前,必须先设置 provider。可以通过 Infura、Alchemy 等公共节点,或者自己的本地节点。

-- -------------------- ---- -------
------ - ------------------ - ---- -------------------
------ - --------------- -------- - ---- -------
------ - ---------- - ---- --------------
------ - ------------ - ---- --------------------
-- ---
----- -------- - --- ---------------------
----- -------------- - --- ---------------------------------------------------
-------------------------------------
-----------------
----- ------------ - --- -------------- 
    -------- --
    ---------------- ----------------------------
    ------------------ --- -------------------
    ------------- ---------------------------- 
---
展开代码

代币交换

现在可以使用 assetSwapper.quoteAsync 来获取代币交换的报价。quoteAsync 方法需要传入一个 SwapQuoteRequestOpts 类型的对象,该对象包含了代币的信息和交换的细节。

-- -------------------- ---- -------
------ - -------------------- - ---- --------------------
-- ---
----- ------------ -------------------- - -
    ---------------- ---------------------------------------------        -- ---
    ----------------- ---------------------------------------------       -- ---
    ----------- --- -------------------------------                       -- - ---
    ------------------- --- ----------------                               -- --
    --------- --- ---------------                                          -- - ----
    --------- --- ------------------
    ----- ---------------------------------------------                    -- ---- ------ -------
--
----- ----- - ----- -------------------------------------
------------------- ------------------------------------------- ------------------------------------ ---------------------------------------
-------------------- --------- ------------------------------------------------------ --------------------------------------
---------------- --------- ---------------------------------------------
展开代码

这里,我们希望以 2 SAI 的价格购买 DAI。其中,sellAmount 是一个 BigNumber 类型的变量,用于表示出售的代币数量(以 wei 为单位)。slippagePercentage 决定了在价格波动时的容忍度,gasPricegasLimit 分别表示交易中所使用的燃料价格和数量,from 表示交易的发起方钱包地址。

交易执行

获取 quote 后,就可以使用钱包执行交易。交易的前提是钱包有足够的代币进行交换。要执行的交易内容包括:

  • 在交易所创建订单;
  • 将订单发送到 chain 上;
  • 等待订单被挖矿打包,并执行。
-- -------------------- ---- -------
------ - ------------ - ---- ------------------
------ - --------- - ---- ----------------
------ - ----- - ---- ------------------------
------ - ------------ ---------------- - ---- -------------------
------ - --------- - ---- ------------
-- ---
----- --------- - --- -------------------------------- ----------------------
----- ------------ - --- ---------------
----- ----------- - --- -----------------------------------
----- ---------------- - --- --------------------------------------- - ---------- -------------------- ---

----- -------- ------------------- -
    ----- -------------- - -----------------------------------------------------------------------------   -- ---
    ----- -------------- - -----------------------------------------------------------------------------  -- ---
    ----- ---------------- - -----------------------------------------
    ----- ---------------- - -----------------------------------------
    ----- ----------------- - --------------------------------------------------- --- ------------ - --------------------------------------------------- - ----------------------------
    ----- ----------------- - ----- -------------------------------------------------------------- ------------------

    -- ---------------------------------------- -
        ----- --- ------------------- ----- -------- ------------------------------ - ----------------------------------
    -

    ----- ------ - ----- ---------------------------------------- --------------- - ---------------- ---------- ---
    ----- ------------ - ---------------------------- -- ---------------------- - ----------------------------------------------------------

    ----- ---------------- - ---------------------------------------------
    ----- - ------ - - ----- --------------------------------------------------------- ----------------- ----------------- - --------------------- ----------------- ------------- ---------------- ---
    ------------------------ ----- ------------
-
展开代码

executeQuote 方法接收 quote,然后拼接成一个订单。当订单生成并发送成功后,代币交换就完成了。如果发送成功,会返回一个交易 ID。你可以在区块链浏览器中查看交易状态。

总结

@0x/asset-swapper 是一个功能强大的 npm 包,可用于在以太坊生态中进行资产的交换。使用方法虽然稍微复杂一些,但是很值得学习。希望这篇文章能够帮助你理解 @0x/asset-swapper 的使用技巧,并能够在实际项目中运用它。如果你想要更进一步,可以查看官方文档,或者在社区中寻找更多资料。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/125288