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