мой умный контракт вызывает ошибку: ошибка газа - PullRequest
0 голосов
/ 14 мая 2019

error message

У меня есть проблема в моем коде солидности.я думаю, причина проблемы на account.transfer

я использую ganache, remix, metamask, web3

это мой код солидности.

`pragma solidity ^0.4.25;
contract test{
    address fire_account=0x6F3c5e42c340736eEa9a1C362592Bef9Ba2E5561;
    mapping(string => uint) fire_record;
    function fireDonation(string contributorName) payable{
        fire_account.transfer(msg.value);
        fire_balance+=msg.value;
        fire_contributor.push(contributorName);
    }
}`

иКод web3.js

var Courses;
async function init(){
    web3 = await new Web3(new Web3.providers.HttpProvider("http://localhost:7545"));
    web3.eth.defaultAccount = web3.eth.accounts[2];
    console.log("Default account is ",web3.eth.accounts[2]);
    //Change the ABI here
    var CoursesContract = web3.eth.contract(/*skip*/);
    //Replace Deployed Smartcontract Address here
    var contractaddress = "0x9b95f972feaad42f2023246112f450c56d8921ae";
    Courses = CoursesContract.at(contractaddress);
}
init();
function fireDonate(){
    var amount=parseInt(document.getElementById('amount').value);
    console.log(amount);
    Courses.fireDonation(document.getElementById('contributor').value, {from: web3.eth.accounts[2], value: amount});
}

Можете ли вы сказать мне решение или ссылку?я не могу найти ссылки ..

1 Ответ

2 голосов
/ 30 мая 2019

Похоже, что ваш умный контракт требует больше газа (сборов) для исполнения, чем сумма по умолчанию.Вы должны увеличить значения gasLimit и gasPrice по умолчанию.Вы можете указать их в шестнадцатеричном виде, как это.

Courses.fireDonation(document.getElementById('contributor').value, {from: web3.eth.accounts[2], value: amount, gasLimit: '0x27100', gasPrice: '0x09184e72a00'});

Возможно, вам придется изменить точные значения, чтобы увидеть, что подходит для вашего варианта использования.

...