Mein Konto hat genug Ether, um eine Transaktion durchzuführen. Wie rufe ich eine zahlbare Funktion auf, die in Solidität geschrieben ist? Ich habe es versucht, indem ich so anrufe
const Web3 = require('web3');
const HDWalletProvider = require('truffle-hdwallet-provider');
const campaign = require('./build/CampaignFactory');
const provider = new HDWalletProvider(
'12 word mnemonic',
'https://rinkeby.infura.io/authid',
);
const web3 = new Web3(provider);
const accounts = await web3.eth.getAccounts();
await campaign.methods.contribute().send({
from: accounts[0],
value: web3.utils.toWei(this.state.value, 'ether')
});
Aber ich bekomme diesen Fehler "Eigengas zu niedrig". Früher mit der Metamask-Erweiterung wurde eine Bestätigung angefordert, wenn ich auf „Senden“ von Metamask klicke, dann war die Transaktion erfolgreich. Jetzt, da ich die Metamask-Erweiterung entfernt habe, erhalte ich diesen Fehler. Ich möchte diese Transaktion ohne Metamask durchführen. Ist es möglich zu tun?
Sie können gasLimit und gasPrice auch explizit übergeben.
await campaign.methods.contribute().send({
from: accounts[0],
value: web3.utils.toWei(this.state.value, 'ether'),
gas: 'gasLimit',
gasPrice: 'gasPriceInWei'
});
Ich habe es gelöst, indem ich einfach so Gas gegeben habe.
const accounts = await web3.eth.getAccounts();
await campaign.methods.contribute().send({
from: accounts[0],
value: web3.utils.toWei(this.state.value, 'ether'),
gas: '1000000'
});
kherwa
Trinu