对于可靠和智能的契约来说,我一直在尝试在Windows上设置一个测试环境,但是我在尝试运行一个松露盒环境(MetaCoin)时陷入了困境。
在下面的构造函数中,balances[]做了一些错误的事情。我的IDE (带有稳固扩展的vscode)抛出一条消息:“不能省略索引表达式”。为什么这个会出现?
contract MetaCoin {
mapping (address => uint) public balances;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
constructor() public {
balances[] = 10000;
}
function sendCoin(address receiver, uint amount) public returns(bool sufficient) {
if (balances[msg.sender] < amount) return false;
balances[msg.sender] -= amount;
balances[receiver] += amount;
emit Transfer(msg.sender, receiver, amount);
return true;
}
function getBalanceInEth(address addr) public view returns(uint){
return ConvertLib.convert(getBalance(addr),2);
}
function getBalance(address addr) public view returns(uint) {
return balances[addr];
}
}如果我能解决这个问题,下一步是什么?我如何在帐户之间进行转账以查看它的工作情况?
我一直在遵循这个指南:https://medium.com/edgefund/ethereum-development-on-windows-part-1-da260f6a6c06
发布于 2019-08-13 15:29:39
mapping (address => uint) public balances;balances是从address到uint的映射,但是在构造函数中,您没有提供任何地址来将uint设置为。
您可以添加msg.sender,以便将初始余额设置为部署契约的地址。
balances[msg.sender] = 10000;对于第二个问题,只需调用sendCoin函数即可。
https://stackoverflow.com/questions/57480522
复制相似问题