Hat jemand ein Skript, mit dem alle in einer Adresse gefundenen Ether an eine andere Adresse übertragen werden können?
Das Skript prüft ständig auf eingehenden Ether und führt eine automatische Transaktion durch, wobei die Hälfte des Ethers für Gas verwendet wird.
const ETH_URL = ... //ex: http://localhost:8545
const TIMEOUT = 15000; //blocktime
const ADDRESS_FROM = ...
const ADDRESS_TO = ...
const TX_COST = 21000;
const web3 = new web3(ETH_URL);
setInterval(async () => {
const balance = await web3.eth.getBalance(ADDRESS_FROM);
if(balance > TX_COST) {
await web3.sendTransaction({to: ADDRESS_TO, from: ADDRESS_FROM, value: balance - TX_COST});
}
}), TIMEOUT);
Ich habe die Async-Funktion in nicht ausprobiert setInterval()
. Wenn es nicht funktioniert, ersetzen Sie es durch Promises (then()...).
var from = ...;
var to = ...;
var fromBalance = web3.utils.toBN (web3.eth.getBalance (from));
var gasPrice = web3.utils.toBN (web3.eth.getGasPrice ());
var fee = gasPrice.mul (web3.utils.toBN (21000));
if (fromBalance.gte (fee)) {
web3.eth.sendTransaction ({
from: from,
to: to,
value: fromBalance.sub (fee),
gas: 21000,
gasPrice: gasPrice
});
Michail Wladimirow
21000 * web3.eth.getGasPrice()
wäre genug.