npm 包 @0x/order-watcher 使用教程

阅读时长 6 分钟读完

前言

在进行区块链行业的开发过程中,我们经常需要对区块链上的订单进行监控。这时候,@0x/order-watcher 这个 npm 包可以帮我们轻松实现订单的实时监控和处理。本篇文章将介绍该包的使用方法和一些注意事项。

安装

在使用 @0x/order-watcher 之前,我们需要先安装它。可以在命令行中使用以下命令进行安装:

安装成功后,我们可以开始使用了。

使用方法

初始化 OrderWatcher

要使用 @0x/order-watcher,我们需要先初始化一个 OrderWatcher 实例:

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

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

初始化时需要传入以下参数:

  • web3.currentProvider: 当前使用的 web3 提供程序。
  • orderExpirationCheckingIntervalMs:检查订单过期时间的时间间隔(毫秒)。
  • stateLayer:订单持久化存储使用的状态层。默认为 'Memory',可选值包括 'Memory''IndexedDB''LocalStorage'
  • permittedOrderFeeTypes:允许的订单手续费类型。
  • statsGatheringAgent:用于统计的代理对象。
  • onOrderStateChangeCallback:当订单状态发生变化时调用的回调函数。

监控订单

初始化 OrderWatcher 实例后,我们就可以开始监控订单了:

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

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

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

首先我们使用 orderWatcher.subscribe() 函数来订阅订单状态变化。在函数中,我们传入一个对象,以便筛选相应的订单。在我们的示例代码中,我们使用 Maker 和 Taker 的地址以及订单中的两个代币地址来筛选特定的订单。我们还传入了一个回调函数,当订单状态变化时,OrderWatcher 会自动调用该函数。

接下来,我们使用 orderWatcher.addOrder() 函数将订单添加到 OrderWatcher 中。在我们的示例代码中,我们创建了一个新的订单对象,包含 Maker 和 Taker 的地址,以及订单中的两个代币的地址和数量。我们还设置了一些其他的订单参数(例如过期时间、手续费收件人地址等)。

通过上述代码,我们已经为特定订单启用了实时监控。当订单状态发生变化时,我们将收到相应的回调。

处理订单

当订单状态变化时,我们可能需要执行一些操作来处理该订单。@0x/order-watcher 提供了以下函数,用于获取特定订单的当前状态:

我们可以使用 orderWatcher.getOrderStateAsync() 函数获取特定订单的当前状态:

在上述代码中,我们使用 orderUtils.getOrderHash() 函数来生成订单的哈希值。然后,我们使用 orderWatcher.getOrderStateAsync() 函数获取订单的当前状态。

注意事项

  • 在订阅订单状态变化时,建议筛选尽可能具体的订单,以便有效提高系统性能。
  • 在处理订单时,应该特别注意订单状态。订单状态发生变化时,应该立即处理订单,以免在处理过程中发生意外错误而导致问题恶化。

结论

在本篇文章中,我们介绍了 @0x/order-watcher 的使用方法和注意事项。通过使用 @0x/order-watcher,我们可以轻松实现对订单的实时监控和处理,并保障系统的稳定性与性能。

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