Contract 0xAa4250216f77a79fD9983642A987f708f1FE7504

 
Ad
Ad
Txn Hash Method
Block
From
To
Value
0x09840a08de974bd1e8eb02e04cd4fdf71fb83b21b80c4f30e20e2b2722607904Setup55052352018-04-25 20:47:251154 days 14 hrs agoBlockchain Cuties: Deployer IN  BC: Bank0 Ether0.000183845
0x6234e4f013cf7134f6ca0e54deee09ad661842e232fae2850d64f74ef8046eceSetup54928362018-04-23 17:12:251156 days 18 hrs agoBlockchain Cuties: Deployer IN  BC: Bank0 Ether0.0003106086
0x8f6c6afbbaf851bedd79ed70ccdb510f8ed28f4f82df386fbda01d178bfb8d7c0x6060604054928002018-04-23 17:03:411156 days 18 hrs agoBlockchain Cuties: Deployer IN  Contract Creation0 Ether0.0031595586
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb262b0f6fc3bdf2cf03c3a8e36b49593d322dee67e6e1ee911f299a25f4362ba81360402019-07-12 11:31:04712 days 2 mins ago BC: Bank Blockchain Cuties: Old BC Token0.81 Ether
0x2235ec470417cef7b0da7eccfd426b9dc2f5e1758c38f6f8ce0849930d0b646c80017762019-06-21 13:33:44732 days 22 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.03 Ether
0x6dc9248935a4b2104908d5bfa1a609f16b82c8896a053a4aab3f42ba3696120c79578512019-06-14 16:29:01739 days 19 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0x950641bb8ae046374c1bf593a5c112064ef6b69eabfc02e57fcfeedb79fc586578438172019-05-27 20:26:01757 days 15 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.03 Ether
0x65a4bbe15d11b1b4edf79098ea1284a9b37262fe4f6a9b5aaf24cf75d44770ff78193062019-05-24 1:03:41761 days 10 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xb510221f5c48bad09941447e4ddc44b3773c4adec8813c0a923917e512d3260777733042019-05-16 19:55:20768 days 15 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0x022d82ca25e413656d4ba895dea04d50051202283fdc1145be605b7a98f0169b77732942019-05-16 19:53:57768 days 15 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xf44b6b3450e786a025f15fd1a91a4432a11d899d1e029289c40e9dd4ba94cbce77732222019-05-16 19:38:08768 days 15 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xf068a5b0ec279766239a8956a2ccbc5082ca18a2de751385f7e915dfb22393dc77332232019-05-10 14:12:22774 days 21 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xa883ebb149c394b840d0c91b232870469431d79b2efa3a3538842a7481fbf29677217732019-05-08 18:55:34776 days 16 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.03 Ether
0x7cedcd721291cd81776ff4b88299af3a0e7a347bf3c17d5d4ce0f45651cfdd1776970562019-05-04 21:53:16780 days 13 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xaeb78bd0391507d38aa30dc1bf02b169b3c4a01f6775c6d9fc53a2c31e2f188b76598692019-04-29 3:14:06786 days 8 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.03 Ether
0x18b51bc3b9f31f49f9cc215e33de9c575535bccb8db29ba53eedb1c765109e6576155442019-04-22 5:29:07793 days 6 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0x7da8f38a469379f70377f3d0e64296c5112aa27ac67f77873b5923f6d9bfe5af75877562019-04-17 21:34:52797 days 13 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xcc6198c8de2a0277ea668604f3c674ecd0f1e6abece48a67481929d9363a753675567252019-04-13 1:47:19802 days 9 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0x37381c726d5e63b5fe9a6054488065bd6c37bf88a330dc52c54ffa27d63021f675551622019-04-12 19:57:33802 days 15 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xcd57db61f73eb903e08197f0c6e376c4b3ef2cfd380d8ffd171f254b8f63345075549992019-04-12 19:21:44802 days 16 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.03 Ether
0xd46b3406576ea9fce85b15eee75181a652ff5742b4f20daa59b6dc7326de873775439972019-04-11 2:02:12804 days 9 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0x2470a9f5e68037911f3790592211f60baffa15e7ed8ed6f9102f109dad193f1475374502019-04-10 1:44:00805 days 9 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xc91d1350f2aab3d132c247fa5a5763e7ec6a3505ca5002edf236f555dfbc5f3b75374362019-04-10 1:40:01805 days 9 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xf14e7f0cda33f6b00fb544d3ca33657fa761b1985df0dc411f875dc0ff80e2dc75223202019-04-07 17:21:33807 days 18 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0x64de4cd94593a547cf6a4a99d3cdeda0b6d40f1ed5fce83c4ae7e9c95567e9e675199132019-04-07 8:20:38808 days 3 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0x9a4ee4ae09471b2af7962fc825665db7ee0ad537e74743ec04b17a5f0a6f737b75198912019-04-07 8:15:21808 days 3 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xb943dde8b5a64c89c6f5275ee33f606d96853ace9e3be4a04443e10c4056173675171952019-04-06 22:17:59808 days 13 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
0xbf4c120e4fec0ce3ee1d9b6732bfcc8f5048f18c38ebfb355ccc4a64936ef32e74533232019-03-27 22:26:11818 days 13 hrs ago Blockchain Cuties: Old BC Token BC: Bank0.01 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Bank

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-23
*/

pragma solidity ^0.4.20;

/**
 * @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.
   */
  function Ownable() 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;
}



contract CutieCoreInterface
{
    function isCutieCore() pure public returns (bool);

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


/// @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;

    // 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));
        _;
    }

    /// @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, uint16 _fee) public {
        require(_fee <= 10000);
        require(msg.sender == owner);
        ownerFee = _fee;
        
        CutieCoreInterface candidateContract = CutieCoreInterface(_coreAddress);
        require(candidateContract.isCutieCore());
        coreContract = candidateContract;
    }

    // @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)
        );
        if (address(this).balance > 0)
        {
            address(coreContract).transfer(address(this).balance);
        }
    }

    function onRemove() public onlyCore
    {
        withdraw();
    }
}


/// @dev Receives payments for payd features from players for Blockchain Cuties
/// @author https://BlockChainArchitect.io
contract Bank is CutiePluginBase
{
    function run(
        uint40,
        uint256,
        address
    ) 
        public
        payable
        onlyCore
    {
        revert();
    }

    function runSigned(uint40, uint256, address)
        external
        payable
        onlyCore
    {
        // just accept payments
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"onRemove","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":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":false,"inputs":[{"name":"_coreAddress","type":"address"},{"name":"_fee","type":"uint16"}],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","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"}]

606060405260008054600160a060020a033316600160a860020a03199091161790556106c0806100306000396000f3006060604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631195236981146100d45780633ccfd60b146100e95780633f4ba83a146100fc5780635c975abb1461010f5780638456cb59146101365780638da5cb5b146101495780638e0055531461017857806394a89233146101925780639652713e146101a5578063a055d455146101c6578063d5b2a01a146101e7578063e410a0c614610211578063e80db5db14610237578063f2fde38b1461024a575b600080fd5b34156100df57600080fd5b6100e7610269565b005b34156100f457600080fd5b6100e761028e565b341561010757600080fd5b6100e7610310565b341561011a57600080fd5b61012261038f565b604051901515815260200160405180910390f35b341561014157600080fd5b6100e761039f565b341561015457600080fd5b61015c610423565b604051600160a060020a03909116815260200160405180910390f35b341561018357600080fd5b6100e761ffff60043516610432565b341561019d57600080fd5b610122610493565b6100e764ffffffffff60043516602435600160a060020a0360443516610498565b6100e764ffffffffff60043516602435600160a060020a03604435166104b8565b34156101f257600080fd5b6101fa6104d3565b60405161ffff909116815260200160405180910390f35b341561021c57600080fd5b6100e7600160a060020a036004351661ffff602435166104e4565b341561024257600080fd5b61015c6105ea565b341561025557600080fd5b6100e7600160a060020a03600435166105f9565b60015433600160a060020a0390811691161461028457600080fd5b61028c61028e565b565b60005433600160a060020a03908116911614806102b9575060015433600160a060020a039081169116145b15156102c457600080fd5b600030600160a060020a031631111561028c57600154600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561028c57600080fd5b60005433600160a060020a0390811691161461032b57600080fd5b60005460a060020a900460ff16151561034357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60005460a060020a900460ff1681565b60005433600160a060020a039081169116146103ba57600080fd5b60005460a060020a900460ff16156103d157600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600054600160a060020a031681565b61271061ffff8216111561044557600080fd5b60005433600160a060020a0390811691161461046057600080fd5b6001805461ffff90921660a060020a0275ffff000000000000000000000000000000000000000019909216919091179055565b600190565b60015433600160a060020a039081169116146104b357600080fd5b505050565b60015433600160a060020a039081169116146100cf57600080fd5b60015460a060020a900461ffff1681565b600061271061ffff831611156104f957600080fd5b60005433600160a060020a0390811691161461051457600080fd5b506001805475ffff0000000000000000000000000000000000000000191660a060020a61ffff84160217905581600160a060020a038116634d6a813a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561059757600080fd5b5af115156105a457600080fd5b5050506040518051905015156105b957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600154600160a060020a031681565b60005433600160a060020a0390811691161461061457600080fd5b600160a060020a038116151561062957600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058207f9c65db02900529d27653b8b1123e2b073bd87ce8f789067af5b80f7c0ef5dc0029

Swarm Source

bzzr://7f9c65db02900529d27653b8b1123e2b073bd87ce8f789067af5b80f7c0ef5dc
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.