在这个技术时代,当下的前端开发越来越重视区块链相关的技术。而 npm 包 @realitio/realitio-contracts 作为一个区块链智能合约,为我们提供了一个可靠的工具,能够帮助我们实现更多的业务需求。本文将向您介绍如何正确地使用该 npm 包。
@realitio/realitio-contracts 是什么?
@realitio/realitio-contracts 是一个开源的区块链智能合约,由瑞果团队开发,它可以让你快速、便捷地运行智能合约。它被设计用于实现 oracle 合约,使得合约与链外的服务进行通讯。
安装
前置条件
在安装 @realitio/realitio-contracts 包之前,需要先安装 Node.js v8 或更高版本。如果还没有安装,你可以从 Node.js 官网下载并安装 https://nodejs.org。
安装步骤
安装 npm 包可以使用 yarn 或 npm 安装,下面是使用 npm 安装的过程:
npm install @realitio/realitio-contracts
实现
初始化
在我们开始使用该 npm 包时,需要初始化指定的配置参数。具体的代码如下:
-- -------------------- ---- ------- ----- ---------------- - ---------------------------------------- ----- -------- - --- ------------------ ------------ ------------------------ ---------------- -------------------------- ----------- ---- --------- ------------- --------- --------- ----- ------------------------ ----------- ---------------------------- ---
参数含义:
- providerUrl:接口地址,例如:http://localhost:8545
- contractAddress:合约地址
- questionId:问题编号(合约中 questionId 在每个问题创建时随机生成)
- gasPrice:gas 价格
- gasLimit:gas 限制
- from:操作者(拥有合约的人)
- privateKey:私钥
获取问题信息
const question = await contract.getQuestion()
获取投票人数
const numberOfVotes = await contract.getNumberOfVotes()
获取回答信息
const answer = await contract.getLastAnswer()
回答问题
const txHash = await contract.answerQuestion('约登录状态下回答内容', 0, ["示例数组"], { value: 3000000000000000 // wei })
撤回回答
const txHash = await contract.deleteAnswer()
结束问题
const txHash = await contract.closeQuestion()
对问题进行投票
const txHash = await contract.submitVote(true)
示例代码
取上面的接口地址(providerUrl)为例,完整代码如下:
-- -------------------- ---- ------- ----- ---------------- - ---------------------------------------- ----- -------- ------ - ----- -------- - --- ------------------ ------------ ------------------------ ---------------- -------------------------- ----------- ---- --------- ------------- --------- --------- ----- ------------------------ ----------- ---------------------------- --- ----- -------- - ----- ---------------------- -------------------------------------- ----- ------------- - ----- --------------------------- ------------------------------------ ----- ------ - ----- ------------------------ --------------------------- ----- ------ - ----- ------------------------------------- -- --------- - ------ ---------------- -- --- -- ------------------------------- ----- ------- - ----- ----------------------- -------------------------------- ----- ------- - ----- ------------------------ -------------------------------- ----- ------- - ----- ------------------------- -------------------------------- - ------------------ -- - ------------------- ---
总结
经过本文的介绍,我们了解了 npm 包 @realitio/realitio-contracts 的各种操作方法。只要正确地使用这个 npm 包,我们就能够轻松解决业务问题。此外,我们在实际业务中,还需要结合实际情况,灵活使用其中的 API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/95108