Contract-Development
如何在沒有元遮罩的情況下進行交易
我的賬戶有足夠的乙太幣進行交易。我如何呼叫以solidity編寫的應付函式?我試過這樣打電話
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') });
但我得到這個錯誤“內在氣體太低”。之前使用元遮罩擴展時,如果我從元遮罩點擊送出,它會要求確認,然後交易用於獲得成功。現在,自從我刪除了元遮罩擴展後,我收到了這個錯誤。我想在沒有元遮罩的情況下進行此交易。有可能嗎?
您也可以顯式傳遞 gasLimit 和 gasPrice。
await campaign.methods.contribute().send({ from: accounts[0], value: web3.utils.toWei(this.state.value, 'ether'), gas: 'gasLimit', gasPrice: 'gasPriceInWei' });
我通過像這樣通過氣體來解決它。
const accounts = await web3.eth.getAccounts(); await campaign.methods.contribute().send({ from: accounts[0], value: web3.utils.toWei(this.state.value, 'ether'), gas: '1000000' });