Ich überprüfe den Saldo eines Kontos nach einer payable
Transaktion in einem Truffle-Test. Unten ist mein Code:
// amount is the value supplied to the txn
assert.equal(Number(String(currentBalance)),
Number(String(previousBalance)) + amount - (gasUsed * 100000000000),
'Account balance for ' + String(acct) + ' incorrect after txn.');
// previous account bal: 99965457999999999000
// current account bal: 99954881999999998000
// gasUsed: 105760
// amount: 1000
Wie Sie sehen können, muss ich den gasUsed
Wert mit multiplizieren 10^11
, sonst schlägt mein Test fehl ... Ich verstehe nicht wirklich, warum es so ist 10^11
? GWEI ( 10^9
) macht viel mehr Sinn. Mindestens ein Vielfaches von 3 oder? Dies steht überhaupt nicht in der web3-Dokumentation .
BEARBEITEN: Zur Verdeutlichung versuche ich herauszufinden, was gasUsed
ist und ob web3 oder Truffle den Standardgaspreis überschreiben. Der Gaspreis laut meiner Ganache-Schnittstelle beträgt 20000000000, was mit meinen Berechnungen nicht funktioniert. Deshalb wurde ich zu der Annahme verleitet, gasUsed
dass die gesamte txn-Gebühr in Wei ist.
Gas ist nicht Äther. Gas wird verwendet, um die von der EVM geleistete Arbeit abzuschätzen. Das hat nichts mit weis/ether etc zu tun...
Wenn Sie wissen möchten, wie viel Ether dieses Gas wert ist, multiplizieren Sie es mit dem gasPrice-Wert.
Wiederholung 122442
nickjm