我的智能合约导致错误:出气错误

时间:2019-05-14 05:33:24

标签: ethereum solidity

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 个答案:

答案 0 :(得分:1)

您的智能合约似乎需要比默认金额更多的天然气(费用)来执行。您必须从默认值增加gasLimit和gasPrice。您可以像这样以十六进制形式指定它们。


$table = $html->find('table');
        $Data=array();
        $i=0;
        $k=1;

        foreach(myFind($table,'td') as $cell) {

            $tpr= $cell->innertext;

            $pattern = "(-?\d{1,2}\,\d)";
            preg_match($pattern , $tpr, $match);

            $rowData[] =$match;          
            $i++;

            if(fmod($i, 7)==0){
               $Data[$k]=array_slice($rowData,1);
               $rowData=array();
               $k++;
               $i=0;  
            }
        }

        convertCSV($Data);

function convertCSV($Data){

            $fp = fopen('file.csv', 'w');
            foreach ($Data as $fields){ 
            fputcsv($fp, $fields, $delimiter = ";");
            }
            fclose($fp);
 }

您可能必须更改确切的值才能查看适用于您的用例的内容。