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.
72 lines
1.4 KiB
72 lines
1.4 KiB
import "./Initializable.sol";
|
|
|
|
contract Fixed is Initializable{
|
|
address payable owner;
|
|
|
|
constructor() {
|
|
owner = msg.sender;
|
|
}
|
|
|
|
function initialize() external initializer{
|
|
require(owner == address(0));
|
|
owner = 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 = msg.sender;
|
|
}
|
|
|
|
function initialize() external initializer{
|
|
require(owner == address(0));
|
|
owner = msg.sender;
|
|
}
|
|
}
|
|
|
|
contract Fixed2 is Initializable {
|
|
address payable owner;
|
|
|
|
constructor() initializer {}
|
|
|
|
function initialize() external initializer {
|
|
require(owner == address(0));
|
|
owner = 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);
|
|
}
|
|
} |