松露控制台:如何列印帳戶的乙太幣值?
我正在嘗試遵循以下教程: medium Just Dev
> getBalance = web3.eth.getBalance > balanceInEth = address => web3.fromWei(getBalance(address).toString())
我遇到了錯誤,所以我使用了以下命令:
> getBalance = web3.eth.getBalance;"Testing" 'Testing' truffle(development)> balanceInEth = async(address) => web3.utils.fromWei(await web3.eth.getBalance(address))
但他們正在產生巨大的錯誤:
拋出:TypeError:無法在 ReadStream.EventEmitter.emit 的 emitKeys (internal/readline.js:424:14) 處的 emitKeys.next () 處讀取未定義的屬性“匹配” (domain.js:448:20) 在 ReadStream.emit (events.js:198:13)
我被告知在以下位置使用以下命令:
truffle(ganache)> web3.eth.getAccounts(function(err, acc) { accounts = acc }); truffle(ganache)> const boo = async () => { return web3.utils.fromWei(await web3.eth.getBalance(accounts[0]), 'ether'); } truffle(ganache)> boo() '99.0015542'
上面的命令正在列印 acc1、受害者和攻擊者的帳戶值,但是當我為受害者執行交易時,我收到一條巨大的錯誤消息:
truffle(development)> options = { from: acc1, to : victim.address, value: web3.utils.toWei('11', 'ether')}
{ 從:
$$ AsyncFunction: acc1 $$,到:‘0xA3339bb424303D6F58B1260872c9C2DBF840e771’,值:‘11000000000000000000’}
truffle(development)> victim.deposit.sendTransaction(options)
拋出:{錯誤:返回錯誤:未找到;在 evalmachine.:0:16 at sigintHandlersWrap (vm.js:288:15) at Script.runInContext (vm.js:130:14) at runScript (/home/zulfi/.nvm/versions/node/v10. 22.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/console.js:227:1)
有人請指導我如何在松露控制台上列印帳戶值。
祖爾菲。
Truffle v5 使用完全非同步的 web3 v1.x。對於與區塊鏈互動的所有呼叫,請
await
在前面使用。truffle(develop)> accounts = await web3.eth.getAccounts() undefined truffle(develop)> accounts [ '0xe2aa116DDD9A562895A7DeFa3eb8049a28Ce04B0', '0x28Da3F02B460F303FD161F6f3406cE9070aF8710', '0x63d666a8421a45119A63787400dD6bdF0C91bB57', '0x87955E85f8ce170496ebdAa9f3086d49E56a6Cbd', '0x750949866E7661AdcE549521772eebAAfd8a6021', '0x99d4D496FabE5E0A9F4A77989C65cdb16D46A0a6', '0x71E25Cf3Ed1845f43b977aA2C69CaC7217C2B229', '0xb92De65298cEe8716b708203A47260f8137a0886', '0x927417c6E16FE04Cde5d77bB862EFE8f1862c105', '0x865c34ad3b703B1e24d4493b3249067A764FB1D9' ]
獲得餘額
truffle(develop)> acc1 = accounts[1] '0x28Da3F02B460F303FD161F6f3406cE9070aF8710' truffle(develop)> balance1 = await web3.eth.getBalance(acc1) undefined truffle(develop)> web3.utils.fromWei(balance1, "ether") '100'
如果您忘記使用
await
結果將是 aPromise
而不是實際值。查看錯誤消息
from: [AsyncFunction: acc1]
,用作 from 的值acc1
是一個承諾,並且函式失敗,因為它需要一個地址。