从 USD 到 WEI 的稳定价格计算

问题描述 投票:0回答:2

我正在使用 Oraclize 进行一个项目,我从 coinmarketcap 获得 1 ETH 美元价格(1 ETH = 1e18 WEI),即

474.846
使用 Oraclize 的
parseInt
我可以将其解析为
uint256
。由于缺乏浮点数据类型,我在计算任何给定的美元价格有多少
wei
时遇到问题,即
0.001176470588235$
有什么想法吗?

math ethereum solidity
2个回答
0
投票

您必须使用自己的小数偏移量,以便可以在合约中使用整数。因此,您不需要使用 1 wei = x 美元,而是需要说(例如)1 wei = x 一便士的千分之一,其中 x 是整数。您必须决定需要多少精度。


0
投票

您应该先使用Chainlink等Oracle来获取ETH/USD的价格。

import {AggregatorV3Interface} from "@chainlink/[email protected]/src/v0.8/shared/interfaces/AggregatorV3Interface.sol";

function getLastPrice() public view returns(int256){
        AggregatorV3Interface dataFeed = AggregatorV3Interface(
        0x694AA1769357215DE4FAC081bf1f309aDC325306
    );
        (
            ,
            int answer,
            ,
            ,
            
        )= dataFeed.latestRoundData();
        return  answer; 
    }

答案将为您提供 ETH/USD 的最新价格(小数点后 8 位)(例如 346468256425)。 或者 ETH 最新价格 = answer/1e8 ; * 将 => 3464.68256425$*

现在您可以简单地将其转换为 wei/USD:

1 ETH = 1e18 WEI/美元 = answer/1e8 ;

希望能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.