ETH Price: $2,537.70 (+2.96%)
Gas: 8.09 Gwei

Contract

0x8DFA8886a5F94699c92F5327895641d4cfe6A417
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw All Tok...76447892019-04-26 19:07:412011 days ago1556305661IN
0x8DFA8886...4cfe6A417
0 ETH0.000027931
Set Token76446282019-04-26 18:34:312011 days ago1556303671IN
0x8DFA8886...4cfe6A417
0 ETH0.0001744
0x6080604076446152019-04-26 18:32:062011 days ago1556303526IN
 Create: CuteCoinShop
0 ETH0.00256944

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CuteCoinShop

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *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

Contract ABI

[{"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"}]

608060405260008054600160a860020a03191633179055610881806100256000396000f3006080604052600436106100b95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663144fa6d781146100be5780633f4ba83a146100e15780635c975abb146100f65780636d70f7ae1461011f5780638456cb59146101405780638da5cb5b146101555780638f4ffcb1146101865780639870d7fe146101be578063ac8a584a146101df578063acef4ad514610200578063b81750661461022a578063f2fde38b14610251575b600080fd5b3480156100ca57600080fd5b506100df600160a060020a0360043516610272565b005b3480156100ed57600080fd5b506100df6102b8565b34801561010257600080fd5b5061010b61032e565b604080519115158252519081900360200190f35b34801561012b57600080fd5b5061010b600160a060020a036004351661033e565b34801561014c57600080fd5b506100df61035c565b34801561016157600080fd5b5061016a6103d7565b60408051600160a060020a039092168252519081900360200190f35b34801561019257600080fd5b506100df60048035600160a060020a0390811691602480359260443516916064359182019101356103e6565b3480156101ca57600080fd5b506100df600160a060020a036004351661053c565b3480156101eb57600080fd5b506100df600160a060020a036004351661058c565b34801561020c57600080fd5b506100df600160a060020a03600435811690602435166044356105c4565b34801561023657600080fd5b506100df600160a060020a036004358116906024351661069a565b34801561025d57600080fd5b506100df600160a060020a03600435166107c1565b600054600160a060020a0316331461028957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146102cf57600080fd5b60005460a060020a900460ff1615156102e757600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff1681565b600160a060020a031660009081526002602052604090205460ff1690565b600054600160a060020a0316331461037357600080fd5b60005460a060020a900460ff161561038a57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b60005460a060020a900460ff16156103fd57600080fd5b600154600160a060020a0384811691161461041757600080fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015230602483015260448201889052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050506040513d60208110156104b657600080fd5b505115156104c357600080fd5b7fbf753b268b770a18e5391d24e985d2580599e4bb12c46a61e86d348d4ef9df1b858584846040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050565b600054600160a060020a0316331461055357600080fd5b600160a060020a038116151561056857600080fd5b600160a060020a03166000908152600260205260409020805460ff19166001179055565b600054600160a060020a031633146105a357600080fd5b600160a060020a03166000908152600260205260409020805460ff19169055565b6105cd3361033e565b806105e25750600054600160a060020a031633145b15156105ed57600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561066957600080fd5b505af115801561067d573d6000803e3d6000fd5b505050506040513d602081101561069357600080fd5b5050505050565b60006106a53361033e565b806106ba5750600054600160a060020a031633145b15156106c557600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038516916370a082319160248083019260209291908290030181600087803b15801561072657600080fd5b505af115801561073a573d6000803e3d6000fd5b505050506040513d602081101561075057600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b15801561066957600080fd5b600054600160a060020a031633146107d857600080fd5b600160a060020a03811615156107ed57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820c122fdd3b5695db3ba57c14af447356c791472117a1285c7f6d0548f430b56cc0029

Deployed Bytecode

0x6080604052600436106100b95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663144fa6d781146100be5780633f4ba83a146100e15780635c975abb146100f65780636d70f7ae1461011f5780638456cb59146101405780638da5cb5b146101555780638f4ffcb1146101865780639870d7fe146101be578063ac8a584a146101df578063acef4ad514610200578063b81750661461022a578063f2fde38b14610251575b600080fd5b3480156100ca57600080fd5b506100df600160a060020a0360043516610272565b005b3480156100ed57600080fd5b506100df6102b8565b34801561010257600080fd5b5061010b61032e565b604080519115158252519081900360200190f35b34801561012b57600080fd5b5061010b600160a060020a036004351661033e565b34801561014c57600080fd5b506100df61035c565b34801561016157600080fd5b5061016a6103d7565b60408051600160a060020a039092168252519081900360200190f35b34801561019257600080fd5b506100df60048035600160a060020a0390811691602480359260443516916064359182019101356103e6565b3480156101ca57600080fd5b506100df600160a060020a036004351661053c565b3480156101eb57600080fd5b506100df600160a060020a036004351661058c565b34801561020c57600080fd5b506100df600160a060020a03600435811690602435166044356105c4565b34801561023657600080fd5b506100df600160a060020a036004358116906024351661069a565b34801561025d57600080fd5b506100df600160a060020a03600435166107c1565b600054600160a060020a0316331461028957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146102cf57600080fd5b60005460a060020a900460ff1615156102e757600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff1681565b600160a060020a031660009081526002602052604090205460ff1690565b600054600160a060020a0316331461037357600080fd5b60005460a060020a900460ff161561038a57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b60005460a060020a900460ff16156103fd57600080fd5b600154600160a060020a0384811691161461041757600080fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015230602483015260448201889052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050506040513d60208110156104b657600080fd5b505115156104c357600080fd5b7fbf753b268b770a18e5391d24e985d2580599e4bb12c46a61e86d348d4ef9df1b858584846040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050565b600054600160a060020a0316331461055357600080fd5b600160a060020a038116151561056857600080fd5b600160a060020a03166000908152600260205260409020805460ff19166001179055565b600054600160a060020a031633146105a357600080fd5b600160a060020a03166000908152600260205260409020805460ff19169055565b6105cd3361033e565b806105e25750600054600160a060020a031633145b15156105ed57600080fd5b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561066957600080fd5b505af115801561067d573d6000803e3d6000fd5b505050506040513d602081101561069357600080fd5b5050505050565b60006106a53361033e565b806106ba5750600054600160a060020a031633145b15156106c557600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038516916370a082319160248083019260209291908290030181600087803b15801561072657600080fd5b505af115801561073a573d6000803e3d6000fd5b505050506040513d602081101561075057600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b15801561066957600080fd5b600054600160a060020a031633146107d857600080fd5b600160a060020a03811615156107ed57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820c122fdd3b5695db3ba57c14af447356c791472117a1285c7f6d0548f430b56cc0029

Swarm Source

bzzr://c122fdd3b5695db3ba57c14af447356c791472117a1285c7f6d0548f430b56cc

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.