逸学区块链【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.mzph.cn/news/662885.shtml

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

相关文章

Vue3学习记录(二)--- 组合式API之计算属性和侦听器

一、计算属性 1、简介 ​ 计算属性computed()&#xff0c;用于根据依赖的响应式变量的变化&#xff0c;进行自动的计算&#xff0c;并返回计算后的结果。当依赖的响应式变量发生变化时&#xff0c;computed()会自动进行重新计算&#xff0c;并返回最新的计算结果。如果依赖的…

【深度学习】P1 Deep Learning 简介

目录 什么是深度学习深度学习网络结构深度学习重要历史节点常见深度学习库 什么是深度学习 深度学习&#xff0c;deep learning&#xff0c;是机器学习的分支&#xff0c;是一种以人工神经网络为架构&#xff0c;对资料进行表征学习的算法。而深度学习中“深度”一词&#xff…

Map和Set讲解

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f4d5;格言&#xff1a;那些在暗处执拗生长的花&#xff0c;终有一日会馥郁传香欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 集合框架 模型 Set 常见方法和说明 Set总结 Map说明 Map常见方法和说明 Map 中HashMap的 …

Linux一些实用操作

学习笔记&#xff0c;记录以下课程中关于Linux的一些实用操作。黑马程序员新版Linux零基础快速入门到精通&#xff0c;全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等_哔哩哔哩_bilibili 目录 1 各类小技巧&#xff08;快捷键&#xff…

天翼数科实在智能,战略合作签约!Agent最大化赋能应用领域

近日&#xff0c;天翼数智科技(北京)有限公司&#xff08;以下简称“天翼数科”&#xff09;与杭州实在智能科技有限公司&#xff08;以下简称“实在智能”&#xff09;签署战略合作协议。 基于本次战略合作&#xff0c;天翼数科将与实在智能发挥各自的专业特长&#xff0c;整合…

SQL的函数类型

目录 一、聚合函数 二、数值型函数 三、字符串函数 四、日期函数 五、流程控制函数 一、聚合函数 定义&#xff1a;聚合函数是指对一组值进行运算&#xff0c;最终返回是单个值&#xff0c;也可以被称为组合函数。 COUNT() 统计目标行数量的函数 AVG() 求平均值 SU…

10:基于Servlet模拟用户登录功能的实现与解析-Java Web

目录 10.1 登录表单设计与前端交互10.2 创建Servlet处理登录请求10.3 用户服务模拟实现10.4 安全性与优化考量10.5 区别总结10.6 应用场景总结 在Web开发中&#xff0c;用户登录功能是几乎所有系统的基础模块。本篇博客将通过编写一个基于Java Servlet的用户登录模拟案例&#…

24美赛C思路分享

可以参考这篇文章通过数据分析理解网球一发的重要性 - 知乎 (zhihu.com)

C语言stderr、errno、strerror、perror

C语言stderr、errno、strerror、perror stderr 是标准错误输出&#xff0c;类型为 FILE* &#xff1b; errno 宏是运行时最近一次的错误代码&#xff0c;正常运行时值为 0&#xff1b; strerror() 函数用于获取 errno 错误代码对应的错误信息字符串&#xff1b; perror() 函数…

在CentOS 7 中配置 YUM源

目录 YUM源的功能&#xff1a; YUM 源的安装过程 ps YUM工具 配置YUM仓库/YUM源 网络源&#xff1a;使用官方源 前提&#xff1a;联网 YUM源的功能&#xff1a; YUM&#xff08;Yellowdog Updater Modified&#xff09;是一个在Red Hat、CentOS、Fedora等基于RPM的Linux发…

Nat Med | 儿童急性淋巴细胞白血病基因组景观中的药物类型

今天给同学们分享一篇实验文章“Pharmacotypes across the genomic landscape of pediatric acute lymphoblastic leukemia and impact on treatment response&#xff0c;这篇文章发表在Nat Med期刊上&#xff0c;影响因子为82.9。 结果解读&#xff1a; 与ALL药物敏感性的临…

C++(17.5)——list模拟实现扩展

在上篇文章中&#xff0c;实现了的大部分功能以及部分迭代器。本片文章将对剩下的功能进行补充。 1. const迭代器&#xff1a; 对于上篇文章中实现的迭代器只能使用于非类型的对象。对于类型的遍历&#xff0c;则需要额外编写类型的迭代器。例如对于下面的场景&#xff1a; …

【持续更新】2024牛客寒假算法基础集训营1题解 | JorbanS

文章目录 [A - DFS搜索](https://ac.nowcoder.com/acm/contest/67741/A)[B - 关鸡](https://ac.nowcoder.com/acm/contest/67741/B)[C - 按闹分配](https://ac.nowcoder.com/acm/contest/67741/C)[E - 本题又主要考察了贪心](https://ac.nowcoder.com/acm/contest/67741/E)[F -…

Linux定时删除log

编写删除脚本 logPath/data/cd $logPathecho "" > xiaozou/nohup.out配置定时任务 执行crontab -e 编辑新增定时任务 */30 * * * * sh /data/clear.sh查看定时任务执行log tail -f /var/log/cron

Unknown custom element:<xxx>-did you register the component correctly解决方案

如图所示控制台发现了爆红&#xff08;大哭&#xff09;&#xff1a; 报错解释&#xff1a; 当我们看到报错时&#xff0c;我们需要看到一些关键词&#xff0c;比如显眼的“component”和“name”这两个单词&#xff0c; 因此我们就从此处切入&#xff0c;大概与组件有关系。…

力扣(leetcode)第228题汇总区间(Python)

228.汇总区间 题目链接&#xff1a;228.汇总区间 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 num…

vue + element 页面滚动计算百分比 + 节流函数

html&#xff1a; <el-progress :percentage"scrollValue"></el-progress> js&#xff1a; data() {return {scrollValue: 0,} }, mounted() {window.addEventListener(scroll, this.handleScroll) // 监听页面滚动 }, beforeDestroy() {window.remov…

Spring Boot--07--@Repository 和@Mapper的区别

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.Repository的作用1.1 含义1.2 Repository与Service和Component有什么区别&#xff1f;1.3 使用场景单独使用Repository&#xff0c;需要配合使用MapperScannerCon…

深度学习的新前沿:突破、应用与挑战

引言 深度学习的快速发展已经在人工智能领域引起了革命性的变化。作为模仿人脑结构和功能的强大工具&#xff0c;深度神经网络在图像识别、自然语言处理、医学诊断等多个领域取得了显著成就。但是&#xff0c;随着技术的不断推进&#xff0c;深度学习也在不断地进化和扩展其能…

云上自动部署丨使用 Terraform 在 AWS 上搭建 DolphinDB

HashiCorp Terraform 是一款基础架构即代码工具&#xff0c;旨在实现 "Write, Plan, and Create Infrastructure as Code"。它通过配置文件来描述云资源的拓扑结构&#xff0c;包括虚拟机、存储账户和网络接口。Terraform 几乎支持市面上所有的云服务&#xff0c;能够…