Contract 0xf7dDC72B2b2cC275C1b40E289FA158b24a282D90 3

 
Txn Hash
Method
Block
From
To
Value
0xcb3b7ae0e875b854b8f3a0d28089221bd44206f13e952ae42e8ae05cb3d3637bTransfer145299552022-04-06 3:31:18172 days 15 hrs ago0xdec0ded0606b7d0560adebd6c3a919a671db4d66 IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00419068 46.88567751
0x7183d371d50a9c3ab074f2759e0cb2bc8bf15e92c514687efdc3811b077547ccTransfer145299522022-04-06 3:30:57172 days 15 hrs ago0xdec0ded0606b7d0560adebd6c3a919a671db4d66 IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00460881 47.81869207
0xf64d0fd778ea77c3c252639625683dda1382f522ce20e8f7bd4f0fae5fc7790dApprove145298352022-04-06 3:03:38172 days 15 hrs ago0xdec0ded0606b7d0560adebd6c3a919a671db4d66 IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00230783 47.16995373
0x7e73af8508d44d0892123b0c20171c2bcba0e09bec5713db837f923cf51588f5Approve145298352022-04-06 3:03:38172 days 15 hrs ago0xdec0ded0606b7d0560adebd6c3a919a671db4d66 IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00230783 47.16995373
0x4417d617a5a1f37dd60cce19be964a19d3583c6cd7bdc652eb1cd2c8203b13d2Transfer136282682021-11-16 18:49:55312 days 23 hrs ago0x8c86c48ded2d3223325faae3340aca87d0510319 IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.01050147 118.5522301
0x2d57fc3ffa456007a5c070d1e5daded4543236871ecf1d45e0bac43873d3024fApprove133667482021-10-06 17:24:12354 days 1 hr ago0x1a04c071e5b4f5e32bd0fb8c2b842a2a0eae29cb IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00780801 159.58824788
0x41207c85504b4b39055e8772b4c31a8140971b6cadc8dd0f28aefc5f565baa3bGrant Trophy133667382021-10-06 17:22:04354 days 1 hr ago0x1a04c071e5b4f5e32bd0fb8c2b842a2a0eae29cb IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.01919954 152.2275121
0xb47803109ffc109d282d01ba3b91d24f665f36f8807d4acf0cec5af86cfd21e8Approve133360102021-10-01 21:57:12358 days 20 hrs agoENS Name send.silveranth.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00301838 94.89991216
0xa24187b7ab699e5c7227d05b2247a8351a67172874f8ac779cbe62f11395c796Approve133354002021-10-01 19:39:41358 days 23 hrs ago0x56d76411919ab8f86d0972b24a9986943193b306 IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00604545 123.56317162
0xaaeb420508094e29010d42b74de70efb34853273176e3f70fad1c8c441cc8b4eApprove133351422021-10-01 18:35:59359 days 9 mins ago0xc55ea01bff091198cda9d91100500b70c532b1a5 IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00291696 59.6199171
0xd6b9b863f2013b597de3a83b7cfc1e9fab8ca4f7169555f76c8845b8567a021fApprove133350642021-10-01 18:22:18359 days 23 mins agoENS Name jtobcat.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00394027 80.53534375
0xa0a3c6dbd5891db717bd6d30aa40e29ab4ae1977761b5dfe34db3c8e1e2e0f0eApprove133350302021-10-01 18:14:34359 days 30 mins agoENS Name jtobcat.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00479262 97.95652213
0x0e1abdd4da7acd9d0278a8948c2d21d25951519e0466f4a8ba6bf6e20bd7dd45Approve133350302021-10-01 18:14:34359 days 30 mins agoENS Name jtobcat.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00479262 97.95652213
0xace02c98de5d523696e69079cfb3209177a55774a80e5c225516557cf0410246Approve133350252021-10-01 18:13:42359 days 31 mins agoENS Name jtobcat.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00463375 94.70935789
0xf5b77a62d2c7a9c75c7014faee8ecdcf1ef374f2e305e5d8d5fa4e6d3fa9d356Approve133349052021-10-01 17:42:57359 days 1 hr agoENS Name jtobcat.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00353704 72.29375342
0x68376543356c9477179e6c046563f1dee61ccf216e5e6fd2fea4b3802b10b1a4Approve133348822021-10-01 17:38:39359 days 1 hr agoCr0wn_Gh0ul IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.0046959595.98073882
0x45ed9b3594c6b4736fa226ffc4b6161e5008df294e269116c7dbd1740fa80aa9Grant Trophy133306322021-10-01 1:56:45359 days 16 hrs ago0x1a04c071e5b4f5e32bd0fb8c2b842a2a0eae29cb IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.01008232 80.08455677
0xb48ca214be96b35727d1a45b36fd5bd7d3e155a05aca330ccf0558e2d7f134c8Approve133305832021-10-01 1:45:56359 days 16 hrs agoENS Name cybourgeoisie.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00404265 82.62796205
0x8c8d387584f81dc33ea45a6063f4033027bcb1c7fd67045b8607d307b220ec57Approve133304872021-10-01 1:25:52359 days 17 hrs agoENS Name cybourgeoisie.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00266881 83.90907687
0xaff106619165443bb1511fb45a5232f65de4803cb400954f4dc081cda3b567b7Transfer131895272021-09-09 4:54:35381 days 13 hrs ago0x3665e13ec88d60a490eb8b34acab4a52d46ec8c2 IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00937639 92.66948309
0x570222126ec0cbdc02b6197b3a6c01301fc5adae2918ca342684e308da7b68a9Transfer131673532021-09-05 18:40:27385 days 5 mins ago0xe02a856cb5bda5d6ae627b729a9862a869104c5e IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00927751 101.52566398
0xcc6d629f114eaa5b5d23d3d80d93e5acd46e600a4cae386e6615e6f40ac8898eGrant Trophy126975832021-06-24 15:16:39458 days 3 hrs ago0x1a04c071e5b4f5e32bd0fb8c2b842a2a0eae29cb IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.0030266824
0xf57746a55b3dbb5df4bc31007c34c767fabcbf3dc57a4cfcbb6d5fb78cd8d91aWithdraw Balance119878862021-03-06 23:31:58567 days 19 hrs ago0x1a04c071e5b4f5e32bd0fb8c2b842a2a0eae29cb IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.00360019115
0xbaeef64b879deb0418feff5b7778f1c83c7ba466351dd9b847be0a4d8d9bc01fGrant Trophy119878432021-03-06 23:23:20567 days 19 hrs ago0x1a04c071e5b4f5e32bd0fb8c2b842a2a0eae29cb IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.01382346115
0xb0feabd20f19d6bbdabd523ac09e4acea55cf2103144b746050b766ce8ddc1d0Transfer119372022021-02-27 4:28:41575 days 14 hrs agoENS Name jtobcat.eth IN  0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900 Ether0.0066132990
[ Download CSV Export 
Latest 3 internal transactions
Parent Txn Hash Block From To Value
0xf57746a55b3dbb5df4bc31007c34c767fabcbf3dc57a4cfcbb6d5fb78cd8d91a119878862021-03-06 23:31:58567 days 19 hrs ago 0xf7ddc72b2b2cc275c1b40e289fa158b24a282d900x1a04c071e5b4f5e32bd0fb8c2b842a2a0eae29cb0.1461375 Ether
0x4a9fdcb05b753529fe5688e5bd0baeea0f4133cadd547118ffdce0781fb233ae52738582018-03-17 22:37:341652 days 20 hrs ago 0xf7ddc72b2b2cc275c1b40e289fa158b24a282d90 0x4ce6405331b0cf16f3b7ac4037acad7247055ef21.8258625 Ether
0x8d1c674704b7e74f83bbc8d9f37e33036e6437debc23f30e4054fbbaf7f4499452627812018-03-16 1:23:261654 days 17 hrs ago 0xf7ddc72b2b2cc275c1b40e289fa158b24a282d90 0x4ce6405331b0cf16f3b7ac4037acad7247055ef21.925 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PineappleArcadeTrophy

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-03-13
*/

pragma solidity ^0.4.18;

// File: zeppelin-solidity/contracts/ownership/Ownable.sol

/**
 * @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));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

// File: zeppelin-solidity/contracts/token/ERC721/ERC721.sol

/**
 * @title ERC721 interface
 * @dev see https://github.com/ethereum/eips/issues/721
 */
contract ERC721 {
  event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
  event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);

  function balanceOf(address _owner) public view returns (uint256 _balance);
  function ownerOf(uint256 _tokenId) public view returns (address _owner);
  function transfer(address _to, uint256 _tokenId) public;
  function approve(address _to, uint256 _tokenId) public;
  function takeOwnership(uint256 _tokenId) public;
}

// File: contracts/Marketplace.sol

contract Marketplace is Ownable {
    ERC721 public nft;

    mapping (uint256 => Listing) public listings;

    uint256 public minListingSeconds;
    uint256 public maxListingSeconds;

    struct Listing {
        address seller;
        uint256 startingPrice;
        uint256 minimumPrice;
        uint256 createdAt;
        uint256 durationSeconds;
    }

    event TokenListed(uint256 indexed _tokenId, uint256 _startingPrice, uint256 _minimumPrice, uint256 _durationSeconds, address _seller);
    event TokenUnlisted(uint256 indexed _tokenId, address _unlister);
    event TokenSold(uint256 indexed _tokenId, uint256 _price, uint256 _paidAmount, address indexed _seller, address _buyer);

    modifier nftOnly() {
        require(msg.sender == address(nft));
        _;
    }

    function Marketplace(ERC721 _nft, uint256 _minListingSeconds, uint256 _maxListingSeconds) public {
        nft = _nft;
        minListingSeconds = _minListingSeconds;
        maxListingSeconds = _maxListingSeconds;
    }

    function list(address _tokenSeller, uint256 _tokenId, uint256 _startingPrice, uint256 _minimumPrice, uint256 _durationSeconds) public nftOnly {
        require(_durationSeconds >= minListingSeconds && _durationSeconds <= maxListingSeconds);
        require(_startingPrice >= _minimumPrice);
        require(! listingActive(_tokenId));
        listings[_tokenId] = Listing(_tokenSeller, _startingPrice, _minimumPrice, now, _durationSeconds);
        nft.takeOwnership(_tokenId);
        TokenListed(_tokenId, _startingPrice, _minimumPrice, _durationSeconds, _tokenSeller);
    }

    function unlist(address _caller, uint256 _tokenId) public nftOnly {
        address _seller = listings[_tokenId].seller;
        // Allow owner to unlist (via nft) for when it's time to shut this down
        require(_seller == _caller || address(owner) == _caller);
        nft.transfer(_seller, _tokenId);
        delete listings[_tokenId];
        TokenUnlisted(_tokenId, _caller);
    }

    function purchase(address _caller, uint256 _tokenId, uint256 _totalPaid) public payable nftOnly {
        Listing memory _listing = listings[_tokenId];
        address _seller = _listing.seller;

        require(_caller != _seller); // Doesn't make sense for someone to buy/sell their own token.
        require(listingActive(_tokenId));

        uint256 _price = currentPrice(_tokenId);
        require(_totalPaid >= _price);

        delete listings[_tokenId];

        nft.transfer(_caller, _tokenId);
        _seller.transfer(msg.value);
        TokenSold(_tokenId, _price, _totalPaid, _seller, _caller);
    }

    function currentPrice(uint256 _tokenId) public view returns (uint256) {
        Listing memory listing = listings[_tokenId];
        require(now >= listing.createdAt);

        uint256 _deadline = listing.createdAt + listing.durationSeconds;
        require(now <= _deadline);

        uint256 _elapsedTime = now - listing.createdAt;
        uint256 _progress = (_elapsedTime * 100) / listing.durationSeconds;
        uint256 _delta = listing.startingPrice - listing.minimumPrice;
        return listing.startingPrice - ((_delta * _progress) / 100);
    }

    function listingActive(uint256 _tokenId) internal view returns (bool) {
        Listing memory listing = listings[_tokenId];
        return listing.createdAt + listing.durationSeconds >= now && now >= listing.createdAt;
    }
}

// File: zeppelin-solidity/contracts/lifecycle/Pausable.sol

/**
 * @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;
    Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    Unpause();
  }
}

// File: zeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

// File: zeppelin-solidity/contracts/token/ERC721/ERC721Token.sol

/**
 * @title ERC721Token
 * Generic implementation for the required functionality of the ERC721 standard
 */
contract ERC721Token is ERC721 {
  using SafeMath for uint256;

  // Total amount of tokens
  uint256 private totalTokens;

  // Mapping from token ID to owner
  mapping (uint256 => address) private tokenOwner;

  // Mapping from token ID to approved address
  mapping (uint256 => address) private tokenApprovals;

  // Mapping from owner to list of owned token IDs
  mapping (address => uint256[]) private ownedTokens;

  // Mapping from token ID to index of the owner tokens list
  mapping(uint256 => uint256) private ownedTokensIndex;

  /**
  * @dev Guarantees msg.sender is owner of the given token
  * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender
  */
  modifier onlyOwnerOf(uint256 _tokenId) {
    require(ownerOf(_tokenId) == msg.sender);
    _;
  }

  /**
  * @dev Gets the total amount of tokens stored by the contract
  * @return uint256 representing the total amount of tokens
  */
  function totalSupply() public view returns (uint256) {
    return totalTokens;
  }

  /**
  * @dev Gets the balance of the specified address
  * @param _owner address to query the balance of
  * @return uint256 representing the amount owned by the passed address
  */
  function balanceOf(address _owner) public view returns (uint256) {
    return ownedTokens[_owner].length;
  }

  /**
  * @dev Gets the list of tokens owned by a given address
  * @param _owner address to query the tokens of
  * @return uint256[] representing the list of tokens owned by the passed address
  */
  function tokensOf(address _owner) public view returns (uint256[]) {
    return ownedTokens[_owner];
  }

  /**
  * @dev Gets the owner of the specified token ID
  * @param _tokenId uint256 ID of the token to query the owner of
  * @return owner address currently marked as the owner of the given token ID
  */
  function ownerOf(uint256 _tokenId) public view returns (address) {
    address owner = tokenOwner[_tokenId];
    require(owner != address(0));
    return owner;
  }

  /**
   * @dev Gets the approved address to take ownership of a given token ID
   * @param _tokenId uint256 ID of the token to query the approval of
   * @return address currently approved to take ownership of the given token ID
   */
  function approvedFor(uint256 _tokenId) public view returns (address) {
    return tokenApprovals[_tokenId];
  }

  /**
  * @dev Transfers the ownership of a given token ID to another address
  * @param _to address to receive the ownership of the given token ID
  * @param _tokenId uint256 ID of the token to be transferred
  */
  function transfer(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) {
    clearApprovalAndTransfer(msg.sender, _to, _tokenId);
  }

  /**
  * @dev Approves another address to claim for the ownership of the given token ID
  * @param _to address to be approved for the given token ID
  * @param _tokenId uint256 ID of the token to be approved
  */
  function approve(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) {
    address owner = ownerOf(_tokenId);
    require(_to != owner);
    if (approvedFor(_tokenId) != 0 || _to != 0) {
      tokenApprovals[_tokenId] = _to;
      Approval(owner, _to, _tokenId);
    }
  }

  /**
  * @dev Claims the ownership of a given token ID
  * @param _tokenId uint256 ID of the token being claimed by the msg.sender
  */
  function takeOwnership(uint256 _tokenId) public {
    require(isApprovedFor(msg.sender, _tokenId));
    clearApprovalAndTransfer(ownerOf(_tokenId), msg.sender, _tokenId);
  }

  /**
  * @dev Mint token function
  * @param _to The address that will own the minted token
  * @param _tokenId uint256 ID of the token to be minted by the msg.sender
  */
  function _mint(address _to, uint256 _tokenId) internal {
    require(_to != address(0));
    addToken(_to, _tokenId);
    Transfer(0x0, _to, _tokenId);
  }

  /**
  * @dev Burns a specific token
  * @param _tokenId uint256 ID of the token being burned by the msg.sender
  */
  function _burn(uint256 _tokenId) onlyOwnerOf(_tokenId) internal {
    if (approvedFor(_tokenId) != 0) {
      clearApproval(msg.sender, _tokenId);
    }
    removeToken(msg.sender, _tokenId);
    Transfer(msg.sender, 0x0, _tokenId);
  }

  /**
   * @dev Tells whether the msg.sender is approved for the given token ID or not
   * This function is not private so it can be extended in further implementations like the operatable ERC721
   * @param _owner address of the owner to query the approval of
   * @param _tokenId uint256 ID of the token to query the approval of
   * @return bool whether the msg.sender is approved for the given token ID or not
   */
  function isApprovedFor(address _owner, uint256 _tokenId) internal view returns (bool) {
    return approvedFor(_tokenId) == _owner;
  }

  /**
  * @dev Internal function to clear current approval and transfer the ownership of a given token ID
  * @param _from address which you want to send tokens from
  * @param _to address which you want to transfer the token to
  * @param _tokenId uint256 ID of the token to be transferred
  */
  function clearApprovalAndTransfer(address _from, address _to, uint256 _tokenId) internal {
    require(_to != address(0));
    require(_to != ownerOf(_tokenId));
    require(ownerOf(_tokenId) == _from);

    clearApproval(_from, _tokenId);
    removeToken(_from, _tokenId);
    addToken(_to, _tokenId);
    Transfer(_from, _to, _tokenId);
  }

  /**
  * @dev Internal function to clear current approval of a given token ID
  * @param _tokenId uint256 ID of the token to be transferred
  */
  function clearApproval(address _owner, uint256 _tokenId) private {
    require(ownerOf(_tokenId) == _owner);
    tokenApprovals[_tokenId] = 0;
    Approval(_owner, 0, _tokenId);
  }

  /**
  * @dev Internal function to add a token ID to the list of a given address
  * @param _to address representing the new owner of the given token ID
  * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address
  */
  function addToken(address _to, uint256 _tokenId) private {
    require(tokenOwner[_tokenId] == address(0));
    tokenOwner[_tokenId] = _to;
    uint256 length = balanceOf(_to);
    ownedTokens[_to].push(_tokenId);
    ownedTokensIndex[_tokenId] = length;
    totalTokens = totalTokens.add(1);
  }

  /**
  * @dev Internal function to remove a token ID from the list of a given address
  * @param _from address representing the previous owner of the given token ID
  * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address
  */
  function removeToken(address _from, uint256 _tokenId) private {
    require(ownerOf(_tokenId) == _from);

    uint256 tokenIndex = ownedTokensIndex[_tokenId];
    uint256 lastTokenIndex = balanceOf(_from).sub(1);
    uint256 lastToken = ownedTokens[_from][lastTokenIndex];

    tokenOwner[_tokenId] = 0;
    ownedTokens[_from][tokenIndex] = lastToken;
    ownedTokens[_from][lastTokenIndex] = 0;
    // Note that this will handle single-element arrays. In that case, both tokenIndex and lastTokenIndex are going to
    // be zero. Then we can make sure that we will remove _tokenId from the ownedTokens list since we are first swapping
    // the lastToken to the first position, and then dropping the element placed in the last position of the list

    ownedTokens[_from].length--;
    ownedTokensIndex[_tokenId] = 0;
    ownedTokensIndex[lastToken] = tokenIndex;
    totalTokens = totalTokens.sub(1);
  }
}

// File: contracts/PineappleArcadeTrophy.sol

contract PineappleArcadeTrophy is ERC721Token, Pausable {
    /// @notice Name and Symbol are part of the ERC721 standard
    string public constant name = "PineappleArcadeTrophy";
    string public constant symbol = "DEGEN";

    Marketplace public marketplace;
    uint256 public maxTrophies;

    /// @dev trophyId to trophyName
    mapping (uint256 => bytes32) public trophies;

    function PineappleArcadeTrophy(uint256 _maxTrophies) public {
        maxTrophies = _maxTrophies;
        pause();
    }

    function setMarketplace(Marketplace _marketplace) external onlyOwner {
        marketplace = _marketplace;
    }

    function grantTrophy(address _initialOwner, bytes32 _trophyName) external onlyOwner {
        require(totalSupply() < maxTrophies);
        require(_trophyName != 0x0);
        trophies[nextId()] = _trophyName;
        _mint(_initialOwner, nextId());
    }

    function listTrophy(uint256 _trophyId, uint256 _startingPriceWei, uint256 _minimumPriceWei, uint256 _durationSeconds) external whenNotPaused {
        address _trophySeller = ownerOf(_trophyId);
        require(_trophySeller == msg.sender);
        approve(marketplace, _trophyId);
        marketplace.list(_trophySeller, _trophyId, _startingPriceWei, _minimumPriceWei, _durationSeconds);
    }

    function unlistTrophy(uint256 _trophyId) external {
        marketplace.unlist(msg.sender, _trophyId);
    }

    function currentPrice(uint256 _trophyId) public view returns(uint256) {
        return marketplace.currentPrice(_trophyId);
    }

    function purchaseTrophy(uint256 _trophyId) external payable whenNotPaused {
        // Blockade collects 3.75% of each market transaction, paid by the seller.
        uint256 _blockadeFee = (msg.value * 375) / 10000; // Note: small values prevent Blockade from earning anything
        uint256 _sellerTake = msg.value - _blockadeFee;
        marketplace.purchase.value(_sellerTake)(msg.sender, _trophyId, msg.value);
    }

    /// @notice With each call to purchaseTrophy, fees will build up in this contract's balance.
    /// This method allows the contract owner to transfer that balance to their account.
    function withdrawBalance() external onlyOwner {
        owner.transfer(this.balance);
    }

    function nextId() internal view returns (uint256) {
        return totalSupply() + 1;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trophyId","type":"uint256"}],"name":"unlistTrophy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"approvedFor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_initialOwner","type":"address"},{"name":"_trophyName","type":"bytes32"}],"name":"grantTrophy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_marketplace","type":"address"}],"name":"setMarketplace","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trophyId","type":"uint256"}],"name":"currentPrice","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"trophies","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTrophies","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketplace","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_trophyId","type":"uint256"}],"name":"purchaseTrophy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_trophyId","type":"uint256"},{"name":"_startingPriceWei","type":"uint256"},{"name":"_minimumPriceWei","type":"uint256"},{"name":"_durationSeconds","type":"uint256"}],"name":"listTrophy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_maxTrophies","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526000600560146101000a81548160ff021916908315150217905550341561002a57600080fd5b60405160208062001f2a8339810160405280805190602001909190505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806007819055506100aa6100b064010000000002610fcd176401000000009004565b50610171565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561010c57600080fd5b600560149054906101000a900460ff1615151561012857600080fd5b6001600560146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b611da980620001816000396000f300606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461014e578063095ea7b3146101dc57806318160ddd1461021e578063277ccada146102475780632a6dd48f1461026a5780633f4ba83a146102cd578063452a33f0146102e25780635a3f2672146103285780635c975abb146103b65780635fd8c710146103e35780636352211e146103f857806370a082311461045b57806373ad6c2d146104a85780637a3c4c17146104e15780638456cb59146105185780638da5cb5b1461052d57806395d89b4114610582578063a06bb50f14610610578063a9059cbb1461064f578063aa79bc0214610691578063abc8c7af146106ba578063b2e6ceeb1461070f578063d3b6664a14610732578063f2fde38b1461074a578063f66597c214610783575b600080fd5b341561015957600080fd5b6101616107c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a1578082015181840152602081019050610186565b50505050905090810190601f1680156101ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101e757600080fd5b61021c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107fa565b005b341561022957600080fd5b61023161098d565b6040518082815260200191505060405180910390f35b341561025257600080fd5b6102686004808035906020019091905050610996565b005b341561027557600080fd5b61028b6004808035906020019091905050610a6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102d857600080fd5b6102e0610aaa565b005b34156102ed57600080fd5b610326600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050610b6a565b005b341561033357600080fd5b61035f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c2c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103a2578082015181840152602081019050610387565b505050509050019250505060405180910390f35b34156103c157600080fd5b6103c9610cc9565b604051808215151515815260200191505060405180910390f35b34156103ee57600080fd5b6103f6610cdc565b005b341561040357600080fd5b6104196004808035906020019091905050610db3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046657600080fd5b610492600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e31565b6040518082815260200191505060405180910390f35b34156104b357600080fd5b6104df600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e7d565b005b34156104ec57600080fd5b6105026004808035906020019091905050610f1d565b6040518082815260200191505060405180910390f35b341561052357600080fd5b61052b610fcd565b005b341561053857600080fd5b61054061108e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058d57600080fd5b6105956110b4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105d55780820151818401526020810190506105ba565b50505050905090810190601f1680156106025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561061b57600080fd5b61063160048080359060200190919050506110ed565b60405180826000191660001916815260200191505060405180910390f35b341561065a57600080fd5b61068f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611105565b005b341561069c57600080fd5b6106a4611158565b6040518082815260200191505060405180910390f35b34156106c557600080fd5b6106cd61115e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561071a57600080fd5b6107306004808035906020019091905050611184565b005b61074860048080359060200190919050506111af565b005b341561075557600080fd5b610781600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112c9565b005b341561078e57600080fd5b6107bf6004808035906020019091908035906020019091908035906020019091908035906020019091905050611421565b005b6040805190810160405280601581526020017f50696e656170706c6541726361646554726f706879000000000000000000000081525081565b6000813373ffffffffffffffffffffffffffffffffffffffff1661081d82610db3565b73ffffffffffffffffffffffffffffffffffffffff1614151561083f57600080fd5b61084883610db3565b91508173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561088557600080fd5b600061089084610a6d565b73ffffffffffffffffffffffffffffffffffffffff161415806108ca575060008473ffffffffffffffffffffffffffffffffffffffff1614155b1561098757836002600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a35b50505050565b60008054905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349c83e8633836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610a5a57600080fd5b5af11515610a6757600080fd5b50505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b0657600080fd5b600560149054906101000a900460ff161515610b2157600080fd5b6000600560146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc657600080fd5b600754610bd161098d565b101515610bdd57600080fd5b6000600102816000191614151515610bf457600080fd5b8060086000610c016115a3565b81526020019081526020016000208160001916905550610c2882610c236115a3565b6115b5565b5050565b610c34611cec565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015610cbd57602002820191906000526020600020905b815481526020019060010190808311610ca9575b50505050509050919050565b600560149054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d3857600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610db157600080fd5b565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e2857600080fd5b80915050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ed957600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637a3c4c17836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610faf57600080fd5b5af11515610fbc57600080fd5b505050604051805190509050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561102957600080fd5b600560149054906101000a900460ff1615151561104557600080fd5b6001600560146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f444547454e00000000000000000000000000000000000000000000000000000081525081565b60086020528060005260406000206000915090505481565b803373ffffffffffffffffffffffffffffffffffffffff1661112682610db3565b73ffffffffffffffffffffffffffffffffffffffff1614151561114857600080fd5b61115333848461164f565b505050565b60075481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61118e3382611798565b151561119957600080fd5b6111ac6111a582610db3565b338361164f565b50565b600080600560149054906101000a900460ff161515156111ce57600080fd5b61271061017734028115156111df57fe5b0491508134039050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398968f15823386346040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200193505050506000604051808303818588803b15156112b357600080fd5b5af115156112c057600080fd5b50505050505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561132557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561136157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560149054906101000a900460ff1615151561143f57600080fd5b61144885610db3565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561148457600080fd5b6114b0600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866107fa565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b8bf029b82878787876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815260200183815260200182815260200195505050505050600060405180830381600087803b151561158c57600080fd5b5af1151561159957600080fd5b5050505050505050565b600060016115af61098d565b01905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156115f157600080fd5b6115fb82826117d9565b8173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561168b57600080fd5b61169481610db3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156116ce57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166116ee82610db3565b73ffffffffffffffffffffffffffffffffffffffff1614151561171057600080fd5b61171a8382611944565b6117248382611a2d565b61172e82826117d9565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008273ffffffffffffffffffffffffffffffffffffffff166117ba83610a6d565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561184857600080fd5b826001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118a383610e31565b9050600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816118f69190611d00565b9160005260206000209001600084909190915055508060046000848152602001908152602001600020819055506119396001600054611cb590919063ffffffff16565b600081905550505050565b8173ffffffffffffffffffffffffffffffffffffffff1661196482610db3565b73ffffffffffffffffffffffffffffffffffffffff1614151561198657600080fd5b60006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b60008060008473ffffffffffffffffffffffffffffffffffffffff16611a5285610db3565b73ffffffffffffffffffffffffffffffffffffffff16141515611a7457600080fd5b60046000858152602001908152602001600020549250611aa66001611a9887610e31565b611cd390919063ffffffff16565b9150600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611af457fe5b906000526020600020900154905060006001600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515611ba257fe5b9060005260206000209001819055506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515611bff57fe5b906000526020600020900181905550600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611c609190611d2c565b5060006004600086815260200190815260200160002081905550826004600083815260200190815260200160002081905550611ca86001600054611cd390919063ffffffff16565b6000819055505050505050565b6000808284019050838110151515611cc957fe5b8091505092915050565b6000828211151515611ce157fe5b818303905092915050565b602060405190810160405280600081525090565b815481835581811511611d2757818360005260206000209182019101611d269190611d58565b5b505050565b815481835581811511611d5357818360005260206000209182019101611d529190611d58565b5b505050565b611d7a91905b80821115611d76576000816000905550600101611d5e565b5090565b905600a165627a7a72305820efa312419914a017d10eba77ba6e06dc96f50ce914f598d3cffa81bb9f246a3b002900000000000000000000000000000000000000000000000000000000000001f4

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000001f4

-----Decoded View---------------
Arg [0] : _maxTrophies (uint256): 500

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000001f4


Swarm Source

bzzr://efa312419914a017d10eba77ba6e06dc96f50ce914f598d3cffa81bb9f246a3b
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.

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.