npm 包 @0x/web3-wrapper 使用教程

阅读时长 8 分钟读完

介绍

@0x/web3-wrapper 是一个为 @0x/project 等以太坊的 dApp 提供的 Web3.js 接口封装包,可以用来在 JavaScript 项目中与以太坊区块链进行交互。该包提供了一些便捷的方法,可以使得以太坊智能合约开发变得更加容易。本教程将带您深入了解该包的基本使用方法,并提供一些示例代码以帮助您理解。

安装

在开始使用 @0x/web3-wrapper 之前,需要先通过 NPM 安装它。可以通过以下命令来安装:

快速入门

为了开始使用 @0x/web3-wrapper 包,您需要:

  • 首先引入该包:
  • 创建 Web3Wrapper 实例,接着传入一个 Web3.js 实例和一个可选的 HTTP Provider(例如 infura):
  • 使用该实例与以太坊进行交互。例如,以下代码将获取以太坊最新区块的信息:

即可完成 @0x/web3-wrapper 包的快速入门。

基本方法

@0x/web3-wrapper 包的基本方法如下:

getBlockNumberAsync()

获取当前区块链上的最新区块号(非常量方法)。

getBlockAsync(blockNumber: number, returnFullTxObjects: boolean = false)

根据区块号获取该区块的信息(非常量方法)。

参数:

  • blockNumber: number:要获取的区块号。
  • returnFullTxObjects: boolean = false:如果为真,则返回的区块对象包含完整的交易信息。如果为假,则只包含交易哈希。

getTransactionAsync(txHash: string)

根据交易哈希获取交易信息(非常量方法)。

参数:

  • txHash: string:要获取的交易哈希。

getEthereumNodeInfoAsync()

获取以太坊节点信息(非常量方法)。

getGasPriceInWeiAsync()

获取以太坊区块链上当前的 Gas 价格(非常量方法)。

getCurrentBlockTimestampAsync()

获取当前区块链上的时间戳(非常量方法)。

高级用法

@0x/web3-wrapper 包还有一些更高级的用法,包括交易签名、发送交易等。

signTransactionAsync(txData: EthereumTxData, opts: Partial<ethereumtxopts>): Promise<string>

对交易进行签名(非常量方法)。

-- -------------------- ---- -------
----- ------ - -
  ------ ----- ----------------------------------------------------
  ----- --------------
  --- -----------------
  ------ --- -----------------------------
  --------- -------------------------
  ---- --- ------------------
--
----- -------- - ----- ---------------------------------------- - ----- -------------- --------- ------------------------ ---
  • txData: EthereumTxData:要签名的交易数据。
  • opts: Partial<EthereumTxOpts>:交易额外的选项。

sendTransactionAsync(txData: EthereumTxData, opts: Partial<ethereumtxopts>): Promise<string>

发送交易到区块链上(非常量方法)。

-- -------------------- ---- -------
----- ------ - -
  ------ ----- ----------------------------------------------------
  ----- --------------
  --- -----------------
  ------ --- -----------------------------
  --------- -------------------------
  ---- --- ------------------
--
----- ---- - ----- ---------------------------------------- - ----- -------------- --------- ------------------------ ---
  • txData: EthereumTxData:要发送的交易数据。
  • opts: Partial<EthereumTxOpts>:交易额外的选项。

estimateGasAsync(txData: EthereumTxData): Promise<bignumber>

估算交易所需的 Gas 值(非常量方法)。

-- -------------------- ---- -------
----- ------ - -
  ------ ----- ----------------------------------------------------
  ----- --------------
  --- -----------------
  ------ --- -----------------------------
  --------- -------------------------
  ---- --- ------------------
--
----- --- - ----- -------------------------------------
  • txData: EthereumTxData:要估算的交易数据。

示例代码

下面是一个示例代码,演示如何使用 @0x/web3-wrapper 包与以太坊交互并估算 Gas 值:

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

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

总结

@0x/web3-wrapper 是一个非常有用的 Node.js 模块,用于在 JavaScript 项目中与以太坊区块链进行交互。包含了许多非常用的方法,例如获取区块信息、获取交易信息、交易签名、发送交易、估算 Gas 等。在本教程中,我们介绍了该包的基本使用方法和高级用法,并提供了一些示例代码。希望这个教程能够帮助您更好地理解 @0x/web3-wrapper 包,以便更好地进行以太坊智能合约开发。

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