LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > [Chainlink] 在Solidity智能合约中获取商品价格

[Chainlink] 在Solidity智能合约中获取商品价格

2021-03-12 wanbizu AI 来源:区块链网络

安全,最新的价格数据是许多金融应用程序的核心,通常用于触发交易和获取其他工具和产品,尤其是在分散式金融(DeFi)协议中。 在DeFi领域中,基于商品价格数据的合成代币是主要关注点,用于创建分散期权,期货和其他复杂衍生产品。 除了获取安全的加密货币价格数据之外,Chainlink Data Feeds还可以用于在智能合约中获取高质量的商品价格数据,以便您可以启动这些更复杂的金融产品。

在本技术教程中,我们将逐步介绍如何在Solidity智能合约中使用Chainlink商品数据Feed。 首先,让我们快速检查一下什么是商品饲料以及可以使用它们生成哪些类型的衍生产品。

什么是商品数据馈送?

商品交易市场是买卖黄金和石油等原始产品的全球市场。 由于该市场的高容量和受欢迎程度,许多DeFi应用程序都使用Chainlink商品数据馈送来确保商品价格数据以安全,分散的方式传递到其衍生产品合约,而不会出现任何单点故障。

例如,领先的DeFi衍生品交易所Synthetix Exchange使用Chainlink甲骨文提供的几种商品价格信息,即使在高波动时期,也可以根据其基础资产的实际市场价格来确保防篡改和准确的估值。

Synthetix Exchange如何使用Chainlink oracles获取各种商品的实时市场数据。 如何使用Chainlink商品数据Feed

Chainlink数据馈送使用数百个高质量数据源,并通过Chainlink oracle的分散网络将它们汇总,这些价格链将价格数据馈送到参考合同中,在该结果中,结果再次汇总到Aggregator Smart Contract中,作为最新的,可信赖的答案。 通过在分散的节点网络中使用大量数据源和多个级别的聚合,Chainlink oracles可以确保价格数据具有最高的质量并反映广泛的市场覆盖范围,从而保护数据馈送免受突然的数量变化和价格oracle攻击。

创建智能合约

要开始在智能合约中使用Chainlink商品数据Feed,请首先获取testnet ETH,以用作智能合约中的天然气。 一旦有了一些ETH,开始构建使用Chainlink商品数据Feed的智能合约的最简单方法就是部署价格消费者合约。 这是用于启动对Chainlink数据Feed的请求的基本模板合同。 首先,我们需要导入AggregatorV3Interface合同接口,该接口允许我们的智能合同引用Kovan测试网上的链上数据馈送。 然后在局部变量中创建它的一个实例。

笔记:本教程在Remix中,但确实提到了Node.js语法,例如以下import语句:

导入“ https://github.com/smartcontractkit/chainlink/blob/master/evm-contracts/src/v0.6/interfaces/AggregatorV3Interface.sol”; AggregatorV3Interface内部价格Feed;

然后,在Price Feed参考合约的构造函数中,我们可以初始化我们感兴趣的价格Feed的地址。通过浏览Chainlink文档中的以太坊Price Feeds页面,我们可以找到Chainlink当前的所有价格Feed合约地址。提供。 导航到页面的Kovan部分,然后选择商品价格供稿。 出于本示例的目的,我们将选择XAU / USD价格Feed,费城黄金和白银指数,其地址为0xc8fb5684f2707C82f28595dEaC017Bfdf44EE9c5。

priceFeed = AggregatorV3Interface(0xc8fb5684f2707C82f28595dEaC017Bfdf44EE9c5);

已定义一个名为getLatestPrice的函数,以从上面的构造函数中实例化的Price Feed Aggregator合同获取最新价格。 为此,定义了一个新函数,该函数从Aggregator协定中调用LatestRoundData函数。 这是返回聚集器合约当前状态的函数,在这种情况下,我们采用当前价格并将其返回到消费函数中。

函数getLatestPrice()公开视图返回(int){(uint80 roundID,int price,uint startsAt,uint timeStamp,uint80 AnswerInRound)= priceFeed.latestRoundData(); 退货价格 }部署和测试智能合约

现在,我们准备部署和测试我们的合同。 在Remix中编译合同,然后在“部署”选项卡上,将环境更改为“ Injected Web3”,并确保下面的钱包地址是您的MetaMask钱包中的一个包含较早获得的ETH的钱包地址,按部署按钮,然后按照步骤进行操作。 最终结果是您将智能合约部署到了Kovan测试网。 您应该通过Remix控制台中的事务输出记录已部署的合同地址。

部署后,我们只需要执行“ getLatestPrice”功能。 结果应该是该函数从XAU / USD Aggregator合约返回最新价格,然后可以在我们的智能合约中将其用于链上。 请注意,我们不需要为该请求发送任何LINK,并且甚至不使用任何ETH,因为该交易是对链上XAU-USD Aggregator合同中数据的纯读。

XAU / USD价格Feed结果汇总

Chainlink数据馈送提供了一种高度可靠的机制,可以将高质量的商品价格数据获取到Solidity智能合约中,因此您可以围绕现实资产数据构建新的DeFi衍生产品。 此外,Chainlink的oracle框架提供了灵活性,可以快速轻松地获取有关股票,加密货币,稳定币,指数和许多其他资产类型的安全数据,从而为智能合约开发人员提供了强大的数据基础架构,以推动下一波DeFi创新。

如果您是开发人员,并且想要快速将您的应用程序连接到Chainlink Data Feeds,请访问开发人员文档并加入Discord中的技术讨论。

有关此主题的更多信息

如何获取以太坊,比特币和其他加密货币的当前价格 固体智能合约中的外汇汇率获取 智能合约开发人员使用Chainlink的最佳方法

网站| 推特| 不和谐| Reddit | YouTube | 电报| 大事记| GitHub | 价格提要| DeFi

>>在链节上查看

加入我们的电报

在推特上关注我们

在Facebook上关注我们

帖子 [Chainlink] 在SolidSmart智能合约中获取商品价格首先出现在AZCoin新闻上。

—-

原文链接:https://azcoinnews.com/chainlink-fetch-commodity-prices-in-solidity-smart-contracts.html

原文作者:Chainlink News

编译者/作者:wanbizu AI

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...