return 合同中所有资金的最合适方式
Most appropriate way to return all funds in contract
假设有一个合约,其功能是 return 在某些修饰符有效后将资金返还给所有者地址。
pragma solidity ^0.6.1
contract example{
uint64 public contractTime;
constructor() public {
owner = msg.sender;
contractTime = uint64(block.timestamp) + 31556926;
}
receive() external payable {}
fallback() external payable {}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
modifier expiredContract {
require(block.timestamp >= contractTime);
_;
}
function returnToOwner() public payable onlyOwner expiredContract {
owner.transfer(address(this).balance); // Is there a better way to do this?
}
}
有没有更好的方法将合约资金清空到所有者地址?或者这是 "standard" 的做法?
经过更多挖掘后,您可以简单地使用 selfdestruct()
将所有资金返还给合约创建者。
假设有一个合约,其功能是 return 在某些修饰符有效后将资金返还给所有者地址。
pragma solidity ^0.6.1
contract example{
uint64 public contractTime;
constructor() public {
owner = msg.sender;
contractTime = uint64(block.timestamp) + 31556926;
}
receive() external payable {}
fallback() external payable {}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
modifier expiredContract {
require(block.timestamp >= contractTime);
_;
}
function returnToOwner() public payable onlyOwner expiredContract {
owner.transfer(address(this).balance); // Is there a better way to do this?
}
}
有没有更好的方法将合约资金清空到所有者地址?或者这是 "standard" 的做法?
经过更多挖掘后,您可以简单地使用 selfdestruct()
将所有资金返还给合约创建者。