HPB 随机数接口文档

优质
小牛编辑
121浏览
2023-12-01

本文档提供两种方式获取HPB随机数,对应两种接口。

一种是通过RPC接口获取历史随机数;

一种是通过智能合约使用最新随机数。

接口定义

通过RPC接口获取历史随机数

接口名称 :hpb_getRandom

参数 :块号 ,整形数字或者字符串”latest”

返回值:随机数,string,

使用“latest”查询最新块中的随机数

调用示例:

curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"hpb_getRandom","params":["latest"],"id":1}' <http://127.0.0.1:8545>

返回示例:

{"jsonrpc":"2.0","id":1,"result":"0x45e5b62b748859b8eaf245406f5734244c5fef80d65f973b0a96407cf733db51"}

查询指定块号的随机数

调用示例:

curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"hpb_getRandom","params":["0x3f21"],"id":1}' http://127.0.0.1:8545

返回示例

{"jsonrpc":"2.0","id":1,"result":"0x45e5b62b748859b8eaf245406f5734244c5fef80d65f973b0a96407cf733db51"}

通过智能合约使用最新随机数

在智能合约中使用最新的随机数,方式十分简单,只需要调用block.random即可返回随机数。

合约需要使用HPB官方的solidity编译器进行编译才能生效。

合约示例

pragma solidity ^0.5.1;
contract MYTEST{
    bytes32 random;
    function getrandom()public {
        random = block.random;
    }
    function print() view public returns(bytes32){
        return random;
    }
}

上述合约示例通过在HPB主网上部署后,执行getrandom函数,则将最新的随机数写入random变量。然后通过print函数打印随机数。

THE END!