我对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
而且在尝试写入区块链时也不是普遍问题。