ETH Price: $3,133.01 (+0.35%)
Gas: 5 Gwei

Contract

0xB4EFd85c19999D84251304bDA99E90B92300Bd93
 

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
0xf1f357e5e7fd211fa6de3fe228dc24c546cd6665363502c54bc4f2f35f432fdaApprove(pending)2024-05-05 5:21:0516 hrs ago1714886465IN
Rocket Pool: Old RPL Token
0 ETH(Pending)(Pending)
0x85b9a02c2715a54c20ffe95ecbbd8bd07acced33e46e71c97b0322ab12be70c5Approve(pending)2024-04-29 5:42:046 days ago1714369324IN
Rocket Pool: Old RPL Token
0 ETH(Pending)(Pending)
0x10bb4370769019ca83422dc6dafaff791f66c76c242f40279da32ef80c692640Approve(pending)2024-04-29 5:42:046 days ago1714369324IN
Rocket Pool: Old RPL Token
0 ETH(Pending)(Pending)
Approve198025172024-05-05 7:51:5913 hrs ago1714895519IN
Rocket Pool: Old RPL Token
0 ETH0.000222214.81397272
Approve198024842024-05-05 7:45:2313 hrs ago1714895123IN
Rocket Pool: Old RPL Token
0 ETH0.000245875.32804109
Transfer198024702024-05-05 7:42:3513 hrs ago1714894955IN
Rocket Pool: Old RPL Token
0 ETH0.000215817.18541309
Transfer198024632024-05-05 7:41:1113 hrs ago1714894871IN
Rocket Pool: Old RPL Token
0 ETH0.000319856.16016897
Approve198011212024-05-05 3:09:4718 hrs ago1714878587IN
Rocket Pool: Old RPL Token
0 ETH0.000214474.64757057
Transfer198011132024-05-05 3:08:1118 hrs ago1714878491IN
Rocket Pool: Old RPL Token
0 ETH0.000226134.35529017
Approve197848772024-05-02 20:40:233 days ago1714682423IN
Rocket Pool: Old RPL Token
0 ETH0.000401048.64311959
Approve197848412024-05-02 20:33:113 days ago1714681991IN
Rocket Pool: Old RPL Token
0 ETH0.000330557.15916086
Transfer197808152024-05-02 7:01:593 days ago1714633319IN
Rocket Pool: Old RPL Token
0 ETH0.000407097.84030403
Approve197771952024-05-01 18:52:474 days ago1714589567IN
Rocket Pool: Old RPL Token
0 ETH0.0004906416.87678748
Approve197682032024-04-30 12:44:235 days ago1714481063IN
Rocket Pool: Old RPL Token
0 ETH0.0013007728.18699059
Transfer197681672024-04-30 12:37:115 days ago1714480631IN
Rocket Pool: Old RPL Token
0 ETH0.0016037534.03333053
Approve197680772024-04-30 12:18:595 days ago1714479539IN
Rocket Pool: Old RPL Token
0 ETH0.0022302748.31616569
Approve197647952024-04-30 1:19:235 days ago1714439963IN
Rocket Pool: Old RPL Token
0 ETH0.000305976.62520552
Transfer197647842024-04-30 1:17:115 days ago1714439831IN
Rocket Pool: Old RPL Token
0 ETH0.000374567.94257151
Transfer197646812024-04-30 0:56:355 days ago1714438595IN
Rocket Pool: Old RPL Token
0 ETH0.000240188
Transfer197642382024-04-29 23:27:235 days ago1714433243IN
Rocket Pool: Old RPL Token
0 ETH0.000405037.80065023
Transfer197642132024-04-29 23:22:115 days ago1714432931IN
Rocket Pool: Old RPL Token
0 ETH0.000335527.11477286
Approve197625262024-04-29 17:42:476 days ago1714412567IN
Rocket Pool: Old RPL Token
0 ETH0.0003839613.20752634
Approve197458012024-04-27 9:33:598 days ago1714210439IN
Rocket Pool: Old RPL Token
0 ETH0.000309676.71579771
Approve197410852024-04-26 17:42:599 days ago1714153379IN
Rocket Pool: Old RPL Token
0 ETH0.000258085.58963274
Transfer197410682024-04-26 17:39:239 days ago1714153163IN
Rocket Pool: Old RPL Token
0 ETH0.000208656.94424757
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Token contract has migrated to 0xD33526068D116cE69F19A9ee46F0bd304F21A51f

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.