Static Analyzer for Solidity
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.
 
 
 
 
slither/tests/e2e/detectors/test_data/unprotected-upgrade/0.8.15/Fixed.sol

73 lines
1.4 KiB

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);
}
}