当前位置: 首页 > news >正文

solidity显示以太坊美元价格

看过以太坊白皮书的都知道,以太坊比较比特币而言所提升的地方中,我认为最重要的一点就是能够访问外部的数据,这一点在赌博、金融领域应用会很广泛,但是区块链是一个确定的系统,包括里面的所有数值包括交易ID等都是确定的,你让区块自己产生一个随机的值,或者跳出区块链去访问外部一个数据,通常来说都做不到,但是我们有相应的Oracle机制可以解决这个问题。

什么是Oracle?

在以太坊和其他区块链系统中,Oracles(预言机)是连接区块链与外部世界数据的桥梁。它们提供了一种方式,使智能合约能够访问区块链外部的实时数据,如温度、价格、交易结果等。这些数据对于执行依赖于外部事件的智能合约至关重要。

Chainlink

Chainlink就是这样一个去中心化的Oracle网络,旨在连接智能合约与现实世界数据和外部API。通过Chainlink我们可以获取到金融市场结果、赛事比分和结果、天气信息、物联网数据、身份验证信息、货币兑换率等等信息。

Chainlink Feeds

Chainlink的Feeds(中文名称叫做饲料),常被称为数据Feeds或价格Feeds,是指Chainlink网络提供的一系列去中心化的数据源。你可以把它们看作是向区块链提供关于现实世界问题的答案的一系列专门的节点。这些Feeds为智能合约提供了可靠、实时和验证过的外部数据,最常见的是关于加密货币、股票、商品等的市场价格数据。以下是其大致的工作原理:

  1. 多个数据提供者:Chainlink通过多个独立的节点从不同的数据源获取相同的数据(如某种资产的当前市场价格)。这些节点可能从不同的交易所或市场信息提供者获取数据。
  2. 数据聚合:收集到的数据在链下(off-chain)被聚合,以形成一个综合的、去中心化的数据点。这个过程减少了单一数据源可能带来的风险和偏差。
  3. 数据上链:聚合后的数据被传输到区块链上,并可供智能合约使用。这些数据通常以Feeds的形式提供,智能合约可以根据需要读取这些Feeds。

实际演示

今天我们用Remix写一个获得以太坊美元价格的solidity代码,作为以太坊区块链,它本身是无法访问外部信息去得悉自己究竟值多少美金的,我们就需要使用Oracle机制的代表chainlink。

1.获得接口

Github chainlink网站
我们想要调用的接口程序地址如下:
chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;interface AggregatorV3Interface {function decimals() external view returns (uint8);       //返回价格Feed使用的小数位数。function description() external view returns (string memory);       //提供此价格Feed的描述性信息。function version() external view returns (uint256);            //返回Aggregator接口的版本号。function getRoundData(                     //提供指定轮次(round)的价格数据。uint80 _roundId) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);function latestRoundData()                 //获取最新轮次的价格数据。externalviewreturns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
}

2.找到Feed

这个需要去 chainlink price-feeds 找价格Feed,我们这次要调用的 latestRoundData() 函数,就是通过这个Feed获得到的以太坊美金价格,而且记住我们穷没有money,所以用的是Goerli测试网络,关于如何获得Goerli ETH请看我上一篇博客 以太坊交易手续费计算。

ETH/USD Feed: 0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e
在这里插入图片描述

3.代码

Remix上的运行代码如下,你要是不import的话,把第2步接口里面的所有代码粘贴到里面也可以
注意:在代码中import的时候,注意一下和上面第2步的文件夹地址不太一样,这是有点坑的地方

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.2 <0.9.0;import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";contract getPrice {AggregatorV3Interface priceFeed = AggregatorV3Interface(0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e);function showPrice() public view returns (int256, uint8) {// 获取最新的价格数据(, int256 price, , , ) = priceFeed.latestRoundData();    // 不需要的信息直接空格跳过// 获取小数位数uint8 decimals = priceFeed.decimals();// 显示出来return (price, decimals);}
}

4.运行程序

因为需要有Chainlink访问权限,运行的时候需要选择自己的账户Injected Provider
另外还有一点比较坑的是,solidity没有浮点型,我是让价格和小数位两个都显示出来,两者一结合就大概是2421.32美元
在这里插入图片描述

相关文章:

solidity显示以太坊美元价格

看过以太坊白皮书的都知道&#xff0c;以太坊比较比特币而言所提升的地方中&#xff0c;我认为最重要的一点就是能够访问外部的数据&#xff0c;这一点在赌博、金融领域应用会很广泛&#xff0c;但是区块链是一个确定的系统&#xff0c;包括里面的所有数值包括交易ID等都是确定…...

ChatGPT学习笔记——大模型基础理论体系

1、ChatGPT的背景与意义 近期,ChatGPT表现出了非常惊艳的语言理解、生成、知识推理能力, 它可以极好的理解用户意图,真正做到多轮沟通,并且回答内容完整、重点清晰、有概括、有条理。 ChatGPT 是继数据库和搜索引擎之后的全新一代的 “知识表示和调用方式”如下表所示。 …...

Termius for Mac/Win:一款功能强大的终端模拟器、SSH 和 SFTP 客户端软件

随着远程工作和云技术的普及&#xff0c;对于高效安全的远程访问和管理服务器变得至关重要。Termius&#xff0c;一款强大且易用的终端模拟器、SSH 和 SFTP 客户端软件&#xff0c;正是满足这一需求的理想选择。 Termius 提供了一站式的解决方案&#xff0c;允许用户通过单一平…...

python如何读取被压缩的图像

读取压缩的图像数据&#xff1a; PackBits 压缩介绍&#xff1a; CCITT T.3 压缩介绍&#xff1a; 读取压缩的图像数据&#xff1a; 在做图像处理的时候&#xff0c;平时都是使用 函数io.imread() 或者是 函数cv2.imread( ) 函数来读取图像数据&#xff0c;很少用PIL.Image…...

华为OD机试 - 寻找最优的路测线路(Java JS Python C)

题目描述 评估一个网络的信号质量,其中一个做法是将网络划分为栅格,然后对每个栅格的信号质量计算。 路测的时候,希望选择一条信号最好的路线(彼此相连的栅格集合)进行演示。 现给出 R 行 C 列的整数数组 Cov,每个单元格的数值 S 即为该栅格的信号质量(已归一化,无单…...

互联网演进历程:从“全球等待”到“全球智慧”的技术革新与商业变革

文章目录 一、导言二、World Wide Wait (全球等待)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 三、World Wide Web (万维网)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 四、World Wide Wisdom (全球智慧)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 五、…...

计算机组成原理——总线

总线特点 1.1. 分时&#xff1a;分时是指同一时刻只允许有一个部件向总线发送信息&#xff0c;若系统中有多个部件&#xff0c;则它们只能分时地向总线发生信息。 1.2. 共享&#xff1a;共享是指总线上可以挂接多个部件&#xff0c;各个部件之间互相交换的信息都可以通过这组线…...

2023.12.27 关于 Redis 数据类型 List 常用命令

目录 List 类型基本概念 List 类型特点 List 操作命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP RPOP LINDEX LINSERT LREM LTRIM LSET 阻塞版本的命令 阻塞版本 和 非阻塞版本的区别 BLPOP & BRPOP List 类型基本概念 Redis 中的列表&#xff08;list&am…...

【Web】vulhub-httpd apache解析漏洞复现(1)

目录 ①CVE-2017-15715 ②apache_parsing_vulnerability ①CVE-2017-15715 贴出源码&#xff1a; <?php if(isset($_FILES[file])) {$name basename($_POST[name]);$ext pathinfo($name,PATHINFO_EXTENSION);if(in_array($ext, [php, php3, php4, php5, phtml, pht]))…...

市场复盘总结 20240103

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: 方法一:指标选股 select * from dbo.ResultAll where 入选类型 like %指标选股% and 入选日期=20240103;方法二:趋势选股法 1、最低价持续3日上涨 2、均价…...

Java技术栈 —— Redis的雪崩、穿透与击穿

Java技术栈 —— Redis的雪崩、穿透与击穿 〇、实验的先导条件&#xff08;NginxJmeter&#xff09;一、Redis缓存雪崩、缓存穿透、缓存击穿1.1 雪崩1.2 穿透1.3 击穿 二、Redis应用场景——高并发2.1 单机部署的高并发问题与解决&#xff08;JVM级别锁&#xff09;2.2 集群部署…...

Scala知识点——App类

我们在代码中一般程序都是是通过main方法进入。但是在scala中提供了一个App类&#xff0c;通过继承可以实现不用显式的调用main方法就能运行。 App类中实现了main方法&#xff1a;...

(vue)增加行,对应行删除

(vue)增加行&#xff0c;对应行删除 效果&#xff1a; 代码&#xff1a; <div v-for"(ele,i) of algorithmList" :key"i"><el-form-item label"模型类型"><el-selectv-model"ele.algorithmId"placeholder"选择模…...

案例088:基于微信小程序的校车购票平台设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…...

pytorch集智-1安装与简单使用

1 安装 1.1 简介 pytorch可用gpu加速&#xff0c;也可以不加速。gpu加速是通过cuda来实现&#xff0c;cuda是nvidia推出的一款运算平台&#xff0c;它可以利用gpu提升运算性能。 所以如果要装带加速的pytorch&#xff0c;需要先装cuda&#xff0c;再装pytorch&#xff0c;如…...

『番外篇六』SwiftUI 取得任意视图全局位置的三种方法

概览 在 SwiftUI 开发中,利用描述性代码我们可以很轻松的构建各种丰富多彩的视图。我们可以设置它们的大小、位置、颜色并应用不计其数的修改器。 但是,小伙伴们是否想过在 SwiftUI 中如何获取一个视图的全局位置坐标呢? 在本篇博文中,您将学到如下内容: 概览1. SwiftU…...

Ribbon相关面试及答案(2024)

1、Ribbon是什么&#xff0c;它在微服务架构中扮演什么角色&#xff1f; Ribbon是一个客户端负载均衡器&#xff0c;它在微服务架构中扮演着关键性的角色。Ribbon的设计理念是在客户端进行服务发现和负载均衡&#xff0c;这种方式不同于传统的通过中心化的负载均衡器&#xff…...

【Mybatis】深入学习MyBatis:CRUD操作与动态SQL实战指南

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; Mybatis ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 一基本用法 1 CRUD操作 1. 增加&#xff08;Create&#xff09; 2. 查询&#xff08;Read&#xff09; 3. 更新&#x…...

前端uniapp的tab选项卡for循环切换、开通VIP实战案例【带源码/最新】

目录 效果图图1图2 源码最后 这个案例是uniapp&#xff0c;同样也适用Vue项目&#xff0c;语法一样for循环&#xff0c;点击切换 效果图 图1 图2 源码 直接代码复制查看效果 <template><view class"my-helper-service-pass"><view class"tab…...

【我的RUST库】get_local_info

get_local_info是一个获取linux本地信息的Rust三方库&#xff0c;其目标是降低获取本地linux系统信息的难度。支持银河麒麟10、UOS、鸿蒙等国产系统 项目维护&#xff1a;长期 当前版本0.1.4&#xff0c;已有功能&#xff1a; 1.获取活动网卡信息&#xff1a;网卡&#xff0…...

如何开发Browser MCP自定义工具与资源扩展:完整指南

如何开发Browser MCP自定义工具与资源扩展&#xff1a;完整指南 【免费下载链接】mcp Browser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser 项目地址: https://gitcode.com/gh_mirrors/mcp16/mcp Browser MCP&a…...

Kylin V10 SP1桌面美化全攻略:从默认主题到个性化定制,让你的麒麟系统焕然一新

Kylin V10 SP1桌面美学革命&#xff1a;打造高效与美感兼具的麒麟系统工作空间 第一次打开Kylin V10 SP1系统时&#xff0c;那个默认的"寻光"主题确实给人一种清新简洁的感觉。但日复一日面对相同的界面&#xff0c;就像每天穿着同样的衣服上班——功能上没问题&…...

告别Moom!用Hammerspoon实现Mac窗口精准控制(附完整快捷键表+配置文件)

用Hammerspoon打造Mac高效工作流&#xff1a;从窗口管理到自动化脚本 每次看到同事花十几秒拖动窗口调整大小&#xff0c;或者在不同显示器间来回切换应用时&#xff0c;我总忍不住想分享这个改变我工作效率的神器。Hammerspoon——这个完全免费的开源工具&#xff0c;让我彻底…...

周红伟:OpenClaw 企业级智能体架构与全栈实战

周红伟“世界级 OpenClaw 智能体全栈实战培训方案”。 这套方案融合了架构设计、全链路开发、安全部署与商业落地四大维度&#xff0c;旨在帮助企业团队从“理论认知”跨越到“工程化落地”&#xff0c;构建具备生产级能力的AI智能体系统。 &#x1f680; 培训主题&#xff1a;…...

香橙派Ubuntu镜像烧录与系统迁移实战指南

1. 香橙派与Ubuntu镜像的完美组合 香橙派作为国产开源硬件中的佼佼者&#xff0c;凭借其出色的性价比和丰富的接口&#xff0c;已经成为很多开发者和创客的首选。而Ubuntu作为最受欢迎的Linux发行版之一&#xff0c;以其稳定性和易用性赢得了大量用户的青睐。将这两者结合起来&…...

Bili2Text:B站视频转文字的智能革命

Bili2Text&#xff1a;B站视频转文字的智能革命 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 副标题&#xff1a;还在为视频笔记熬夜&#xff1f;这款工具让…...

别再傻傻分不清!Word里‘分页符’和‘分节符’到底怎么用?一个表格横竖混排的实战案例讲透

别再傻傻分不清&#xff01;Word里‘分页符’和‘分节符’到底怎么用&#xff1f;一个表格横竖混排的实战案例讲透 每次做季度报告时&#xff0c;最让我头疼的就是那些超宽的表格——明明数据很重要&#xff0c;却因为页面宽度不够&#xff0c;硬生生被挤成密密麻麻的小字&…...

nli-distilroberta-base实际作品:金融风控报告语义一致性检测效果可视化

nli-distilroberta-base实际作品&#xff1a;金融风控报告语义一致性检测效果可视化 1. 项目背景与价值 在金融风控领域&#xff0c;报告文档的语义一致性检测是确保业务合规性的关键环节。传统人工审核方式效率低下且容易遗漏细节&#xff0c;而基于自然语言理解(NLI)的技术…...

Homebrew安装后zsh补全报权限警告?深入聊聊macOS下/usr/local的目录权限管理

Homebrew安装后zsh补全报权限警告&#xff1f;深入聊聊macOS下/usr/local的目录权限管理 每次打开终端都看到那个烦人的zsh警告&#xff1a;"insecure directories, run compaudit for list"&#xff0c;确实让人头疼。但这个问题背后隐藏着macOS系统权限管理的深层逻…...

数电技术实战解析04:CMOS门电路设计与优化

1. CMOS反相器&#xff1a;数字世界的开关艺术 第一次拆解CMOS反相器时&#xff0c;我被它的精妙设计震撼到了——就像家里电灯的双控开关&#xff0c;只不过这个"开关"的尺寸只有头发丝的万分之一。这个由PMOS和NMOS管组成的经典结构&#xff0c;构成了所有数字电路…...