简介
在以太坊生态中,资产的交换一直是一个关键问题。@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
决定了在价格波动时的容忍度,gasPrice
和 gasLimit
分别表示交易中所使用的燃料价格和数量,from
表示交易的发起方钱包地址。
交易执行
获取 quote 后,就可以使用钱包执行交易。交易的前提是钱包有足够的代币进行交换。要执行的交易内容包括:
- 在交易所创建订单;
- 将订单发送到 chain 上;
- 等待订单被挖矿打包,并执行。
------ - ------------ - ---- ------------------ ------ - --------- - ---- ---------------- ------ - ----- - ---- ------------------------ ------ - ------------ ---------------- - ---- ------------------- ------ - --------- - ---- ------------ -- --- ----- --------- - --- -------------------------------- ---------------------- ----- ------------ - --- --------------- ----- ----------- - --- ----------------------------------- ----- ---------------- - --- --------------------------------------- - ---------- -------------------- --- ----- -------- ------------------- - ----- -------------- - ----------------------------------------------------------------------------- -- --- ----- -------------- - ----------------------------------------------------------------------------- -- --- ----- ---------------- - ----------------------------------------- ----- ---------------- - ----------------------------------------- ----- ----------------- - --------------------------------------------------- --- ------------ - --------------------------------------------------- - ---------------------------- ----- ----------------- - ----- -------------------------------------------------------------- ------------------ -- ---------------------------------------- - ----- --- ------------------- ----- -------- ------------------------------ - ---------------------------------- - ----- ------ - ----- ---------------------------------------- --------------- - ---------------- ---------- --- ----- ------------ - ---------------------------- -- ---------------------- - ---------------------------------------------------------- ----- ---------------- - --------------------------------------------- ----- - ------ - - ----- --------------------------------------------------------- ----------------- ----------------- - --------------------- ----------------- ------------- ---------------- --- ------------------------ ----- ------------ -
executeQuote
方法接收 quote,然后拼接成一个订单。当订单生成并发送成功后,代币交换就完成了。如果发送成功,会返回一个交易 ID。你可以在区块链浏览器中查看交易状态。
总结
@0x/asset-swapper 是一个功能强大的 npm 包,可用于在以太坊生态中进行资产的交换。使用方法虽然稍微复杂一些,但是很值得学习。希望这篇文章能够帮助你理解 @0x/asset-swapper 的使用技巧,并能够在实际项目中运用它。如果你想要更进一步,可以查看官方文档,或者在社区中寻找更多资料。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/125288