价格预言机

介绍

基于区块链的智能合约无法直接与外部系统通信,因此 JustLend DAO 协议需要可靠的价格推送服务。最终,我们选择了 WinkLink 的服务作为我们的价格来源。

JustLend DAO 协议使用 PriceOracle 合约在来设置和展示代币价格,单位为sun(即10^-6 TRX) 缩放比例为 10^(tokenDecimal - 6)

基础代币的价格每 30 分钟由指定的发布者通过 setPrice() 方法发布。

相关方法

anchors()

function anchors(address) view returns(uint256, uint256)

调用此方法会返回指定代币的当前价格锚点。

const result = priceOracle.anchors(token).call();

poster()

function poster() view returns(address)

调用这个方法返回当前价格提交者的地址。

返回值:当前价格提交者的地址。

const result = priceOracle.poster().call();

assetPrices()

function assetPrices(address asset) public view returns (uint)

调用这个方法返回指定代币的当前价格。

返回值:代币价格,单位为sun(即10^-6 TRX) ,缩放比例为 10^(tokenDecimal - 6)

getPrice()

function getPrice(address asset) public view returns (uint)

调用这个方法返回指定代币的当前价格。

返回值:代币价格,单位为sun(即10^-6 TRX) ,缩放比例为 10^(tokenDecimal - 6)

setPrice()

function setPrice(address asset, uint requestedPriceMantissa) public returns (uint)

调用这个方法为指定的代币设置当前时间区间的价格。

这个方法仅供合约指定的价格提供者调用。

返回值:0为成功,否则将返回相应错误码。

const result = priceOracle.setPrice(asset, price).send({
  feeLimit:10_000_000_000,
  callValue:0,
  shouldPollResponse:true
});

Last updated