ETH Price: $3,465.40 (+4.45%)

Token

apex Solids (APXS)
 

Overview

Max Total Supply

5 APXS

Holders

3

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 APXS

Value
$0.00
0x1beafa2e7e507eb73d61847bdbe95374d1fa0c4f
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
apexSolids

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.24;

/***
 * https://apexONE.io
 *
 * apex Solids - Solids is an eternal smart contract game.
 * 
 * The solids are priced by number of faces.
 * Price increases by 30% every flip.
 * Over 4 hours price will fall to base.
 * Holders after 4 hours with no flip can collect the holder fund.
 * 
 * 10% of rise buyer gets APX1 tokens in the apexONE exchange.
 * 5% of rise goes to holder fund.
 * 5% of rise goes to team and promoters.
 * The rest (110%) goes to previous owner.
 * 
 */
contract ERC721 {

  function approve(address _to, uint256 _tokenId) public;
  function balanceOf(address _owner) public view returns (uint256 balance);
  function implementsERC721() public pure returns (bool);
  function ownerOf(uint256 _tokenId) public view returns (address addr);
  function takeOwnership(uint256 _tokenId) public;
  function totalSupply() public view returns (uint256 total);
  function transferFrom(address _from, address _to, uint256 _tokenId) public;
  function transfer(address _to, uint256 _tokenId) public;

  event Transfer(address indexed from, address indexed to, uint256 tokenId);
  event Approval(address indexed owner, address indexed approved, uint256 tokenId);

}

contract apexONEInterface {
  function isStarted() public view returns (bool);
  function buyFor(address _referredBy, address _customerAddress) public payable returns (uint256);
}

contract apexSolids is ERC721 {

  /*=================================
  =            MODIFIERS            =
  =================================*/

  /// @dev Access modifier for owner functions
  modifier onlyOwner() {
    require(msg.sender == contractOwner);
    _;
  }

  /// @dev Prevent contract calls.
  modifier notContract() {
    require(tx.origin == msg.sender);
    _;
  }

  /// @dev notPaused
  modifier notPaused() {
    require(paused == false);
    _;
  }

  /// @dev notGasbag
  modifier notGasbag() {
    require(tx.gasprice < 99999999999);
    _;
  }

  /* @dev notMoron (childish but fun)
    modifier notMoron() {
      require(msg.sender != 0x41FE3738B503cBaFD01C1Fd8DD66b7fE6Ec11b01);
      _;
    }
  */
  
  /*==============================
  =            EVENTS            =
  ==============================*/

  event onTokenSold(
       uint256 indexed tokenId,
       uint256 price,
       address prevOwner,
       address newOwner,
       string name
    );


  /*==============================
  =            CONSTANTS         =
  ==============================*/

  string public constant NAME = "apex Solids";
  string public constant SYMBOL = "APXS";

  uint256 private increaseRatePercent =  130;
  uint256 private devFeePercent =  5;
  uint256 private bagHolderFundPercent =  5;
  uint256 private exchangeTokenPercent =  10;
  uint256 private previousOwnerPercent =  110;
  uint256 private priceFallDuration =  4 hours;

  /*==============================
  =            STORAGE           =
  ==============================*/

  /// @dev A mapping from solid IDs to the address that owns them.
  mapping (uint256 => address) public solidIndexToOwner;

  // @dev A mapping from owner address to count of tokens that address owns.
  mapping (address => uint256) private ownershipTokenCount;

  /// @dev A mapping from SolidID to an address that has been approved to call
  mapping (uint256 => address) public solidIndexToApproved;

  // @dev The address of the owner
  address public contractOwner;

  // @dev Current dev fee
  uint256 public currentDevFee = 0;

  // @dev The address of the exchange contract
  address public apexONEaddress;

  // @dev paused
  bool public paused;

  /*==============================
  =            DATATYPES         =
  ==============================*/

  struct Solid {
    string name;
    uint256 basePrice;
    uint256 highPrice;
    uint256 fallDuration;
    uint256 saleTime; // when was sold last
    uint256 bagHolderFund;
  }

  Solid [6] public solids;

  constructor () public {

    contractOwner = msg.sender;
    paused=true;

    Solid memory _Tetrahedron = Solid({
            name: "Tetrahedron",
            basePrice: 0.014 ether,
            highPrice: 0.014 ether,
            fallDuration: priceFallDuration,
            saleTime: now,
            bagHolderFund: 0
            });

    solids[1] =  _Tetrahedron;

    Solid memory _Cube = Solid({
            name: "Cube",
            basePrice: 0.016 ether,
            highPrice: 0.016 ether,
            fallDuration: priceFallDuration,
            saleTime: now,
            bagHolderFund: 0
            });

    solids[2] =  _Cube;

    Solid memory _Octahedron = Solid({
            name: "Octahedron",
            basePrice: 0.018 ether,
            highPrice: 0.018 ether,
            fallDuration: priceFallDuration,
            saleTime: now,
            bagHolderFund: 0
            });

    solids[3] =  _Octahedron;

    Solid memory _Dodecahedron = Solid({
            name: "Dodecahedron",
            basePrice: 0.02 ether,
            highPrice: 0.02 ether,
            fallDuration: priceFallDuration,
            saleTime: now,
            bagHolderFund: 0
            });

    solids[4] =  _Dodecahedron;

    Solid memory _Icosahedron = Solid({
            name: "Icosahedron",
            basePrice: 0.03 ether,
            highPrice: 0.03 ether,
            fallDuration: priceFallDuration,
            saleTime: now,
            bagHolderFund: 0
            });

    solids[5] =  _Icosahedron;

    _transfer(0x0, contractOwner, 1);
    _transfer(0x0, contractOwner, 2);
    _transfer(0x0, contractOwner, 3);
    _transfer(0x0, contractOwner, 4);
    _transfer(0x0, contractOwner, 5);

  }

  /*** PUBLIC FUNCTIONS ***/
  /// @notice Grant another address the right to transfer token via takeOwnership() and transferFrom().
  /// @param _to The address to be granted transfer approval. Pass address(0) to
  ///  clear all approvals.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function approve(
    address _to,
    uint256 _tokenId
  ) public {
    // Caller must own token.
    require(_owns(msg.sender, _tokenId));

    solidIndexToApproved[_tokenId] = _to;

    emit Approval(msg.sender, _to, _tokenId);
  }

  /// For querying balance of a particular account
  /// @param _owner The address for balance query
  /// @dev Required for ERC-721 compliance.
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return ownershipTokenCount[_owner];
  }

  /// @notice Returns all the relevant information about a specific solid.
  /// @param _tokenId The tokenId of the solid of interest.
  function getSolid(uint256 _tokenId) public view returns (
    string solidName,
    uint256 price,
    address currentOwner,
    uint256 bagHolderFund,
    bool isBagFundAvailable
  ) {
    Solid storage solid = solids[_tokenId];
    solidName = solid.name;
    price = priceOf(_tokenId);
    currentOwner = solidIndexToOwner[_tokenId];
    bagHolderFund = solid.bagHolderFund;
    isBagFundAvailable = now > (solid.saleTime + priceFallDuration);
  }

  function implementsERC721() public pure returns (bool) {
    return true;
  }

  /// @dev Required for ERC-721 compliance.
  function name() public pure returns (string) {
    return NAME;
  }

  /// For querying owner of token
  /// @param _tokenId The tokenID for owner inquiry
  /// @dev Required for ERC-721 compliance.
  function ownerOf(uint256 _tokenId)
    public
    view
    returns (address owner)
  {
    owner = solidIndexToOwner[_tokenId];
    require(owner != address(0));
  }

  // Allows someone to send ether and obtain the token
  function purchase(uint256 _tokenId , address _referredBy) public payable notContract notPaused notGasbag /*notMoron*/ {

    address oldOwner = solidIndexToOwner[_tokenId];
    address newOwner = msg.sender;

    uint256 currentPrice = priceOf(_tokenId);

    // Making sure token owner is not sending to self
    require(oldOwner != newOwner);

    // Safety check to prevent against an unexpected 0x0 default.
    require(_addressNotNull(newOwner));

    // Making sure sent amount is greater than or equal to the sellingPrice
    require(msg.value >= currentPrice);

    uint256 previousOwnerGets = SafeMath.mul(SafeMath.div(currentPrice,increaseRatePercent),previousOwnerPercent);
    uint256 exchangeTokensAmount = SafeMath.mul(SafeMath.div(currentPrice,increaseRatePercent),exchangeTokenPercent);
    uint256 devFeeAmount = SafeMath.mul(SafeMath.div(currentPrice,increaseRatePercent),devFeePercent);
    uint256 bagHolderFundAmount = SafeMath.mul(SafeMath.div(currentPrice,increaseRatePercent),bagHolderFundPercent);

    currentDevFee = currentDevFee + devFeeAmount;

    if (exchangeContract.isStarted()) {
        exchangeContract.buyFor.value(exchangeTokensAmount)(_referredBy, msg.sender);
    }else{
        // send excess back because exchange is not ready
        msg.sender.transfer(exchangeTokensAmount);
    }

    // do the sale
    _transfer(oldOwner, newOwner, _tokenId);

    // set new price and saleTime
    solids[_tokenId].highPrice = SafeMath.mul(SafeMath.div(currentPrice,100),increaseRatePercent);
    solids[_tokenId].saleTime = now;
    solids[_tokenId].bagHolderFund+=bagHolderFundAmount;

    // Pay previous tokenOwner if owner is not contract
    if (oldOwner != address(this)) {
      if (oldOwner.send(previousOwnerGets)){}
    }

    emit onTokenSold(_tokenId, currentPrice, oldOwner, newOwner, solids[_tokenId].name);

  }

  function priceOf(uint256 _tokenId) public view returns (uint256 price) {

    Solid storage solid = solids[_tokenId];
    uint256 secondsPassed  = now - solid.saleTime;

    if (secondsPassed >= solid.fallDuration || solid.highPrice==solid.basePrice) {
            return solid.basePrice;
    }

    uint256 totalPriceChange = solid.highPrice - solid.basePrice;
    uint256 currentPriceChange = totalPriceChange * secondsPassed /solid.fallDuration;
    uint256 currentPrice = solid.highPrice - currentPriceChange;

    return currentPrice;
  }

  function collectBagHolderFund(uint256 _tokenId) public notPaused {
      require(msg.sender == solidIndexToOwner[_tokenId]);
      uint256 bagHolderFund;
      bool isBagFundAvailable = false;
       (
        ,
        ,
        ,
        bagHolderFund,
        isBagFundAvailable
        ) = getSolid(_tokenId);
        require(isBagFundAvailable && bagHolderFund > 0);
        uint256 amount = bagHolderFund;
        solids[_tokenId].bagHolderFund = 0;
        msg.sender.transfer(amount);
  }


  /// @dev Required for ERC-721 compliance.
  function symbol() public pure returns (string) {
    return SYMBOL;
  }

  /// @notice Allow pre-approved user to take ownership of a token
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function takeOwnership(uint256 _tokenId) public {
    address newOwner = msg.sender;
    address oldOwner = solidIndexToOwner[_tokenId];

    // Safety check to prevent against an unexpected 0x0 default.
    require(_addressNotNull(newOwner));

    // Making sure transfer is approved
    require(_approved(newOwner, _tokenId));

    _transfer(oldOwner, newOwner, _tokenId);
  }

  /// @param _owner The owner whose tokens we are interested in.
  /// @dev This method MUST NEVER be called by smart contract code.
  function tokensOfOwner(address _owner) public view returns(uint256[] ownerTokens) {
    uint256 tokenCount = balanceOf(_owner);
    if (tokenCount == 0) {
        // Return an empty array
      return new uint256[](0);
    } else {
      uint256[] memory result = new uint256[](tokenCount);
      uint256 totalTokens = totalSupply();
      uint256 resultIndex = 0;

      uint256 tokenId;
      for (tokenId = 0; tokenId <= totalTokens; tokenId++) {
        if (solidIndexToOwner[tokenId] == _owner) {
          result[resultIndex] = tokenId;
          resultIndex++;
        }
      }
      return result;
    }
  }

  /// For querying totalSupply of token
  /// @dev Required for ERC-721 compliance.
  function totalSupply() public view returns (uint256 total) {
    return 5;
  }

  /// Owner initates the transfer of the token to another account
  /// @param _to The address for the token to be transferred to.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function transfer(
    address _to,
    uint256 _tokenId
  ) public {
    require(_owns(msg.sender, _tokenId));
    require(_addressNotNull(_to));

    _transfer(msg.sender, _to, _tokenId);
  }

  /// Third-party initiates transfer of token from address _from to address _to
  /// @param _from The address for the token to be transferred from.
  /// @param _to The address for the token to be transferred to.
  /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
  /// @dev Required for ERC-721 compliance.
  function transferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  ) public {
    require(_owns(_from, _tokenId));
    require(_approved(_to, _tokenId));
    require(_addressNotNull(_to));

    _transfer(_from, _to, _tokenId);
  }

  /*** PRIVATE FUNCTIONS ***/
  /// Safety check on _to address to prevent against an unexpected 0x0 default.
  function _addressNotNull(address _to) private pure returns (bool) {
    return _to != address(0);
  }

  /// For checking approval of transfer for address _to
  function _approved(address _to, uint256 _tokenId) private view returns (bool) {
    return solidIndexToApproved[_tokenId] == _to;
  }

  /// Check for token ownership
  function _owns(address claimant, uint256 _tokenId) private view returns (bool) {
    return claimant == solidIndexToOwner[_tokenId];
  }

  /// @dev Assigns ownership of a specific token to an address.
  function _transfer(address _from, address _to, uint256 _tokenId) private {

    // no transfer to contract
    uint length;
    assembly { length := extcodesize(_to) }
    require (length == 0);

    ownershipTokenCount[_to]++;
    //transfer ownership
    solidIndexToOwner[_tokenId] = _to;

    if (_from != address(0)) {
      ownershipTokenCount[_from]--;
      // clear any previously approved ownership exchange
      delete solidIndexToApproved[_tokenId];
    }

    // Emit the transfer event.
    emit Transfer(_from, _to, _tokenId);
  }

  /// @dev Not a charity
  function collectDevFees() public onlyOwner {
      if (currentDevFee < address(this).balance){
         uint256 amount = currentDevFee;
         currentDevFee = 0;
         contractOwner.transfer(amount);
      }
  }

  /// @dev Interface to exchange
   apexONEInterface public exchangeContract;

  function setExchangeAddresss(address _address) public onlyOwner {
    exchangeContract = apexONEInterface(_address);
    apexONEaddress = _address;
   }

   /// @dev stop and start
   function setPaused(bool _paused) public onlyOwner {
     paused = _paused;
    }

}


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

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","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":"_tokenId","type":"uint256"}],"name":"getSolid","outputs":[{"name":"solidName","type":"string"},{"name":"price","type":"uint256"},{"name":"currentOwner","type":"address"},{"name":"bagHolderFund","type":"uint256"},{"name":"isBagFundAvailable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"solids","outputs":[{"name":"name","type":"string"},{"name":"basePrice","type":"uint256"},{"name":"highPrice","type":"uint256"},{"name":"fallDuration","type":"uint256"},{"name":"saleTime","type":"uint256"},{"name":"bagHolderFund","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"apexONEaddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exchangeContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"collectDevFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setExchangeAddresss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"ownerTokens","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"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":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_referredBy","type":"address"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOf","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"solidIndexToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentDevFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"collectBagHolderFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"solidIndexToApproved","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"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"},{"indexed":false,"name":"name","type":"string"}],"name":"onTokenSold","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"}]

6080604052608260005560056001556005600255600a600355606e6004556138406005556000600a553480156200003557600080fd5b50620000406200067b565b6200004a6200067b565b620000546200067b565b6200005e6200067b565b620000686200067b565b60098054600160a060020a03191633179055600b805460a060020a60ff02191674010000000000000000000000000000000000000000178155604080516101008101825260c081018381527f5465747261686564726f6e00000000000000000000000000000000000000000060e083019081529082526631bced02db000060208301819052928201929092526005546060820152426080820152600060a0820152965086916012916200011e91839190620006b2565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015590505060c0604051908101604052806040805190810160405280600481526020017f437562650000000000000000000000000000000000000000000000000000000081525081526020016638d7ea4c68000081526020016638d7ea4c680000815260200160055481526020014281526020016000815250935083600c6002600681101515620001dc57fe5b600602016000820151816000019080519060200190620001fe929190620006b2565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015590505060c0604051908101604052806040805190810160405280600a81526020017f4f637461686564726f6e000000000000000000000000000000000000000000008152508152602001663ff2e795f500008152602001663ff2e795f50000815260200160055481526020014281526020016000815250925082600c6003600681101515620002bc57fe5b600602016000820151816000019080519060200190620002de929190620006b2565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015590505060c0604051908101604052806040805190810160405280600c81526020017f446f64656361686564726f6e0000000000000000000000000000000000000000815250815260200166470de4df820000815260200166470de4df820000815260200160055481526020014281526020016000815250915081600c60046006811015156200039c57fe5b600602016000820151816000019080519060200190620003be929190620006b2565b506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015590505060c0604051908101604052806040805190810160405280600b81526020017f49636f7361686564726f6e0000000000000000000000000000000000000000008152508152602001666a94d74f4300008152602001666a94d74f430000815260200160055481526020014281526020016000815250905080600c60056006811015156200047c57fe5b6006020160008201518160000190805190602001906200049e929190620006b2565b50602082015160018083019190915560408301516002830155606083015160038301556080830151600483015560a090920151600590910155600954620004fb91600091600160a060020a0316906401000000006200059a810204565b6009546200052090600090600160a060020a031660026401000000006200059a810204565b6009546200054590600090600160a060020a031660036401000000006200059a810204565b6009546200056a90600090600160a060020a031660046401000000006200059a810204565b6009546200058f90600090600160a060020a031660056401000000006200059a810204565b505050505062000757565b813b8015620005a857600080fd5b600160a060020a03808416600081815260076020908152604080832080546001019055868352600690915290208054600160a060020a03191690911790558416156200062a57600160a060020a03841660009081526007602090815260408083208054600019019055848352600890915290208054600160a060020a03191690555b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60c0604051908101604052806060815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006f557805160ff191683800117855562000725565b8280016001018555821562000725579182015b828111156200072557825182559160200191906001019062000708565b506200073392915062000737565b5090565b6200075491905b808211156200073357600081556001016200073e565b90565b61144a80620007676000396000f3006080604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461016e578063095ea7b3146101f85780630e3fd8c21461021e5780631051db34146102e057806316c38b3c1461030957806318160ddd146103235780631c60df061461034a57806323b872dd146103fd5780632d6e7511146104275780633f0a0797146104585780635054e8bf1461046d5780635c975abb146104825780636352211e146104975780636bb3b4a4146104af57806370a08231146104d05780638462151c146104f157806395d89b4114610562578063a3f4df7e14610577578063a9059cbb1461058c578063ae77c237146105b0578063b2e6ceeb146105c7578063b9186d7d146105df578063ce606ee0146105f7578063d070b83b1461060c578063e8b5cdf514610624578063f3aff18114610639578063f47d5ac514610651578063f76f8d7814610669575b600080fd5b34801561017a57600080fd5b5061018361067e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101bd5781810151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020457600080fd5b5061021c600160a060020a03600435166024356106b5565b005b34801561022a57600080fd5b5061023660043561073d565b604051808060200186815260200185600160a060020a0316600160a060020a0316815260200184815260200183151515158152602001828103825287818151815260200191508051906020019080838360005b838110156102a1578181015183820152602001610289565b50505050905090810190601f1680156102ce5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3480156102ec57600080fd5b506102f5610828565b604080519115158252519081900360200190f35b34801561031557600080fd5b5061021c600435151561082d565b34801561032f57600080fd5b50610338610884565b60408051918252519081900360200190f35b34801561035657600080fd5b50610362600435610889565b6040518080602001878152602001868152602001858152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b838110156103bd5781810151838201526020016103a5565b50505050905090810190601f1680156103ea5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561040957600080fd5b5061021c600160a060020a0360043581169060243516604435610949565b34801561043357600080fd5b5061043c610997565b60408051600160a060020a039092168252519081900360200190f35b34801561046457600080fd5b5061043c6109a6565b34801561047957600080fd5b5061021c6109b5565b34801561048e57600080fd5b506102f5610a25565b3480156104a357600080fd5b5061043c600435610a46565b3480156104bb57600080fd5b5061021c600160a060020a0360043516610a6f565b3480156104dc57600080fd5b50610338600160a060020a0360043516610abf565b3480156104fd57600080fd5b50610512600160a060020a0360043516610ada565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561054e578181015183820152602001610536565b505050509050019250505060405180910390f35b34801561056e57600080fd5b50610183610bac565b34801561058357600080fd5b50610183610be3565b34801561059857600080fd5b5061021c600160a060020a0360043516602435610c1a565b61021c600435600160a060020a0360243516610c4e565b3480156105d357600080fd5b5061021c60043561106a565b3480156105eb57600080fd5b506103386004356110b8565b34801561060357600080fd5b5061043c611139565b34801561061857600080fd5b5061043c600435611148565b34801561063057600080fd5b50610338611163565b34801561064557600080fd5b5061021c600435611169565b34801561065d57600080fd5b5061043c600435611237565b34801561067557600080fd5b50610183611252565b60408051808201909152600b81527f6170657820536f6c696473000000000000000000000000000000000000000000602082015290565b6106bf3382611289565b15156106ca57600080fd5b600081815260086020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861690811790915582518481529251909233927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a35050565b6060600080808080600c876006811061075257fe5b60060201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292935083918301828280156107dd5780601f106107b2576101008083540402835291602001916107dd565b820191906000526020600020905b8154815290600101906020018083116107c057829003601f168201915b505050505095506107ed876110b8565b6000978852600660205260409097205460058083015490546004909301549799600160a060020a039092169790965090910142119350915050565b600190565b600954600160a060020a0316331461084457600080fd5b600b8054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600590565b600c816006811061089657fe5b60060201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292935083918301828280156109215780601f106108f657610100808354040283529160200191610921565b820191906000526020600020905b81548152906001019060200180831161090457829003601f168201915b5050505050908060010154908060020154908060030154908060040154908060050154905086565b6109538382611289565b151561095e57600080fd5b61096882826112a9565b151561097357600080fd5b61097c826112c9565b151561098757600080fd5b6109928383836112d7565b505050565b600b54600160a060020a031681565b603054600160a060020a031681565b600954600090600160a060020a031633146109cf57600080fd5b600a5430311115610a225750600a80546000918290556009546040519192600160a060020a039091169183156108fc0291849190818181858888f19350505050158015610a20573d6000803e3d6000fd5b505b50565b600b5474010000000000000000000000000000000000000000900460ff1681565b600081815260066020526040902054600160a060020a0316801515610a6a57600080fd5b919050565b600954600160a060020a03163314610a8657600080fd5b60308054600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff199283168117909155600b8054909216179055565b600160a060020a031660009081526007602052604090205490565b6060600060606000806000610aee87610abf565b9450841515610b0d576040805160008152602081019091529550610ba2565b84604051908082528060200260200182016040528015610b37578160200160208202803883390190505b509350610b42610884565b925060009150600090505b828111610b9e57600081815260066020526040902054600160a060020a0388811691161415610b9657808483815181101515610b8557fe5b602090810290910101526001909101905b600101610b4d565b8395505b5050505050919050565b60408051808201909152600481527f4150585300000000000000000000000000000000000000000000000000000000602082015290565b60408051808201909152600b81527f6170657820536f6c696473000000000000000000000000000000000000000000602082015281565b610c243382611289565b1515610c2f57600080fd5b610c38826112c9565b1515610c4357600080fd5b610a203383836112d7565b6000808080808080323314610c6257600080fd5b600b5474010000000000000000000000000000000000000000900460ff1615610c8a57600080fd5b64174876e7ff3a10610c9b57600080fd5b600089815260066020526040902054600160a060020a03169650339550610cc1896110b8565b9450600160a060020a038781169087161415610cdc57600080fd5b610ce5866112c9565b1515610cf057600080fd5b34851115610cfd57600080fd5b610d14610d0c866000546113d0565b6004546113ec565b9350610d2d610d25866000546113d0565b6003546113ec565b9250610d46610d3e866000546113d0565b6001546113ec565b9150610d5f610d57866000546113d0565b6002546113ec565b600a805484019055603054604080517f544736e60000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163544736e6916004808201926020929091908290030181600087803b158015610dca57600080fd5b505af1158015610dde573d6000803e3d6000fd5b505050506040513d6020811015610df457600080fd5b505115610e9e57603054604080517fcaa877e7000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301523360248301529151919092169163caa877e791869160448082019260209290919082900301818588803b158015610e6b57600080fd5b505af1158015610e7f573d6000803e3d6000fd5b50505050506040513d6020811015610e9657600080fd5b50610ecd9050565b604051339084156108fc029085906000818181858888f19350505050158015610ecb573d6000803e3d6000fd5b505b610ed887878b6112d7565b610eee610ee68660646113d0565b6000546113ec565b600c8a60068110610efb57fe5b600602016002018190555042600c8a600681101515610f1657fe5b600602016004018190555080600c8a600681101515610f3157fe5b60060201600501805491909101905530600160a060020a03881614610f7657604051600160a060020a0388169085156108fc029086906000818181858888f150505050505b887f136c8670bae1a157608c4b0201053960f4271b43daf46cbf6ac6d729033b4be6868989600c8560068110610fa857fe5b60408051868152600160a060020a038087166020830152851691810191909152608060608201818152600693909302939093018054600260001961010060018416150201909116049382018490529290919060a08301908490801561104e5780601f106110235761010080835404028352916020019161104e565b820191906000526020600020905b81548152906001019060200180831161103157829003601f168201915b50509550505050505060405180910390a2505050505050505050565b6000818152600660205260409020543390600160a060020a031661108d826112c9565b151561109857600080fd5b6110a282846112a9565b15156110ad57600080fd5b6109928183856112d7565b60008080808080600c87600681106110cc57fe5b6006020194508460040154420393508460030154841015806110f5575084600101548560020154145b156111065784600101549550610ba2565b84600101548560020154039250846003015484840281151561112457fe5b60029096015495049094039695505050505050565b600954600160a060020a031681565b600660205260009081526040902054600160a060020a031681565b600a5481565b600b546000908190819074010000000000000000000000000000000000000000900460ff161561119857600080fd5b600084815260066020526040902054600160a060020a031633146111bb57600080fd5b600091506111c88461073d565b909650945084925050811590506111df5750600083115b15156111ea57600080fd5b50816000600c85600681106111fb57fe5b600602016005015560405133906108fc8315029083906000818181858888f19350505050158015611230573d6000803e3d6000fd5b5050505050565b600860205260009081526040902054600160a060020a031681565b60408051808201909152600481527f4150585300000000000000000000000000000000000000000000000000000000602082015281565b600090815260066020526040902054600160a060020a0390811691161490565b600090815260086020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b813b80156112e457600080fd5b600160a060020a0380841660008181526007602090815260408083208054600101905586835260069091529020805473ffffffffffffffffffffffffffffffffffffffff1916909117905584161561137f57600160a060020a0384166000908152600760209081526040808320805460001901905584835260089091529020805473ffffffffffffffffffffffffffffffffffffffff191690555b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008082848115156113de57fe5b0490508091505b5092915050565b6000808315156113ff57600091506113e5565b5082820282848281151561140f57fe5b041461141757fe5b93925050505600a165627a7a72305820c64625bcbf4dc8ce94d5f9e3e58b5578f2a7cb1fb165302ba404f90256dee7020029

Deployed Bytecode

0x6080604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461016e578063095ea7b3146101f85780630e3fd8c21461021e5780631051db34146102e057806316c38b3c1461030957806318160ddd146103235780631c60df061461034a57806323b872dd146103fd5780632d6e7511146104275780633f0a0797146104585780635054e8bf1461046d5780635c975abb146104825780636352211e146104975780636bb3b4a4146104af57806370a08231146104d05780638462151c146104f157806395d89b4114610562578063a3f4df7e14610577578063a9059cbb1461058c578063ae77c237146105b0578063b2e6ceeb146105c7578063b9186d7d146105df578063ce606ee0146105f7578063d070b83b1461060c578063e8b5cdf514610624578063f3aff18114610639578063f47d5ac514610651578063f76f8d7814610669575b600080fd5b34801561017a57600080fd5b5061018361067e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101bd5781810151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020457600080fd5b5061021c600160a060020a03600435166024356106b5565b005b34801561022a57600080fd5b5061023660043561073d565b604051808060200186815260200185600160a060020a0316600160a060020a0316815260200184815260200183151515158152602001828103825287818151815260200191508051906020019080838360005b838110156102a1578181015183820152602001610289565b50505050905090810190601f1680156102ce5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3480156102ec57600080fd5b506102f5610828565b604080519115158252519081900360200190f35b34801561031557600080fd5b5061021c600435151561082d565b34801561032f57600080fd5b50610338610884565b60408051918252519081900360200190f35b34801561035657600080fd5b50610362600435610889565b6040518080602001878152602001868152602001858152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b838110156103bd5781810151838201526020016103a5565b50505050905090810190601f1680156103ea5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561040957600080fd5b5061021c600160a060020a0360043581169060243516604435610949565b34801561043357600080fd5b5061043c610997565b60408051600160a060020a039092168252519081900360200190f35b34801561046457600080fd5b5061043c6109a6565b34801561047957600080fd5b5061021c6109b5565b34801561048e57600080fd5b506102f5610a25565b3480156104a357600080fd5b5061043c600435610a46565b3480156104bb57600080fd5b5061021c600160a060020a0360043516610a6f565b3480156104dc57600080fd5b50610338600160a060020a0360043516610abf565b3480156104fd57600080fd5b50610512600160a060020a0360043516610ada565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561054e578181015183820152602001610536565b505050509050019250505060405180910390f35b34801561056e57600080fd5b50610183610bac565b34801561058357600080fd5b50610183610be3565b34801561059857600080fd5b5061021c600160a060020a0360043516602435610c1a565b61021c600435600160a060020a0360243516610c4e565b3480156105d357600080fd5b5061021c60043561106a565b3480156105eb57600080fd5b506103386004356110b8565b34801561060357600080fd5b5061043c611139565b34801561061857600080fd5b5061043c600435611148565b34801561063057600080fd5b50610338611163565b34801561064557600080fd5b5061021c600435611169565b34801561065d57600080fd5b5061043c600435611237565b34801561067557600080fd5b50610183611252565b60408051808201909152600b81527f6170657820536f6c696473000000000000000000000000000000000000000000602082015290565b6106bf3382611289565b15156106ca57600080fd5b600081815260086020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861690811790915582518481529251909233927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a35050565b6060600080808080600c876006811061075257fe5b60060201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292935083918301828280156107dd5780601f106107b2576101008083540402835291602001916107dd565b820191906000526020600020905b8154815290600101906020018083116107c057829003601f168201915b505050505095506107ed876110b8565b6000978852600660205260409097205460058083015490546004909301549799600160a060020a039092169790965090910142119350915050565b600190565b600954600160a060020a0316331461084457600080fd5b600b8054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600590565b600c816006811061089657fe5b60060201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292935083918301828280156109215780601f106108f657610100808354040283529160200191610921565b820191906000526020600020905b81548152906001019060200180831161090457829003601f168201915b5050505050908060010154908060020154908060030154908060040154908060050154905086565b6109538382611289565b151561095e57600080fd5b61096882826112a9565b151561097357600080fd5b61097c826112c9565b151561098757600080fd5b6109928383836112d7565b505050565b600b54600160a060020a031681565b603054600160a060020a031681565b600954600090600160a060020a031633146109cf57600080fd5b600a5430311115610a225750600a80546000918290556009546040519192600160a060020a039091169183156108fc0291849190818181858888f19350505050158015610a20573d6000803e3d6000fd5b505b50565b600b5474010000000000000000000000000000000000000000900460ff1681565b600081815260066020526040902054600160a060020a0316801515610a6a57600080fd5b919050565b600954600160a060020a03163314610a8657600080fd5b60308054600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff199283168117909155600b8054909216179055565b600160a060020a031660009081526007602052604090205490565b6060600060606000806000610aee87610abf565b9450841515610b0d576040805160008152602081019091529550610ba2565b84604051908082528060200260200182016040528015610b37578160200160208202803883390190505b509350610b42610884565b925060009150600090505b828111610b9e57600081815260066020526040902054600160a060020a0388811691161415610b9657808483815181101515610b8557fe5b602090810290910101526001909101905b600101610b4d565b8395505b5050505050919050565b60408051808201909152600481527f4150585300000000000000000000000000000000000000000000000000000000602082015290565b60408051808201909152600b81527f6170657820536f6c696473000000000000000000000000000000000000000000602082015281565b610c243382611289565b1515610c2f57600080fd5b610c38826112c9565b1515610c4357600080fd5b610a203383836112d7565b6000808080808080323314610c6257600080fd5b600b5474010000000000000000000000000000000000000000900460ff1615610c8a57600080fd5b64174876e7ff3a10610c9b57600080fd5b600089815260066020526040902054600160a060020a03169650339550610cc1896110b8565b9450600160a060020a038781169087161415610cdc57600080fd5b610ce5866112c9565b1515610cf057600080fd5b34851115610cfd57600080fd5b610d14610d0c866000546113d0565b6004546113ec565b9350610d2d610d25866000546113d0565b6003546113ec565b9250610d46610d3e866000546113d0565b6001546113ec565b9150610d5f610d57866000546113d0565b6002546113ec565b600a805484019055603054604080517f544736e60000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163544736e6916004808201926020929091908290030181600087803b158015610dca57600080fd5b505af1158015610dde573d6000803e3d6000fd5b505050506040513d6020811015610df457600080fd5b505115610e9e57603054604080517fcaa877e7000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301523360248301529151919092169163caa877e791869160448082019260209290919082900301818588803b158015610e6b57600080fd5b505af1158015610e7f573d6000803e3d6000fd5b50505050506040513d6020811015610e9657600080fd5b50610ecd9050565b604051339084156108fc029085906000818181858888f19350505050158015610ecb573d6000803e3d6000fd5b505b610ed887878b6112d7565b610eee610ee68660646113d0565b6000546113ec565b600c8a60068110610efb57fe5b600602016002018190555042600c8a600681101515610f1657fe5b600602016004018190555080600c8a600681101515610f3157fe5b60060201600501805491909101905530600160a060020a03881614610f7657604051600160a060020a0388169085156108fc029086906000818181858888f150505050505b887f136c8670bae1a157608c4b0201053960f4271b43daf46cbf6ac6d729033b4be6868989600c8560068110610fa857fe5b60408051868152600160a060020a038087166020830152851691810191909152608060608201818152600693909302939093018054600260001961010060018416150201909116049382018490529290919060a08301908490801561104e5780601f106110235761010080835404028352916020019161104e565b820191906000526020600020905b81548152906001019060200180831161103157829003601f168201915b50509550505050505060405180910390a2505050505050505050565b6000818152600660205260409020543390600160a060020a031661108d826112c9565b151561109857600080fd5b6110a282846112a9565b15156110ad57600080fd5b6109928183856112d7565b60008080808080600c87600681106110cc57fe5b6006020194508460040154420393508460030154841015806110f5575084600101548560020154145b156111065784600101549550610ba2565b84600101548560020154039250846003015484840281151561112457fe5b60029096015495049094039695505050505050565b600954600160a060020a031681565b600660205260009081526040902054600160a060020a031681565b600a5481565b600b546000908190819074010000000000000000000000000000000000000000900460ff161561119857600080fd5b600084815260066020526040902054600160a060020a031633146111bb57600080fd5b600091506111c88461073d565b909650945084925050811590506111df5750600083115b15156111ea57600080fd5b50816000600c85600681106111fb57fe5b600602016005015560405133906108fc8315029083906000818181858888f19350505050158015611230573d6000803e3d6000fd5b5050505050565b600860205260009081526040902054600160a060020a031681565b60408051808201909152600481527f4150585300000000000000000000000000000000000000000000000000000000602082015281565b600090815260066020526040902054600160a060020a0390811691161490565b600090815260086020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b813b80156112e457600080fd5b600160a060020a0380841660008181526007602090815260408083208054600101905586835260069091529020805473ffffffffffffffffffffffffffffffffffffffff1916909117905584161561137f57600160a060020a0384166000908152600760209081526040808320805460001901905584835260089091529020805473ffffffffffffffffffffffffffffffffffffffff191690555b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008082848115156113de57fe5b0490508091505b5092915050565b6000808315156113ff57600091506113e5565b5082820282848281151561140f57fe5b041461141757fe5b93925050505600a165627a7a72305820c64625bcbf4dc8ce94d5f9e3e58b5578f2a7cb1fb165302ba404f90256dee7020029

Swarm Source

bzzr://c64625bcbf4dc8ce94d5f9e3e58b5578f2a7cb1fb165302ba404f90256dee702
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.