我正在使用MetaCoin盒在松露开发模式。前端试图获得一个帐户的余额,但得到一个巨大的数字。
前端代码如下:
var coinbase = web3.eth.coinbase;
var balance = web3.eth.getBalance(coinbase).toNumber();更具体地说,默认情况下,第一个帐户松露生成的帐户应该有10k的余额。在运行一个测试后,如上面的链接所示。它的余额应该是9990。如果我在测试文件中console.log它,这是正确的。
但是我从前端得到的balance变量是1000000000000000000。经过测试,它将达到99917820100000000000。这种差异显然不是10或它的指数。
为什么以及如何解决这个问题?
发布于 2018-03-21 07:54:41
它只是在显示wei中的平衡,或者以太* 10^18,换句话说,它显示的是1,而不是.000000000000000001醚。
除以1e18,如果你想要整数,它很可能这样做,以避免浮点错误。根据他们的文档,测试帐户以10以太和10,000 MetaCoins开始,这就是您混淆的地方。
你的第二个号码不是9990000.是因为交易费用
发布于 2018-03-21 08:15:30
web3.eth.getBalance()返回帐户的以太余额,以魏为单位。乙醚中有10^18卫。100000000000000000000魏是10以太,我想这是您本地测试网络中默认的帐户起始余额。99917820100000000000大概是在为您运行的测试用例支付天然气之后剩下的乙醚的数量。
您希望看到10,000的余额,因为您正在考虑帐户应该拥有的MetaCoins的数量。(这与乙醚的数量无关。)
要获得MetaCoins的编号,您需要调用MetaCoin合同上的balanceOf(account)。如果您查看测试代码,您将看到它正在检查帐户的MetaCoin余额。
https://stackoverflow.com/questions/49400787
复制相似问题