Wie können wir BigNumber (BN)-Argumente in Solidity-Ereignissen analysieren und behandeln?

In der Vergangenheit haben web3-Ereignisse numerische Ereignisse wie folgt veröffentlicht:

BigNumber { s: 1, e: 17, c: [ 1000 ] } }

Mit web3.js 1.0 kommen große Zahlen jetzt als Objekte wie diese herunter:

 <BN: de0b6b3a7640000>

Das Problem hier ist, dass, wenn wir später Ereignisse zur Fehlerbehebung sammeln, diese nicht entzifferbar wären. Die einzige Lösung, die mir einfällt, besteht darin, dass ein Code im Ereignisverbraucher die Nummer konvertiert, bevor das Ereignis irgendwo gespeichert wird:

web3.utils.fromWei(new web3.utils.BN(receipt.logs[0].args.amount))

Hat noch jemand andere Ideen?

Antworten (1)

Sie haben Zugriff auf yourBigNumber.toString(10), .toString(16)und .toNumber(), nein?

Sehen Sie sich dieses Cheatsheet https://github.com/MikeMcl/bignumber.js an