逸学区块链【solidity】真随机数

参考Get a Random Number | Chainlink Documentation

但是很贵,价格

  • Gas Price:当前gas价格,根据网络状况而波动。
  • Callback gas :返回您所请求的随机值时,回调请求消耗的gas 量。
  • 验证gas :量gas 用于验证链上的随机性。

我们可以定义两个内容限制总价格,也就是限制当前gas价格和回调请求消耗的gas 量

keyHash:Gas通道(最大gas价格您愿意为请求支付的价格(以 wei 为单位)

callbackGasLimit:回调上限 示例中100000是愿意为请求花费的上限,限制价格

有计算器VRF Billing | Chainlink Documentation

// SPDX-License-Identifier: MIT
// 一个依靠订阅获得资金的消费者合同的例子
pragma solidity ^0.8.7;import "@chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol";
import "@chainlink/contracts/src/v0.8/VRFConsumerBaseV2.sol";contract VRFv2Consumer is VRFConsumerBaseV2 {VRFCoordinatorV2Interface COORDINATOR;// 您的订阅ID.//https://vrf.chain.link/uint64 s_subscriptionId;// Rinkeby协调员。对于其他网络,// 参照 <https://docs.chain.link/docs/vrf-contracts/#configurations>address vrfCoordinator = 0xc587d9053cd1118f25F645F9E08BB98c9712A4EE;// 要使用的gas通道,每个网络不一样.// 参照 <https://docs.chain.link/docs/vrf-contracts/#configurations>//交换地址https://pegswap.chain.link/bytes32 keyHash = 0x114f3da0a805b6a67d6e9cd2ec746f7028f1b7376365af575cfea3550dd1aa04;//取决于要发送到的请求值的数量//对于fulfillRandomWords()函数。存储一个数值需要消耗20000wei,//因此,对于这个示例合同,100000是个安全的默认值uint32 callbackGasLimit = 30000;// 请求的信息数量,默认是3,你可以设置更高uint16 requestConfirmations = 3;//此用例中,默认-次获得2个随机数uint32 numWords =  1;uint256[] public s_randomWords;uint256 public s_requestId;address s_owner;constructor(uint64 subscriptionId) VRFConsumerBaseV2(vrfCoordinator) {COORDINATOR = VRFCoordinatorV2Interface(vrfCoordinator);s_owner = msg.sender;s_subscriptionId = subscriptionId;}// /假设Link充足的情况下,执行此函数function requestRandomWords() external onlyOwner {// 如果没设置订阅的相关关系,就会报错s_requestId = COORDINATOR.requestRandomWords(keyHash,s_subscriptionId,requestConfirmations,callbackGasLimit,numWords);}function fulfillRandomWords(uint256, uint256[] memory randomWords) internal override {s_randomWords = randomWords;}modifier onlyOwner() {require(msg.sender == s_owner);_;}
}

需要配置网路和订阅

Supported Networks - Subscription Method | Chainlink Documentation

订阅

VRF | Subscription Management

部署的时候对应上

Remix - Ethereum IDE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/451522.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot大学生就业信息管理

项目技术: SpringBoot SSM layui 功能描述&#xff1a; 实现了就业信息管理、就业统计、用户管理等功能。 有普通用户和管理员两种角色 普通用户账号&#xff1a;test 密码&#xff1a;123456 管理员账号&#xff1a;admin 密码&#xff1a;123456 效果图&#xff1…

云微呼掌握短信营销的艺术:策略、技巧与实践

引言 短信营销作为一种直接、高效的营销工具&#xff0c;为品牌和营销人员提供了与受众建立密切联系的机会。然而&#xff0c;要想取得成功&#xff0c;除了熟悉其优势外&#xff0c;还需要掌握精准的策略和创新的实践方法。本文将深入探讨短信营销的艺术&#xff0c;带领读者…

GMT绘图笔记

(1)图框设置。在利用GMT绘制图件时&#xff0c;需要设置边框的类型&#xff0c;字体的大小&#xff0c;标记距离边框的距离。主要涉及的参数有&#xff1a; gmt set MAP_FRAME_TYPE plain/fancy 可以调整边框为火车轨道或者线段。 (2)调整图框的粗细&#xff1a;主要是包含有…

【vue3学习P5-P10】vue3语法;vue响应式实现

0、vue2和vue3对比 框架版本API方式双向绑定原理domFragmentsTree-Shakingvue2选项式API&#xff08;Options API&#xff09;基于Object.defineProperty&#xff08;监听&#xff09;实现&#xff0c;不能双向绑定对象类型的数据【通过Object.defineProperty里面的set和get做…

Django的web框架Django Rest_Framework精讲(四)

文章目录 1.DRF认证组件Authentication2.权限Permissions3.限流Throttling4.过滤Filtering5.排序6.分页Pagination7.异常处理 Exceptions8.自动生成接口文档 大家好&#xff0c;我是景天&#xff0c;今天我们继续DRF的最后一讲&#xff0c;Django的web框架Django Rest_Framewor…

蓝桥杯每日一题----区间dp

前言 暂时没啥好说的&#xff0c;直接进入正题吧 引入 涂色PAINT 读题发现要求的是使一段区间满足要求的最小操作次数&#xff0c;考虑用动态规划去做。 第一步&#xff1a;考虑缩小规模&#xff0c;这里的规模其实就是区间长度&#xff0c;那么dp数组应该可以表示某个区间&…

计算机网络_1.5 计算机网络的性能指标

1.5 计算机网络的性能指标 一、总览二、常用的八个计算机网络性能指标1、速率&#xff08;1&#xff09;数据量&#xff08;2&#xff09;速率&#xff08;3&#xff09;数据量与速率中K、M、G、T的数值辨析&#xff08;4&#xff09;【练习1】计算发送数据块的所需时间 2、带宽…

CG-FS 风速传感器 485型三杯式风速计 气象环境监测仪器

产品概述 本产品主要采用优质聚合物碳纤维为原材料&#xff0c;具有良好的防腐、防侵蚀等特点&#xff0c;能够保证仪器长期使用不起锈&#xff0c;同时配合内部顺滑的轴承系统&#xff0c;确保了信息采集的准确性。外型小巧轻便&#xff0c;便于携带和组装&#xff0c;三杯设…

lava学习-多态-final-抽象类

一.多态 1.什么是多态&#xff1f; 现象&#xff1a;对象多态&#xff1a;比如说一个人 类&#xff0c;他可以是一个老师&#xff0c;也可以是一个同学 行为多态&#xff1a;多个对象同一类行为的不同表现形式&#xff0c;比如两个人&#xff0c;一个人跑得快&#xff0c;另一个…

ctfshow web入门 1-2 +密码签到

web1 F12源代码 web2 ctrlu cypto 签到 a}wohs.ftc{galf print(a[::-1])

MySQL篇----第六篇

系列文章目录 文章目录 系列文章目录前言一、并发事务带来哪些问题?二、事务隔离级别有哪些?MySQL的默认隔离级别是?三、大表如何优化?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了…

解析Python中HTTP代理的常见问题

在Python编程中&#xff0c;HTTP代理是一个经常被提及的概念&#xff0c;尤其在处理网络请求和爬虫时。但与此同时&#xff0c;使用HTTP代理也经常会遇到一些令人头疼的问题。接下来&#xff0c;就让我们一起解析一下Python中使用HTTP代理时常见的那些问题。 1. 代理服务器无响…