本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)
奥拉克尔网络
导言
Orakl Network 是一个去中心化的甲骨文网络,允许智能合约安全地访问链外数据和其他资源。 它引以为豪的是,自己是一个提供 Data Feed、VRF、Request-Response 和 Proof of Reserve 解决方案的本地令牌交易系统。
有了 Orakl 网络,用户可以在智能合约中寻找不可预测、无偏见的随机性。 Orakl Network Verifiable Random Function (VRF)允许智能合约生成可验证的随机值,可用于各种需要随机性的 dApp。 Orakl Network 通过两种不同的账户类型为开发人员提供 VRF 服务访问权限,即永久账户 或临时账户。
在本教程中,您将利用 Orakl Network 的 VRF 功能从智能合约内部请求随 机单词。
先决条件
- Kaia 钱包
- Remix IDE
- Kaia Plugin on Remix
- 测试来自 [龙头] 的 KAIA(https://faucet.kaia.io)
开始
在以下步骤中,您将使用 Orakl 网络在智能合约中请求一个随机单词。 让我们开始吧!
步骤 1:初始化合同状态变量
在这一步中,我们将定义消费者合约,并初始化合约功能所需的状态变量。 我们的消费者合约依赖于 "VRFConsumerBase "合约和 "IVRFCoordinator "接口,"IVRFCoordinator "接口用于调用 "VRFCoordinator "合约。 接下来,我们定义用于存储随机单词结果的 sRandomWord
变量和在 onlyOwner
修饰符中使用的 sOwner
变量。
pragma solidity ^0.8.16;import { VRFConsumerBase } from "@bisonai/orakl-contracts/src/v0.1/VRFConsumerBase.sol";import { IVRFCoordinator } from "@bisonai/orakl-contracts/src/v0.1/interfaces/IVRFCoordinator.sol";contract VRFConsumer is VRFConsumerBase { uint256 public sRandomWord; address private sOwner; error OnlyOwner(address notOwner); modifier onlyOwner() { if (msg.sender != sOwner) { revert OnlyOwner(msg.sender); } _; }