ETH Price: $3,933.79 (+3.99%)

Contract

0x4A3B35487a56cfb9df80716054f793aa4C3BC1F2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Finalise ICO64736182018-10-08 1:06:282250 days ago1538960788IN
0x4A3B3548...a4C3BC1F2
0 ETH0.000304686
Transfer53740682018-04-03 16:41:452437 days ago1522773705IN
0x4A3B3548...a4C3BC1F2
0.01 ETH0.000280673

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
64736182018-10-08 1:06:282250 days ago1538960788
0x4A3B3548...a4C3BC1F2
0.01 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
depositofferToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

/*
file:   depositoffer.sol
ver:    0.1.2
author: Chris Kwan
date:   28-OCT-2017/11-March-2018/2-April-2018
email:  ecorpnu AT gmail.com

A collated contract set for a token sale specific to the requirments of
Depositoffer (DOT) token product.

This software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
See MIT Licence for further details.
<https://opensource.org/licenses/MIT>.

*/


pragma solidity ^0.4.18;

/*-----------------------------------------------------------------------------\

 depositoffer token sale configuration

\*----------------------------------------------------------------------------*/

// Contains token sale parameters
contract depositofferTokenConfig
{
    // ERC20 trade name and symbol
    string public           name            = "USPat7376612 depositoffer";
    string public           symbol          = "DO";

    // Owner has power to abort, discount addresses, sweep successful funds,
    // change owner, sweep alien tokens.
    address public          owner           = 0xB353cF41A0CAa38D6597A7a1337debf0b09dd8ae; // Primary address checksummed
    
    // Fund wallet should also be audited prior to deployment
    // NOTE: Must be checksummed address!
    //address public          fundWallet      = 0xE4Be3157DBD71Acd7Ad5667db00AA111C0088195; // multiSig address checksummed
     address public           fundWallet      = 0x46FF7006F8EA5AD7570A84D7BE0ed78224D3ab5e; // main
    //address public          fundWallet = 0x0f097fA3Dc319C5ec299eA33F941744fC5ccE3ec; //ropster test
    
    //you cannot use regular address, you need to create a contract wallet and need to make it checkedsummed search net  
    
    // Tokens awarded per USD contributed
    uint public constant    TOKENS_PER_USD  = 2;

    // Ether market price in USD
    uint public constant    USD_PER_ETH     = 380; // approx 7 day average High Low as at 29th OCT 2017
    
    // Minimum and maximum target in USD
    uint public constant    MIN_USD_FUND    = 1;  // $1
    uint public constant    MAX_USD_FUND    = 2000000; // $2 mio
    
    // Non-KYC contribution limit in USD
    uint public constant    KYC_USD_LMT     = 50000;
    
    // There will be exactly 4000000 tokens regardless of number sold
    // Unsold tokens are put given to the Founder on Trust to fund operations of the Project
    uint public constant    MAX_TOKENS      = 4000000; // 4 mio
    
    // Funding begins on 30th OCT 2017
    
    //uint public constant    START_DATE      = 1509318001; // 30.10.2017 10 AM and 1 Sec Sydney Time
      uint public constant    START_DATE      = 1520776337; // Monday March 12, 2018 00:52:17 (am) in time zone Australia/Sydney (AEDT)
      
    // Period for fundraising
    uint public constant    FUNDING_PERIOD  = 180 days;
}


library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}


contract ReentryProtected
{
    // The reentry protection state mutex.
    bool __reMutex;

    // Sets and resets mutex in order to block functin reentry
    modifier preventReentry() {
        require(!__reMutex);
        __reMutex = true;
        _;
        delete __reMutex;
    }

    // Blocks function entry if mutex is set
    modifier noReentry() {
        require(!__reMutex);
        _;
    }
}

contract ERC20Token
{
    using SafeMath for uint;

/* Constants */

    // none
    
/* State variable */

    /// @return The Total supply of tokens
    uint public totalSupply;
    
    /// @return Token symbol
    string public symbol;
    
    // Token ownership mapping
    mapping (address => uint) balances;
    
    // Allowances mapping
    mapping (address => mapping (address => uint)) allowed;

/* Events */

    // Triggered when tokens are transferred.
    event Transfer(
        address indexed _from,
        address indexed _to,
        uint256 _amount);

    // Triggered whenever approve(address _spender, uint256 _amount) is called.
    event Approval(
        address indexed _owner,
        address indexed _spender,
        uint256 _amount);

/* Modifiers */

    // none
    
/* Functions */

    // Using an explicit getter allows for function overloading    
    function balanceOf(address _addr)
        public
        constant
        returns (uint)
    {
        return balances[_addr];
    }
    
    // Using an explicit getter allows for function overloading    
    function allowance(address _owner, address _spender)
        public
        constant
        returns (uint)
    {
        return allowed[_owner][_spender];
    }

    // Send _value amount of tokens to address _to
    function transfer(address _to, uint256 _amount)
        public
        returns (bool)
    {
        return xfer(msg.sender, _to, _amount);
    }

    // Send _value amount of tokens from address _from to address _to
    function transferFrom(address _from, address _to, uint256 _amount)
        public
        returns (bool)
    {
        require(_amount <= allowed[_from][msg.sender]);
        
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount);
        return xfer(_from, _to, _amount);
    }

    // Process a transfer internally.
    function xfer(address _from, address _to, uint _amount)
        internal
        returns (bool)
    {
        require(_amount <= balances[_from]);

        Transfer(_from, _to, _amount);
        
        // avoid wasting gas on 0 token transfers
        if(_amount == 0) return true;
        
        balances[_from] = balances[_from].sub(_amount);
        balances[_to]   = balances[_to].add(_amount);
        
        return true;
    }

    // Approves a third-party spender
    function approve(address _spender, uint256 _amount)
        public
        returns (bool)
    {
        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }
}



/*-----------------------------------------------------------------------------\

## Conditional Entry Table

Functions must throw on F conditions

Conditional Entry Table (functions must throw on F conditions)

renetry prevention on all public mutating functions
Reentry mutex set in moveFundsToWallet(), refund()

|function                |<START_DATE|<END_DATE |fundFailed  |fundSucceeded|icoSucceeded
|------------------------|:---------:|:--------:|:----------:|:-----------:|:---------:|
|()                      |KYC        |T         |F           |T            |F          |
|abort()                 |T          |T         |T           |T            |F          |
|proxyPurchase()         |KYC        |T         |F           |T            |F          |
|addKycAddress()         |T          |T         |F           |T            |T          |
|finaliseICO()           |F          |F         |F           |T            |T          |
|refund()                |F          |F         |T           |F            |F          |
|transfer()              |F          |F         |F           |F            |T          |
|transferFrom()          |F          |F         |F           |F            |T          |
|approve()               |F          |F         |F           |F            |T          |
|changeOwner()           |T          |T         |T           |T            |T          |
|acceptOwnership()       |T          |T         |T           |T            |T          |
|changedeposito()          |T          |T         |T           |T            |T          |
|destroy()               |F          |F         |!__abortFuse|F            |F          |
|transferAnyERC20Tokens()|T          |T         |T           |T            |T          |

\*----------------------------------------------------------------------------*/

contract depositofferTokenAbstract
{
// TODO comment events

// Logged when funder exceeds the KYC limit
    event KYCAddress(address indexed _addr, bool indexed _kyc);

// Logged upon refund
    event Refunded(address indexed _addr, uint indexed _value);

// Logged when new owner accepts ownership
    event ChangedOwner(address indexed _from, address indexed _to);
    
// Logged when owner initiates a change of ownership
    event ChangeOwnerTo(address indexed _to);

// Logged when ICO ether funds are transferred to an address
    event FundsTransferred(address indexed _wallet, uint indexed _value);


    // This fuse blows upon calling abort() which forces a fail state
    bool public __abortFuse = true;
    
    // Set to true after the fund is swept to the fund wallet, allows token
    // transfers and prevents abort()
    bool public icoSuccessful;

    // Token conversion factors are calculated with decimal places at parity with ether
    uint8 public constant decimals = 18;

    // An address authorised to take ownership
    address public newOwner;
    
    // The deposito smart contract address
    address public deposito;
    
    // Total ether raised during funding
    uint public etherRaised;
    
    // Preauthorized tranch discount addresses
    // holder => discount
    mapping (address => bool) public kycAddresses;
    
    // Record of ether paid per address
    mapping (address => uint) public etherContributed;

    // Return `true` if MIN_FUNDS were raised
    function fundSucceeded() public constant returns (bool);
    
    // Return `true` if MIN_FUNDS were not raised before END_DATE
    function fundFailed() public constant returns (bool);

    // Returns USD raised for set ETH/USD rate
    function usdRaised() public constant returns (uint);

    // Returns an amount in eth equivilent to USD at the set rate
    function usdToEth(uint) public constant returns(uint);
    
    // Returns the USD value of ether at the set USD/ETH rate
    function ethToUsd(uint _wei) public constant returns (uint);

    // Returns token/ether conversion given ether value and address. 
    function ethToTokens(uint _eth)
        public constant returns (uint);

    // Processes a token purchase for a given address
    function proxyPurchase(address _addr) payable returns (bool);

    // Owner can move funds of successful fund to fundWallet 
    function finaliseICO() public returns (bool);
    
    // Registers a discounted address
    function addKycAddress(address _addr, bool _kyc)
        public returns (bool);

    // Refund on failed or aborted sale 
    function refund(address _addr) public returns (bool);

    // To cancel token sale prior to START_DATE
    function abort() public returns (bool);
    
    // Change the deposito backend contract address
    function changedeposito(address _addr) public returns (bool);
    
    // For owner to salvage tokens sent to contract
    function transferAnyERC20Token(address tokenAddress, uint amount)
        returns (bool);
}


/*-----------------------------------------------------------------------------\

 depositoffer token implimentation

\*----------------------------------------------------------------------------*/

contract depositofferToken is 
    ReentryProtected,
    ERC20Token,
    depositofferTokenAbstract,
    depositofferTokenConfig
{
    using SafeMath for uint;

//
// Constants
//

    // USD to ether conversion factors calculated from `depositofferTokenConfig` constants 
    uint public constant TOKENS_PER_ETH = TOKENS_PER_USD * USD_PER_ETH;
    uint public constant MIN_ETH_FUND   = 1 ether * MIN_USD_FUND / USD_PER_ETH;
    uint public constant MAX_ETH_FUND   = 1 ether * MAX_USD_FUND / USD_PER_ETH;
    uint public constant KYC_ETH_LMT    = 1 ether * KYC_USD_LMT  / USD_PER_ETH;

    // General funding opens LEAD_IN_PERIOD after deployment (timestamps can't be constant)
    uint public END_DATE  = START_DATE + FUNDING_PERIOD;

//
// Modifiers
//

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

//
// Functions
//

    // Constructor
    function depositofferToken()
    {
        // ICO parameters are set in depositofferTSConfig
        // Invalid configuration catching here
        require(bytes(symbol).length > 0);
        require(bytes(name).length > 0);
        require(owner != 0x0);
        require(fundWallet != 0x0);
        require(TOKENS_PER_USD > 0);
        require(USD_PER_ETH > 0);
        require(MIN_USD_FUND > 0);
        require(MAX_USD_FUND > MIN_USD_FUND);
        require(START_DATE > 0);
        require(FUNDING_PERIOD > 0);
        
        // Setup and allocate token supply to 18 decimal places
        totalSupply = MAX_TOKENS * 1e18;
        balances[fundWallet] = totalSupply;
        Transfer(0x0, fundWallet, totalSupply);
    }
    
    // Default function
    function ()
        payable
    {
        // Pass through to purchasing function. Will throw on failed or
        // successful ICO
        proxyPurchase(msg.sender);
    }

//
// Getters
//

    // ICO fails if aborted or minimum funds are not raised by the end date
    function fundFailed() public constant returns (bool)
    {
        return !__abortFuse
            || (now > END_DATE && etherRaised < MIN_ETH_FUND);
    }
    
    // Funding succeeds if not aborted, minimum funds are raised before end date
    function fundSucceeded() public constant returns (bool)
    {
        return !fundFailed()
            && etherRaised >= MIN_ETH_FUND;
    }

    // Returns the USD value of ether at the set USD/ETH rate
    function ethToUsd(uint _wei) public constant returns (uint)
    {
        return USD_PER_ETH.mul(_wei).div(1 ether);
    }
    
    // Returns the ether value of USD at the set USD/ETH rate
    function usdToEth(uint _usd) public constant returns (uint)
    {
        return _usd.mul(1 ether).div(USD_PER_ETH);
    }
    
    // Returns the USD value of ether raised at the set USD/ETH rate
    function usdRaised() public constant returns (uint)
    {
        return ethToUsd(etherRaised);
    }
    
    // Returns the number of tokens for given amount of ether for an address 
    function ethToTokens(uint _wei) public constant returns (uint)
    {
        uint usd = ethToUsd(_wei);
        
        // Percent bonus funding tiers for USD funding
        uint bonus = 0;
    //        usd >= 2000000 ? 35 :
    //        usd >= 500000  ? 30 :
    //        usd >= 100000  ? 20 :
    //        usd >= 25000   ? 15 :
    //        usd >= 10000   ? 10 :
    //        usd >= 5000    ? 5  :
    //        usd >= 1000    ? 1  :                    
        
        // using n.2 fixed point decimal for whole number percentage.
        return _wei.mul(TOKENS_PER_ETH).mul(bonus + 100).div(100);
    }

//
// ICO functions
//

    // The fundraising can be aborted any time before funds are swept to the
    // fundWallet.
    // This will force a fail state and allow refunds to be collected.
    function abort()
        public
        noReentry
        onlyOwner
        returns (bool)
    {
        require(!icoSuccessful);
        delete __abortFuse;
        return true;
    }
    
    // General addresses can purchase tokens during funding
    function proxyPurchase(address _addr)
        payable
        noReentry
        returns (bool)
    {
        require(!fundFailed());
        require(!icoSuccessful);
        require(now <= END_DATE);
        require(msg.value > 0);
        
        // Non-KYC'ed funders can only contribute up to $10000 after prefund period
        if(!kycAddresses[_addr])
        {
            require(now >= START_DATE);
            require((etherContributed[_addr].add(msg.value)) <= KYC_ETH_LMT);
        }

        // Get ether to token conversion
        uint tokens = ethToTokens(msg.value);
        
        // transfer tokens from fund wallet
        
        xfer(fundWallet, _addr, tokens);
        
        // Update holder payments
        etherContributed[_addr] = etherContributed[_addr].add(msg.value);
        
        // Update funds raised
        etherRaised = etherRaised.add(msg.value);
        
        // Bail if this pushes the fund over the USD cap or Token cap
        require(etherRaised <= MAX_ETH_FUND);

        return true;
    }
    
    // Owner can KYC (or revoke) addresses until close of funding
    function addKycAddress(address _addr, bool _kyc)
    public
        noReentry
        onlyOwner
        returns (bool)
    {
       require(!fundFailed());

        kycAddresses[_addr] = _kyc;
        KYCAddress(_addr, _kyc);
      return true;
    }
    
    // Owner can sweep a successful funding to the fundWallet
    // Contract can be aborted up until this action.
    // Effective once but can be called multiple time to withdraw edge case
    // funds recieved by contract which can selfdestruct to this address
 
    
    function finaliseICO()
        public
        onlyOwner
        preventReentry()
        returns (bool)
    {
        require(fundSucceeded());

        icoSuccessful = true;

        FundsTransferred(fundWallet, this.balance);
        fundWallet.transfer(this.balance);
        return true;
    }
    
    // Refunds can be claimed from a failed ICO
    function refund(address _addr)
        public
        preventReentry()
        returns (bool)
    {
        require(fundFailed());
        
        uint value = etherContributed[_addr];

        // Transfer tokens back to origin
        // (Not really necessary but looking for graceful exit)
        xfer(_addr, fundWallet, balances[_addr]);

        // garbage collect
        delete etherContributed[_addr];
        delete kycAddresses[_addr];
        
        Refunded(_addr, value);
        if (value > 0) {
            _addr.transfer(value);
        }
        return true;
    }

//
// ERC20 overloaded functions
//

    function transfer(address _to, uint _amount)
        public
        preventReentry
        returns (bool)
    {
        // ICO must be successful
        require(icoSuccessful);
        super.transfer(_to, _amount);

        if (_to == deposito)
            // Notify the deposito contract it has been sent tokens
            require(Notify(deposito).notify(msg.sender, _amount));
        return true;
    }

    function transferFrom(address _from, address _to, uint _amount)
        public
        preventReentry
        returns (bool)
    {
        // ICO must be successful
        require(icoSuccessful);
        super.transferFrom(_from, _to, _amount);

        if (_to == deposito)
            // Notify the deposito contract it has been sent tokens
            require(Notify(deposito).notify(msg.sender, _amount));
        return true;
    }
    
    function approve(address _spender, uint _amount)
        public
        noReentry
        returns (bool)
    {
        // ICO must be successful
        require(icoSuccessful);
        super.approve(_spender, _amount);
        return true;
    }

//
// Contract managment functions
//

    // To initiate an ownership change
    function changeOwner(address _newOwner)
        public
        noReentry
        onlyOwner
        returns (bool)
    {
        ChangeOwnerTo(_newOwner);
        newOwner = _newOwner;
        return true;
    }

    // To accept ownership. Required to prove new address can call the contract.
    function acceptOwnership()
        public
        noReentry
        returns (bool)
    {
        require(msg.sender == newOwner);
        ChangedOwner(owner, newOwner);
        owner = newOwner;
        return true;
    }

    // Change the address of the deposito contract address. The contract
    // must impliment the `Notify` interface.
    function changedeposito(address _addr)
        public
        noReentry
        onlyOwner
        returns (bool)
    {
        deposito = _addr;
        return true;
    }
    
    // The contract can be selfdestructed after abort and ether balance is 0.
    function destroy()
        public
        noReentry
        onlyOwner
    {
        require(!__abortFuse);
        require(this.balance == 0);
        selfdestruct(owner);
    }
    
    // Owner can salvage ANYTYPE ERC20 tokens that may have been sent to the account by accident 
    function transferAnyERC20Token(address tokenAddress, uint amount)
        public
        onlyOwner
        preventReentry
        returns (bool) 
    {
        require(ERC20Token(tokenAddress).transfer(owner, amount));
        return true;
    }
}


interface Notify
{
    event Notified(address indexed _from, uint indexed _amount);
    
    function notify(address _from, uint _amount) public returns (bool);
}


contract depositoTest is Notify
{
    address public dot;
    
    function setdot(address _addr) { dot = _addr; }
    
    function notify(address _from, uint _amount) public returns (bool)
    {
        require(msg.sender == dot);
        Notified(_from, _amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"abort","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"START_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finaliseICO","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_ETH_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_kyc","type":"bool"}],"name":"addKycAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"proxyPurchase","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"END_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"changedeposito","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundSucceeded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundFailed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"__abortFuse","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_ETH_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_USD_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deposito","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoSuccessful","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"kycAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_wei","type":"uint256"}],"name":"ethToUsd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KYC_ETH_LMT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_wei","type":"uint256"}],"name":"ethToTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"etherContributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MIN_USD_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"USD_PER_ETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_PER_ETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_usd","type":"uint256"}],"name":"usdToEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"etherRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KYC_USD_LMT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_PER_USD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"usdRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOKENS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FUNDING_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"refund","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_addr","type":"address"},{"indexed":true,"name":"_kyc","type":"bool"}],"name":"KYCAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_addr","type":"address"},{"indexed":true,"name":"_value","type":"uint256"}],"name":"Refunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"ChangedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"}],"name":"ChangeOwnerTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_wallet","type":"address"},{"indexed":true,"name":"_value","type":"uint256"}],"name":"FundsTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"}]

606060409081526005805460ff191660011790558051908101604052601981527f555350617437333736363132206465706f7369746f66666572000000000000006020820152600a9080516200005a929160200190620001ef565b5060408051908101604052600281527f444f0000000000000000000000000000000000000000000000000000000000006020820152600b908051620000a4929160200190620001ef565b50600c8054600160a060020a031990811673b353cf41a0caa38d6597a7a1337debf0b09dd8ae17909155600d80549091167346ff7006f8ea5ad7570a84d7be0ed78224d3ab5e179055635b928291600e5534156200010157600080fd5b600b54600060026000196101006001851615020190921691909104116200012757600080fd5b600a54600060026000196101006001851615020190921691909104116200014d57600080fd5b600c54600160a060020a031615156200016557600080fd5b600d54600160a060020a031615156200017d57600080fd5b6a034f086f3b33b6840000006001819055600d8054600160a060020a0390811660009081526003602052604080822085905592549091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91905190815260200160405180910390a362000294565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023257805160ff191683800117855562000262565b8280016001018555821562000262579182015b828111156200026257825182559160200191906001019062000245565b506200027092915062000274565b5090565b6200029191905b808211156200027057600081556001016200027b565b90565b61161b80620002a46000396000f3006060604052600436106102215763ffffffff60e060020a60003504166306fdde03811461022d578063095ea7b3146102b757806318160ddd146102ed57806323b872dd14610312578063313ce5671461033a57806335a063b414610363578063372c65331461037657806339f95e631461038957806343dbb2de1461039c5780634449307b146103af5780634a5dddd2146103d3578063545599ff146103e757806363981b33146103fa578063664a1ad61461041957806367de81e8146104485780636e62de191461045b5780636eabcd691461046e57806370a082311461048157806371140942146104a057806379099e15146104b357806379ba5097146104c65780637af327a0146104d957806383197ef0146104ec578063835fa3ac146105015780638bace235146105145780638da5cb5b14610533578063946d14801461054657806395d89b411461055c5780639c70b8991461056f578063a4c8932214610582578063a6f9dae114610598578063a82776dd146105b7578063a9059cbb146105d6578063b4495b7d146105f8578063b94083731461060b578063bc6e66041461061e578063bcecf66714610631578063cd72ab6914610647578063d399354b1461065a578063d4ee1d901461066d578063d5356b7d14610680578063dc39d06d14610693578063dd62ed3e146106b5578063eadd94ec146106da578063f47c84c5146106ed578063f90c3f2714610700578063fa89401a14610713575b61022a33610732565b50005b341561023857600080fd5b610240610892565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561027c578082015183820152602001610264565b50505050905090810190601f1680156102a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c257600080fd5b6102d9600160a060020a0360043516602435610930565b604051901515815260200160405180910390f35b34156102f857600080fd5b61030061096d565b60405190815260200160405180910390f35b341561031d57600080fd5b6102d9600160a060020a0360043581169060243516604435610973565b341561034557600080fd5b61034d610a62565b60405160ff909116815260200160405180910390f35b341561036e57600080fd5b6102d9610a67565b341561038157600080fd5b610300610ab8565b341561039457600080fd5b6102d9610ac0565b34156103a757600080fd5b610300610ba3565b34156103ba57600080fd5b6102d9600160a060020a03600435166024351515610bb7565b6102d9600160a060020a0360043516610732565b34156103f257600080fd5b610300610c54565b341561040557600080fd5b6102d9600160a060020a0360043516610c5a565b341561042457600080fd5b61042c610cb8565b604051600160a060020a03909116815260200160405180910390f35b341561045357600080fd5b6102d9610cc7565b341561046657600080fd5b6102d9610ced565b341561047957600080fd5b6102d9610d1a565b341561048c57600080fd5b610300600160a060020a0360043516610d23565b34156104ab57600080fd5b610300610d3e565b34156104be57600080fd5b610300610d4f565b34156104d157600080fd5b6102d9610d56565b34156104e457600080fd5b61042c610e09565b34156104f757600080fd5b6104ff610e18565b005b341561050c57600080fd5b6102d9610e76565b341561051f57600080fd5b6102d9600160a060020a0360043516610e84565b341561053e57600080fd5b61042c610e99565b341561055157600080fd5b610300600435610ea8565b341561056757600080fd5b610240610ed4565b341561057a57600080fd5b610300610f3f565b341561058d57600080fd5b610300600435610f52565b34156105a357600080fd5b6102d9600160a060020a0360043516610f95565b34156105c257600080fd5b610300600160a060020a0360043516611030565b34156105e157600080fd5b6102d9600160a060020a0360043516602435611042565b341561060357600080fd5b61030061112e565b341561061657600080fd5b610300611133565b341561062957600080fd5b610300611139565b341561063c57600080fd5b61030060043561113f565b341561065257600080fd5b61030061115f565b341561066557600080fd5b610300611165565b341561067857600080fd5b61042c61116b565b341561068b57600080fd5b610300611180565b341561069e57600080fd5b6102d9600160a060020a0360043516602435611185565b34156106c057600080fd5b610300600160a060020a0360043581169060243516611225565b34156106e557600080fd5b610300611250565b34156106f857600080fd5b61030061125d565b341561070b57600080fd5b610300611264565b341561071e57600080fd5b6102d9600160a060020a036004351661126b565b60008054819060ff161561074557600080fd5b61074d610ced565b1561075757600080fd5b600554610100900460ff161561076c57600080fd5b600e5442111561077b57600080fd5b6000341161078857600080fd5b600160a060020a03831660009081526008602052604090205460ff1615156107f457635aa534914210156107bb57600080fd5b600160a060020a03831660009081526009602052604090205468072206537f168e50d7906107e99034611370565b11156107f457600080fd5b6107fd34610f52565b600d5490915061081790600160a060020a03168483611380565b50600160a060020a038316600090815260096020526040902054610841903463ffffffff61137016565b600160a060020a03841660009081526009602052604090205560075461086d903463ffffffff61137016565b600781905569011d50fd0bdb863ca1af90111561088957600080fd5b50600192915050565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109285780601f106108fd57610100808354040283529160200191610928565b820191906000526020600020905b81548152906001019060200180831161090b57829003601f168201915b505050505081565b6000805460ff161561094157600080fd5b600554610100900460ff16151561095757600080fd5b610961838361147d565b50600190505b92915050565b60015481565b6000805460ff161561098457600080fd5b6000805460ff19166001179055600554610100900460ff1615156109a757600080fd5b6109b28484846114e9565b50600654600160a060020a0384811691161415610a4e57600654600160a060020a03166325fda176338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610a2857600080fd5b6102c65a03f11515610a3957600080fd5b505050604051805190501515610a4e57600080fd5b5060016000805460ff191690559392505050565b601281565b6000805460ff1615610a7857600080fd5b600c5433600160a060020a03908116911614610a9357600080fd5b600554610100900460ff1615610aa857600080fd5b506005805460ff19169055600190565b635aa5349181565b600c5460009033600160a060020a03908116911614610ade57600080fd5b60005460ff1615610aee57600080fd5b6000805460ff19166001179055610b03610cc7565b1515610b0e57600080fd5b6005805461ff001916610100179055600d54600160a060020a033081163191167f8c9a4f13b67cb64d7c6aa1ae0c9bf07694af521a28b93e7060020810ab4bc59f60405160405180910390a3600d54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610b9357600080fd5b5060016000805460ff1916905590565b61017c6a01a784379d99db420000005b0481565b6000805460ff1615610bc857600080fd5b600c5433600160a060020a03908116911614610be357600080fd5b610beb610ced565b15610bf557600080fd5b600160a060020a03831660008181526008602052604090819020805460ff191685151590811790915591907fccc39d7dc7461a69d6b86c0867c4cc1879b70e7239ed223f1ae0eec7036bfdad905160405180910390a350600192915050565b600e5481565b6000805460ff1615610c6b57600080fd5b600c5433600160a060020a03908116911614610c8657600080fd5b5060068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600d54600160a060020a031681565b6000610cd1610ced565b158015610ce8575060075466095968385b35e59010155b905090565b60055460009060ff161580610ce85750600e5442118015610ce857505060075466095968385b35e5901090565b60055460ff1681565b600160a060020a031660009081526003602052604090205490565b61017c670de0b6b3a7640000610bb3565b621e848081565b6000805460ff1615610d6757600080fd5b60055433600160a060020a03908116620100009092041614610d8857600080fd5b600554600c54600160a060020a0362010000909204821691167f2748503f8f31d8071821d1d5144384ba6a465036cda17fa1629a8a2509ccee0e60405160405180910390a350600554600c805462010000909204600160a060020a031673ffffffffffffffffffffffffffffffffffffffff19909216919091179055600190565b600654600160a060020a031681565b60005460ff1615610e2857600080fd5b600c5433600160a060020a03908116911614610e4357600080fd5b60055460ff1615610e5357600080fd5b600160a060020a0330163115610e6857600080fd5b600c54600160a060020a0316ff5b600554610100900460ff1681565b60086020526000908152604090205460ff1681565b600c54600160a060020a031681565b6000610967670de0b6b3a7640000610ec861017c8563ffffffff61158716565b9063ffffffff6115ac16565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109285780601f106108fd57610100808354040283529160200191610928565b61017c690a968163f0a57b400000610bb3565b6000806000610f6084610ea8565b915060009050610f8d6064610ec881610f81886102f863ffffffff61158716565b9063ffffffff61158716565b949350505050565b6000805460ff1615610fa657600080fd5b600c5433600160a060020a03908116911614610fc157600080fd5b81600160a060020a03167fbc48fdaddfcfb54d36a0ac4d7e52f46cdf854784b9c0978d385a35e8383262d460405160405180910390a25060058054600160a060020a038316620100000275ffffffffffffffffffffffffffffffffffffffff0000199091161790556001919050565b60096020526000908152604090205481565b6000805460ff161561105357600080fd5b6000805460ff19166001179055600554610100900460ff16151561107657600080fd5b61108083836115cd565b50600654600160a060020a038481169116141561111c57600654600160a060020a03166325fda176338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110f657600080fd5b6102c65a03f1151561110757600080fd5b50505060405180519050151561111c57600080fd5b50506000805460ff1916905550600190565b600181565b61017c81565b6102f881565b600061096761017c610ec884670de0b6b3a764000063ffffffff61158716565b60075481565b61c35081565b600554620100009004600160a060020a031681565b600281565b600c5460009033600160a060020a039081169116146111a357600080fd5b60005460ff16156111b357600080fd5b6000805460ff19166001178155600c54600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110f657600080fd5b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b6000610ce8600754610ea8565b623d090081565b62ed4e0081565b60008054819060ff161561127e57600080fd5b6000805460ff19166001179055611293610ced565b151561129e57600080fd5b50600160a060020a03808316600090815260096020908152604080832054600d54600390935292205491926112d892869290911690611380565b50600160a060020a0383166000818152600960209081526040808320839055600890915290819020805460ff191690558291907fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651905160405180910390a3600081111561111c57600160a060020a03831681156108fc0282604051600060405180830381858888f19350505050151561111c57600080fd5b8181018281101561096757600080fd5b600160a060020a0383166000908152600360205260408120548211156113a557600080fd5b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a38115156113fb57506001611476565b600160a060020a038416600090815260036020526040902054611424908363ffffffff6115da16565b600160a060020a038086166000908152600360205260408082209390935590851681522054611459908363ffffffff61137016565b600160a060020a0384166000908152600360205260409020555060015b9392505050565b600160a060020a03338116600081815260046020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600160a060020a0380841660009081526004602090815260408083203390941683529290529081205482111561151e57600080fd5b600160a060020a0380851660009081526004602090815260408083203390941683529290522054611555908363ffffffff6115da16565b600160a060020a0380861660009081526004602090815260408083203390941683529290522055610f8d848484611380565b8181028215806115a1575081838281151561159e57fe5b04145b151561096757600080fd5b60008082116115ba57600080fd5b81838115156115c557fe5b049392505050565b6000611476338484611380565b6000828211156115e957600080fd5b509003905600a165627a7a72305820b625972d9f8d5ea8c2dee767ff8d883e22307cb2a69c240ce36532ea9b06d49b0029

Deployed Bytecode

0x6060604052600436106102215763ffffffff60e060020a60003504166306fdde03811461022d578063095ea7b3146102b757806318160ddd146102ed57806323b872dd14610312578063313ce5671461033a57806335a063b414610363578063372c65331461037657806339f95e631461038957806343dbb2de1461039c5780634449307b146103af5780634a5dddd2146103d3578063545599ff146103e757806363981b33146103fa578063664a1ad61461041957806367de81e8146104485780636e62de191461045b5780636eabcd691461046e57806370a082311461048157806371140942146104a057806379099e15146104b357806379ba5097146104c65780637af327a0146104d957806383197ef0146104ec578063835fa3ac146105015780638bace235146105145780638da5cb5b14610533578063946d14801461054657806395d89b411461055c5780639c70b8991461056f578063a4c8932214610582578063a6f9dae114610598578063a82776dd146105b7578063a9059cbb146105d6578063b4495b7d146105f8578063b94083731461060b578063bc6e66041461061e578063bcecf66714610631578063cd72ab6914610647578063d399354b1461065a578063d4ee1d901461066d578063d5356b7d14610680578063dc39d06d14610693578063dd62ed3e146106b5578063eadd94ec146106da578063f47c84c5146106ed578063f90c3f2714610700578063fa89401a14610713575b61022a33610732565b50005b341561023857600080fd5b610240610892565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561027c578082015183820152602001610264565b50505050905090810190601f1680156102a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c257600080fd5b6102d9600160a060020a0360043516602435610930565b604051901515815260200160405180910390f35b34156102f857600080fd5b61030061096d565b60405190815260200160405180910390f35b341561031d57600080fd5b6102d9600160a060020a0360043581169060243516604435610973565b341561034557600080fd5b61034d610a62565b60405160ff909116815260200160405180910390f35b341561036e57600080fd5b6102d9610a67565b341561038157600080fd5b610300610ab8565b341561039457600080fd5b6102d9610ac0565b34156103a757600080fd5b610300610ba3565b34156103ba57600080fd5b6102d9600160a060020a03600435166024351515610bb7565b6102d9600160a060020a0360043516610732565b34156103f257600080fd5b610300610c54565b341561040557600080fd5b6102d9600160a060020a0360043516610c5a565b341561042457600080fd5b61042c610cb8565b604051600160a060020a03909116815260200160405180910390f35b341561045357600080fd5b6102d9610cc7565b341561046657600080fd5b6102d9610ced565b341561047957600080fd5b6102d9610d1a565b341561048c57600080fd5b610300600160a060020a0360043516610d23565b34156104ab57600080fd5b610300610d3e565b34156104be57600080fd5b610300610d4f565b34156104d157600080fd5b6102d9610d56565b34156104e457600080fd5b61042c610e09565b34156104f757600080fd5b6104ff610e18565b005b341561050c57600080fd5b6102d9610e76565b341561051f57600080fd5b6102d9600160a060020a0360043516610e84565b341561053e57600080fd5b61042c610e99565b341561055157600080fd5b610300600435610ea8565b341561056757600080fd5b610240610ed4565b341561057a57600080fd5b610300610f3f565b341561058d57600080fd5b610300600435610f52565b34156105a357600080fd5b6102d9600160a060020a0360043516610f95565b34156105c257600080fd5b610300600160a060020a0360043516611030565b34156105e157600080fd5b6102d9600160a060020a0360043516602435611042565b341561060357600080fd5b61030061112e565b341561061657600080fd5b610300611133565b341561062957600080fd5b610300611139565b341561063c57600080fd5b61030060043561113f565b341561065257600080fd5b61030061115f565b341561066557600080fd5b610300611165565b341561067857600080fd5b61042c61116b565b341561068b57600080fd5b610300611180565b341561069e57600080fd5b6102d9600160a060020a0360043516602435611185565b34156106c057600080fd5b610300600160a060020a0360043581169060243516611225565b34156106e557600080fd5b610300611250565b34156106f857600080fd5b61030061125d565b341561070b57600080fd5b610300611264565b341561071e57600080fd5b6102d9600160a060020a036004351661126b565b60008054819060ff161561074557600080fd5b61074d610ced565b1561075757600080fd5b600554610100900460ff161561076c57600080fd5b600e5442111561077b57600080fd5b6000341161078857600080fd5b600160a060020a03831660009081526008602052604090205460ff1615156107f457635aa534914210156107bb57600080fd5b600160a060020a03831660009081526009602052604090205468072206537f168e50d7906107e99034611370565b11156107f457600080fd5b6107fd34610f52565b600d5490915061081790600160a060020a03168483611380565b50600160a060020a038316600090815260096020526040902054610841903463ffffffff61137016565b600160a060020a03841660009081526009602052604090205560075461086d903463ffffffff61137016565b600781905569011d50fd0bdb863ca1af90111561088957600080fd5b50600192915050565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109285780601f106108fd57610100808354040283529160200191610928565b820191906000526020600020905b81548152906001019060200180831161090b57829003601f168201915b505050505081565b6000805460ff161561094157600080fd5b600554610100900460ff16151561095757600080fd5b610961838361147d565b50600190505b92915050565b60015481565b6000805460ff161561098457600080fd5b6000805460ff19166001179055600554610100900460ff1615156109a757600080fd5b6109b28484846114e9565b50600654600160a060020a0384811691161415610a4e57600654600160a060020a03166325fda176338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610a2857600080fd5b6102c65a03f11515610a3957600080fd5b505050604051805190501515610a4e57600080fd5b5060016000805460ff191690559392505050565b601281565b6000805460ff1615610a7857600080fd5b600c5433600160a060020a03908116911614610a9357600080fd5b600554610100900460ff1615610aa857600080fd5b506005805460ff19169055600190565b635aa5349181565b600c5460009033600160a060020a03908116911614610ade57600080fd5b60005460ff1615610aee57600080fd5b6000805460ff19166001179055610b03610cc7565b1515610b0e57600080fd5b6005805461ff001916610100179055600d54600160a060020a033081163191167f8c9a4f13b67cb64d7c6aa1ae0c9bf07694af521a28b93e7060020810ab4bc59f60405160405180910390a3600d54600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610b9357600080fd5b5060016000805460ff1916905590565b61017c6a01a784379d99db420000005b0481565b6000805460ff1615610bc857600080fd5b600c5433600160a060020a03908116911614610be357600080fd5b610beb610ced565b15610bf557600080fd5b600160a060020a03831660008181526008602052604090819020805460ff191685151590811790915591907fccc39d7dc7461a69d6b86c0867c4cc1879b70e7239ed223f1ae0eec7036bfdad905160405180910390a350600192915050565b600e5481565b6000805460ff1615610c6b57600080fd5b600c5433600160a060020a03908116911614610c8657600080fd5b5060068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600d54600160a060020a031681565b6000610cd1610ced565b158015610ce8575060075466095968385b35e59010155b905090565b60055460009060ff161580610ce85750600e5442118015610ce857505060075466095968385b35e5901090565b60055460ff1681565b600160a060020a031660009081526003602052604090205490565b61017c670de0b6b3a7640000610bb3565b621e848081565b6000805460ff1615610d6757600080fd5b60055433600160a060020a03908116620100009092041614610d8857600080fd5b600554600c54600160a060020a0362010000909204821691167f2748503f8f31d8071821d1d5144384ba6a465036cda17fa1629a8a2509ccee0e60405160405180910390a350600554600c805462010000909204600160a060020a031673ffffffffffffffffffffffffffffffffffffffff19909216919091179055600190565b600654600160a060020a031681565b60005460ff1615610e2857600080fd5b600c5433600160a060020a03908116911614610e4357600080fd5b60055460ff1615610e5357600080fd5b600160a060020a0330163115610e6857600080fd5b600c54600160a060020a0316ff5b600554610100900460ff1681565b60086020526000908152604090205460ff1681565b600c54600160a060020a031681565b6000610967670de0b6b3a7640000610ec861017c8563ffffffff61158716565b9063ffffffff6115ac16565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109285780601f106108fd57610100808354040283529160200191610928565b61017c690a968163f0a57b400000610bb3565b6000806000610f6084610ea8565b915060009050610f8d6064610ec881610f81886102f863ffffffff61158716565b9063ffffffff61158716565b949350505050565b6000805460ff1615610fa657600080fd5b600c5433600160a060020a03908116911614610fc157600080fd5b81600160a060020a03167fbc48fdaddfcfb54d36a0ac4d7e52f46cdf854784b9c0978d385a35e8383262d460405160405180910390a25060058054600160a060020a038316620100000275ffffffffffffffffffffffffffffffffffffffff0000199091161790556001919050565b60096020526000908152604090205481565b6000805460ff161561105357600080fd5b6000805460ff19166001179055600554610100900460ff16151561107657600080fd5b61108083836115cd565b50600654600160a060020a038481169116141561111c57600654600160a060020a03166325fda176338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110f657600080fd5b6102c65a03f1151561110757600080fd5b50505060405180519050151561111c57600080fd5b50506000805460ff1916905550600190565b600181565b61017c81565b6102f881565b600061096761017c610ec884670de0b6b3a764000063ffffffff61158716565b60075481565b61c35081565b600554620100009004600160a060020a031681565b600281565b600c5460009033600160a060020a039081169116146111a357600080fd5b60005460ff16156111b357600080fd5b6000805460ff19166001178155600c54600160a060020a038086169263a9059cbb929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156110f657600080fd5b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b6000610ce8600754610ea8565b623d090081565b62ed4e0081565b60008054819060ff161561127e57600080fd5b6000805460ff19166001179055611293610ced565b151561129e57600080fd5b50600160a060020a03808316600090815260096020908152604080832054600d54600390935292205491926112d892869290911690611380565b50600160a060020a0383166000818152600960209081526040808320839055600890915290819020805460ff191690558291907fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651905160405180910390a3600081111561111c57600160a060020a03831681156108fc0282604051600060405180830381858888f19350505050151561111c57600080fd5b8181018281101561096757600080fd5b600160a060020a0383166000908152600360205260408120548211156113a557600080fd5b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a38115156113fb57506001611476565b600160a060020a038416600090815260036020526040902054611424908363ffffffff6115da16565b600160a060020a038086166000908152600360205260408082209390935590851681522054611459908363ffffffff61137016565b600160a060020a0384166000908152600360205260409020555060015b9392505050565b600160a060020a03338116600081815260046020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600160a060020a0380841660009081526004602090815260408083203390941683529290529081205482111561151e57600080fd5b600160a060020a0380851660009081526004602090815260408083203390941683529290522054611555908363ffffffff6115da16565b600160a060020a0380861660009081526004602090815260408083203390941683529290522055610f8d848484611380565b8181028215806115a1575081838281151561159e57fe5b04145b151561096757600080fd5b60008082116115ba57600080fd5b81838115156115c557fe5b049392505050565b6000611476338484611380565b6000828211156115e957600080fd5b509003905600a165627a7a72305820b625972d9f8d5ea8c2dee767ff8d883e22307cb2a69c240ce36532ea9b06d49b0029

Swarm Source

bzzr://b625972d9f8d5ea8c2dee767ff8d883e22307cb2a69c240ce36532ea9b06d49b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.