我刚开始踏实
我的目标是使这些代码在remix编译器中工作。
该代码是一个" for“函数,它意味着在死者= true (代码用于继承契约)时触发,但它在最后两行代码的”钱包“部分有问题。
我试着在这里和其他地方寻找解决方案(比如Solidity/Remix文档),但仍然在努力解决这个特殊的问题。
我尝试删除"i",添加";“,并在钱包的开头添加下划线(如"_wallets")。
这就是有问题的代码:
function setup(address _wallet, uint _inheritance) public oneOwner {
_wallet.push(_wallet);
Inheritance [_wallet] = _inheritance;
}
function moneyPaid() private isDeceased {
for (uint i=0; i < wallets.length; i++) {
wallets;[i].transfer(Inheritance[wallets][i]);
}
}以下是我所看到的错误:
DeclarationError:未声明的标识符。
|
36 | for (uint i=0; i < wallet.length; i++) {
| ^^^^^^DeclarationError:未声明的标识符。
|
37 | wallets;[i].transfer(Inheritance[wallets][i]);
| ^^^^^^^DeclarationError:未声明的标识符。
|
37 | wallets;[i].transfer(Inheritance[wallets][i]);
| ^^^^^^^发布于 2022-08-11 13:24:56
我想你没有被宣布为可变钱包。
在for循环中,您错误地在钱包后面添加了分号;
wallets[i].transfer(Inheritance[wallets][i]);也可以添加或引用您继承的合同,以便更好地理解这个问题。
https://stackoverflow.com/questions/73320757
复制相似问题