介绍
@0xproject/order-utils 是一个专为 0x 协议设计的 npm 包,可以用于创建、解析和操作 0x 协议中使用的二进制 order 数据。该包提供了一系列帮助函数,可以使操作 0x 订单变得更加容易。
安装
通过 npm 安装:
npm install @0xproject/order-utils
使用方法
创建一个订单
我们可以使用以下代码创建一个简单的订单:
-- -------------------- ---- ------- ----- ---------- - ---------------------------------- ----- ---- - ---------------- ----- ------------ - --------------------------------------- ----- ------------ - --------------------------------------- ----- ---------------- - ---------------------- -- - --- ----- ---------------- - --------------------- -- --- --- ----- --------------------- - ------------ -- ---------- - ------- ----- ----- ----- - - ------------- ------------- ----------------- ---------------------------------- ----------------- ---------------------------------- ---------------------- --------------------------------------- -- ----- ------------ - ----------------------------------
上面代码中的订单中含有以下信息:
makerAddress
是订单的创建者,即卖家。takerAddress
是一个可选的地址,订单中的买家,默认值为0x0000000000000000000000000000000000000000
。makerAssetAmount
是以 wei 为单位的卖方卖出资产数量。takerAssetAmount
是以 wei 为单位的买方买入资产数量。expirationTimeSeconds
是订单的过期时间。
签名一个订单
要对订单进行签名,我们需要以下信息:
- 要签名的订单数据。
- 订单的创建者的私钥。
const privateKey = '0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef'; const signedOrder = { ...order, signature: orderUtils.signOrder(order, privateKey) };
signature
属性是由 signOrder
函数生成的签名。
使用 orderHashUtils
模块
orderHashUtils
模块是 @0xproject/order-utils 包中非常有用的一个模块,它包含一组帮助函数,可以帮助我们创建、解析和操作 0x 订单散列值。
-- -------------------- ---- ------- ----- -------------- - ------------------------------------------------- -- --------- ----- ------------ - -------------------------------------- -- ------------ ----- --------------- - ----------------------------------------- -- ----------- ---- - ------ ----- ---------------- - ------------------------------------------------ ------------------------- -----------------------
使用其他帮助函数
@0xproject/order-utils 还提供了一些其他帮助函数,可以帮助我们操作 0x 协议中的各种数据。以下是其中的一些函数:
assetDataUtils.encodeERC20AssetData(tokenAddress)
:帮助我们生成包含 ERC20 令牌地址的订单数据。assetDataUtils.decodeERC20AssetData(assetData)
:帮助我们解码包含 ERC20 令牌地址的订单数据。assetDataUtils.encodeERC721AssetData(tokenAddress, tokenId)
:帮助我们生成包含 ERC721 令牌地址和 tokenId 的订单数据。assetDataUtils.decodeERC721AssetData(assetData)
:帮助我们解码包含 ERC721 令牌地址和 tokenId 的订单数据。
总结
@0xproject/order-utils 是一个非常有用的 npm 包,可以帮助我们轻松操作 0x 协议中的订单数据。通过使用它提供的函数,我们可以更加快速、精准地创建、解析和操作 0x 订单。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/125379