Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert BN to number

In truffle console I am executing the following statement,

result = token.balanceOf(accounts[1])

This statement returns the following output.

<BN: 8ac7230489e80000>

As suggested here, I am trying to use toNumber() and toString. But I am getting the following error.

result = token.balanceOf(accounts[1])
result.toString()
output: '[object Promise]'
result.toNumber()
TypeError: result.toNumber is not a function
like image 477
sel Avatar asked Oct 17 '25 13:10

sel


1 Answers

Based on the output it seems you get a Promise. At the moment of running the "result.toString()" command - it's still a promise that haven't been fulfilled yet.

As @Saddy mentioned in the comment, You need to wait for the promise to be fulfilled before you could use the toString() method on its value.

You should add "await" prior to the method.

See the example in truffle documentation (https://www.trufflesuite.com/docs/truffle/quickstart):

Check the metacoin balance of the account that deployed the contract:

truffle(development)> let balance = await instance.getBalance(accounts[0])
truffle(development)> balance.toNumber()
like image 180
Ofir Baruch Avatar answered Oct 20 '25 04:10

Ofir Baruch



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!