npm 包 @nomiclabs/truffle-contract 使用教程

阅读时长 5 分钟读完

前言

@nomiclabs/truffle-contract 是一个用于 Ethereum 智能合约开发和部署的 JavaScript 库,它可以让您轻松地在前端应用程序中与智能合约进行交互。本教程将详细介绍如何使用 @nomiclabs/truffle-contract。

安装

您可以通过 npm 安装 @nomiclabs/truffle-contract:

如果您的项目使用 yarn:

使用

在部署完成的项目中使用

在您已经完成项目的部署,并且有合约的地址和 ABI 信息的情况下,可以直接使用以下代码获取合约实例:

其中,MyContractArtifact 是您通过 truffle 编译得到的合约 ABI 文件。myContractInstance 就是您要与智能合约进行交互的实例。

在本地开发服务器中使用

在您正在进行前端开发的本地服务器中,如果想与智能合约进行交互,可以使用以下代码:

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

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

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

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

其中,MyContractMyContractArtifact 的使用方法与上一步中相同。web3 对象是 Web3.js 的实例,可以通过 Web3.providers.HttpProvider 连接以太坊节点。accounts 是你本地以太坊节点上的账号,可以用于调用智能合约的方法。

方法调用

当您获取了实例后,就可以通过调用它的方法来与智能合约进行交互了。

假设您的智能合约中有以下方法:

在 JavaScript 中,您可以这样调用它:

其中,get(123) 将会调用 MyContract 中定义的 get 方法,并返回结果。set(123, 456) 将会调用 MyContract 中定义的 set 方法,并写入数据。

事件监听

当智能合约中的数据发生变化时,您可以通过事件监听机制获取到通知。例如,您的智能合约中定义了以下事件:

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

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

在 JavaScript 中,您可以这样监听它:

其中,empty object {} 将监听所有 MyContract 中定义的 ValueChanged 事件。当事件触发时,result.args 中将包含事件参数。

总结

通过本教程,您学习了如何使用 @nomiclabs/truffle-contract 在前端应用程序中与智能合约进行交互。您已经学习了如何安装、使用实例、调用方法以及监听事件等基本操作。以这个教程为基础,您可以更深入地学习和使用与智能合约相关的技术,为您的项目开发和区块链应用开发奠定坚实的基础。

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

纠错
反馈