Hi, code of two files Ownable, Destroyable are below. Kindly please check .
pragma solidity >=0.7.0 <0.9.0;
/*
-
@title Owner
-
@dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
require(msg.sender == owner, “Caller is not owner”);
_;
}
/*
-
@dev Set contract deployer as owner
*/
constructor() {
owner = msg.sender; // ‘msg.sender’ is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/*
-
@dev Change owner
-
@param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/*
-
@dev Return owner address
-
@return address of owner
/
function getOwner() external view returns (address) {
return owner;
}
}
/********************************************************************************************************/
pragma solidity >=0.7.0 <0.9.0;
contract Destroyable {
address payable private owner;
uint256 number;
constructor() {
owner = msg.sender;
}
function store(uint256 num) public {
number = num;
}
function retrieve() public view returns (uint256){
return number;
}
function close() public {
selfdestruct(owner);
}
}
/********************************************************************************************************/
pragma solidity 0.7.5;
import “./2_Owner.sol”;
import “./4_Destroyable.sol”;
contract Bank is Owner, Destroyable {
…
}
/********************************************************************************************************/
Thank you in advance,
Andrei