ETH Price: $3,893.00 (-0.58%)

Token

Rocket Pool (RPL)
 

Overview

Max Total Supply

18,000,000 RPL

Holders

8,091 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
jpistol.eth
Balance
0.585137507314218841 RPL

Value
$0.00
0x8dF4413bE25d520467771367D676D702A59831A2
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Token contract has migrated to 0xD33526068D116cE69F19A9ee46F0bd304F21A51f

ICO Information

ICO Start Date : Nov 25, 2017 
ICO End Date : Jan 07, 2018
Token Distribution Date : Jan 07, 2018
ICO Price  : 0.000833 ETH
Bonus : Presale: 14%
Country : Australia

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RocketPoolToken

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-09-11
*/

pragma solidity ^0.4.11;

contract Owned {

    address public owner;
    address public newOwner;
    event OwnershipTransferred(address indexed _from, address indexed _to);

    function Owned() {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address _newOwner) onlyOwner {
        newOwner = _newOwner;
    }

    function acceptOwnership() {
        require(msg.sender == newOwner);
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
    
}

contract Token {
    uint256 public totalSupply;
    function balanceOf(address _owner) constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
    function approve(address _spender, uint256 _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint256 remaining);
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

library SafeMath {
  function mul(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal 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;
  }

  function sub(uint256 a, uint256 b) internal returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

}

contract SalesAgentInterface {
     /**** Properties ***********/
    // Main contract token address
    address tokenContractAddress;
    // Contributions per address
    mapping (address => uint256) public contributions;    
    // Total ETH contributed     
    uint256 public contributedTotal;                       
    /// @dev Only allow access from the main token contract
    modifier onlyTokenContract() {_;}
    /*** Events ****************/
    event Contribute(address _agent, address _sender, uint256 _value);
    event FinaliseSale(address _agent, address _sender, uint256 _value);
    event Refund(address _agent, address _sender, uint256 _value);
    event ClaimTokens(address _agent, address _sender, uint256 _value);  
    /*** Methods ****************/
    /// @dev The address used for the depositAddress must checkin with the contract to verify it can interact with this contract, must happen or it won't accept funds
    function getDepositAddressVerify() public;
    /// @dev Get the contribution total of ETH from a contributor
    /// @param _owner The owners address
    function getContributionOf(address _owner) constant returns (uint256 balance);
}

/*  ERC 20 token */
contract StandardToken is Token {

    function transfer(address _to, uint256 _value) returns (bool success) {
      if (balances[msg.sender] >= _value && _value > 0) {
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        Transfer(msg.sender, _to, _value);
        return true;
      } else {
        return false;
      }
    }

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
      if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
        balances[_to] += _value;
        balances[_from] -= _value;
        allowed[_from][msg.sender] -= _value;
        Transfer(_from, _to, _value);
        return true;
      } else {
        return false;
      }
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
}

/// @title The main Rocket Pool Token (RPL) contract
/// @author David Rugendyke - http://www.rocketpool.net

/*****************************************************************
*   This is the main Rocket Pool Token (RPL) contract. It features
*   Smart Agent compatibility. The Sale Agent is a new type of 
*   contract that can authorise the minting of tokens on behalf of
*   the traditional ERC20 token contract. This allows you to 
*   distribute your ICO tokens through multiple Sale Agents, 
*   at various times, of various token quantities and of varying
*   fund targets. Once you’ve written a new Sale Agent contract,
*   you can register him with the main ERC20 token contract, 
*   he’s then permitted to sell it’s tokens on your behalf using
*   guidelines such as the amount of tokens he’s allowed to sell, 
*   the maximum ether he’s allowed to raise, the start block and
*   end blocks he’s allowed to sell between and more.
/****************************************************************/

contract RocketPoolToken is StandardToken, Owned {

     /**** Properties ***********/

    string public name = "Rocket Pool";
    string public symbol = "RPL";
    string public version = "1.0";
    // Set our token units
    uint8 public constant decimals = 18;
    uint256 public exponent = 10**uint256(decimals);
    uint256 public totalSupply = 0;                             // The total of tokens currently minted by sales agent contracts    
    uint256 public totalSupplyCap = 18 * (10**6) * exponent;    // 18 Million tokens


    /**** Libs *****************/
    
    using SafeMath for uint;                           
    
    
    /*** Sale Addresses *********/
       
    mapping (address => SalesAgent) private salesAgents;   // Our contract addresses of our sales contracts 
    address[] private salesAgentsAddresses;                // Keep an array of all our sales agent addresses for iteration

    /*** Structs ***************/
             
    struct SalesAgent {                     // These are contract addresses that are authorised to mint tokens
        address saleContractAddress;        // Address of the contract
        bytes32 saleContractType;           // Type of the contract ie. presale, crowdsale 
        uint256 targetEthMax;               // The max amount of ether the agent is allowed raise
        uint256 targetEthMin;               // The min amount of ether to raise to consider this contracts sales a success
        uint256 tokensLimit;                // The maximum amount of tokens this sale contract is allowed to distribute
        uint256 tokensMinted;               // The current amount of tokens minted by this agent
        uint256 minDeposit;                 // The minimum deposit amount allowed
        uint256 maxDeposit;                 // The maximum deposit amount allowed
        uint256 startBlock;                 // The start block when allowed to mint tokens
        uint256 endBlock;                   // The end block when to finish minting tokens
        address depositAddress;             // The address that receives the ether for that sale contract
        bool depositAddressCheckedIn;       // The address that receives the ether for that sale contract must check in with its sale contract to verify its a valid address that can interact
        bool finalised;                     // Has this sales contract been completed and the ether sent to the deposit address?
        bool exists;                        // Check to see if the mapping exists
    }

    /*** Events ****************/

    event MintToken(address _agent, address _address, uint256 _value);
    event SaleFinalised(address _agent, address _address, uint256 _value);
  
    /*** Tests *****************/

    event FlagUint(uint256 flag);
    event FlagAddress(address flag);

    
    /*** Modifiers *************/

    /// @dev Only allow access from the latest version of a sales contract
    modifier isSalesContract(address _sender) {
        // Is this an authorised sale contract?
        assert(salesAgents[_sender].exists == true);
        _;
    }

    
    /**** Methods ***********/

    /// @dev RPL Token Init
    function RocketPoolToken() {}


    // @dev General validation for a sales agent contract receiving a contribution, additional validation can be done in the sale contract if required
    // @param _value The value of the contribution in wei
    // @return A boolean that indicates if the operation was successful.
    function validateContribution(uint256 _value) isSalesContract(msg.sender) returns (bool) {
        // Get an instance of the sale agent contract
        SalesAgentInterface saleAgent = SalesAgentInterface(msg.sender);
        // Did they send anything from a proper address?
        assert(_value > 0);  
        // Check the depositAddress has been verified by the account holder
        assert(salesAgents[msg.sender].depositAddressCheckedIn == true);
        // Check if we're ok to receive contributions, have we started?
        assert(block.number > salesAgents[msg.sender].startBlock);       
        // Already ended? Or if the end block is 0, it's an open ended sale until finalised by the depositAddress
        assert(block.number < salesAgents[msg.sender].endBlock || salesAgents[msg.sender].endBlock == 0); 
        // Is it above the min deposit amount?
        assert(_value >= salesAgents[msg.sender].minDeposit); 
        // Is it below the max deposit allowed?
        assert(_value <= salesAgents[msg.sender].maxDeposit); 
        // No contributions if the sale contract has finalised
        assert(salesAgents[msg.sender].finalised == false);      
        // Does this deposit put it over the max target ether for the sale contract?
        assert(saleAgent.contributedTotal().add(_value) <= salesAgents[msg.sender].targetEthMax);       
        // All good
        return true;
    }


    // @dev General validation for a sales agent contract that requires the user claim the tokens after the sale has finished
    // @param _sender The address sent the request
    // @return A boolean that indicates if the operation was successful.
    function validateClaimTokens(address _sender) isSalesContract(msg.sender) returns (bool) {
        // Get an instance of the sale agent contract
        SalesAgentInterface saleAgent = SalesAgentInterface(msg.sender);
        // Must have previously contributed
        assert(saleAgent.getContributionOf(_sender) > 0); 
        // Sale contract completed
        assert(block.number > salesAgents[msg.sender].endBlock);  
        // All good
        return true;
    }
    

    // @dev Mint the Rocket Pool Tokens (RPL)
    // @param _to The address that will receive the minted tokens.
    // @param _amount The amount of tokens to mint.
    // @return A boolean that indicates if the operation was successful.
    function mint(address _to, uint _amount) isSalesContract(msg.sender) returns (bool) {
        // Check if we're ok to mint new tokens, have we started?
        // We dont check for the end block as some sale agents mint tokens during the sale, and some after its finished (proportional sales)
        assert(block.number > salesAgents[msg.sender].startBlock);   
        // Check the depositAddress has been verified by the designated account holder that will receive the funds from that agent
        assert(salesAgents[msg.sender].depositAddressCheckedIn == true);
        // No minting if the sale contract has finalised
        assert(salesAgents[msg.sender].finalised == false);
        // Check we don't exceed the assigned tokens of the sale agent
        assert(salesAgents[msg.sender].tokensLimit >= salesAgents[msg.sender].tokensMinted.add(_amount));
        // Verify ok balances and values
        assert(_amount > 0);
         // Check we don't exceed the supply limit
        assert(totalSupply.add(_amount) <= totalSupplyCap);
         // Ok all good, automatically checks for overflow with safeMath
        balances[_to] = balances[_to].add(_amount);
        // Add to the total minted for that agent, automatically checks for overflow with safeMath
        salesAgents[msg.sender].tokensMinted = salesAgents[msg.sender].tokensMinted.add(_amount);
        // Add to the overall total minted, automatically checks for overflow with safeMath
        totalSupply = totalSupply.add(_amount);
        // Fire the event
        MintToken(msg.sender, _to, _amount);
        // Fire the transfer event
        Transfer(0x0, _to, _amount); 
        // Completed
        return true; 
    }

    /// @dev Returns the amount of tokens that can still be minted
    function getRemainingTokens() public constant returns(uint256) {
        return totalSupplyCap.sub(totalSupply);
    }
    
    /// @dev Set the address of a new crowdsale/presale contract agent if needed, usefull for upgrading
    /// @param _saleAddress The address of the new token sale contract
    /// @param _saleContractType Type of the contract ie. presale, crowdsale, quarterly
    /// @param _targetEthMin The min amount of ether to raise to consider this contracts sales a success
    /// @param _targetEthMax The max amount of ether the agent is allowed raise
    /// @param _tokensLimit The maximum amount of tokens this sale contract is allowed to distribute
    /// @param _minDeposit The minimum deposit amount allowed
    /// @param _maxDeposit The maximum deposit amount allowed
    /// @param _startBlock The start block when allowed to mint tokens
    /// @param _endBlock The end block when to finish minting tokens
    /// @param _depositAddress The address that receives the ether for that sale contract
    function setSaleAgentContract(
        address _saleAddress, 
         string _saleContractType, 
        uint256 _targetEthMin, 
        uint256 _targetEthMax, 
        uint256 _tokensLimit, 
        uint256 _minDeposit,
        uint256 _maxDeposit,
        uint256 _startBlock, 
        uint256 _endBlock, 
        address _depositAddress
    ) 
    // Only the owner can register a new sale agent
    public onlyOwner  
    {
        // Valid addresses?
        assert(_saleAddress != 0x0 && _depositAddress != 0x0);  
        // Must have some available tokens
        assert(_tokensLimit > 0 && _tokensLimit <= totalSupplyCap);
        // Make sure the min deposit is less than or equal to the max
        assert(_minDeposit <= _maxDeposit);
        // Add the new sales contract
        salesAgents[_saleAddress] = SalesAgent({
            saleContractAddress: _saleAddress,
            saleContractType: sha3(_saleContractType),
            targetEthMin: _targetEthMin,
            targetEthMax: _targetEthMax,
            tokensLimit: _tokensLimit,
            tokensMinted: 0,
            minDeposit: _minDeposit,
            maxDeposit: _maxDeposit,
            startBlock: _startBlock,
            endBlock: _endBlock,
            depositAddress: _depositAddress,
            depositAddressCheckedIn: false,
            finalised: false,
            exists: true                      
        });
        // Store our agent address so we can iterate over it if needed
        salesAgentsAddresses.push(_saleAddress);
    }


    /// @dev Sets the contract sale agent process as completed, that sales agent is now retired
    function setSaleContractFinalised(address _sender) isSalesContract(msg.sender) public returns(bool) {
        // Get an instance of the sale agent contract
        SalesAgentInterface saleAgent = SalesAgentInterface(msg.sender);
        // Finalise the crowdsale funds
        assert(!salesAgents[msg.sender].finalised);                       
        // The address that will receive this contracts deposit, should match the original senders
        assert(salesAgents[msg.sender].depositAddress == _sender);            
        // If the end block is 0, it means an open ended crowdsale, once it's finalised, the end block is set to the current one
        if (salesAgents[msg.sender].endBlock == 0) {
            salesAgents[msg.sender].endBlock = block.number;
        }
        // Not yet finished?
        assert(block.number >= salesAgents[msg.sender].endBlock);         
        // Not enough raised?
        assert(saleAgent.contributedTotal() >= salesAgents[msg.sender].targetEthMin);
        // We're done now
        salesAgents[msg.sender].finalised = true;
        // Fire the event
        SaleFinalised(msg.sender, _sender, salesAgents[msg.sender].tokensMinted);
        // All good
        return true;
    }


    /// @dev Verifies if the current address matches the depositAddress
    /// @param _verifyAddress The address to verify it matches the depositAddress given for the sales agent
    function setSaleContractDepositAddressVerified(address _verifyAddress) isSalesContract(msg.sender) public {
        // Check its verified
        assert(salesAgents[msg.sender].depositAddress == _verifyAddress && _verifyAddress != 0x0);
        // Ok set it now
        salesAgents[msg.sender].depositAddressCheckedIn = true;
    }

    /// @dev Returns true if this sales contract has finalised
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractIsFinalised(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(bool) {
        return salesAgents[_salesAgentAddress].finalised;
    }

    /// @dev Returns the min target amount of ether the contract wants to raise
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractTargetEtherMin(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(uint256) {
        return salesAgents[_salesAgentAddress].targetEthMin;
    }

    /// @dev Returns the max target amount of ether the contract can raise
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractTargetEtherMax(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(uint256) {
        return salesAgents[_salesAgentAddress].targetEthMax;
    }

    /// @dev Returns the min deposit amount of ether
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractDepositEtherMin(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(uint256) {
        return salesAgents[_salesAgentAddress].minDeposit;
    }

    /// @dev Returns the max deposit amount of ether
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractDepositEtherMax(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(uint256) {
        return salesAgents[_salesAgentAddress].maxDeposit;
    }

    /// @dev Returns the address where the sale contracts ether will be deposited
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractDepositAddress(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(address) {
        return salesAgents[_salesAgentAddress].depositAddress;
    }

    /// @dev Returns the true if the sale agents deposit address has been verified
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractDepositAddressVerified(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(bool) {
        return salesAgents[_salesAgentAddress].depositAddressCheckedIn;
    }

    /// @dev Returns the start block for the sale agent
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractStartBlock(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(uint256) {
        return salesAgents[_salesAgentAddress].startBlock;
    }

    /// @dev Returns the start block for the sale agent
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractEndBlock(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(uint256) {
        return salesAgents[_salesAgentAddress].endBlock;
    }

    /// @dev Returns the max tokens for the sale agent
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractTokensLimit(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(uint256) {
        return salesAgents[_salesAgentAddress].tokensLimit;
    }

    /// @dev Returns the token total currently minted by the sale agent
    /// @param _salesAgentAddress The address of the token sale agent contract
    function getSaleContractTokensMinted(address _salesAgentAddress) constant isSalesContract(_salesAgentAddress) public returns(uint256) {
        return salesAgents[_salesAgentAddress].tokensMinted;
    }

    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_verifyAddress","type":"address"}],"name":"setSaleContractDepositAddressVerified","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractDepositEtherMax","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractStartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"}],"name":"validateClaimTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"}],"name":"setSaleContractFinalised","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractTargetEtherMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractTokensMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"exponent","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractDepositAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"validateContribution","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_saleAddress","type":"address"},{"name":"_saleContractType","type":"string"},{"name":"_targetEthMin","type":"uint256"},{"name":"_targetEthMax","type":"uint256"},{"name":"_tokensLimit","type":"uint256"},{"name":"_minDeposit","type":"uint256"},{"name":"_maxDeposit","type":"uint256"},{"name":"_startBlock","type":"uint256"},{"name":"_endBlock","type":"uint256"},{"name":"_depositAddress","type":"address"}],"name":"setSaleAgentContract","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getRemainingTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupplyCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractDepositEtherMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractTargetEtherMax","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractDepositAddressVerified","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractEndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractIsFinalised","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_salesAgentAddress","type":"address"}],"name":"getSaleContractTokensLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_agent","type":"address"},{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"MintToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_agent","type":"address"},{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"SaleFinalised","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"flag","type":"uint256"}],"name":"FlagUint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"flag","type":"address"}],"name":"FlagAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

606060405260408051908101604052600b81527f526f636b657420506f6f6c000000000000000000000000000000000000000000602082015260059080516200004d92916020019062000133565b5060408051908101604052600381527f52504c0000000000000000000000000000000000000000000000000000000000602082015260069080516200009792916020019062000133565b5060408051908101604052600381527f312e30000000000000000000000000000000000000000000000000000000000060208201526007908051620000e192916020019062000133565b50670de0b6b3a764000060085560006009556a0ee3a5f48a68b552000000600a5534156200010e57600080fd5b5b5b60038054600160a060020a03191633600160a060020a03161790555b5b620001dd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017657805160ff1916838001178555620001a6565b82800160010185558215620001a6579182015b82811115620001a657825182559160200191906001019062000189565b5b50620001b5929150620001b9565b5090565b620001da91905b80821115620001b55760008155600101620001c0565b5090565b90565b611e6380620001ed6000396000f300606060405236156101905763ffffffff60e060020a60003504166306fdde038114610195578063095ea7b314610220578063179c537e1461025657806317b83aa61461027757806318160ddd146102a857806323b872dd146102cd5780632511274314610309578063313ce5671461033a57806340c10f191461036357806345493057146103995780634aa83079146103cc5780634cc53838146103ff5780634db08e5b1461043057806352f6ee581461046157806354fd4d50146104865780636932c9c51461051157806370a082311461054c57806379ba50971461057d5780638da5cb5b1461059257806395d89b41146105c157806399f16c6e1461064c578063a7a8add214610676578063a9059cbb14610709578063af35ae271461073f578063bb102aea14610764578063bf7035c314610789578063c11301d4146107ba578063d4ee1d90146107eb578063dd62ed3e1461081a578063ef7c779714610851578063f2ccaed514610884578063f2fde38b146108b5578063f612a62d146108d6578063ff5bc8a714610909575b600080fd5b34156101a057600080fd5b6101a861093a565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e55780820151818401525b6020016101cc565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022b57600080fd5b610242600160a060020a03600435166024356109d8565b604051901515815260200160405180910390f35b341561026157600080fd5b610275600160a060020a0360043516610a45565b005b341561028257600080fd5b610296600160a060020a0360043516610af9565b60405190815260200160405180910390f35b34156102b357600080fd5b610296610b52565b60405190815260200160405180910390f35b34156102d857600080fd5b610242600160a060020a0360043581169060243516604435610b58565b604051901515815260200160405180910390f35b341561031457600080fd5b610296600160a060020a0360043516610c51565b60405190815260200160405180910390f35b341561034557600080fd5b61034d610caa565b60405160ff909116815260200160405180910390f35b341561036e57600080fd5b610242600160a060020a0360043516602435610caf565b604051901515815260200160405180910390f35b34156103a457600080fd5b610242600160a060020a0360043516610f15565b604051901515815260200160405180910390f35b34156103d757600080fd5b610242600160a060020a0360043516610ffc565b604051901515815260200160405180910390f35b341561040a57600080fd5b610296600160a060020a0360043516611217565b60405190815260200160405180910390f35b341561043b57600080fd5b610296600160a060020a0360043516611270565b60405190815260200160405180910390f35b341561046c57600080fd5b6102966112c9565b60405190815260200160405180910390f35b341561049157600080fd5b6101a86112cf565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e55780820151818401525b6020016101cc565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561051c57600080fd5b610530600160a060020a036004351661136d565b604051600160a060020a03909116815260200160405180910390f35b341561055757600080fd5b610296600160a060020a03600435166113c8565b60405190815260200160405180910390f35b341561058857600080fd5b6102756113e7565b005b341561059d57600080fd5b610530611473565b604051600160a060020a03909116815260200160405180910390f35b34156105cc57600080fd5b6101a8611482565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e55780820151818401525b6020016101cc565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561065757600080fd5b610242600435611520565b604051901515815260200160405180910390f35b341561068157600080fd5b61027560048035600160a060020a03169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020810135945060408101359350606081013592506080810135915060a08101359060c08101359060e00135600160a060020a0316611728565b005b341561071457600080fd5b610242600160a060020a0360043516602435611a3e565b604051901515815260200160405180910390f35b341561074a57600080fd5b610296611ae8565b60405190815260200160405180910390f35b341561076f57600080fd5b610296611b07565b60405190815260200160405180910390f35b341561079457600080fd5b610296600160a060020a0360043516611b0d565b60405190815260200160405180910390f35b34156107c557600080fd5b610296600160a060020a0360043516611b66565b60405190815260200160405180910390f35b34156107f657600080fd5b610530611bbf565b604051600160a060020a03909116815260200160405180910390f35b341561082557600080fd5b610296600160a060020a0360043581169060243516611bce565b60405190815260200160405180910390f35b341561085c57600080fd5b610242600160a060020a0360043516611bfb565b604051901515815260200160405180910390f35b341561088f57600080fd5b610296600160a060020a0360043516611c5e565b60405190815260200160405180910390f35b34156108c057600080fd5b610275600160a060020a0360043516611cb7565b005b34156108e157600080fd5b610242600160a060020a0360043516611cff565b604051901515815260200160405180910390f35b341561091457600080fd5b610296600160a060020a0360043516611d62565b60405190815260200160405180910390f35b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109d05780601f106109a5576101008083540402835291602001916109d0565b820191906000526020600020905b8154815290600101906020018083116109b357829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b33600160a060020a0381166000908152600b60205260409020600a015460b060020a900460ff161515600114610a7757fe5b600160a060020a033381166000908152600b60205260409020600a01548382169116148015610aae5750600160a060020a03821615155b1515610ab657fe5b600160a060020a0333166000908152600b60205260409020600a01805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114610b2c57fe5b600160a060020a0383166000908152600b602052604090206007015491505b5b50919050565b60095481565b600160a060020a038316600090815260016020526040812054829010801590610ba85750600160a060020a0380851660009081526002602090815260408083203390941683529290522054829010155b8015610bb45750600082115b15610c4557600160a060020a03808416600081815260016020908152604080832080548801905588851680845281842080548990039055600283528184203390961684529490915290819020805486900390559091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001610c49565b5060005b5b9392505050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114610c8457fe5b600160a060020a0383166000908152600b602052604090206008015491505b5b50919050565b601281565b33600160a060020a0381166000908152600b60205260408120600a015490919060b060020a900460ff161515600114610ce457fe5b600160a060020a0333166000908152600b60205260409020600801544311610d0857fe5b33600160a060020a03166000908152600b60205260409020600a015460a060020a900460ff161515600114610d3957fe5b33600160a060020a03166000908152600b60205260409020600a015460a860020a900460ff1615610d6657fe5b600160a060020a0333166000908152600b6020526040902060050154610d92908463ffffffff611dbb16565b600160a060020a0333166000908152600b60205260409020600401541015610db657fe5b60008311610dc057fe5b600a54600954610dd6908563ffffffff611dbb16565b1115610dde57fe5b600160a060020a038416600090815260016020526040902054610e07908463ffffffff611dbb16565b600160a060020a03808616600090815260016020908152604080832094909455339092168152600b9091522060050154610e47908463ffffffff611dbb16565b600160a060020a0333166000908152600b6020526040902060050155600954610e76908463ffffffff611dbb16565b6009557fb2c0ac17769dc4009cb3bb7bc94bf96c53610105f662c66592910dd10319dcf8338585604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a183600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600191505b5b5092915050565b33600160a060020a0381166000908152600b60205260408120600a01549091829160b060020a900460ff161515600114610f4b57fe5b339150600082600160a060020a031663e14ed0458660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610fa757600080fd5b6102c65a03f11515610fb857600080fd5b50505060405180519050111515610fcb57fe5b600160a060020a0333166000908152600b60205260409020600901544311610fef57fe5b600192505b5b5050919050565b33600160a060020a0381166000908152600b60205260408120600a01549091829160b060020a900460ff16151560011461103257fe5b33600160a060020a0381166000908152600b60205260409020600a015490925060a860020a900460ff161561106357fe5b600160a060020a033381166000908152600b60205260409020600a015485821691161461108c57fe5b600160a060020a0333166000908152600b602052604090206009015415156110ce57600160a060020a0333166000908152600b60205260409020436009909101555b600160a060020a0333166000908152600b60205260409020600901544310156110f357fe5b600160a060020a033381166000908152600b60205260408082206003015492851691638616bc8b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b505050604051805190501015151561117357fe5b600160a060020a03339081166000908152600b602052604090819020600a8101805475ff000000000000000000000000000000000000000000191660a860020a179055600501547fcd6dca9e79b9cc7944fdcef11079425f4c73b31837073272dca8e33e188ee58c929187919051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1600192505b5b5050919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff16151560011461124a57fe5b600160a060020a0383166000908152600b602052604090206003015491505b5b50919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff1615156001146112a357fe5b600160a060020a0383166000908152600b602052604090206005015491505b5b50919050565b60085481565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109d05780601f106109a5576101008083540402835291602001916109d0565b820191906000526020600020905b8154815290600101906020018083116109b357829003601f168201915b505050505081565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff1615156001146113a057fe5b600160a060020a038084166000908152600b60205260409020600a01541691505b5b50919050565b600160a060020a0381166000908152600160205260409020545b919050565b60045433600160a060020a0390811691161461140257600080fd5b600454600354600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36004546003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b600354600160a060020a031681565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109d05780601f106109a5576101008083540402835291602001916109d0565b820191906000526020600020905b8154815290600101906020018083116109b357829003601f168201915b505050505081565b33600160a060020a0381166000908152600b60205260408120600a01549091829160b060020a900460ff16151560011461155657fe5b3391506000841161156357fe5b33600160a060020a03166000908152600b60205260409020600a015460a060020a900460ff16151560011461159457fe5b600160a060020a0333166000908152600b602052604090206008015443116115b857fe5b600160a060020a0333166000908152600b60205260409020600901544310806115fa5750600160a060020a0333166000908152600b6020526040902060090154155b151561160257fe5b600160a060020a0333166000908152600b602052604090206006015484101561162757fe5b600160a060020a0333166000908152600b602052604090206007015484111561164c57fe5b33600160a060020a03166000908152600b60205260409020600a015460a860020a900460ff161561167957fe5b600b600033600160a060020a0316600160a060020a03168152602001908152602001600020600201546117138584600160a060020a0316638616bc8b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156116ec57600080fd5b6102c65a03f115156116fd57600080fd5b505050604051805191905063ffffffff611dbb16565b1115610fef57fe5b600192505b5b5050919050565b60035433600160a060020a0390811691161461174357600080fd5b600160a060020a038a16158015906117635750600160a060020a03811615155b151561176b57fe5b60008611801561177d5750600a548611155b151561178557fe5b8385111561178f57fe5b6101c0604051908101604052808b600160a060020a031681526020018a6040518082805190602001908083835b602083106117dc57805182525b601f1990920191602091820191016117bc565b6001836020036101000a038019825116818451161790925250505091909101925060409150505180910390206000191681526020018881526020018981526020018781526020016000815260200186815260200185815260200184815260200183815260200182600160a060020a0316815260200160001515815260200160001515815260200160011515815250600b60008c600160a060020a0316600160a060020a031681526020019081526020016000206000820151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151600182015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155610140820151600a8201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055610160820151600a8201805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055610180820151600a8201805491151560a860020a0275ff000000000000000000000000000000000000000000199092169190911790556101a0820151600a909101805491151560b060020a0276ff000000000000000000000000000000000000000000001990921691909117905550600c805460018101611a038382611dec565b916000526020600020900160005b8154600160a060020a03808f166101009390930a92830292021916179055505b5b50505050505050505050565b600160a060020a033316600090815260016020526040812054829010801590611a675750600082115b15611ad957600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001610a3f565b506000610a3f565b5b92915050565b6000611b01600954600a54611dd590919063ffffffff16565b90505b90565b600a5481565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611b4057fe5b600160a060020a0383166000908152600b602052604090206006015491505b5b50919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611b9957fe5b600160a060020a0383166000908152600b602052604090206002015491505b5b50919050565b600454600160a060020a031681565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611c2e57fe5b600160a060020a0383166000908152600b60205260409020600a015460a060020a900460ff1691505b5b50919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611c9157fe5b600160a060020a0383166000908152600b602052604090206009015491505b5b50919050565b60035433600160a060020a03908116911614611cd257600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611d3257fe5b600160a060020a0383166000908152600b60205260409020600a015460a860020a900460ff1691505b5b50919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611d9557fe5b600160a060020a0383166000908152600b602052604090206004015491505b5b50919050565b600082820183811015611dca57fe5b8091505b5092915050565b600082821115611de157fe5b508082035b92915050565b815481835581811511611e1057600083815260209020611e10918101908301611e16565b5b505050565b611b0491905b80821115611e305760008155600101611e1c565b5090565b905600a165627a7a72305820c27f2eff3166c0e7e7150fcfc10febaf96de25145b881b1177a41b43435757050029

Deployed Bytecode

0x606060405236156101905763ffffffff60e060020a60003504166306fdde038114610195578063095ea7b314610220578063179c537e1461025657806317b83aa61461027757806318160ddd146102a857806323b872dd146102cd5780632511274314610309578063313ce5671461033a57806340c10f191461036357806345493057146103995780634aa83079146103cc5780634cc53838146103ff5780634db08e5b1461043057806352f6ee581461046157806354fd4d50146104865780636932c9c51461051157806370a082311461054c57806379ba50971461057d5780638da5cb5b1461059257806395d89b41146105c157806399f16c6e1461064c578063a7a8add214610676578063a9059cbb14610709578063af35ae271461073f578063bb102aea14610764578063bf7035c314610789578063c11301d4146107ba578063d4ee1d90146107eb578063dd62ed3e1461081a578063ef7c779714610851578063f2ccaed514610884578063f2fde38b146108b5578063f612a62d146108d6578063ff5bc8a714610909575b600080fd5b34156101a057600080fd5b6101a861093a565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e55780820151818401525b6020016101cc565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022b57600080fd5b610242600160a060020a03600435166024356109d8565b604051901515815260200160405180910390f35b341561026157600080fd5b610275600160a060020a0360043516610a45565b005b341561028257600080fd5b610296600160a060020a0360043516610af9565b60405190815260200160405180910390f35b34156102b357600080fd5b610296610b52565b60405190815260200160405180910390f35b34156102d857600080fd5b610242600160a060020a0360043581169060243516604435610b58565b604051901515815260200160405180910390f35b341561031457600080fd5b610296600160a060020a0360043516610c51565b60405190815260200160405180910390f35b341561034557600080fd5b61034d610caa565b60405160ff909116815260200160405180910390f35b341561036e57600080fd5b610242600160a060020a0360043516602435610caf565b604051901515815260200160405180910390f35b34156103a457600080fd5b610242600160a060020a0360043516610f15565b604051901515815260200160405180910390f35b34156103d757600080fd5b610242600160a060020a0360043516610ffc565b604051901515815260200160405180910390f35b341561040a57600080fd5b610296600160a060020a0360043516611217565b60405190815260200160405180910390f35b341561043b57600080fd5b610296600160a060020a0360043516611270565b60405190815260200160405180910390f35b341561046c57600080fd5b6102966112c9565b60405190815260200160405180910390f35b341561049157600080fd5b6101a86112cf565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e55780820151818401525b6020016101cc565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561051c57600080fd5b610530600160a060020a036004351661136d565b604051600160a060020a03909116815260200160405180910390f35b341561055757600080fd5b610296600160a060020a03600435166113c8565b60405190815260200160405180910390f35b341561058857600080fd5b6102756113e7565b005b341561059d57600080fd5b610530611473565b604051600160a060020a03909116815260200160405180910390f35b34156105cc57600080fd5b6101a8611482565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e55780820151818401525b6020016101cc565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561065757600080fd5b610242600435611520565b604051901515815260200160405180910390f35b341561068157600080fd5b61027560048035600160a060020a03169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020810135945060408101359350606081013592506080810135915060a08101359060c08101359060e00135600160a060020a0316611728565b005b341561071457600080fd5b610242600160a060020a0360043516602435611a3e565b604051901515815260200160405180910390f35b341561074a57600080fd5b610296611ae8565b60405190815260200160405180910390f35b341561076f57600080fd5b610296611b07565b60405190815260200160405180910390f35b341561079457600080fd5b610296600160a060020a0360043516611b0d565b60405190815260200160405180910390f35b34156107c557600080fd5b610296600160a060020a0360043516611b66565b60405190815260200160405180910390f35b34156107f657600080fd5b610530611bbf565b604051600160a060020a03909116815260200160405180910390f35b341561082557600080fd5b610296600160a060020a0360043581169060243516611bce565b60405190815260200160405180910390f35b341561085c57600080fd5b610242600160a060020a0360043516611bfb565b604051901515815260200160405180910390f35b341561088f57600080fd5b610296600160a060020a0360043516611c5e565b60405190815260200160405180910390f35b34156108c057600080fd5b610275600160a060020a0360043516611cb7565b005b34156108e157600080fd5b610242600160a060020a0360043516611cff565b604051901515815260200160405180910390f35b341561091457600080fd5b610296600160a060020a0360043516611d62565b60405190815260200160405180910390f35b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109d05780601f106109a5576101008083540402835291602001916109d0565b820191906000526020600020905b8154815290600101906020018083116109b357829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b33600160a060020a0381166000908152600b60205260409020600a015460b060020a900460ff161515600114610a7757fe5b600160a060020a033381166000908152600b60205260409020600a01548382169116148015610aae5750600160a060020a03821615155b1515610ab657fe5b600160a060020a0333166000908152600b60205260409020600a01805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114610b2c57fe5b600160a060020a0383166000908152600b602052604090206007015491505b5b50919050565b60095481565b600160a060020a038316600090815260016020526040812054829010801590610ba85750600160a060020a0380851660009081526002602090815260408083203390941683529290522054829010155b8015610bb45750600082115b15610c4557600160a060020a03808416600081815260016020908152604080832080548801905588851680845281842080548990039055600283528184203390961684529490915290819020805486900390559091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001610c49565b5060005b5b9392505050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114610c8457fe5b600160a060020a0383166000908152600b602052604090206008015491505b5b50919050565b601281565b33600160a060020a0381166000908152600b60205260408120600a015490919060b060020a900460ff161515600114610ce457fe5b600160a060020a0333166000908152600b60205260409020600801544311610d0857fe5b33600160a060020a03166000908152600b60205260409020600a015460a060020a900460ff161515600114610d3957fe5b33600160a060020a03166000908152600b60205260409020600a015460a860020a900460ff1615610d6657fe5b600160a060020a0333166000908152600b6020526040902060050154610d92908463ffffffff611dbb16565b600160a060020a0333166000908152600b60205260409020600401541015610db657fe5b60008311610dc057fe5b600a54600954610dd6908563ffffffff611dbb16565b1115610dde57fe5b600160a060020a038416600090815260016020526040902054610e07908463ffffffff611dbb16565b600160a060020a03808616600090815260016020908152604080832094909455339092168152600b9091522060050154610e47908463ffffffff611dbb16565b600160a060020a0333166000908152600b6020526040902060050155600954610e76908463ffffffff611dbb16565b6009557fb2c0ac17769dc4009cb3bb7bc94bf96c53610105f662c66592910dd10319dcf8338585604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a183600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600191505b5b5092915050565b33600160a060020a0381166000908152600b60205260408120600a01549091829160b060020a900460ff161515600114610f4b57fe5b339150600082600160a060020a031663e14ed0458660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610fa757600080fd5b6102c65a03f11515610fb857600080fd5b50505060405180519050111515610fcb57fe5b600160a060020a0333166000908152600b60205260409020600901544311610fef57fe5b600192505b5b5050919050565b33600160a060020a0381166000908152600b60205260408120600a01549091829160b060020a900460ff16151560011461103257fe5b33600160a060020a0381166000908152600b60205260409020600a015490925060a860020a900460ff161561106357fe5b600160a060020a033381166000908152600b60205260409020600a015485821691161461108c57fe5b600160a060020a0333166000908152600b602052604090206009015415156110ce57600160a060020a0333166000908152600b60205260409020436009909101555b600160a060020a0333166000908152600b60205260409020600901544310156110f357fe5b600160a060020a033381166000908152600b60205260408082206003015492851691638616bc8b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b505050604051805190501015151561117357fe5b600160a060020a03339081166000908152600b602052604090819020600a8101805475ff000000000000000000000000000000000000000000191660a860020a179055600501547fcd6dca9e79b9cc7944fdcef11079425f4c73b31837073272dca8e33e188ee58c929187919051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1600192505b5b5050919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff16151560011461124a57fe5b600160a060020a0383166000908152600b602052604090206003015491505b5b50919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff1615156001146112a357fe5b600160a060020a0383166000908152600b602052604090206005015491505b5b50919050565b60085481565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109d05780601f106109a5576101008083540402835291602001916109d0565b820191906000526020600020905b8154815290600101906020018083116109b357829003601f168201915b505050505081565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff1615156001146113a057fe5b600160a060020a038084166000908152600b60205260409020600a01541691505b5b50919050565b600160a060020a0381166000908152600160205260409020545b919050565b60045433600160a060020a0390811691161461140257600080fd5b600454600354600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36004546003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b600354600160a060020a031681565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109d05780601f106109a5576101008083540402835291602001916109d0565b820191906000526020600020905b8154815290600101906020018083116109b357829003601f168201915b505050505081565b33600160a060020a0381166000908152600b60205260408120600a01549091829160b060020a900460ff16151560011461155657fe5b3391506000841161156357fe5b33600160a060020a03166000908152600b60205260409020600a015460a060020a900460ff16151560011461159457fe5b600160a060020a0333166000908152600b602052604090206008015443116115b857fe5b600160a060020a0333166000908152600b60205260409020600901544310806115fa5750600160a060020a0333166000908152600b6020526040902060090154155b151561160257fe5b600160a060020a0333166000908152600b602052604090206006015484101561162757fe5b600160a060020a0333166000908152600b602052604090206007015484111561164c57fe5b33600160a060020a03166000908152600b60205260409020600a015460a860020a900460ff161561167957fe5b600b600033600160a060020a0316600160a060020a03168152602001908152602001600020600201546117138584600160a060020a0316638616bc8b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156116ec57600080fd5b6102c65a03f115156116fd57600080fd5b505050604051805191905063ffffffff611dbb16565b1115610fef57fe5b600192505b5b5050919050565b60035433600160a060020a0390811691161461174357600080fd5b600160a060020a038a16158015906117635750600160a060020a03811615155b151561176b57fe5b60008611801561177d5750600a548611155b151561178557fe5b8385111561178f57fe5b6101c0604051908101604052808b600160a060020a031681526020018a6040518082805190602001908083835b602083106117dc57805182525b601f1990920191602091820191016117bc565b6001836020036101000a038019825116818451161790925250505091909101925060409150505180910390206000191681526020018881526020018981526020018781526020016000815260200186815260200185815260200184815260200183815260200182600160a060020a0316815260200160001515815260200160001515815260200160011515815250600b60008c600160a060020a0316600160a060020a031681526020019081526020016000206000820151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151600182015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155610140820151600a8201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055610160820151600a8201805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055610180820151600a8201805491151560a860020a0275ff000000000000000000000000000000000000000000199092169190911790556101a0820151600a909101805491151560b060020a0276ff000000000000000000000000000000000000000000001990921691909117905550600c805460018101611a038382611dec565b916000526020600020900160005b8154600160a060020a03808f166101009390930a92830292021916179055505b5b50505050505050505050565b600160a060020a033316600090815260016020526040812054829010801590611a675750600082115b15611ad957600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001610a3f565b506000610a3f565b5b92915050565b6000611b01600954600a54611dd590919063ffffffff16565b90505b90565b600a5481565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611b4057fe5b600160a060020a0383166000908152600b602052604090206006015491505b5b50919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611b9957fe5b600160a060020a0383166000908152600b602052604090206002015491505b5b50919050565b600454600160a060020a031681565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611c2e57fe5b600160a060020a0383166000908152600b60205260409020600a015460a060020a900460ff1691505b5b50919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611c9157fe5b600160a060020a0383166000908152600b602052604090206009015491505b5b50919050565b60035433600160a060020a03908116911614611cd257600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611d3257fe5b600160a060020a0383166000908152600b60205260409020600a015460a860020a900460ff1691505b5b50919050565b600160a060020a0381166000908152600b60205260408120600a0154829060b060020a900460ff161515600114611d9557fe5b600160a060020a0383166000908152600b602052604090206004015491505b5b50919050565b600082820183811015611dca57fe5b8091505b5092915050565b600082821115611de157fe5b508082035b92915050565b815481835581811511611e1057600083815260209020611e10918101908301611e16565b5b505050565b611b0491905b80821115611e305760008155600101611e1c565b5090565b905600a165627a7a72305820c27f2eff3166c0e7e7150fcfc10febaf96de25145b881b1177a41b43435757050029

Swarm Source

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