【发布时间】:2021-10-13 07:10:16
【问题描述】:
我做了一个彩票合约,我需要添加以太坊奖池的美元价格。
我用 axios 试过了,但还是看到 NaN
功能
async componentDidMount() {
const manager = await lottery.methods.manager().call();
const players = await lottery.methods.getPlayers().call();
const balance = await web3.eth.getBalance(lottery.options.address);
const axios = require('axios');
const ratios = await axios.get('https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=BTC,USD,EUR');
const USDPrice = balance * ratios.USD;
this.setState({ manager, players, balance, USDPrice});
};
我调用函数的地方
<p>There are currently<b>{" "}
{this.state.players.length}</b> people entered, competing to win<b>{" "}
{web3.utils.fromWei(this.state.balance, "ether")} ETH! **{this.state.USDPrice}**</b>
</p>
【问题讨论】:
-
您确定
ratios.USD和/或balance是可乘的实际数字/整数吗?试试console.log和typeOf.. -
您通过 axios 的调用返回了
{"BTC":0.06838,"USD":3137.15,"EUR":2686.85},所以在使用ratios.USD时应该没问题,但是balance怎么样? -
@iLuvLogix 余额是从智能合约 (Solidity) 导入的,它是 uint256
标签: javascript node.js reactjs web3