npm 包@0x/contracts-exchange-libs 使用教程

阅读时长 9 分钟读完

简介

@0x/contracts-exchange-libs是一个开源的 JavaScript 库,它提供了访问以太坊网络上 0x 协议的中间件。该库可以与0x协议的 DEX 合约集成,为交易提供更好的 User Experience (UX)。

这篇文章将详细介绍如何使用@0x/contracts-exchange-libs

安装

使用 npm 安装 @0x/contracts-exchange-libs:

步骤

接下来,让我们来实现一个交易操作:

  1. 初始化合约实例
  2. 获取交易信号(orderHash)
  3. 使用ExchangeWrapper来向交易所提交订单

初始化合约实例

在使用@0x/contracts-exchange-libs前,需要初始化一个合约实例。以下代码示例展示如何初始化一个合约实例:

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

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

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

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

其中,web3.currentProvider表示使用当前页面的 web3 提供程序,exchangeAddress代表使用该地址的 ExchangeContract 合约。

获取交易信号

获取订单编码 order,订单编码包括交易的数量、价格、地址等。

通过提供提供商、订单哈希以及创建订单的私钥,创建签名。典型的订单包括像下面展示的一些属性:

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

提交订单

使用 ExchangeWrapper 向交易所提交订单:

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

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

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

其中exchangeOrderAsync将填充交易所所需的未完成订单。成功完成此操作后,交易现在已被提交,并且应该在以太坊网络上进行。在收到响应后,您可以根据需要处理返回值。

到此,您已经了解了如何使用 @0x/contracts-exchange-libs 进行交易操作。

示例代码

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

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

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

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

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

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

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

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

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

总结

@0x/contracts-exchange-libs 提供了一个兼容0x协议的 DEX 合约实现,使得用户可以更快速、更便捷地进行交易操作。通过使用这个库,我们可以很容易地部署自己的 DEX,并提供一个高效的交易体验。感谢您阅读本文,希望能帮助您更好地理解和使用 @0x/contracts-exchange-libs

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

纠错
反馈