Skip to Content
dApps

eth_estimateGas

Erzeugt eine Schätzung des für den Abschluss der Transaktion erforderlichen Gases und gibt sie zurück. Die Transaktion wird nicht zur Blockchain hinzugefügt.


Parameter

IndexTypBeschreibung
0objectTransaktionsobjekt
1stringBlocknummer oder Tag (optional)

Transaktionsobjekt

FeldTypErforderlichBeschreibung
fromstringNeinAbsenderadresse
tostringNeinEmpfängeradresse
datastringNeinVertragsaufrufdaten
valuestringNeinWert in Wei (hex)
gasstringNeinGaslimit (hex)
gasPricestringNeinGaspreis (hex)

Rückgabe

string - Die geschätzte Gasmenge (hex)


Beispiel

ETH-Überweisung schätzen

const gasEstimate = await window.$onekey.ethereum.request({ method: 'eth_estimateGas', params: [{ from: '0xYourAddress...', to: '0xRecipientAddress...', value: '0xDE0B6B3A7640000' // 1 ETH }] }) console.log('Estimated gas:', parseInt(gasEstimate, 16)) // Simple ETH transfer: ~21000

Vertragsaufruf schätzen

const gasEstimate = await window.$onekey.ethereum.request({ method: 'eth_estimateGas', params: [{ from: '0xYourAddress...', to: '0xContractAddress...', data: '0xa9059cbb...' // transfer(address,uint256) }] }) console.log('Estimated gas:', parseInt(gasEstimate, 16))

Sicherheitspuffer hinzufügen

async function estimateGasWithBuffer(tx, bufferPercent = 20) { const estimate = await window.$onekey.ethereum.request({ method: 'eth_estimateGas', params: [tx] }) const gas = parseInt(estimate, 16) const bufferedGas = Math.ceil(gas * (1 + bufferPercent / 100)) return '0x' + bufferedGas.toString(16) } const safeGasLimit = await estimateGasWithBuffer({ from: accounts[0], to: contractAddress, data: encodedData })

Fehler

CodeNachrichtBeschreibung
-32000Ausführung rückgängig gemachtTransaktion würde fehlschlagen
-32000Unzureichende MittelNicht genügend Guthaben
-32602Ungültige ParameterUngültige Transaktionsparameter

Hinweise

  • Die Schätzung ist möglicherweise nicht exakt; Transaktionen können mehr oder weniger Gas verbrauchen
  • Fügen Sie der Schätzung zur Sicherheit einen Puffer (10-20%) hinzu
  • Wenn die Schätzung fehlschlägt, würde wahrscheinlich auch die Transaktion fehlschlagen
  • Die Schätzung berücksichtigt den aktuellen Blockchain-Zustand
Zuletzt aktualisiert am