警告:不推荐使用从地址类型继承的协定成员"balance"。坚固



警告:不赞成使用从地址类型继承的协定成员"balance"。将合同转换为"地址"类型以访问成员,例如使用"address(contract(balance"。

我在Solidity中使用Remix编辑器收到此警告。

这是代码块:

function getSummary() public view returns(
uint, uint, uint, uint, address
){
return (
minimumContribution,
this.balance, // This is the warning line.
requests.length,
approversCount,
manager
);
}

我试着遵循警告的建议:

function getSummary() public view returns(
uint, uint, uint, uint, address
){
return (
minimumContribution,
address(contract).balance,
requests.length,
approversCount,
manager
);
}

但这并不奏效。

balanceaddress类型的属性,而不是来自合同。将其更改为address(this).balance

function getSummary() public view returns(
uint, uint, uint, uint, address
){
return (
minimumContribution,
address(this).balance,
requests.length,
approversCount,
manager
);
}

或者,您可以将this分配给address类型的局部变量。。。

address contractAddress = this;
function getSummary() public view returns(
uint, uint, uint, uint, address
){
return (
minimumContribution,
contractAddress.balance,
requests.length,
approversCount,
manager
);
}

最新更新