警告:不推荐使用从地址类型继承的合约成员“余额”。坚固性
Posted
技术标签:
【中文标题】警告:不推荐使用从地址类型继承的合约成员“余额”。坚固性【英文标题】:Warning: Using contract member "balance" inherited from the address type is deprecated. Solidity 【发布时间】:2018-12-24 14:57:49 【问题描述】:警告:不推荐使用从地址类型继承的合约成员“余额”。将合约转换为“address”类型以访问成员,例如使用“address(contract).balance”代替。
我在使用 Remix 编辑器的 Solidity 中收到此警告。
这是代码块:
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
);
但这不起作用。
【问题讨论】:
【参考方案1】:或者,您可以将this
分配给address
类型的局部变量...
address contractAddress = this;
function getSummary() public view returns(
uint, uint, uint, uint, address
)
return (
minimumContribution,
contractAddress.balance,
requests.length,
approversCount,
manager
);
【讨论】:
【参考方案2】:balance
是address
类型的属性,而不是来自合同。将其更改为address(this).balance
。
function getSummary() public view returns(
uint, uint, uint, uint, address
)
return (
minimumContribution,
address(this).balance,
requests.length,
approversCount,
manager
);
【讨论】:
这就是我想要的。谢谢。以上是关于警告:不推荐使用从地址类型继承的合约成员“余额”。坚固性的主要内容,如果未能解决你的问题,请参考以下文章
swarm主网BZZ挖矿:钱包如何添加BZZ合约?如何查钱包余额?