mirror of https://github.com/crytic/slither
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.4 KiB
73 lines
1.4 KiB
2 years ago
|
import "./Initializable.sol";
|
||
|
|
||
|
contract Fixed is Initializable{
|
||
|
address payable owner;
|
||
|
|
||
|
constructor() {
|
||
|
owner = payable(msg.sender);
|
||
|
}
|
||
|
|
||
|
function initialize() external initializer{
|
||
|
require(owner == address(0));
|
||
|
owner = payable(msg.sender);
|
||
|
|
||
|
}
|
||
|
function kill() external{
|
||
|
require(msg.sender == owner);
|
||
|
selfdestruct(owner);
|
||
|
}
|
||
|
|
||
|
function other_function() external{
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
contract Not_Upgradeable{
|
||
|
}
|
||
|
|
||
|
contract UpgradeableNoDestruct is Initializable{
|
||
|
address payable owner;
|
||
|
|
||
|
constructor() {
|
||
|
owner = payable(msg.sender);
|
||
|
}
|
||
|
|
||
|
function initialize() external initializer{
|
||
|
require(owner == address(0));
|
||
|
owner = payable(msg.sender);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
contract Fixed2 is Initializable {
|
||
|
address payable owner;
|
||
|
|
||
|
constructor() initializer {}
|
||
|
|
||
|
function initialize() external initializer {
|
||
|
require(owner == address(0));
|
||
|
owner = payable(msg.sender);
|
||
|
}
|
||
|
|
||
|
function kill() external {
|
||
|
require(msg.sender == owner);
|
||
|
selfdestruct(owner);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
contract Fixed3 is Initializable {
|
||
|
address payable owner;
|
||
|
|
||
|
constructor() {
|
||
|
_disableInitializers();
|
||
|
}
|
||
|
|
||
|
function initialize() external initializer {
|
||
|
require(owner == address(0));
|
||
|
owner = payable(msg.sender);
|
||
|
}
|
||
|
|
||
|
function kill() external {
|
||
|
require(msg.sender == owner);
|
||
|
selfdestruct(owner);
|
||
|
}
|
||
|
}
|