npm 包 @realitio/realitio-cli 使用教程

阅读时长 5 分钟读完

介绍

@realitio/realitio-cli 是一个基于命令行的工具,用于方便地生成和部署 Realitio 策略合约。Realitio 是一种基于区块链的去中心化预言机,可以提供可信赖的实时信息。由于 Realitio 策略合约的编写过程比较复杂,使用 @realitio/realitio-cli 可以大大简化这个过程。

安装

在使用 @realitio/realitio-cli 前,需要先安装 Node.jsnpm。安装完成后,可以使用以下命令全局安装 @realitio/realitio-cli

安装完成后,可以使用以下命令来验证是否安装成功:

如果输出了版本号,说明安装成功。

使用教程

初始化项目

在使用 @realitio/realitio-cli 前,需要先初始化一个项目,使用以下命令:

其中,my-project 是你的项目名。@realitio/realitio-cli 会在当前目录下创建一个 my-project 的文件夹,并将初始化后的项目复制到该文件夹中。

编写策略合约

在初始化项目后,可以开始编写策略合约。首先需要在项目根目录下创建一个名为 RealitioQuestion.sol 的文件,然后使用以下代码进行编写:

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

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

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

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

-

其中,arbitrator 是仲裁人地址,question 是问题的哈希值,content 是问题的内容,timeout 是问题超时时间,templatecustomContent 是可选参数。

编译策略合约

在编写完策略合约后,需要使用以下命令来编译合约:

如果编译成功,@realitio/realitio-cli 会在项目根目录下创建一个名为 build 的文件夹,并将编译后的策略合约放在该文件夹中。

部署策略合约

在编译成功后,可以使用以下命令来部署策略合约:

如果部署成功,@realitio/realitio-cli 会输出策略合约的地址和交易哈希值。

使用策略合约

在部署成功后,我们可以使用以下代码来调用策略合约:

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

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

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

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

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

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

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

-

其中,TestRealitioQuestion 是我们自己定义的测试合约,_oracle 是仲裁人地址,_question 是问题的哈希值,_content 是问题的内容,_timeout 是问题超时时间。使用 question = new RealitioQuestion(_oracle, _question, _content, _timeout, address(0), address(0)) 可以创建一个新的策略合约实例。

在使用 getResult()isFinalized() 函数时,需要先使用 question.resultFor(0x0) 来获取问题的回答。

总结

通过本教程,我们学习了如何使用 @realitio/realitio-cli 工具来编写、编译、部署和使用 Realitio 策略合约。作为一个前端开发者,了解和掌握 Realitio 的相关知识,将有助于我们更好地开发出基于区块链的去中心化应用。

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