solidity查询合约余额取款
ownable.sol库 用于设置拥有者调用的库
pragma solidity ^0.5.12; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address payable public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner,'Must contract owner'); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address payable newOwner) public onlyOwner { require(newOwner != address(0),'Must contract owner'); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } }
下面代码不全 其实核心要调用 ownable.sol 这里就不在赘述
pragma solidity ^0.5.12; import "./zombieMarket.sol"; import "./zombieFeeding.sol"; import "./zombieAttack.sol"; contract ZombieCore is ZombieMarket,ZombieFeeding,ZombieAttack { //constant常量无法修改 string public constant name = "MyCryptoZombie"; string public constant symbol = "MCZ"; //外部转出币要加空函数 function() external payable { } //创建者提取全部币 function withdraw() external onlyOwner { owner.transfer(address(this).balance); } function checkBalance() external view onlyOwner returns(uint) { return address(this).balance; } }