Ich habe eine Funktion zum Übertragen von ETH von meinem Konto auf ein anderes Konto implementiert:
async function transfer(to, value) {
let options = {
from : PUBLIC_ADDRESS,
to : to,
value: value
};
options.gas = await web3.eth.estimateGas(options);
let signedTransaction = await web3.eth.accounts.signTransaction(options, PRIVATE_KEY);
return await web3.eth.sendSignedTransaction(signedTransaction.rawTransaction);
}
Dies dient ausschließlich dem ETH-Transfer; Ich versuche nicht, eine intelligente Vertragsfunktion aufzurufen, daher kann ich das data
Feld aus dem options
Objekt weglassen.
Mir ist aufgefallen, dass web3.eth.estimateGas(options)
immer 21000 zurückgegeben wird.
Kann ich mich darauf verlassen und meinen Code vereinfachen zu:
let options = {
from : PUBLIC_ADDR,
to : to,
value: value,
gas : 21000
};
?
Vielen Dank
Wenn die to
Adresse kein Smart Contract ist, dann ja. Dies sind die Standard-Gaskosten eines einfachen Ether-Transfers.
Wenn es sich bei der to
Adresse umdata
einen Smart Contract handelt, könnte eine andere Gasmenge verbraucht werden , selbst wenn Sie nichts im Feld senden .
gute Stimmung
to
Adresse kein Smart Contract, daherdata
ist das Feld leer (und ich verstehe jetzt, dass ein leeresdata
Feld nicht unbedingt eine Nicht-Vertragsadresse impliziertto
). Danke sehr!!!