简介
node-red-contrib-viseo-ethjs
是一个用于与以太坊区块链进行交互的 Node-RED 组件。该组件基于 ethjs
库实现,提供了许多与以太坊交互相关的功能,如查询账户余额、发送交易等。
本文将详细介绍该组件的安装和使用方法,并提供一些示例代码,帮助初学者更好地掌握该组件的使用。
安装
首先需要安装 Node-RED 和 npm。如果您还没有安装它们,可以按照官方文档进行安装。
安装 node-red-contrib-viseo-ethjs
组件非常简单,只需要在终端中执行以下命令:
npm install node-red-contrib-viseo-ethjs
使用
创建账户查询节点
在 Node-RED 工作区中,单击编辑菜单,点击“添加节点”按钮,从左侧工具箱中选择“viseo-ethjs”分组,在下拉列表中找到“account”节点。
将“account”节点拖动到工作区,并在节点属性面板中输入您的以太坊钱包地址。连接节点输入和输出,单击“部署”按钮。
创建交易节点
同样地,在工具箱中找到“viseo-ethjs”分组,从下拉列表中选择“transaction”节点。将其拖动到工作区,连接输入和输出,并在节点属性面板中输入必要的信息,例如目标地址和金额等。
部署智能合约
首先需要打开一个智能合约文件,并在文件夹中创建一个新文件。
复制以下代码到文件中:
-- -------------------- ---- ------- ------ -------- ------- -------- ---------- - ------ ------ -------- ------------------ ------ --------- ------ - ------- - --------- - -------- ----------------- ------ --------- ------ - ------- - --------- - -
将文件保存在文件夹中,并打开终端将当前工作目录设置为此文件夹。
接下来,在终端中执行以下命令,安装 solc
编译器:
npm install -g solc
然后使用以下命令编译智能合约:
solc HelloWorld.sol --abi --bin
执行该命令后,会分别生成一个 ABI 和一个二进制文件。将它们复制到 Node-RED 工作目录中,稍后会用到它们。
部署智能合约节点
在工具箱中找到“viseo-ethjs”分组,从下拉列表中选择“deploy-contract”节点。将其拖动到工作区,并连接输入和输出。
在节点属性面板中设置 EVM 接口地址和转账账户信息等。然后,将 ABI 文件和二进制文件分别输入到节点属性面板中的“ABI”和“Bytecode”字段中。
调用智能合约方法
同样地,在工具箱中找到“viseo-ethjs”分组,从下拉列表中选择“call-contract”节点。将其拖动到工作区中,并连接输入和输出。
在节点属性面板中设置智能合约地址和方法名称,以及方法的参数。连接该节点的输出到“debug”节点以查看调用结果。
事件监听
在工具箱中找到“viseo-ethjs”分组,从下拉列表中选择“event”节点。将其拖动到工作区中,并连接输入和输出。
在节点属性面板中设置智能合约地址以及要监听的事件名称。连接该节点的输出到“debug”节点以查看监听结果。
示例代码
下面是一个使用 node-red-contrib-viseo-ethjs
组件与以太坊区块链交互的例子。这个例子从区块链中查询账户余额,并在控制台输出结果。
首先请确保您已安装了 node-red-contrib-viseo-ethjs
组件。然后将以下代码复制到 flows.json
文件中,并将其导入到 Node-RED 工作区中。
[{"id":"d280c955.dd9288","type":"inject","z":"9912c542.70d678","name":"","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"onceDelay":0.1,"x":130,"y":60,"wires":[["921209a8.8b214"]]},{"id":"921209a8.8b214","type":"viseo-ethjs","z":"9912c542.70d678","name":"Web3 Provider ","providerType":"RPC","providerAddress":"https://ropsten.infura.io/v3/YOUR_PROJECT_ID","keyStoreDir":"","lookupIdentifier":"","account":"YOUR_ACCOUNT_ADDRESS","x":360,"y":60,"wires":[["ca46f21c.862fb8"]]},{"id":"ca46f21c.862fb8","type":"viseo-ethjs-account","z":"9912c542.70d678","name":"Get Account Balance","ethereumclient":"921209a8.8b214","lookupIdentifier":"","contractAddress":"","currentBlock":"latest","x":630,"y":60,"wires":[["c2d83f8a.fbe2"]]},{"id":"c2d83f8a.fbe2","type":"function","z":"9912c542.70d678","name":"Parse Response","func":"msg.payload = web3.fromWei(msg.payload.toString(), 'ether');\nreturn msg;","outputs":1,"noerr":0,"x":910,"y":60,"wires":[["4c4a1897.cba1ec"]]},{"id":"4c4a1897.cba1ec","type":"debug","z":"9912c542.70d678","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1130,"y":60,"wires":[]}]
然后打开 Node-RED 工作区,并启动程序。该程序将每隔60秒查询账户余额,并在控制台输出结果。请确保将“YOUR_ACCOUNT_ADDRESS”替换为您自己的以太坊钱包地址,并将“YOUR_PROJECT_ID”替换为您自己的 Infura 项目编号。
总结
node-red-contrib-viseo-ethjs
组件是一个很不错的与以太坊区块链交互的工具,它可以用于查询账户余额、发送交易、部署智能合约等操作。本文介绍了该组件的安装和使用方法,并提供了一些示例代码,帮助初学者更好地掌握其使用。希望这篇文章能够对您有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/80461