Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Setup | 7174689 | 2196 days ago | IN | 0 ETH | 0.00014625 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
8136040 | 2038 days ago | 24.318 ETH | ||||
8135084 | 2039 days ago | 0.025 ETH | ||||
8122561 | 2041 days ago | 0.01 ETH | ||||
8122511 | 2041 days ago | 0.025 ETH | ||||
8121790 | 2041 days ago | 0.025 ETH | ||||
8120598 | 2041 days ago | 0.01 ETH | ||||
8119071 | 2041 days ago | 0.01 ETH | ||||
8114452 | 2042 days ago | 0.01 ETH | ||||
8111483 | 2042 days ago | 0.01 ETH | ||||
8102839 | 2044 days ago | 0.025 ETH | ||||
8102378 | 2044 days ago | 0.049 ETH | ||||
8102296 | 2044 days ago | 0.01 ETH | ||||
8102247 | 2044 days ago | 0.01 ETH | ||||
8102042 | 2044 days ago | 0.01 ETH | ||||
8101997 | 2044 days ago | 0.01 ETH | ||||
8095258 | 2045 days ago | 0.01 ETH | ||||
8094987 | 2045 days ago | 0.049 ETH | ||||
8094848 | 2045 days ago | 0.049 ETH | ||||
8094822 | 2045 days ago | 0.025 ETH | ||||
8094633 | 2045 days ago | 0.01 ETH | ||||
8089839 | 2046 days ago | 0.01 ETH | ||||
8083144 | 2047 days ago | 0.188 ETH | ||||
8082552 | 2047 days ago | 0.049 ETH | ||||
8078745 | 2047 days ago | 0.01 ETH | ||||
8078739 | 2047 days ago | 0.01 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
PawShop
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-02-04 */ pragma solidity ^0.4.23; /** * @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 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); _; } /** * @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 newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; emit Unpause(); } } /// @author https://BlockChainArchitect.iocontract Bank is CutiePluginBase contract PluginInterface { /// @dev simply a boolean to indicate this is the contract we expect to be function isPluginInterface() public pure returns (bool); function onRemove() public; /// @dev Begins new feature. /// @param _cutieId - ID of token to auction, sender must be owner. /// @param _parameter - arbitrary parameter /// @param _seller - Old owner, if not the message sender function run( uint40 _cutieId, uint256 _parameter, address _seller ) public payable; /// @dev Begins new feature, approved and signed by COO. /// @param _cutieId - ID of token to auction, sender must be owner. /// @param _parameter - arbitrary parameter function runSigned( uint40 _cutieId, uint256 _parameter, address _owner ) external payable; function withdraw() public; } /// @title BlockchainCuties: Collectible and breedable cuties on the Ethereum blockchain. /// @author https://BlockChainArchitect.io /// @dev This is the BlockchainCuties configuration. It can be changed redeploying another version. interface ConfigInterface { function isConfig() external pure returns (bool); function getCooldownIndexFromGeneration(uint16 _generation, uint40 _cutieId) external view returns (uint16); function getCooldownEndTimeFromIndex(uint16 _cooldownIndex, uint40 _cutieId) external view returns (uint40); function getCooldownIndexFromGeneration(uint16 _generation) external view returns (uint16); function getCooldownEndTimeFromIndex(uint16 _cooldownIndex) external view returns (uint40); function getCooldownIndexCount() external view returns (uint256); function getBabyGenFromId(uint40 _momId, uint40 _dadId) external view returns (uint16); function getBabyGen(uint16 _momGen, uint16 _dadGen) external pure returns (uint16); function getTutorialBabyGen(uint16 _dadGen) external pure returns (uint16); function getBreedingFee(uint40 _momId, uint40 _dadId) external view returns (uint256); } contract CutieCoreInterface { function isCutieCore() pure public returns (bool); ConfigInterface public config; function transferFrom(address _from, address _to, uint256 _cutieId) external; function transfer(address _to, uint256 _cutieId) external; function ownerOf(uint256 _cutieId) external view returns (address owner); function getCutie(uint40 _id) external view returns ( uint256 genes, uint40 birthTime, uint40 cooldownEndTime, uint40 momId, uint40 dadId, uint16 cooldownIndex, uint16 generation ); function getGenes(uint40 _id) public view returns ( uint256 genes ); function getCooldownEndTime(uint40 _id) public view returns ( uint40 cooldownEndTime ); function getCooldownIndex(uint40 _id) public view returns ( uint16 cooldownIndex ); function getGeneration(uint40 _id) public view returns ( uint16 generation ); function getOptional(uint40 _id) public view returns ( uint64 optional ); function changeGenes( uint40 _cutieId, uint256 _genes) public; function changeCooldownEndTime( uint40 _cutieId, uint40 _cooldownEndTime) public; function changeCooldownIndex( uint40 _cutieId, uint16 _cooldownIndex) public; function changeOptional( uint40 _cutieId, uint64 _optional) public; function changeGeneration( uint40 _cutieId, uint16 _generation) public; function createSaleAuction( uint40 _cutieId, uint128 _startPrice, uint128 _endPrice, uint40 _duration ) public; function getApproved(uint256 _tokenId) external returns (address); function totalSupply() view external returns (uint256); function createPromoCutie(uint256 _genes, address _owner) external; function checkOwnerAndApprove(address _claimant, uint40 _cutieId, address _pluginsContract) external view; function breedWith(uint40 _momId, uint40 _dadId) public payable returns (uint40); function getBreedingFee(uint40 _momId, uint40 _dadId) public view returns (uint256); } /// @author https://BlockChainArchitect.iocontract Bank is CutiePluginBase contract CutiePluginBase is PluginInterface, Pausable { function isPluginInterface() public pure returns (bool) { return true; } // Reference to contract tracking NFT ownership CutieCoreInterface public coreContract; address public pluginsContract; // Cut owner takes on each auction, measured in basis points (1/100 of a percent). // Values 0-10,000 map to 0%-100% uint16 public ownerFee; // @dev Throws if called by any account other than the owner. modifier onlyCore() { require(msg.sender == address(coreContract)); _; } modifier onlyPlugins() { require(msg.sender == pluginsContract); _; } /// @dev Constructor creates a reference to the NFT ownership contract /// and verifies the owner cut is in the valid range. /// @param _coreAddress - address of a deployed contract implementing /// the Nonfungible Interface. /// @param _fee - percent cut the owner takes on each auction, must be /// between 0-10,000. function setup(address _coreAddress, address _pluginsContract, uint16 _fee) public { require(_fee <= 10000); require(msg.sender == owner); ownerFee = _fee; CutieCoreInterface candidateContract = CutieCoreInterface(_coreAddress); require(candidateContract.isCutieCore()); coreContract = candidateContract; pluginsContract = _pluginsContract; } // @dev Set the owner's fee. // @param fee should be between 0-10,000. function setFee(uint16 _fee) public { require(_fee <= 10000); require(msg.sender == owner); ownerFee = _fee; } /// @dev Returns true if the claimant owns the token. /// @param _claimant - Address claiming to own the token. /// @param _cutieId - ID of token whose ownership to verify. function _isOwner(address _claimant, uint40 _cutieId) internal view returns (bool) { return (coreContract.ownerOf(_cutieId) == _claimant); } /// @dev Escrows the NFT, assigning ownership to this contract. /// Throws if the escrow fails. /// @param _owner - Current owner address of token to escrow. /// @param _cutieId - ID of token whose approval to verify. function _escrow(address _owner, uint40 _cutieId) internal { // it will throw if transfer fails coreContract.transferFrom(_owner, this, _cutieId); } /// @dev Transfers an NFT owned by this contract to another address. /// Returns true if the transfer succeeds. /// @param _receiver - Address to transfer NFT to. /// @param _cutieId - ID of token to transfer. function _transfer(address _receiver, uint40 _cutieId) internal { // it will throw if transfer fails coreContract.transfer(_receiver, _cutieId); } /// @dev Computes owner's cut of a sale. /// @param _price - Sale price of NFT. function _computeFee(uint128 _price) internal view returns (uint128) { // NOTE: We don't use SafeMath (or similar) in this function because // all of our entry functions carefully cap the maximum values for // currency (at 128-bits), and ownerFee <= 10000 (see the require() // statement in the ClockAuction constructor). The result of this // function is always guaranteed to be <= _price. return _price * ownerFee / 10000; } function withdraw() public { require( msg.sender == owner || msg.sender == address(coreContract) ); _withdraw(); } function _withdraw() internal { if (address(this).balance > 0) { address(coreContract).transfer(address(this).balance); } } function onRemove() public onlyPlugins { _withdraw(); } function run( uint40, uint256, address ) public payable onlyCore { revert(); } } /// @dev Receives payments for payd features from players for Blockchain Cuties /// @author https://BlockChainArchitect.io contract PawShop is CutiePluginBase { function run( uint40, uint256, address ) public payable onlyPlugins { revert(); } function runSigned(uint40, uint256, address) external payable onlyPlugins { // just accept payments } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"onRemove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_coreAddress","type":"address"},{"name":"_pluginsContract","type":"address"},{"name":"_fee","type":"uint16"}],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_fee","type":"uint16"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPluginInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint40"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"runSigned","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"pluginsContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint40"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"run","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"ownerFee","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"coreContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405260008054600160a860020a031916331790556106ec806100256000396000f3006080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631195236981146100df5780632c5959f9146100f65780633ccfd60b146101245780633f4ba83a146101395780635c975abb1461014e5780638456cb59146101775780638da5cb5b1461018c5780638e005553146101bd57806394a89233146101d95780639652713e146101ee578063976ef75b1461020f578063a055d45514610224578063d5b2a01a14610245578063e80db5db14610271578063f2fde38b14610286575b600080fd5b3480156100eb57600080fd5b506100f46102a7565b005b34801561010257600080fd5b506100f4600160a060020a036004358116906024351661ffff604435166102c8565b34801561013057600080fd5b506100f46103e3565b34801561014557600080fd5b506100f4610411565b34801561015a57600080fd5b50610163610487565b604080519115158252519081900360200190f35b34801561018357600080fd5b506100f4610497565b34801561019857600080fd5b506101a1610512565b60408051600160a060020a039092168252519081900360200190f35b3480156101c957600080fd5b506100f461ffff60043516610521565b3480156101e557600080fd5b5061016361057e565b6100f464ffffffffff60043516602435600160a060020a0360443516610583565b34801561021b57600080fd5b506101a161059f565b6100f464ffffffffff60043516602435600160a060020a03604435166105ae565b34801561025157600080fd5b5061025a6105c5565b6040805161ffff9092168252519081900360200190f35b34801561027d57600080fd5b506101a16105d6565b34801561029257600080fd5b506100f4600160a060020a03600435166105e5565b600254600160a060020a031633146102be57600080fd5b6102c6610679565b565b600061271061ffff831611156102dd57600080fd5b600054600160a060020a031633146102f457600080fd5b81600260146101000a81548161ffff021916908361ffff16021790555083905080600160a060020a0316634d6a813a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561036b57600080fd5b505af115801561037f573d6000803e3d6000fd5b505050506040513d602081101561039557600080fd5b505115156103a257600080fd5b60018054600160a060020a0392831673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054949092169316929092179091555050565b600054600160a060020a03163314806104065750600154600160a060020a031633145b15156102be57600080fd5b600054600160a060020a0316331461042857600080fd5b60005460a060020a900460ff16151561044057600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff1681565b600054600160a060020a031633146104ae57600080fd5b60005460a060020a900460ff16156104c557600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b61271061ffff8216111561053457600080fd5b600054600160a060020a0316331461054b57600080fd5b6002805461ffff90921660a060020a0275ffff000000000000000000000000000000000000000019909216919091179055565b600190565b600254600160a060020a0316331461059a57600080fd5b505050565b600254600160a060020a031681565b600254600160a060020a031633146100da57600080fd5b60025460a060020a900461ffff1681565b600154600160a060020a031681565b600054600160a060020a031633146105fc57600080fd5b600160a060020a038116151561061157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000303111156102c657600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156106bd573d6000803e3d6000fd5b505600a165627a7a72305820c3cc09b9b612d4ba7d31ca5bdefe6a7f76c978e3a4a6a3e95ab92f1d00f875700029
Deployed Bytecode
0x6080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631195236981146100df5780632c5959f9146100f65780633ccfd60b146101245780633f4ba83a146101395780635c975abb1461014e5780638456cb59146101775780638da5cb5b1461018c5780638e005553146101bd57806394a89233146101d95780639652713e146101ee578063976ef75b1461020f578063a055d45514610224578063d5b2a01a14610245578063e80db5db14610271578063f2fde38b14610286575b600080fd5b3480156100eb57600080fd5b506100f46102a7565b005b34801561010257600080fd5b506100f4600160a060020a036004358116906024351661ffff604435166102c8565b34801561013057600080fd5b506100f46103e3565b34801561014557600080fd5b506100f4610411565b34801561015a57600080fd5b50610163610487565b604080519115158252519081900360200190f35b34801561018357600080fd5b506100f4610497565b34801561019857600080fd5b506101a1610512565b60408051600160a060020a039092168252519081900360200190f35b3480156101c957600080fd5b506100f461ffff60043516610521565b3480156101e557600080fd5b5061016361057e565b6100f464ffffffffff60043516602435600160a060020a0360443516610583565b34801561021b57600080fd5b506101a161059f565b6100f464ffffffffff60043516602435600160a060020a03604435166105ae565b34801561025157600080fd5b5061025a6105c5565b6040805161ffff9092168252519081900360200190f35b34801561027d57600080fd5b506101a16105d6565b34801561029257600080fd5b506100f4600160a060020a03600435166105e5565b600254600160a060020a031633146102be57600080fd5b6102c6610679565b565b600061271061ffff831611156102dd57600080fd5b600054600160a060020a031633146102f457600080fd5b81600260146101000a81548161ffff021916908361ffff16021790555083905080600160a060020a0316634d6a813a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561036b57600080fd5b505af115801561037f573d6000803e3d6000fd5b505050506040513d602081101561039557600080fd5b505115156103a257600080fd5b60018054600160a060020a0392831673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054949092169316929092179091555050565b600054600160a060020a03163314806104065750600154600160a060020a031633145b15156102be57600080fd5b600054600160a060020a0316331461042857600080fd5b60005460a060020a900460ff16151561044057600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff1681565b600054600160a060020a031633146104ae57600080fd5b60005460a060020a900460ff16156104c557600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b61271061ffff8216111561053457600080fd5b600054600160a060020a0316331461054b57600080fd5b6002805461ffff90921660a060020a0275ffff000000000000000000000000000000000000000019909216919091179055565b600190565b600254600160a060020a0316331461059a57600080fd5b505050565b600254600160a060020a031681565b600254600160a060020a031633146100da57600080fd5b60025460a060020a900461ffff1681565b600154600160a060020a031681565b600054600160a060020a031633146105fc57600080fd5b600160a060020a038116151561061157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000303111156102c657600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156106bd573d6000803e3d6000fd5b505600a165627a7a72305820c3cc09b9b612d4ba7d31ca5bdefe6a7f76c978e3a4a6a3e95ab92f1d00f875700029
Swarm Source
bzzr://c3cc09b9b612d4ba7d31ca5bdefe6a7f76c978e3a4a6a3e95ab92f1d00f87570
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.