Mi cuenta tiene suficiente éter para realizar una transacción. ¿Cómo llamo a una función pagadera que está escrita en solidez? Lo intenté llamando así
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')
});
Pero recibo este error "gas intrínseco demasiado bajo". Anteriormente, con la extensión metamask, solía pedir confirmación si hacía clic en enviar desde metamask y luego la transacción solía tener éxito. Ahora, desde que eliminé la extensión de metamask, recibo este error. Quiero hacer esta transacción sin metamask. Es posible de hacer?
también puede pasar gasLimit y gasPrice explícitamente.
await campaign.methods.contribute().send({
from: accounts[0],
value: web3.utils.toWei(this.state.value, 'ether'),
gas: 'gasLimit',
gasPrice: 'gasPriceInWei'
});
Lo resolví simplemente pasando gas así.
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