使用methods.myMethod.send时遇到汽油不足的问题

时间:2020-06-04 14:40:47

标签: solidity web3js

我对web3和坚固性还很陌生,我在方法调用方面苦苦挣扎了一段时间。

我已经部署了此坚固性代码,并且可以在Ethereum Remix IDE中正常工作。

struct Player {
    uint _id;
    string _name;
    uint[] cardsNeedsToDecrypt;
    bool isValue;
}

modifier onlyOnce() {
    require(!players[msg.sender].isValue);
    _;
}
function addPlayer(string memory _name) public onlyOnce {
    players[msg.sender] = Player(playerCount, _name, new uint[](5), true);
    playerAddressList.push(msg.sender);
    playerCount += 1;
} 

但是,如果我想使用web3添加新播放器,则会遇到以下错误消息:

错误:返回的错误:处理事务时VM异常:没用

这是我的web3代码:

var addPlayer= (name, from)=>{
  return new Promise( (resolve, reject)=>{
    contract
     .methods
     .addPlayer(name)
     .send(from,  (err, result)=>{
        if(err){
         reject(err);
        }else{
         resolve(result);
        }
     });
  });
}

let from = { from:address}
addPlayer("Alan Turing", from).then( (result) =>{ console.log(result)})

我还试图限制合同的大小并更改汽油限额,但没有任何改变:

ganache-cli -h 127.0.0.1 -p 7545 --gasLimit = 0x1fffffffffffff --allowUnlimitedContractSize -e 1000000000

而且在尝试写入区块链时也不是普遍问题。

0 个答案:

没有答案