Truffle

松露控制台:如何列印帳戶的乙太幣值?

  • December 30, 2020

我正在嘗試遵循以下教程: 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)

我被告知在以下位置使用以下命令:

錯誤松露控制台:web3.fromWei 不是函式

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是一個承諾,並且函式失敗,因為它需要一個地址。

引用自:https://ethereum.stackexchange.com/questions/91710