address payable private owner;
然后在构造函数中设置所有者为 msg.sender:
constructor() {
setOwner(msg.sender);
}
这是 setOwner:
function setOwner(address newOwner) private {
owner = payable(newOwner);
}
这是提现功能:
function withdraw() external onlyOwner {
(bool success,)=owner.call{value:address(this).balance}("");
// if it is not success, throw error
require(success,"Transfer failed!");
}
确保只有所有者可以调用它,所以写一个修饰符:
modifier onlyOwner() {
if (msg.sender != getContractOwner()) {
revert OnlyOwner();
}
_;
}
revert OnlyOwner 正在使用新版本的solidity 发送自定义消息:
/// Only owner has an access!
error OnlyOwner();