Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CuteCoinShop
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-04-26 */ pragma solidity ^0.4.23; pragma solidity ^0.4.23; 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(); } } pragma solidity ^0.4.23; pragma solidity ^0.4.23; // ---------------------------------------------------------------------------- contract ERC20 { // ERC Token Standard #223 Interface // https://github.com/ethereum/EIPs/issues/223 string public symbol; string public name; uint8 public decimals; function transfer(address _to, uint _value, bytes _data) external returns (bool success); // approveAndCall function approveAndCall(address spender, uint tokens, bytes data) external returns (bool success); // ERC Token Standard #20 Interface // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md function totalSupply() public constant returns (uint); function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); // bulk operations function transferBulk(address[] to, uint[] tokens) public; function approveBulk(address[] spender, uint[] tokens) public; } contract CuteCoinInterface is ERC20 { function mint(address target, uint256 mintedAmount) public; function mintBulk(address[] target, uint256[] mintedAmount) external; function burn(uint256 amount) external; } /// @dev Receives payments for payd features from players for Blockchain Cuties /// @author https://BlockChainArchitect.io contract CuteCoinShop is Pausable { CuteCoinInterface token; mapping (address=>bool) operatorAddress; function addOperator(address _newOperator) public onlyOwner { require(_newOperator != address(0)); operatorAddress[_newOperator] = true; } function removeOperator(address _newOperator) public onlyOwner { delete(operatorAddress[_newOperator]); } function isOperator(address _address) view public returns (bool) { return operatorAddress[_address]; } modifier onlyOperator() { require(isOperator(msg.sender) || msg.sender == owner); _; } event CuteCoinShopBuy(address sender, uint value, bytes extraData); function setToken(CuteCoinInterface _token) external onlyOwner { token = _token; } function receiveApproval(address _sender, uint256 _value, address _tokenContract, bytes _extraData) external whenNotPaused { require(_tokenContract == address(token)); require(token.transferFrom(_sender, address(this), _value)); emit CuteCoinShopBuy(_sender, _value, _extraData); } // @dev Transfers to _withdrawToAddress all tokens controlled by // contract _tokenContract. function withdrawAllTokensFromBalance(ERC20 _tokenContract, address _withdrawToAddress) external onlyOperator { uint256 balance = _tokenContract.balanceOf(address(this)); _tokenContract.transfer(_withdrawToAddress, balance); } // @dev Transfers to _withdrawToAddress all tokens controlled by // contract _tokenContract. function withdrawTokenFromBalance(ERC20 _tokenContract, address _withdrawToAddress, uint amount) external onlyOperator { _tokenContract.transfer(_withdrawToAddress, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"setToken","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":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOperator","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":"_sender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_tokenContract","type":"address"},{"name":"_extraData","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOperator","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOperator","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_withdrawToAddress","type":"address"},{"name":"amount","type":"uint256"}],"name":"withdrawTokenFromBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_withdrawToAddress","type":"address"}],"name":"withdrawAllTokensFromBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"extraData","type":"bytes"}],"name":"CuteCoinShopBuy","type":"event"},{"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
608060405260008054600160a860020a03191633179055610881806100256000396000f3006080604052600436106100b95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663144fa6d781146100be5780633f4ba83a146100e15780635c975abb146100f65780636d70f7ae1461011f5780638456cb59146101405780638da5cb5b146101555780638f4ffcb1146101865780639870d7fe146101be578063ac8a584a146101df578063acef4ad514610200578063b81750661461022a578063f2fde38b14610251575b600080fd5b3480156100ca57600080fd5b506100df600160a060020a0360043516610272565b005b3480156100ed57600080fd5b506100df6102b8565b34801561010257600080fd5b5061010b61032e565b604080519115158252519081900360200190f35b34801561012b57600080fd5b5061010b600160a060020a036004351661033e565b34801561014c57600080fd5b506100df61035c565b34801561016157600080fd5b5061016a6103d7565b60408051600160a060020a039092168252519081900360200190f35b34801561019257600080fd5b506100df60048035600160a060020a0390811691602480359260443516916064359182019101356103e6565b3480156101ca57600080fd5b506100df600160a060020a036004351661053c565b3480156101eb57600080fd5b506100df600160a060020a036004351661058c565b34801561020c57600080fd5b506100df600160a060020a03600435811690602435166044356105c4565b34801561023657600080fd5b506100df600160a060020a036004358116906024351661069a565b34801561025d57600080fd5b506100df600160a060020a03600435166107c1565b600054600160a060020a0316331461028957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146102cf57600080fd5b60005460a060020a900460ff1615156102e757600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff1681565b600160a060020a031660009081526002602052604090205460ff1690565b600054600160a060020a0316331461037357600080fd5b60005460a060020a900460ff161561038a57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b60005460a060020a900460ff16156103fd57600080fd5b600154600160a060020a0384811691161461041757600080fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015230602483015260448201889052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050506040513d60208110156104b657600080fd5b505115156104c357600080fd5b7fbf753b268b770a18e5391d24e985d2580599e4bb12c46a61e86d348d4ef9df1b858584846040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050565b600054600160a060020a0316331461055357600080fd5b600160a060020a038116151561056857600080fd5b600160a060020a03166000908152600260205260409020805460ff19166001179055565b600054600160a060020a031633146105a357600080fd5b600160a060020a03166000908152600260205260409020805460ff19169055565b6105cd3361033e565b806105e25750600054600160a060020a031633145b15156105ed57600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561066957600080fd5b505af115801561067d573d6000803e3d6000fd5b505050506040513d602081101561069357600080fd5b5050505050565b60006106a53361033e565b806106ba5750600054600160a060020a031633145b15156106c557600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038516916370a082319160248083019260209291908290030181600087803b15801561072657600080fd5b505af115801561073a573d6000803e3d6000fd5b505050506040513d602081101561075057600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b15801561066957600080fd5b600054600160a060020a031633146107d857600080fd5b600160a060020a03811615156107ed57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820c122fdd3b5695db3ba57c14af447356c791472117a1285c7f6d0548f430b56cc0029
Deployed Bytecode
0x6080604052600436106100b95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663144fa6d781146100be5780633f4ba83a146100e15780635c975abb146100f65780636d70f7ae1461011f5780638456cb59146101405780638da5cb5b146101555780638f4ffcb1146101865780639870d7fe146101be578063ac8a584a146101df578063acef4ad514610200578063b81750661461022a578063f2fde38b14610251575b600080fd5b3480156100ca57600080fd5b506100df600160a060020a0360043516610272565b005b3480156100ed57600080fd5b506100df6102b8565b34801561010257600080fd5b5061010b61032e565b604080519115158252519081900360200190f35b34801561012b57600080fd5b5061010b600160a060020a036004351661033e565b34801561014c57600080fd5b506100df61035c565b34801561016157600080fd5b5061016a6103d7565b60408051600160a060020a039092168252519081900360200190f35b34801561019257600080fd5b506100df60048035600160a060020a0390811691602480359260443516916064359182019101356103e6565b3480156101ca57600080fd5b506100df600160a060020a036004351661053c565b3480156101eb57600080fd5b506100df600160a060020a036004351661058c565b34801561020c57600080fd5b506100df600160a060020a03600435811690602435166044356105c4565b34801561023657600080fd5b506100df600160a060020a036004358116906024351661069a565b34801561025d57600080fd5b506100df600160a060020a03600435166107c1565b600054600160a060020a0316331461028957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146102cf57600080fd5b60005460a060020a900460ff1615156102e757600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff1681565b600160a060020a031660009081526002602052604090205460ff1690565b600054600160a060020a0316331461037357600080fd5b60005460a060020a900460ff161561038a57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b60005460a060020a900460ff16156103fd57600080fd5b600154600160a060020a0384811691161461041757600080fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015230602483015260448201889052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050506040513d60208110156104b657600080fd5b505115156104c357600080fd5b7fbf753b268b770a18e5391d24e985d2580599e4bb12c46a61e86d348d4ef9df1b858584846040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050565b600054600160a060020a0316331461055357600080fd5b600160a060020a038116151561056857600080fd5b600160a060020a03166000908152600260205260409020805460ff19166001179055565b600054600160a060020a031633146105a357600080fd5b600160a060020a03166000908152600260205260409020805460ff19169055565b6105cd3361033e565b806105e25750600054600160a060020a031633145b15156105ed57600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561066957600080fd5b505af115801561067d573d6000803e3d6000fd5b505050506040513d602081101561069357600080fd5b5050505050565b60006106a53361033e565b806106ba5750600054600160a060020a031633145b15156106c557600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038516916370a082319160248083019260209291908290030181600087803b15801561072657600080fd5b505af115801561073a573d6000803e3d6000fd5b505050506040513d602081101561075057600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b15801561066957600080fd5b600054600160a060020a031633146107d857600080fd5b600160a060020a03811615156107ed57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820c122fdd3b5695db3ba57c14af447356c791472117a1285c7f6d0548f430b56cc0029
Swarm Source
bzzr://c122fdd3b5695db3ba57c14af447356c791472117a1285c7f6d0548f430b56cc
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.