Contract-Development

如何在沒有元遮罩的情況下進行交易

  • March 30, 2018

我的賬戶有足夠的乙太幣進行交易。我如何呼叫以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'
 });

引用自:https://ethereum.stackexchange.com/questions/44304