Warum sind die Gaseinheiten im Transaktionsbeleg 10^11 Wei?

Ich überprüfe den Saldo eines Kontos nach einer payableTransaktion 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 gasUsedWert 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 gasUsedist 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, gasUseddass die gesamte txn-Gebühr in Wei ist.

Können Sie uns den tatsächlichen Rückgabewert nennen?
Ich habe gerade die Werte aller Variablen hinzugefügt!

Antworten (1)

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.

Und aus Ihrer Berechnung geht hervor, dass Ihr Gaspreis wahrscheinlich 100 Gwei (10 ^ 11 Wei) beträgt.
Das dachte ich anfangs auch, aber ich verwende Ganache und laut Ganache-Schnittstelle beträgt mein Gaspreis standardmäßig 20000000000. Überschreibt web3 dies mit seinem eigenen Standard
Wenn gasPrice nicht im Transaktionsobjekt angegeben ist, erhält geth den Gaspreis von der EVM selbst, wenn die Transaktion verarbeitet wird.
Ok, vielleicht sollte dies eine Frage zu Ganache und seiner irreführenden Benutzeroberfläche sein