Gasproblem bei sendRawTransaction im Rinkeby-Netzwerk

Ich habe ein Gasproblem im rinkeby-Netzwerk am sendRawTransaction.

Getestet mit verschiedenen Gaswerten, um zu experimentieren und entweder insufficient funds for gas * price + valueoder zu erhalten exceeds block gas limit.

Some more info: Gas Estimate: 32872 Balance: 1100000 Gwei gas: 87200

Irgendwelche Vorschläge oder hatte jemand ein ähnliches Problem?

Mein Code hier: https://gist.github.com/anistark/2daf9295a4d5a03cb405ff5a47924b32

Antworten (2)

Anhand Ihres Codes überprüfen Sie den Saldo einer Adresse und erstellen einen neuen privaten Schlüssel, um die Rohtransaktion zu signieren.

// Original balance

let existingBalance = web3.fromWei(web3.eth.getBalance(accountAddress), balanceUnit).toString();
console.log('existingBalance:', existingBalance, balanceUnit);


// New account

let seedPhrase = lightwallet.keystore.generateRandomSeed();

lightwallet.keystore.createVault({
    password: accountKey,
    seedPhrase: seedPhrase,
    hdPathString: "m/0'/0'/0'"
}, function (err, ks) {
    ks.keyFromPassword(accountKey, function (err, pwDerivedKey) {
        ...

        // Sign with new private key

        var tx = new Tx(rawTx);
        var privateKey = new Buffer(pwDerivedKey, 'hex')
        tx.sign(privateKey);

Der neue private Schlüssel steht in keinem Zusammenhang mit der ursprünglichen Adresse. Und es wird kein Guthaben haben, wenn es nicht ausdrücklich finanziert wird.

Verdammt! Ja, du hast recht. Können Sie auch erwähnen, wie Sie den privaten Schlüssel aus dem Schlüsselspeicher explizit angeben?
Sie möchten den privaten Schlüssel nicht von Lightwallet, sondern von Ihrer accountAddress.

Basierend auf den von Ihnen genannten Informationen:

Transaction gas limit : 87 200 gas units
Account balance: 1 100 000 wei

Das Rinkeby-Netzwerk hat die folgenden Eigenschaften

Gas Price: 1 000 000 wei (1 gwei)
Block gas limit: 7 129 048 gas units

Das bedeutet, dass für diese spezielle Transaktion Transaktionsgebühren anfallen:gas * gasPrice = 87 200 * 1 000 000 = 87 200 000 000 wei

Allerdings hat man nur ein Konto 1 100 000 wei, deswegen bekommt man insufficient funds for gas * price + value.

Für die andere Ausnahme exceeds block gas limitdenke ich, dass Sie eine Gasgrenze höher als die Blockgasgrenze des RunkeBy-Netzwerks festgelegt haben.

Es sind 1100000 Gwei. Ich entschuldige mich dafür, dass ich es nicht vorher erwähnt habe. Jetzt aktualisiert.
Wie hoch ist der Gaspreis (1 gwei oder mehr)? Der GasSchätzwert wird nicht in gwei, sondern in Gaseinheiten ausgedrückt. Können Sie mir Ihre Kontoadresse schicken
Hallo Greg, es ist 1 Gwei. Ich habe das gleiche auch im Remix-Browser getestet. Hier ist meine Kontoadresse:0x1a9ef715446cf878e04fff7347202cbc4c7ed5e8