RICE:DeFi 开发者:如何调用NEST预言机价格数据

NEST预言机-获取链上价格

介绍

NEST预言机采用双边报价机制生成链上价格,质押双边资产来保证价格的准确性;完全去中心化的链上价格生成机制。

白皮书:https://nestprotocol

}

该方法限制了只有“报价合约”才可以调用,保证添加到价格合约中的价格数据的数据源正确。

输入参数描述ethAmount报价ETH数量tokenAmount报价ERC20Token数量endBlock价格生效区块号tokenAddress报价的ERC20Token合约地址offerOwner报价者钱包地址

PriceInfostoragepriceInfo=tokenInfo

同样限制了只有“报价合约”才有权限调用。只有在触发吃单操作后,才会修改对应生效区块中的价格,将”添加价格“时的报价数量按照”吃单“规模减掉。

PEPE推出仅两周市值飙升至5.25亿美元,跻身市场前100大加密货币:金色财经报道,据 Coingecko 数据,PEPE 过去 24 小时最高涨幅达 111%,过去一周涨幅为 304%。PEPE 是一款 ERC-20 代币,总供应量为 420.69 万亿,PEPE 于 4 月 15 日开启交易,最初价格约为 0.000000001 美元,目前交易价格为0.00000125 美元,市值为 5.25 亿美元,市值排名第 89位。[2023/5/1 14:37:34]

输入参数描述ethAmount吃单ETH数量tokenAmount吃单ERC20数量tokenAddress报价ERC20地址endBlock价格生效区块号

获取价格

functionupdateAndCheckPriceNow(addresstokenAddress)publicpayablereturns(uint256ethAmount,uint256erc20Amount,uint256blockNum){require(checkUseNestPrice(address(msg

Arbitrum生态AMM协议Chronos发布Token分配与空投细则:4月19日消息,Arbitrum生态AMM协议Chronos发布Token分配与空投细则,计划对16000多名用户进行,并分配53%的初始供应。据悉,CHR的初始供应量为50,000,000枚,最初供应量的9%将分配给chr NFT持有者、25%分配给合作伙伴协议、21%对veCHR用户进行空投。[2023/4/19 14:12:40]

require(checkBlock!=0);PriceInfomemorypriceInfo=priceInfoList;addressnToken=_tokenMapping

else{_abonus

if(msg

emitNowTokenPrice(tokenAddress,priceInfo

Rarible首席执行官:感觉苹果并不真正希望App Store用户能够购买或出售 NFT:金色财经报道,NFT创业市场 Rarible 首席执行官 Alexei Falin 针对苹果对通过iOS应用内进行的NFT交易收取高达30%的佣金表示:感觉苹果并不真正希望App Store用户能够购买或出售 NFT。这几乎是不可能的,因为它是固定订阅或固定价格。据报道,苹果公司推迟为 App Store 批准 NFT 和加密应用程序的方式或许支持了这一观点。根据 Falin 说法,Rarible 应用程序需要几个月的时间才能进入 App Store,而 Google Play Store 只需几天时间。

这确实意味着此类应用程序正在进入商店,但似乎它们通常只是充当服务的宣传展示。实际销售或交易将需要浏览器站点,而不是在应用程序中完成。

据悉,苹果并未专门针对解决 NFT 应用程序延迟的问题,而是表示其 500 名审查员会在 24 小时内检查 90% 的应用程序。苹果也拒绝就其他 NFT 批评发表评论,而是用 App Store 通用规则来解释。[2022/9/26 7:20:21]

输入参数描述tokenAddressERC20Token合约地址输出参数描述ethAmountETH数量erc20AmountERC20Token数量blockNum生效价格区块

加拿大监管机构:银行和保险公司的加密敞口不得超过一级资本的1%:8月19日消息,根据加拿大金融监管机构的临时新规,加拿大银行和保险公司必须将其对加密资产的敞口限制在固定比例以下。具体而言,如果金融公司对2类加密资产的总敞口(根据监管机构的定义,将包括大多数加密货币)超过其一级资本的1%,则需要通知金融机构监督办公室。该规则将于2023年第二季度生效。

此前消息,欧盟立法者正寻求限制银行的比特币持有量。(彭博社)[2022/8/19 12:35:13]

require(checkUseNestPrice(address(msg

解释一下while循环的判断,需要从最新的报价区块开始往后倒推找到当前已经生效并且没有被吃单的价格数据所在的区块号。

require(checkBlock!=0);

这个判断个人猜测是为了防止有些token刚开始报价,还没有有效价格生成,又因为调用价格是要付费的。所以加了限制,如果没找到生效价格的区块号,交易直接失败。

PriceInfomemorypriceInfo=priceInfoList;addressnToken=_tokenMapping

else{_abonus

if(msg

这部分代码是将调用者支付的预言机费用,分配到对应的收益池中。多余的费用退还给调用者。

链下获取价格

//Checkreal-timeprice-useraccountonlyfunctioncheckPriceNow(addresstokenAddress)publicviewreturns(uint256ethAmount,uint256erc20Amount,uint256blockNum){require(address(msg

if(checkBlock==0){return(0,0,0);}PriceInfostoragepriceInfo=priceInfoList;return(priceInfo

原理和上一个方法一样。区别是禁止了合约调用和不需要付费。应该是为了给链下应用查看价格使用。

激活调用权限

functionactivation()public{_nestToken

使用NEST预言机需要质押一定数量的NEST和等待一天。这个操作应该是为了防止”合约盗取价格“。如果没有这个限制可以写个代理合约,获取价格,只需要支付一次费用,其他的调用者可以一起使用价格。

DEMO

官方文档

/***@devGetasingleprice*@paramtokenTokenaddressoftheprice*/functiongetSinglePrice(addresstoken)publicpayable{//Inconsiderationoffutureupgrades,thepossibilityofupgradingthepricecontractisnotruledout,andthevotingcontractmustbeusedtoquerythepricecontractaddress

/***@devGetmultipleprices*@paramtokenThetokenaddressoftheprice*@parampriceNumGetthenumberofprices,sortedfromthelatestprice*/functiongetBatchPrice(addresstoken,uint256priceNum)publicpayable{//Inconsiderationoffutureupgrades,thepossibilityofupgradingthepricecontractisnotruledout,andthevotingcontractmustbeusedtoquerythepricecontractaddress

//Averagepriceuint256calculationPrice=allTokenForEth

CoFiX

GitHub:

https://github

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-3:899ms