Contract Overview |  BlockchainCuties_SaleMarket1
Balance: 2.589981003223232406 Ether
Ether Value: $301.40 (@ $116.37/ETH)
Transactions: 1817 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x45f254fd3fef54f3a5a8d601d291f2a5bf9d8d67at txn 0x81e8680747d79bb12227a0bd82acce74e0729687e530127812bdd5ccece84772
Token Balance:
 Latest 25 transactions from a total of 1817 transactions

TxHash Age From To Value [TxFee]
0x3f60129f7a2c4e0db3c2a931b0a12c217b405cdafe185bf350f9e055ed113c6421 days 3 hrs ago0xca4378612074dc26e6daec2c5835971dd8394c17  IN   BlockchainCuties_SaleMarket10.217000001 Ether0.000124695
0x324ae779ff6b259e8d73b1fdefbf824ebe2753d8e8da6e177cca720fb08a00ba28 days 21 hrs ago0xd311e934d9a1d9f71004976cd0268fd25f9cb77f  IN   BlockchainCuties_SaleMarket10 Ether0.000127512
0xc194d0be3d7795d97f5fae4dae4184299a51f5033827280e8c99b006a8d740f429 days 6 hrs ago0xd311e934d9a1d9f71004976cd0268fd25f9cb77f  IN   BlockchainCuties_SaleMarket10 Ether0.0001105104
0xf7d7d5939efeb3f73e53da4e665bfb0a92ddf087d80ba611b3daee9bc9ca61e138 days 21 hrs ago0x9f60aa00b6531291702d0e1892ab31d5c150661c  IN   BlockchainCuties_SaleMarket10.010000001 Ether0.000212516
0x73dafae85e2192345bc0d2010e5ddc72c709b84dbef66f4730dc3de9dcfb17b041 days 5 hrs ago0x0a27fa2e2f5bfd497653786bb75048de340d3242  IN   BlockchainCuties_SaleMarket10.011000001 Ether0.0001275096
0xea51cc7676a30fd3d601769f7c6c4aa5984d99c9c3621a11bae81e3e6d6c56c645 days 8 hrs ago0x39c4e59bea399f09818c817a7ad96ed4891396ef  IN   BlockchainCuties_SaleMarket10 Ether0.0001317624
0x9f635f428528e5068716d0a71e0c73fe5a314acf871fe7eb90c2ae223ae0a0aa45 days 8 hrs ago0x39c4e59bea399f09818c817a7ad96ed4891396ef  IN   BlockchainCuties_SaleMarket10 Ether0.0001445136
0x6b2c0766432dc52bd8286f073a59aa19496861021b4cc6738806d19446c959b345 days 8 hrs ago0x39c4e59bea399f09818c817a7ad96ed4891396ef  IN   BlockchainCuties_SaleMarket10 Ether0.0001445136
0x991fa6c1ac232b05aa073e8c4253bca60e16cd50a4be219148b822ae35acf77045 days 8 hrs ago0x39c4e59bea399f09818c817a7ad96ed4891396ef  IN   BlockchainCuties_SaleMarket10 Ether0.0001317624
0x61024df8654070e498335823f8a09ab70f36e7102c90acd4b75663eae98a12ff58 days 21 hrs ago0xf281e85a0b992efa5fda4f52b35685dc5ee67bea  IN   BlockchainCuties_SaleMarket10.005000001 Ether0.0000567425
0x1c80ff6b75862d605e9e7cd3e1f1ee5c2d5f69a3f43f139b53b9659f1e343f6258 days 21 hrs ago0xf281e85a0b992efa5fda4f52b35685dc5ee67bea  IN   BlockchainCuties_SaleMarket10.005000001 Ether0.0001328225
0x6dd82ae51cfd5c647e503fa586c76e6d1bb21f12b57789c3e2e5ed30ebbf9e4863 days 20 hrs ago0x7d4bc66e4a73cb187640e578cf60075ebca44420  IN   BlockchainCuties_SaleMarket10.005000001 Ether0.000204387
0x8ee3aa403cdf770f98fea63009b6518b1c064d44c818a6936bc3005abec8527769 days 22 hrs ago0x7fff8318dbb59054fe04a9ae6a3f806f854c5e1b  IN   BlockchainCuties_SaleMarket10 Ether0.000127512
0x3da7c626eb0e0945501bac35dbbe85c68834910600bd1173d9b64b4939e38e5671 days 3 hrs ago0x33bf13999f39ec252c6afea84c246c45594c08d9  IN   BlockchainCuties_SaleMarket10 Ether0.0000977592
0x99e0654cfac4a80c743292320efa25428fcbe98d4fce02f835ac908c411da6d876 days 6 hrs ago0xea768137982fcda7a4827e45bcf16260b0454efc  IN   BlockchainCuties_SaleMarket10.010000001 Ether0.0001753257
0xe8ec376ac1b5ab6444712bc6073ba5d32f080bfd257ba9fbe953518c9fa1d20b77 days 10 hrs ago0xa374a95b8246cc6d9c5bb660a913571be8c2d8aa  IN   BlockchainCuties_SaleMarket10.005511993669753 Ether0.0002187596
0xba68aaaf32e240abbaa5b3cbd86c0db68812c25d60c695a20c190f755794db0378 days 2 hrs ago0xcf0e9b4746cfb97bae329fe5f696969f6564566a  IN   BlockchainCuties_SaleMarket10.015000001 Ether0.0003931546
0xf90e5ad87e6084c5731f0081309547cd1637ffd7db87c61d0e7d2d20a2aeaf4c81 days 14 hrs ago0xa374a95b8246cc6d9c5bb660a913571be8c2d8aa  IN   BlockchainCuties_SaleMarket10.005000001 Ether0.0002284547
0xab0cca7c3fb77a620a5f43436dd3936b018112d6c5ec6fb70f79254f806a813e81 days 14 hrs ago0xa374a95b8246cc6d9c5bb660a913571be8c2d8aa  IN   BlockchainCuties_SaleMarket10.004000001 Ether0.0001221967
0xb7e6ed0b5b91764573caf8629c17256b634bcdd02c838bf40be35c244221364283 days 19 mins ago0xfc5ab9b56cdea1656b11bf6186f798b5f43285fb  IN   BlockchainCuties_SaleMarket10 Ether0.000382536
0xcb914810c96ac9da88358324c9ceb0cb224bebac3c848c7b2763f85f2b52ab8a83 days 16 hrs ago0xab3009dbb3c9a5694ed818cf0d159e069dd55107  IN   BlockchainCuties_SaleMarket10.005567355166666 Ether0.0001814104
0xc4b3c04b7bd18e38dcf3f9c34255fb5a40ea1f22f501e7959cb35f2db9aa5ef484 days 7 hrs ago0x42ca0141f4c43dde6386780a92483f9315e78281  IN   BlockchainCuties_SaleMarket10.010000001 Ether0.0001221967
0x548b9b39f8f94605c8fdca8d9d7fd7adbd09752f72421bfc8d1553700e22588985 days 8 hrs ago0x1e6455b54fd8253138a28199710855bd3f2e79a7  IN   BlockchainCuties_SaleMarket10.010000001 Ether0.0001912644
0x532b0d222af5cf8ea5fd4d8ad9bdd6b33a013b289c65df7c8f5da0fc4ecaad2086 days 6 hrs ago0xf281e85a0b992efa5fda4f52b35685dc5ee67bea  IN   BlockchainCuties_SaleMarket10 Ether0.0001105104
0x04f892ecbc497a5955893723289525373a0ae25a08ee1afe5402187654bfcf1f86 days 7 hrs ago0xf281e85a0b992efa5fda4f52b35685dc5ee67bea  IN   BlockchainCuties_SaleMarket10 Ether0.00009063
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x3f60129f7a2c4e0db3c2a931b0a12c217b405cdafe185bf350f9e055ed113c64700025621 days 3 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x36c5c82ceac33ce6e9c6c59ea7c4230bb62f74860.208319999999999999 Ether
0xf7d7d5939efeb3f73e53da4e665bfb0a92ddf087d80ba611b3daee9bc9ca61e1689539738 days 21 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xf827c419b94353372e4ec2754d3d2005a71ba29d0.0096 Ether
0x73dafae85e2192345bc0d2010e5ddc72c709b84dbef66f4730dc3de9dcfb17b0688137141 days 5 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x6d37958ed5a31b4aca5d72fd448b2e1b8ae15b760.01056 Ether
0x1c80ff6b75862d605e9e7cd3e1f1ee5c2d5f69a3f43f139b53b9659f1e343f62677427858 days 21 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xa39eaf4abc5c13b382d29b6b83808d006e3fbd440.0048 Ether
0x6dd82ae51cfd5c647e503fa586c76e6d1bb21f12b57789c3e2e5ed30ebbf9e48674405563 days 20 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x8847916be41b3cc93077ceef7dd3fd868a3f385d0.0048 Ether
0x99e0654cfac4a80c743292320efa25428fcbe98d4fce02f835ac908c411da6d8666828776 days 6 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xd311e934d9a1d9f71004976cd0268fd25f9cb77f0.0096 Ether
0xe8ec376ac1b5ab6444712bc6073ba5d32f080bfd257ba9fbe953518c9fa1d20b666118277 days 10 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xeb5e2b1b21ffaed1ae4a288e55cca207112119720.005291510666666666 Ether
0xba68aaaf32e240abbaa5b3cbd86c0db68812c25d60c695a20c190f755794db03665701978 days 2 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xd311e934d9a1d9f71004976cd0268fd25f9cb77f0.0144 Ether
0xf90e5ad87e6084c5731f0081309547cd1637ffd7db87c61d0e7d2d20a2aeaf4c663566681 days 14 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x56d529e54287d1c0312431133b43c8b8163d0e0c0.0048 Ether
0xab0cca7c3fb77a620a5f43436dd3936b018112d6c5ec6fb70f79254f806a813e663563581 days 14 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xa3f97733611bf44d3c88ed42073b83669b961ec50.00384 Ether
0xcb914810c96ac9da88358324c9ceb0cb224bebac3c848c7b2763f85f2b52ab8a662308883 days 16 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xeb5e2b1b21ffaed1ae4a288e55cca207112119720.00534466 Ether
0xc4b3c04b7bd18e38dcf3f9c34255fb5a40ea1f22f501e7959cb35f2db9aa5ef4661931684 days 7 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xd311e934d9a1d9f71004976cd0268fd25f9cb77f0.0096 Ether
0x548b9b39f8f94605c8fdca8d9d7fd7adbd09752f72421bfc8d1553700e225889661282585 days 8 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xd311e934d9a1d9f71004976cd0268fd25f9cb77f0.0096 Ether
0xe592b7230e55bc4646894d918d73fce384e1ad1ee8c930fe3529ac9b3b20935e660663386 days 9 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x4ce15b37851a4448a28899062906a02e51dee2670.009504 Ether
0x769ad4bf4b1bdc159195b0dd3adbe98e0819ab9240b86e99315f0b668678b045660524386 days 14 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x4ce15b37851a4448a28899062906a02e51dee2670.008544 Ether
0xa5b807d28e4347e9c45621889bf9742d18d68726faacdf7fa1174d498f310246658489889 days 22 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x4de38e2b3679f8cf56d44eb2203ce9903d022d2f0.246720000000000006 Ether
0x05db3c9726204333a5d300ffdffd7ff4f7d77e1a573a0554caf08fc6197e03f8658195890 days 10 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xfc5ab9b56cdea1656b11bf6186f798b5f43285fb0.033600000000000004 Ether
0xfbae5e3e2b450bd226d82c1d5e12bfffc00a63e2e98b14e96c9a758e2b646f58655502994 days 19 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xd311e934d9a1d9f71004976cd0268fd25f9cb77f0.0096 Ether
0x038579e335f83f97b81ff177f31d344f2eec77386cf625c9f67bb9ef86cf0b13654449596 days 12 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xdebea3f792be143eb095a230606d58f9ec68c59f0.0048 Ether
0x93584122200034013262281086f009c4584d6f4c519ef4a7394cce26b2b15158653323798 days 9 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xf281e85a0b992efa5fda4f52b35685dc5ee67bea0.0096 Ether
0x6e90e63230f785e6b81f2176732b3f4674c16ac3be94c2a9c299f270820f73ed653122198 days 16 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x4ce15b37851a4448a28899062906a02e51dee2670.008544 Ether
0xa53b861ec3ff3a774209bcf21402be29994ae4ec25ab8cf291b8bb6c87a35cc6652823399 days 4 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xf281e85a0b992efa5fda4f52b35685dc5ee67bea0.0096 Ether
0x912876aad5047bc1741998bbcad5986afe79f82372c4385d9b89b5f63a1248c9652773299 days 6 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xf281e85a0b992efa5fda4f52b35685dc5ee67bea0.0096 Ether
0x371fb69b2ac7d792cb692594b8e43409102bdffd0ed8775bea77f41834f8d85a652724599 days 8 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720xf281e85a0b992efa5fda4f52b35685dc5ee67bea0.0096 Ether
0xb2d5ca1c36a47af0b04a1ee98b2275d95a01799c283680e3b5b20d543fc058916515667101 days 6 hrs ago0x5a6fc364c0232299fcb7c533b9964ae8d41d7b720x4ce15b37851a4448a28899062906a02e51dee2670.008544 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: SaleMarket
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.24;

pragma solidity ^0.4.24;

pragma solidity ^0.4.20;

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

pragma solidity ^0.4.20;


pragma solidity ^0.4.24;


/**
 * @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.24;

/// @title Auction Market for Blockchain Cuties.
/// @author https://BlockChainArchitect.io
contract MarketInterface 
{
    function withdrawEthFromBalance() external;    

    function createAuction(uint40 _cutieId, uint128 _startPrice, uint128 _endPrice, uint40 _duration, address _seller) public payable;

    function bid(uint40 _cutieId) public payable;

    function cancelActiveAuctionWhenPaused(uint40 _cutieId) public;

	function getAuctionInfo(uint40 _cutieId)
        public
        view
        returns
    (
        address seller,
        uint128 startPrice,
        uint128 endPrice,
        uint40 duration,
        uint40 startedAt,
        uint128 featuringFee,
        bool tokensAllowed
    );
}

pragma solidity ^0.4.24;

// https://etherscan.io/address/0x4118d7f757ad5893b8fa2f95e067994e1f531371#code
interface ERC20 {
	
	 /**
     * Transfer tokens from other address
     *
     * Send `_value` tokens to `_to` on behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
	function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);

	function approveAndCall(address _spender, uint256 _value, bytes _extraData) external
        returns (bool success);

	/**
	 * Transfer tokens
	 *
	 * Send `_value` tokens to `_to` from your account
	 *
	 * @param _to The address of the recipient
	 * @param _value the amount to send
	 */
	function transfer(address _to, uint256 _value) external;

    /// @notice Count all tokens assigned to an owner
    function balanceOf(address _owner) external view returns (uint256);
}

pragma solidity ^0.4.24;

// https://etherscan.io/address/0x3127be52acba38beab6b4b3a406dc04e557c037c#code
contract PriceOracleInterface {

    // How much TOKENs you get for 1 ETH, multiplied by 10^18
    uint256 public ETHPrice;
}

pragma solidity ^0.4.24;

interface TokenRecipientInterface
{
        function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external;
}


/// @title Auction Market for Blockchain Cuties.
/// @author https://BlockChainArchitect.io
contract Market is MarketInterface, Pausable, TokenRecipientInterface
{
    // Shows the auction on an Cutie Token
    struct Auction {
        // Price (in wei or tokens) at the beginning of auction
        uint128 startPrice;
        // Price (in wei or tokens) at the end of auction
        uint128 endPrice;
        // Current owner of Token
        address seller;
        // Auction duration in seconds
        uint40 duration;
        // Time when auction started
        // NOTE: 0 if this auction has been concluded
        uint40 startedAt;
        // Featuring fee (in wei, optional)
        uint128 featuringFee;
        // is it allowed to bid with erc20 tokens
        bool tokensAllowed;
    }

    // Reference to contract that tracks ownership
    CutieCoreInterface public coreContract;

    // Cut owner takes on each auction, in basis points - 1/100 of a per cent.
    // Values 0-10,000 map to 0%-100%
    uint16 public ownerFee;

    // Map from token ID to their corresponding auction.
    mapping (uint40 => Auction) public cutieIdToAuction;
    mapping (address => PriceOracleInterface) public priceOracle;


    address operatorAddress;

    event AuctionCreated(uint40 indexed cutieId, uint128 startPrice, uint128 endPrice, uint40 duration, uint128 fee, bool tokensAllowed);
    event AuctionSuccessful(uint40 indexed cutieId, uint128 totalPriceWei, address indexed winner);
    event AuctionSuccessfulForToken(uint40 indexed cutieId, uint128 totalPriceWei, address indexed winner, uint128 priceInTokens, address indexed token);
    event AuctionCancelled(uint40 indexed cutieId);

    modifier onlyOperator() {
        require(msg.sender == operatorAddress || msg.sender == owner);
        _;
    }

    function setOperator(address _newOperator) public onlyOwner {
        require(_newOperator != address(0));

        operatorAddress = _newOperator;
    }

    /// @dev disables sending fund to this contract
    function() external {}

    modifier canBeStoredIn128Bits(uint256 _value) 
    {
        require(_value <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
        _;
    }

    // @dev Adds to the list of open auctions and fires the
    //  AuctionCreated event.
    // @param _cutieId The token ID is to be put on auction.
    // @param _auction To add an auction.
    // @param _fee Amount of money to feature auction
    function _addAuction(uint40 _cutieId, Auction _auction) internal
    {
        // Require that all auctions have a duration of
        // at least one minute. (Keeps our math from getting hairy!)
        require(_auction.duration >= 1 minutes);

        cutieIdToAuction[_cutieId] = _auction;
        
        emit AuctionCreated(
            _cutieId,
            _auction.startPrice,
            _auction.endPrice,
            _auction.duration,
            _auction.featuringFee,
            _auction.tokensAllowed
        );
    }

    // @dev Returns true if the token is claimed by the claimant.
    // @param _claimant - Address claiming to own the token.
    function _isOwner(address _claimant, uint256 _cutieId) internal view returns (bool)
    {
        return (coreContract.ownerOf(_cutieId) == _claimant);
    }

    // @dev Transfers the token owned by this contract to another address.
    // Returns true when the transfer succeeds.
    // @param _receiver - Address to transfer token to.
    // @param _cutieId - Token ID to transfer.
    function _transfer(address _receiver, uint40 _cutieId) internal
    {
        // it will throw if transfer fails
        coreContract.transfer(_receiver, _cutieId);
    }

    // @dev Escrows the token and assigns ownership to this contract.
    // Throws if the escrow fails.
    // @param _owner - Current owner address of token to escrow.
    // @param _cutieId - Token ID the approval of which is to be verified.
    function _escrow(address _owner, uint40 _cutieId) internal
    {
        // it will throw if transfer fails
        coreContract.transferFrom(_owner, this, _cutieId);
    }

    // @dev just cancel auction.
    function _cancelActiveAuction(uint40 _cutieId, address _seller) internal
    {
        _removeAuction(_cutieId);
        _transfer(_seller, _cutieId);
        emit AuctionCancelled(_cutieId);
    }

    // @dev Calculates the price and transfers winnings.
    // Does not transfer token ownership.
    function _bid(uint40 _cutieId, uint128 _bidAmount)
        internal
        returns (uint128)
    {
        // Get a reference to the auction struct
        Auction storage auction = cutieIdToAuction[_cutieId];

        require(_isOnAuction(auction));

        // Check that bid > current price
        uint128 price = _currentPrice(auction);
        require(_bidAmount >= price);

        // Provide a reference to the seller before the auction struct is deleted.
        address seller = auction.seller;

        _removeAuction(_cutieId);

        // Transfer proceeds to seller (if there are any!)
        if (price > 0) {
            uint128 fee = _computeFee(price);
            uint128 sellerValue = price - fee;

            seller.transfer(sellerValue);
        }

        emit AuctionSuccessful(_cutieId, price, msg.sender);

        return price;
    }

    // @dev Removes from the list of open auctions.
    // @param _cutieId - ID of token on auction.
    function _removeAuction(uint40 _cutieId) internal
    {
        delete cutieIdToAuction[_cutieId];
    }

    // @dev Returns true if the token is on auction.
    // @param _auction - Auction to check.
    function _isOnAuction(Auction storage _auction) internal view returns (bool)
    {
        return (_auction.startedAt > 0);
    }

    // @dev calculate current price of auction. 
    //  When testing, make this function public and turn on
    //  `Current price calculation` test suite.
    function _computeCurrentPrice(
        uint128 _startPrice,
        uint128 _endPrice,
        uint40 _duration,
        uint40 _secondsPassed
    )
        internal
        pure
        returns (uint128)
    {
        if (_secondsPassed >= _duration) {
            return _endPrice;
        } else {
            int256 totalPriceChange = int256(_endPrice) - int256(_startPrice);
            int256 currentPriceChange = totalPriceChange * int256(_secondsPassed) / int256(_duration);
            uint128 currentPrice = _startPrice + uint128(currentPriceChange);
            
            return currentPrice;
        }
    }
    // @dev return current price of token.
    function _currentPrice(Auction storage _auction)
        internal
        view
        returns (uint128)
    {
        uint40 secondsPassed = 0;

        uint40 timeNow = uint40(now);
        if (timeNow > _auction.startedAt) {
            secondsPassed = timeNow - _auction.startedAt;
        }

        return _computeCurrentPrice(
            _auction.startPrice,
            _auction.endPrice,
            _auction.duration,
            secondsPassed
        );
    }

    // @dev Calculates owner's cut of a sale.
    // @param _price - Sale price of cutie.
    function _computeFee(uint128 _price) internal view returns (uint128)
    {
        return _price * ownerFee / 10000;
    }

    // @dev Remove all Ether from the contract with the owner's cuts. Also, remove any Ether sent directly to the contract address.
    //  Transfers to the token contract, but can be called by
    //  the owner or the token contract.
    function withdrawEthFromBalance() external
    {
        address coreAddress = address(coreContract);

        require(
            msg.sender == owner ||
            msg.sender == coreAddress
        );
        coreAddress.transfer(address(this).balance);
    }

    // @dev create and begin new auction.
    function createAuction(uint40 _cutieId, uint128 _startPrice, uint128 _endPrice, uint40 _duration, address _seller)
        public whenNotPaused payable
    {
        require(_isOwner(msg.sender, _cutieId));
        _escrow(msg.sender, _cutieId);

        bool allowTokens = _duration < 0x8000000000; // first bit of duration is boolean flag (1 to disable tokens)
        _duration = _duration % 0x8000000000; // clear flag from duration

        Auction memory auction = Auction(
            _startPrice,
            _endPrice,
            _seller,
            _duration,
            uint40(now),
            uint128(msg.value),
            allowTokens
        );
        _addAuction(_cutieId, auction);
    }

    // @dev Set the reference to cutie ownership contract. Verify the owner's fee.
    //  @param fee should be between 0-10,000.
    function setup(address _coreContractAddress, uint16 _fee) public onlyOwner
    {
        require(_fee <= 10000);

        ownerFee = _fee;
        
        CutieCoreInterface candidateContract = CutieCoreInterface(_coreContractAddress);
        require(candidateContract.isCutieCore());
        coreContract = candidateContract;
    }

    // @dev Set the owner's fee.
    //  @param fee should be between 0-10,000.
    function setFee(uint16 _fee) public onlyOwner
    {
        require(_fee <= 10000);

        ownerFee = _fee;
    }

    // @dev bid on auction. Complete it and transfer ownership of cutie if enough ether was given.
    function bid(uint40 _cutieId) public payable whenNotPaused canBeStoredIn128Bits(msg.value)
    {
        // _bid throws if something failed.
        _bid(_cutieId, uint128(msg.value));
        _transfer(msg.sender, _cutieId);
    }

    function getPriceInToken(ERC20 _tokenContract, uint128 priceWei)
        public
        view
        returns (uint128)
    {
        PriceOracleInterface oracle = priceOracle[address(_tokenContract)];
        require(address(oracle) != address(0));

        uint256 ethPerToken = oracle.ETHPrice();
        return uint128(uint256(priceWei) * ethPerToken / 1 ether);
    }

    function getCutieId(bytes _extraData) pure internal returns (uint40)
    {
        return
            uint40(_extraData[0]) +
            uint40(_extraData[1]) * 0x100 +
            uint40(_extraData[2]) * 0x10000 +
            uint40(_extraData[3]) * 0x100000 +
            uint40(_extraData[4]) * 0x10000000;
    }

    // https://github.com/BitGuildPlatform/Documentation/blob/master/README.md#2-required-game-smart-contract-changes
    // Function that is called when trying to use PLAT for payments from approveAndCall
    function receiveApproval(address _sender, uint256 _value, address _tokenContract, bytes _extraData)
        external
        canBeStoredIn128Bits(_value)
        whenNotPaused
    {
        ERC20 tokenContract = ERC20(_tokenContract);

        require(_extraData.length == 5); // 40 bits
        uint40 cutieId = getCutieId(_extraData);

        // Get a reference to the auction struct
        Auction storage auction = cutieIdToAuction[cutieId];
        require(auction.tokensAllowed); // buy for token is allowed

        require(_isOnAuction(auction));

        uint128 priceWei = _currentPrice(auction);

        uint128 priceInTokens = getPriceInToken(tokenContract, priceWei);

        // Check that bid > current price
        //require(_value >= priceInTokens);

        // Provide a reference to the seller before the auction struct is deleted.
        address seller = auction.seller;

        _removeAuction(cutieId);

        require(tokenContract.transferFrom(_sender, address(this), priceInTokens));

        if (seller != address(coreContract))
        {
            uint128 fee = _computeFee(priceInTokens);
            uint128 sellerValue = priceInTokens - fee;

            tokenContract.transfer(seller, sellerValue);
        }

        emit AuctionSuccessfulForToken(cutieId, priceWei, _sender, priceInTokens, _tokenContract);
        _transfer(_sender, cutieId);
    }

    // @dev Returns auction info for a token on auction.
    // @param _cutieId - ID of token on auction.
    function getAuctionInfo(uint40 _cutieId)
        public
        view
        returns
    (
        address seller,
        uint128 startPrice,
        uint128 endPrice,
        uint40 duration,
        uint40 startedAt,
        uint128 featuringFee,
        bool tokensAllowed
    ) {
        Auction storage auction = cutieIdToAuction[_cutieId];
        require(_isOnAuction(auction));
        return (
            auction.seller,
            auction.startPrice,
            auction.endPrice,
            auction.duration,
            auction.startedAt,
            auction.featuringFee,
            auction.tokensAllowed
        );
    }

    // @dev Returns auction info for a token on auction.
    // @param _cutieId - ID of token on auction.
    function isOnAuction(uint40 _cutieId)
        public
        view
        returns (bool) 
    {
        return cutieIdToAuction[_cutieId].startedAt > 0;
    }

/*
    /// @dev Import cuties from previous version of Core contract.
    /// @param _oldAddress Old core contract address
    /// @param _fromIndex (inclusive)
    /// @param _toIndex (inclusive)
    function migrate(address _oldAddress, uint40 _fromIndex, uint40 _toIndex) public onlyOwner whenPaused
    {
        Market old = Market(_oldAddress);

        for (uint40 i = _fromIndex; i <= _toIndex; i++)
        {
            if (coreContract.ownerOf(i) == _oldAddress)
            {
                address seller;
                uint128 startPrice;
                uint128 endPrice;
                uint40 duration;
                uint40 startedAt;
                uint128 featuringFee;   
                (seller, startPrice, endPrice, duration, startedAt, featuringFee) = old.getAuctionInfo(i);

                Auction memory auction = Auction({
                    seller: seller, 
                    startPrice: startPrice, 
                    endPrice: endPrice, 
                    duration: duration, 
                    startedAt: startedAt, 
                    featuringFee: featuringFee
                });
                _addAuction(i, auction);
            }
        }
    }*/

    // @dev Returns the current price of an auction.
    function getCurrentPrice(uint40 _cutieId)
        public
        view
        returns (uint128)
    {
        Auction storage auction = cutieIdToAuction[_cutieId];
        require(_isOnAuction(auction));
        return _currentPrice(auction);
    }

    // @dev Cancels unfinished auction and returns token to owner. 
    // Can be called when contract is paused.
    function cancelActiveAuction(uint40 _cutieId) public
    {
        Auction storage auction = cutieIdToAuction[_cutieId];
        require(_isOnAuction(auction));
        address seller = auction.seller;
        require(msg.sender == seller);
        _cancelActiveAuction(_cutieId, seller);
    }

    // @dev Cancels auction when contract is on pause. Option is available only to owners in urgent situations. Tokens returned to seller.
    //  Used on Core contract upgrade.
    function cancelActiveAuctionWhenPaused(uint40 _cutieId) whenPaused onlyOwner public
    {
        Auction storage auction = cutieIdToAuction[_cutieId];
        require(_isOnAuction(auction));
        _cancelActiveAuction(_cutieId, auction.seller);
    }

        // @dev Cancels unfinished auction and returns token to owner. 
    // Can be called when contract is paused.
    function cancelCreatorAuction(uint40 _cutieId) public onlyOperator
    {
        Auction storage auction = cutieIdToAuction[_cutieId];
        require(_isOnAuction(auction));
        address seller = auction.seller;
        require(seller == address(coreContract));
        _cancelActiveAuction(_cutieId, msg.sender);
    }

    // @dev Transfers to _withdrawToAddress all tokens controlled by
    // contract _tokenContract.
    function withdrawTokenFromBalance(ERC20 _tokenContract, address _withdrawToAddress) external
    {
        address coreAddress = address(coreContract);

        require(
            msg.sender == owner ||
            msg.sender == operatorAddress ||
            msg.sender == coreAddress
        );
        uint256 balance = _tokenContract.balanceOf(address(this));
        _tokenContract.transfer(_withdrawToAddress, balance);
    }

    /// @dev Allow buy cuties for token
    function addToken(ERC20 _tokenContract, PriceOracleInterface _priceOracle) external onlyOwner
    {
        priceOracle[address(_tokenContract)] = _priceOracle;
    }

    /// @dev Disallow buy cuties for token
    function removeToken(ERC20 _tokenContract) external onlyOwner
    {
        delete priceOracle[address(_tokenContract)];
    }
}


/// @title Auction market for cuties sale 
/// @author https://BlockChainArchitect.io
contract SaleMarket is Market
{
    // @dev Sanity check reveals that the
    //  auction in our setSaleAuctionAddress() call is right.
    bool public isSaleMarket = true;
    

    // @dev create and start a new auction
    // @param _cutieId - ID of cutie to auction, sender must be owner.
    // @param _startPrice - Price of item (in wei) at the beginning of auction.
    // @param _endPrice - Price of item (in wei) at the end of auction.
    // @param _duration - Length of auction (in seconds).
    // @param _seller - Seller
    function createAuction(
        uint40 _cutieId,
        uint128 _startPrice,
        uint128 _endPrice,
        uint40 _duration,
        address _seller
    )
        public
        payable
    {
        require(msg.sender == address(coreContract));
        _escrow(_seller, _cutieId);

        bool allowTokens = _duration < 0x8000000000; // first bit of duration is boolean flag (1 to disable tokens)
        _duration = _duration % 0x8000000000; // clear flag from duration

        Auction memory auction = Auction(
            _startPrice,
            _endPrice,
            _seller,
            _duration,
            uint40(now),
            uint128(msg.value),
            allowTokens
        );
        _addAuction(_cutieId, auction);
    }

    // @dev LastSalePrice is updated if seller is the token contract.
    // Otherwise, default bid method is used.
    function bid(uint40 _cutieId)
        public
        payable
        canBeStoredIn128Bits(msg.value)
    {
        // _bid verifies token ID size
        _bid(_cutieId, uint128(msg.value));
        _transfer(msg.sender, _cutieId);
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"isOnAuction","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"priceOracle","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"cancelCreatorAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_priceOracle","type":"address"}],"name":"addToken","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":"_tokenContract","type":"address"}],"name":"removeToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isSaleMarket","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEthFromBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"getCurrentPrice","outputs":[{"name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint40"}],"name":"cutieIdToAuction","outputs":[{"name":"startPrice","type":"uint128"},{"name":"endPrice","type":"uint128"},{"name":"seller","type":"address"},{"name":"duration","type":"uint40"},{"name":"startedAt","type":"uint40"},{"name":"featuringFee","type":"uint128"},{"name":"tokensAllowed","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":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":"_cutieId","type":"uint40"}],"name":"cancelActiveAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"getAuctionInfo","outputs":[{"name":"seller","type":"address"},{"name":"startPrice","type":"uint128"},{"name":"endPrice","type":"uint128"},{"name":"duration","type":"uint40"},{"name":"startedAt","type":"uint40"},{"name":"featuringFee","type":"uint128"},{"name":"tokensAllowed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"priceWei","type":"uint128"}],"name":"getPriceInToken","outputs":[{"name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"cancelActiveAuctionWhenPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOperator","type":"address"}],"name":"setOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"bid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"},{"name":"_startPrice","type":"uint128"},{"name":"_endPrice","type":"uint128"},{"name":"_duration","type":"uint40"},{"name":"_seller","type":"address"}],"name":"createAuction","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_withdrawToAddress","type":"address"}],"name":"withdrawTokenFromBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownerFee","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_coreContractAddress","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"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"cutieId","type":"uint40"},{"indexed":false,"name":"startPrice","type":"uint128"},{"indexed":false,"name":"endPrice","type":"uint128"},{"indexed":false,"name":"duration","type":"uint40"},{"indexed":false,"name":"fee","type":"uint128"},{"indexed":false,"name":"tokensAllowed","type":"bool"}],"name":"AuctionCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"cutieId","type":"uint40"},{"indexed":false,"name":"totalPriceWei","type":"uint128"},{"indexed":true,"name":"winner","type":"address"}],"name":"AuctionSuccessful","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"cutieId","type":"uint40"},{"indexed":false,"name":"totalPriceWei","type":"uint128"},{"indexed":true,"name":"winner","type":"address"},{"indexed":false,"name":"priceInTokens","type":"uint128"},{"indexed":true,"name":"token","type":"address"}],"name":"AuctionSuccessfulForToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"cutieId","type":"uint40"}],"name":"AuctionCancelled","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 Switch To Opcodes View
6080604052600080546004805460a060020a60ff02191674010000000000000000000000000000000000000000179055600160a860020a03191633179055611a9e8061004c6000396000f3006080604052600436106101455763ffffffff60e060020a6000350416632177885d81146101545780632951f1b21461018757806330d9161d146101c45780633f4ba83a146101e55780635476bd72146101fa5780635c975abb146102215780635fa7b584146102365780636066b06614610257578063776247c41461026c5780637ea310d41461028157806381baab24146102bc5780638456cb59146103355780638da5cb5b1461034a5780638e0055531461035f5780638f4ffcb11461037b57806398c9faac146103b35780639ccaec98146103d2578063a01da7b21461044a578063b2fb3b9014610477578063b3ab15fb14610496578063c170fd54146104b7578063c1d1faf3146104c9578063cda8c71514610502578063d5b2a01a14610529578063e410a0c614610555578063e80db5db1461057d578063f2fde38b14610592575b34801561015157600080fd5b50005b34801561016057600080fd5b5061017364ffffffffff600435166105b3565b604080519115158252519081900360200190f35b34801561019357600080fd5b506101a8600160a060020a03600435166105dc565b60408051600160a060020a039092168252519081900360200190f35b3480156101d057600080fd5b506101e364ffffffffff600435166105f7565b005b3480156101f157600080fd5b506101e3610686565b34801561020657600080fd5b506101e3600160a060020a03600435811690602435166106fc565b34801561022d57600080fd5b5061017361074e565b34801561024257600080fd5b506101e3600160a060020a036004351661075e565b34801561026357600080fd5b506101736107a9565b34801561027857600080fd5b506101e36107b9565b34801561028d57600080fd5b506102a064ffffffffff60043516610826565b604080516001608060020a039092168252519081900360200190f35b3480156102c857600080fd5b506102db64ffffffffff60043516610860565b604080516001608060020a0398891681529688166020880152600160a060020a039095168686015264ffffffffff9384166060870152919092166080850152931660a083015291151560c082015290519081900360e00190f35b34801561034157600080fd5b506101e36108d3565b34801561035657600080fd5b506101a861094e565b34801561036b57600080fd5b506101e361ffff6004351661095d565b34801561038757600080fd5b506101e360048035600160a060020a0390811691602480359260443516916064359182019101356109ba565b3480156103bf57600080fd5b506101e364ffffffffff60043516610cc1565b3480156103de57600080fd5b506103f164ffffffffff60043516610d11565b60408051600160a060020a0390981688526001608060020a0396871660208901529486168786015264ffffffffff9384166060880152919092166080860152921660a084015290151560c0830152519081900360e00190f35b34801561045657600080fd5b506102a0600160a060020a03600435166001608060020a0360243516610db8565b34801561048357600080fd5b506101e364ffffffffff60043516610e6d565b3480156104a257600080fd5b506101e3600160a060020a0360043516610ee1565b6101e364ffffffffff60043516610f3c565b6101e364ffffffffff6004358116906001608060020a036024358116916044359091169060643516600160a060020a0360843516610f66565b34801561050e57600080fd5b506101e3600160a060020a0360043581169060243516611024565b34801561053557600080fd5b5061053e611186565b6040805161ffff9092168252519081900360200190f35b34801561056157600080fd5b506101e3600160a060020a036004351661ffff60243516611197565b34801561058957600080fd5b506101a8611288565b34801561059e57600080fd5b506101e3600160a060020a0360043516611297565b64ffffffffff90811660009081526002602052604081206001015460c860020a90049091161190565b600360205260009081526040902054600160a060020a031681565b6004546000908190600160a060020a031633148061061f5750600054600160a060020a031633145b151561062a57600080fd5b64ffffffffff83166000908152600260205260409020915061064b8261132b565b151561065657600080fd5b506001808201549054600160a060020a039182169116811461067757600080fd5b6106818333611344565b505050565b600054600160a060020a0316331461069d57600080fd5b60005460a060020a900460ff1615156106b557600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b600054600160a060020a0316331461071357600080fd5b600160a060020a039182166000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60005460a060020a900460ff1681565b600054600160a060020a0316331461077557600080fd5b600160a060020a03166000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b60045460a060020a900460ff1681565b600154600054600160a060020a0391821691163314806107e1575033600160a060020a038216145b15156107ec57600080fd5b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015610822573d6000803e3d6000fd5b5050565b64ffffffffff811660009081526002602052604081206108458161132b565b151561085057600080fd5b6108598161138d565b9392505050565b60026020819052600091825260409091208054600182015491909201546001608060020a038084169370010000000000000000000000000000000090819004821693600160a060020a0381169364ffffffffff60a060020a830481169460c860020a90930416929181169160ff91041687565b600054600160a060020a031633146108ea57600080fd5b60005460a060020a900460ff161561090157600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b600054600160a060020a0316331461097457600080fd5b61271061ffff8216111561098757600080fd5b6001805461ffff90921660a060020a0275ffff000000000000000000000000000000000000000019909216919091179055565b6000808080808080808b6001608060020a038111156109d857600080fd5b60005460a060020a900460ff16156109ef57600080fd5b8b985060058a146109ff57600080fd5b610a388b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843750611414945050505050565b64ffffffffff81166000908152600260208190526040909120908101549199509750700100000000000000000000000000000000900460ff161515610a7c57600080fd5b610a858761132b565b1515610a9057600080fd5b610a998761138d565b9550610aa58987610db8565b6001880154909550600160a060020a03169350610ac1886114f9565b88600160a060020a03166323b872dd8f30886040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a03168152602001826001608060020a031681526020019350505050602060405180830381600087803b158015610b4757600080fd5b505af1158015610b5b573d6000803e3d6000fd5b505050506040513d6020811015610b7157600080fd5b50511515610b7e57600080fd5b600154600160a060020a03858116911614610c2857610b9c85611558565b9250828503915088600160a060020a031663a9059cbb85846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001826001608060020a0316815260200192505050600060405180830381600087803b158015610c0f57600080fd5b505af1158015610c23573d6000803e3d6000fd5b505050505b8b600160a060020a03168e600160a060020a03168964ffffffffff167ff65c85ee1272f6f51bd40bae1565e2868b8e887082e6f94b4924d29d21f842d7898960405180836001608060020a03166001608060020a03168152602001826001608060020a03166001608060020a031681526020019250505060405180910390a4610cb18e8961157f565b5050505050505050505050505050565b64ffffffffff8116600090815260026020526040812090610ce18261132b565b1515610cec57600080fd5b506001810154600160a060020a0316338114610d0757600080fd5b6106818382611344565b64ffffffffff81166000908152600260205260408120819081908190819081908190610d3c8161132b565b1515610d4757600080fd5b60018101548154600290920154600160a060020a0382169b6001608060020a038085169c507001000000000000000000000000000000009485900481169b5060a060020a840464ffffffffff9081169b5060c860020a909404909316985091811696509190910460ff169350915050565b600160a060020a0380831660009081526003602052604081205490911681811515610de257600080fd5b81600160a060020a0316633732e1536040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e2057600080fd5b505af1158015610e34573d6000803e3d6000fd5b505050506040513d6020811015610e4a57600080fd5b50519050670de0b6b3a76400006001608060020a03851682020495945050505050565b6000805460a060020a900460ff161515610e8657600080fd5b600054600160a060020a03163314610e9d57600080fd5b5064ffffffffff81166000908152600260205260409020610ebd8161132b565b1515610ec857600080fd5b6001810154610822908390600160a060020a0316611344565b600054600160a060020a03163314610ef857600080fd5b600160a060020a0381161515610f0d57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b346001608060020a03811115610f5157600080fd5b610f5b823461160f565b50610822338361157f565b6000610f70611a36565b600154600160a060020a03163314610f8757600080fd5b610f918388611730565b64800000000064ffffffffff8516818110935006935060e060405190810160405280876001608060020a03168152602001866001608060020a0316815260200184600160a060020a031681526020018564ffffffffff1681526020014264ffffffffff168152602001346001608060020a03168152602001831515815250905061101b87826117aa565b50505050505050565b60015460008054600160a060020a03928316921633148061104f5750600454600160a060020a031633145b80611062575033600160a060020a038316145b151561106d57600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b1580156110ce57600080fd5b505af11580156110e2573d6000803e3d6000fd5b505050506040513d60208110156110f857600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509086169163a9059cbb9160448082019260009290919082900301818387803b15801561116857600080fd5b505af115801561117c573d6000803e3d6000fd5b5050505050505050565b60015460a060020a900461ffff1681565b60008054600160a060020a031633146111af57600080fd5b61271061ffff831611156111c257600080fd5b81600160146101000a81548161ffff021916908361ffff16021790555082905080600160a060020a0316634d6a813a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561122057600080fd5b505af1158015611234573d6000803e3d6000fd5b505050506040513d602081101561124a57600080fd5b5051151561125757600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600154600160a060020a031681565b600054600160a060020a031633146112ae57600080fd5b600160a060020a03811615156112c357600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60010154600060c860020a90910464ffffffffff161190565b61134d826114f9565b611357818361157f565b60405164ffffffffff8316907ff6680ade663631ec4dd74f7eaa1f75125361380cd50a22f969e9acfa5f53670490600090a25050565b60018101546000908190429064ffffffffff60c860020a909104811690821611156113ca57600184015460c860020a900464ffffffffff16810391505b8354600185015461140c916001608060020a0380821692700100000000000000000000000000000000909204169060a060020a900464ffffffffff16856119cf565b949350505050565b600081600481518110151561142557fe5b90602001015160f860020a900460f860020a0260f860020a900463100000000282600381518110151561145457fe5b90602001015160f860020a900460f860020a0260f860020a9004621000000283600281518110151561148257fe5b90602001015160f860020a900460f860020a0260f860020a900462010000028460018151811015156114b057fe5b90602001015160f860020a900460f860020a0260f860020a9004610100028560008151811015156114dd57fe5b016020015160f860020a90819004810204010101019050919050565b64ffffffffff16600090815260026020819052604082209182556001820180547fffff00000000000000000000000000000000000000000000000000000000000016905501805470ffffffffffffffffffffffffffffffffff19169055565b6001546000906127109060a060020a900461ffff1683026001608060020a03160492915050565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015264ffffffffff851660248301529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156115f357600080fd5b505af1158015611607573d6000803e3d6000fd5b505050505050565b64ffffffffff82166000908152600260205260408120818080806116328561132b565b151561163d57600080fd5b6116468561138d565b93506001608060020a03808516908816101561166157600080fd5b6001850154600160a060020a0316925061167a886114f9565b6000846001608060020a031611156116dd5761169584611558565b6040519092508285039150600160a060020a038416906001608060020a03831680156108fc02916000818181858888f193505050501580156116db573d6000803e3d6000fd5b505b604080516001608060020a03861681529051339164ffffffffff8b16917f8500e47909916e51e97e4880e742d8b9af1afaeb9ea54166947cf42e6616b1179181900360200190a350919695505050505050565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015264ffffffffff85166044830152915191909216916323b872dd91606480830192600092919082900301818387803b1580156115f357600080fd5b603c816060015164ffffffffff16101515156117c557600080fd5b80600260008464ffffffffff1664ffffffffff16815260200190815260200160002060008201518160000160006101000a8154816001608060020a0302191690836001608060020a0316021790555060208201518160000160106101000a8154816001608060020a0302191690836001608060020a0316021790555060408201518160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555060608201518160010160146101000a81548164ffffffffff021916908364ffffffffff16021790555060808201518160010160196101000a81548164ffffffffff021916908364ffffffffff16021790555060a08201518160020160006101000a8154816001608060020a0302191690836001608060020a0316021790555060c08201518160020160106101000a81548160ff0219169083151502179055509050508164ffffffffff167fb5cfc381f79e09b5e427756c6c36086288faf8a39c226abab7c517219fb6c8018260000151836020015184606001518560a001518660c0015160405180866001608060020a03166001608060020a03168152602001856001608060020a03166001608060020a031681526020018464ffffffffff1664ffffffffff168152602001836001608060020a03166001608060020a03168152602001821515151581526020019550505050505060405180910390a25050565b600080808064ffffffffff808716908616106119ed57869350611a2b565b876001608060020a0316876001608060020a03160392508564ffffffffff168564ffffffffff168402811515611a1f57fe5b05915081880190508093505b505050949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152905600a165627a7a72305820c5178321231b8c0b7a27aa5588db0faab8281ae445905b5bce475d3aeb52a6a60029

   Swarm Source:
bzzr://c5178321231b8c0b7a27aa5588db0faab8281ae445905b5bce475d3aeb52a6a6

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.