ETH Price: $2,608.70 (-2.29%)
Gas: 1 Gwei

Contract

0x16B5d98ac50a4f8326972a6528278b53C8A1180F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer49474592018-01-21 16:59:422392 days ago1516553982IN
0x16B5d98a...3C8A1180F
1.64 ETH0.0008915640
Transfer49397342018-01-20 9:27:082393 days ago1516440428IN
0x16B5d98a...3C8A1180F
1.64 ETH0.001276260
Transfer49354022018-01-19 15:15:062394 days ago1516374906IN
0x16B5d98a...3C8A1180F
1.64 ETH0.001276260
Transfer49276342018-01-18 6:11:302395 days ago1516255890IN
0x16B5d98a...3C8A1180F
1.64 ETH0.0013017261.2
Transfer49165702018-01-16 6:06:362397 days ago1516082796IN
0x16B5d98a...3C8A1180F
1.64 ETH0.0013017261.2
Transfer49106852018-01-15 4:10:422398 days ago1515989442IN
0x16B5d98a...3C8A1180F
1.64 ETH0.0013272462.4
Transfer49032432018-01-13 20:12:402400 days ago1515874360IN
0x16B5d98a...3C8A1180F
4.18 ETH0.0011144550
Transfer48997672018-01-13 4:49:152400 days ago1515818955IN
0x16B5d98a...3C8A1180F
1.64 ETH0.001276260
Transfer48993532018-01-13 3:02:162400 days ago1515812536IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0021057399
Transfer48986962018-01-13 0:02:102401 days ago1515801730IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0011144550
Transfer48986492018-01-12 23:51:282401 days ago1515801088IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0011144550
Transfer48985892018-01-12 23:37:192401 days ago1515800239IN
0x16B5d98a...3C8A1180F
0.04 ETH0.0004220
Transfer48984742018-01-12 23:05:102401 days ago1515798310IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0021057399
Transfer48984542018-01-12 23:00:092401 days ago1515798009IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0019355791
Transfer48984412018-01-12 22:57:272401 days ago1515797847IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0014676369
Transfer48984242018-01-12 22:54:302401 days ago1515797670IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0011144550
Transfer48980242018-01-12 21:11:532401 days ago1515791513IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0011144550
Transfer48979622018-01-12 20:56:122401 days ago1515790572IN
0x16B5d98a...3C8A1180F
2.4 ETH0.0004457820
Transfer48975512018-01-12 19:06:512401 days ago1515784011IN
0x16B5d98a...3C8A1180F
2.48 ETH0.0004457820
Transfer48957802018-01-12 11:13:012401 days ago1515755581IN
0x16B5d98a...3C8A1180F
1 ETH0.0010550
Transfer48944652018-01-12 5:17:082401 days ago1515734228IN
0x16B5d98a...3C8A1180F
1.04 ETH0.0011144550
Transfer48935482018-01-12 1:15:402402 days ago1515719740IN
0x16B5d98a...3C8A1180F
0.11 ETH0.0012995961.1
Transfer48931302018-01-11 23:26:312402 days ago1515713191IN
0x16B5d98a...3C8A1180F
1 ETH0.0004680621
Transfer48928612018-01-11 22:15:292402 days ago1515708929IN
0x16B5d98a...3C8A1180F
0.85 ETH0.0011144550
Transfer48926722018-01-11 21:24:492402 days ago1515705889IN
0x16B5d98a...3C8A1180F
1.5 ETH0.0004457820
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
48920892018-01-11 18:53:492402 days ago1515696829
0x16B5d98a...3C8A1180F
3,999.99999999 ETH
48916752018-01-11 17:03:582402 days ago1515690238
0x16B5d98a...3C8A1180F
3.44482673 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HorseTokenCrowdsale

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-01-09
*/

pragma solidity ^0.4.13;

contract Ownable {
  address public owner;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }


  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

contract PausableToken is Ownable {
    function balanceOf(address who) public constant returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function increaseFrozen(address _owner,uint256 _incrementalAmount) public returns (bool);
    function burn(uint256 _value) public;
}

contract AddressWhitelist is Ownable {
    // the addresses that are included in the whitelist
    mapping (address => bool) whitelisted;
    
    function isWhitelisted(address addr) view public returns (bool) {
        return whitelisted[addr];
    }

    event LogWhitelistAdd(address indexed addr);

    // add these addresses to the whitelist
    function addToWhitelist(address[] addresses) public onlyOwner returns (bool) {
        for (uint i = 0; i < addresses.length; i++) {
            if (!whitelisted[addresses[i]]) {
                whitelisted[addresses[i]] = true;
                LogWhitelistAdd(addresses[i]);
            }
        }

        return true;
    }

    event LogWhitelistRemove(address indexed addr);

    // remove these addresses from the whitelist
    function removeFromWhitelist(address[] addresses) public onlyOwner returns (bool) {
        for (uint i = 0; i < addresses.length; i++) {
            if (whitelisted[addresses[i]]) {
                whitelisted[addresses[i]] = false;
                LogWhitelistRemove(addresses[i]);
            }
        }

        return true;
    }
}

contract HorseTokenCrowdsale is Ownable, AddressWhitelist {
    using SafeMath for uint256;
    PausableToken  public tokenReward;                         // address of the token used as reward

    // deployment variables for static supply sale
    uint256 public initialSupply;
    uint256 public tokensRemaining;
    uint256 public decimals;

    // multi-sig addresses and price variable
    address public beneficiaryWallet;                           // beneficiaryMultiSig (founder group) or wallet account
    uint256 public tokensPerEthPrice;                           // set initial value floating priceVar 10,000 tokens per Eth

    // uint256 values for min,max,caps,tracking
    uint256 public amountRaisedInWei;
    uint256 public fundingMinCapInWei;

    // pricing veriable
    uint256 public p1_duration;
    uint256 public p2_start;
    uint256 public p1_white_duration;

    // loop control, ICO startup and limiters
    uint256 public fundingStartTime;                           // crowdsale start time#
    uint256 public fundingEndTime;                             // crowdsale end time#
    bool    public isCrowdSaleClosed               = false;     // crowdsale completion boolean
    bool    public areFundsReleasedToBeneficiary   = false;     // boolean for founder to receive Eth or not
    bool    public isCrowdSaleSetup                = false;     // boolean for crowdsale setup

    // Gas price limit
    uint256 maxGasPrice = 50000000000;

    event Buy(address indexed _sender, uint256 _eth, uint256 _HORSE);
    event Refund(address indexed _refunder, uint256 _value);
    mapping(address => uint256) fundValue;


    // convert tokens to decimals
    function toPony(uint256 amount) public constant returns (uint256) {
        return amount.mul(10**decimals);
    }

    // convert tokens to whole
    function toHorse(uint256 amount) public constant returns (uint256) {
        return amount.div(10**decimals);
    }

    function updateMaxGasPrice(uint256 _newGasPrice) public onlyOwner {
        require(_newGasPrice != 0);
        maxGasPrice = _newGasPrice;
    }

    // setup the CrowdSale parameters
    function setupCrowdsale(uint256 _fundingStartTime) external onlyOwner {
        if ((!(isCrowdSaleSetup))
            && (!(beneficiaryWallet > 0))){
            // init addresses
            tokenReward                             = PausableToken(0x5B0751713b2527d7f002c0c4e2a37e1219610A6B);
            beneficiaryWallet                       = 0xEb0B40a8bE19160Ca63076aE67357B1a10c8C31A;
            tokensPerEthPrice                       = 12500;

            // funding targets
            fundingMinCapInWei                      = 400 ether;                          //400 Eth (min cap) - crowdsale is considered success after this value

            // update values
            decimals                                = 18;
            amountRaisedInWei                       = 0;
            initialSupply                           = toPony(100000000);                  //   100 million * 18 decimal
            tokensRemaining                         = initialSupply;

            fundingStartTime                        = _fundingStartTime;
            p1_duration                             = 7 days;
            p1_white_duration                       = 1 days;
            
            p2_start                                = fundingStartTime + p1_duration + 6 days;

            fundingEndTime                          = p2_start + 4 weeks;

            // configure crowdsale
            isCrowdSaleSetup                        = true;
            isCrowdSaleClosed                       = false;
        }
    }

    function setBonusPrice() public constant returns (uint256 bonus) {
        require(isCrowdSaleSetup);
        require(fundingStartTime + p1_duration <= p2_start );
        if (now >= fundingStartTime && now <= fundingStartTime + p1_duration) { // Phase-1 Bonus    +100% = 25,000 HORSE  = 1 ETH
            bonus = 12500;
        } else if (now > p2_start && now <= p2_start + 1 days ) { // Phase-2 day-1 Bonus +50% = 18,750 HORSE = 1 ETH
            bonus = 6250;
        } else if (now > p2_start + 1 days && now <= p2_start + 1 weeks ) { // Phase-2 week-1 Bonus +20% = 15,000 HORSE = 1 ETH
            bonus = 2500;
        } else if (now > p2_start + 1 weeks && now <= p2_start + 2 weeks ) { // Phase-2 week-2 Bonus +10% = 13,750 HORSE = 1 ETH
            bonus = 1250;
        } else if (now > p2_start + 2 weeks && now <= fundingEndTime ) { // Phase-2 week-3& week-4 Bonus +0% = 12,500 HORSE = 1 ETH
            bonus = 0;
        } else {
            revert();
        }
    }

    // p1_duration constant. Only p2 start changes. p2 start cannot be greater than 1 month from p1 end
    function updateDuration(uint256 _newP2Start) external onlyOwner { // function to update the duration of phase-1 and adjust the start time of phase-2
        require( isCrowdSaleSetup
            && !(p2_start == _newP2Start)
            && !(_newP2Start > fundingStartTime + p1_duration + 30 days)
            && (now < p2_start)
            && (fundingStartTime + p1_duration < _newP2Start));
        p2_start = _newP2Start;
        fundingEndTime = p2_start.add(4 weeks);
    }

    // default payable function when sending ether to this contract
    function () external payable {
        require(tx.gasprice <= maxGasPrice);
        require(msg.data.length == 0);
        
        BuyHORSEtokens();
    }

    function BuyHORSEtokens() public payable {
        // conditions (length, crowdsale setup, zero check, exceed funding contrib check, contract valid check, within funding block range check, balance overflow check etc)
        require(!(msg.value == 0)
        && (isCrowdSaleSetup)
        && (now >= fundingStartTime)
        && (now <= fundingEndTime)
        && (tokensRemaining > 0));

        // only whitelisted addresses are allowed during the first day of phase 1
        if (now <= fundingStartTime + p1_white_duration) {
            assert(isWhitelisted(msg.sender));
        }
        uint256 rewardTransferAmount        = 0;
        uint256 rewardBaseTransferAmount    = 0;
        uint256 rewardBonusTransferAmount   = 0;
        uint256 contributionInWei           = msg.value;
        uint256 refundInWei                 = 0;

        rewardBonusTransferAmount       = setBonusPrice();
        rewardBaseTransferAmount        = (msg.value.mul(tokensPerEthPrice)); // Since both ether and HORSE have 18 decimals, No need of conversion
        rewardBonusTransferAmount       = (msg.value.mul(rewardBonusTransferAmount)); // Since both ether and HORSE have 18 decimals, No need of conversion
        rewardTransferAmount            = rewardBaseTransferAmount.add(rewardBonusTransferAmount);

        if (rewardTransferAmount > tokensRemaining) {
            uint256 partialPercentage;
            partialPercentage = tokensRemaining.mul(10**18).div(rewardTransferAmount);
            contributionInWei = contributionInWei.mul(partialPercentage).div(10**18);
            rewardBonusTransferAmount = rewardBonusTransferAmount.mul(partialPercentage).div(10**18);
            rewardTransferAmount = tokensRemaining;
            refundInWei = msg.value.sub(contributionInWei);
        }

        amountRaisedInWei               = amountRaisedInWei.add(contributionInWei);
        tokensRemaining                 = tokensRemaining.sub(rewardTransferAmount);  // will cause throw if attempt to purchase over the token limit in one tx or at all once limit reached
        fundValue[msg.sender]           = fundValue[msg.sender].add(contributionInWei);
        assert(tokenReward.increaseFrozen(msg.sender, rewardBonusTransferAmount));
        tokenReward.transfer(msg.sender, rewardTransferAmount);
        Buy(msg.sender, contributionInWei, rewardTransferAmount);
        if (refundInWei > 0) {
            msg.sender.transfer(refundInWei);
        }
    }

    function beneficiaryMultiSigWithdraw() external onlyOwner {
        checkGoalReached();
        require(areFundsReleasedToBeneficiary && (amountRaisedInWei >= fundingMinCapInWei));
        beneficiaryWallet.transfer(this.balance);
    }

    function checkGoalReached() public returns (bytes32 response) { // return crowdfund status to owner for each result case, update public constant
        // update state & status variables
        require (isCrowdSaleSetup);
        if ((amountRaisedInWei < fundingMinCapInWei) && (block.timestamp <= fundingEndTime && block.timestamp >= fundingStartTime)) { // ICO in progress, under softcap
            areFundsReleasedToBeneficiary = false;
            isCrowdSaleClosed = false;
            return "In progress (Eth < Softcap)";
        } else if ((amountRaisedInWei < fundingMinCapInWei) && (block.timestamp < fundingStartTime)) { // ICO has not started
            areFundsReleasedToBeneficiary = false;
            isCrowdSaleClosed = false;
            return "Crowdsale is setup";
        } else if ((amountRaisedInWei < fundingMinCapInWei) && (block.timestamp > fundingEndTime)) { // ICO ended, under softcap
            areFundsReleasedToBeneficiary = false;
            isCrowdSaleClosed = true;
            return "Unsuccessful (Eth < Softcap)";
        } else if ((amountRaisedInWei >= fundingMinCapInWei) && (tokensRemaining == 0)) { // ICO ended, all tokens gone
            areFundsReleasedToBeneficiary = true;
            isCrowdSaleClosed = true;
            return "Successful (HORSE >= Hardcap)!";
        } else if ((amountRaisedInWei >= fundingMinCapInWei) && (block.timestamp > fundingEndTime) && (tokensRemaining > 0)) { // ICO ended, over softcap!
            areFundsReleasedToBeneficiary = true;
            isCrowdSaleClosed = true;
            return "Successful (Eth >= Softcap)!";
        } else if ((amountRaisedInWei >= fundingMinCapInWei) && (tokensRemaining > 0) && (block.timestamp <= fundingEndTime)) { // ICO in progress, over softcap!
            areFundsReleasedToBeneficiary = true;
            isCrowdSaleClosed = false;
            return "In progress (Eth >= Softcap)!";
        }
    }

    function refund() external { // any contributor can call this to have their Eth returned. user's purchased HORSE tokens are burned prior refund of Eth.
        checkGoalReached();
        //require minCap not reached
        require ((amountRaisedInWei < fundingMinCapInWei)
        && (isCrowdSaleClosed)
        && (now > fundingEndTime)
        && (fundValue[msg.sender] > 0));

        //refund Eth sent
        uint256 ethRefund = fundValue[msg.sender];
        fundValue[msg.sender] = 0;

        //send Eth back, burn tokens
        msg.sender.transfer(ethRefund);
        Refund(msg.sender, ethRefund);
    }

    function burnRemainingTokens() onlyOwner external {
        require(now > fundingEndTime);
        uint256 tokensToBurn = tokenReward.balanceOf(this);
        tokenReward.burn(tokensToBurn);
    }
}

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

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"checkGoalReached","outputs":[{"name":"response","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"beneficiaryMultiSigWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerEthPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newP2Start","type":"uint256"}],"name":"updateDuration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"toHorse","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isCrowdSaleSetup","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"p1_duration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isWhitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"p2_start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newGasPrice","type":"uint256"}],"name":"updateMaxGasPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_fundingStartTime","type":"uint256"}],"name":"setupCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"}],"name":"removeFromWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenReward","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"BuyHORSEtokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"toPony","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"amountRaisedInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"p1_white_duration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"setBonusPrice","outputs":[{"name":"bonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingMinCapInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"}],"name":"addToWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"burnRemainingTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isCrowdSaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiaryWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"areFundsReleasedToBeneficiary","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_sender","type":"address"},{"indexed":false,"name":"_eth","type":"uint256"},{"indexed":false,"name":"_HORSE","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_refunder","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"LogWhitelistAdd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"LogWhitelistRemove","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6060604052600f805462ffffff19169055640ba43b740060105560008054600160a060020a033316600160a060020a031990911617905561139a806100456000396000f30060606040526004361061017c5763ffffffff60e060020a60003504166301cb3b2081146101a057806307db4228146101c55780631a5e2110146101d85780631b50ad09146101eb5780631df9355814610201578063313ce56714610214578063358a2a841461022757806337205d761461023d578063378dc3dc146102645780633950d1b2146102775780633af32abf1461028a5780633bb28957146102a957806348146341146102bc5780634acdc150146102d2578063548db174146102e8578063590e1ae3146103375780636e66f6e91461034a5780636ed5777e1461019657806370a0246a1461037957806372729ff21461038f57806374eedd46146103a25780637b38f391146103b55780637c686c15146103c85780637ee6b2d0146103db5780637f649783146103ee57806383408d731461043d5780638da5cb5b14610450578063a26d7b9414610463578063c8b0812514610476578063c978863114610489578063d21077f31461049c578063f2fde38b146104af575b6010543a111561018b57600080fd5b361561019657600080fd5b61019e6104ce565b005b34156101ab57600080fd5b6101b3610812565b60405190815260200160405180910390f35b34156101d057600080fd5b61019e610a41565b34156101e357600080fd5b6101b3610ac6565b34156101f657600080fd5b61019e600435610acc565b341561020c57600080fd5b6101b3610b5f565b341561021f57600080fd5b6101b3610b65565b341561023257600080fd5b6101b3600435610b6b565b341561024857600080fd5b610250610b8b565b604051901515815260200160405180910390f35b341561026f57600080fd5b6101b3610b9a565b341561028257600080fd5b6101b3610ba0565b341561029557600080fd5b610250600160a060020a0360043516610ba6565b34156102b457600080fd5b6101b3610bc4565b34156102c757600080fd5b61019e600435610bca565b34156102dd57600080fd5b61019e600435610bf6565b34156102f357600080fd5b6102506004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610d0495505050505050565b341561034257600080fd5b61019e610e0c565b341561035557600080fd5b61035d610eef565b604051600160a060020a03909116815260200160405180910390f35b341561038457600080fd5b6101b3600435610efe565b341561039a57600080fd5b6101b3610f18565b34156103ad57600080fd5b6101b3610f1e565b34156103c057600080fd5b6101b3610f24565b34156103d357600080fd5b6101b3610f2a565b34156103e657600080fd5b6101b3611025565b34156103f957600080fd5b610250600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061102b95505050505050565b341561044857600080fd5b61019e61112a565b341561045b57600080fd5b61035d61122a565b341561046e57600080fd5b610250611239565b341561048157600080fd5b6101b3611242565b341561049457600080fd5b61035d611248565b34156104a757600080fd5b610250611257565b34156104ba57600080fd5b61019e600160a060020a0360043516611265565b6000808080808034158015906104ec5750600f5462010000900460ff165b80156104fa5750600d544210155b80156105085750600e544211155b801561051657506000600454115b151561052157600080fd5b600c54600d5401421161053f5761053733610ba6565b151561053f57fe5b6000955060009450600093503492506000915061055a610f2a565b93506105716007543461130090919063ffffffff16565b9450610583348563ffffffff61130016565b9350610595858563ffffffff61133616565b9550600454861115610624576105ce866105c2670de0b6b3a764000060045461130090919063ffffffff16565b9063ffffffff61134516565b90506105ec670de0b6b3a76400006105c2858463ffffffff61130016565b925061060a670de0b6b3a76400006105c2868463ffffffff61130016565b60045496509350610621348463ffffffff61135c16565b91505b600854610637908463ffffffff61133616565b60085560045461064d908763ffffffff61135c16565b600455600160a060020a033316600090815260116020526040902054610679908463ffffffff61133616565b600160a060020a0333818116600090815260116020526040808220949094556002549092169263bfabd754928891516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156106ef57600080fd5b6102c65a03f1151561070057600080fd5b50505060405180519050151561071257fe5b600254600160a060020a031663a9059cbb338860006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561077157600080fd5b6102c65a03f1151561078257600080fd5b50505060405180515050600160a060020a0333167f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed848860405191825260208201526040908101905180910390a2600082111561080a57600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561080a57600080fd5b505050505050565b600f5460009062010000900460ff16151561082c57600080fd5b60095460085410801561084e5750600e54421115801561084e5750600d544210155b156108855750600f805461ffff191690557f496e2070726f67726573732028457468203c20536f6674636170290000000000610a3e565b6009546008541080156108995750600d5442105b156108d05750600f805461ffff191690557f43726f776473616c652069732073657475700000000000000000000000000000610a3e565b6009546008541080156108e45750600e5442115b1561091e5750600f805461ffff191660011790557f556e7375636365737366756c2028457468203c20536f66746361702900000000610a3e565b600954600854101580156109325750600454155b156109765750600f805460ff1961ff0019909116610100171660011790557f5375636365737366756c2028484f525345203e3d204861726463617029210000610a3e565b6009546008541015801561098b5750600e5442115b801561099957506000600454115b156109dd5750600f805460ff1961ff0019909116610100171660011790557f5375636365737366756c2028457468203e3d20536f6674636170292100000000610a3e565b600954600854101580156109f357506000600454115b8015610a015750600e544211155b15610a3e5750600f805460ff1961ff0019909116610100171690557f496e2070726f67726573732028457468203e3d20536f667463617029210000005b90565b60005433600160a060020a03908116911614610a5c57600080fd5b610a64610812565b50600f54610100900460ff168015610a80575060095460085410155b1515610a8b57600080fd5b600654600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610ac457600080fd5b565b60075481565b60005433600160a060020a03908116911614610ae757600080fd5b600f5462010000900460ff168015610b01575080600b5414155b8015610b185750600a54600d540162278d00018111155b8015610b255750600b5442105b8015610b36575080600a54600d5401105b1515610b4157600080fd5b600b819055610b59816224ea0063ffffffff61133616565b600e5550565b600d5481565b60055481565b6000610b85600554600a0a8361134590919063ffffffff16565b92915050565b600f5462010000900460ff1681565b60035481565b600a5481565b600160a060020a031660009081526001602052604090205460ff1690565b600b5481565b60005433600160a060020a03908116911614610be557600080fd5b801515610bf157600080fd5b601055565b60005433600160a060020a03908116911614610c1157600080fd5b600f5462010000900460ff16158015610c3857506006546000600160a060020a0390911611155b15610d01576002805473ffffffffffffffffffffffffffffffffffffffff19908116735b0751713b2527d7f002c0c4e2a37e1219610a6b179091556006805490911673eb0b40a8be19160ca63076ae67357b1a10c8c31a1790556130d46007556815af1d78b58c40000060095560126005556000600855610cbc6305f5e100610efe565b6003819055600455600d81905562093a80600a5562015180600c55621123808101600b5562360d808101600e55600f805460ff1962ff00001990911662010000171690555b50565b60008054819033600160a060020a03908116911614610d2257600080fd5b5060005b8251811015610e035760016000848381518110610d3f57fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff1615610dfb57600060016000858481518110610d7d57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055828181518110610dbb57fe5b90602001906020020151600160a060020a03167f63ed6d5de83b65405e74e66aea9f7df2c26bfac71b55f5d75ec5f85930c3520e60405160405180910390a25b600101610d26565b50600192915050565b6000610e16610812565b50600954600854108015610e2c5750600f5460ff165b8015610e395750600e5442115b8015610e5b5750600160a060020a033316600090815260116020526040812054115b1515610e6657600080fd5b50600160a060020a033316600081815260116020526040808220805492905590919082156108fc0290839051600060405180830381858888f193505050501515610eaf57600080fd5b33600160a060020a03167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d8260405190815260200160405180910390a250565b600254600160a060020a031681565b6000610b85600554600a0a8361130090919063ffffffff16565b60085481565b600e5481565b600c5481565b600f5460009062010000900460ff161515610f4457600080fd5b600b54600a54600d54011115610f5957600080fd5b600d544210158015610f715750600a54600d54014211155b15610f7f57506130d4610a3e565b600b5442118015610f975750600b5462015180014211155b15610fa5575061186a610a3e565b600b54620151800142118015610fc25750600b5462093a80014211155b15610fd057506109c4610a3e565b600b5462093a800142118015610fed5750600b5462127500014211155b15610ffb57506104e2610a3e565b600b546212750001421180156110135750600e544211155b1561102057506000610a3e565b600080fd5b60095481565b60008054819033600160a060020a0390811691161461104957600080fd5b5060005b8251811015610e03576001600084838151811061106657fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff1615156111225760018060008584815181106110a457fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790558281815181106110e257fe5b90602001906020020151600160a060020a03167f172960d4eef15ccec151ed01c8488f061df273831457381b8aac30412eada1de60405160405180910390a25b60010161104d565b6000805433600160a060020a0390811691161461114657600080fd5b600e54421161115457600080fd5b600254600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111ad57600080fd5b6102c65a03f115156111be57600080fd5b5050506040518051600254909250600160a060020a031690506342966c688260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561121357600080fd5b6102c65a03f1151561122457600080fd5b50505050565b600054600160a060020a031681565b600f5460ff1681565b60045481565b600654600160a060020a031681565b600f54610100900460ff1681565b60005433600160a060020a0390811691161461128057600080fd5b600160a060020a038116151561129557600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080831515611313576000915061132f565b5082820282848281151561132357fe5b041461132b57fe5b8091505b5092915050565b60008282018381101561132b57fe5b600080828481151561135357fe5b04949350505050565b60008282111561136857fe5b509003905600a165627a7a723058202d62d2fb63fe26f6ceb36e64dbb62edaf862e2b0434387e0a0ad8cfec34362950029

Deployed Bytecode

0x60606040526004361061017c5763ffffffff60e060020a60003504166301cb3b2081146101a057806307db4228146101c55780631a5e2110146101d85780631b50ad09146101eb5780631df9355814610201578063313ce56714610214578063358a2a841461022757806337205d761461023d578063378dc3dc146102645780633950d1b2146102775780633af32abf1461028a5780633bb28957146102a957806348146341146102bc5780634acdc150146102d2578063548db174146102e8578063590e1ae3146103375780636e66f6e91461034a5780636ed5777e1461019657806370a0246a1461037957806372729ff21461038f57806374eedd46146103a25780637b38f391146103b55780637c686c15146103c85780637ee6b2d0146103db5780637f649783146103ee57806383408d731461043d5780638da5cb5b14610450578063a26d7b9414610463578063c8b0812514610476578063c978863114610489578063d21077f31461049c578063f2fde38b146104af575b6010543a111561018b57600080fd5b361561019657600080fd5b61019e6104ce565b005b34156101ab57600080fd5b6101b3610812565b60405190815260200160405180910390f35b34156101d057600080fd5b61019e610a41565b34156101e357600080fd5b6101b3610ac6565b34156101f657600080fd5b61019e600435610acc565b341561020c57600080fd5b6101b3610b5f565b341561021f57600080fd5b6101b3610b65565b341561023257600080fd5b6101b3600435610b6b565b341561024857600080fd5b610250610b8b565b604051901515815260200160405180910390f35b341561026f57600080fd5b6101b3610b9a565b341561028257600080fd5b6101b3610ba0565b341561029557600080fd5b610250600160a060020a0360043516610ba6565b34156102b457600080fd5b6101b3610bc4565b34156102c757600080fd5b61019e600435610bca565b34156102dd57600080fd5b61019e600435610bf6565b34156102f357600080fd5b6102506004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610d0495505050505050565b341561034257600080fd5b61019e610e0c565b341561035557600080fd5b61035d610eef565b604051600160a060020a03909116815260200160405180910390f35b341561038457600080fd5b6101b3600435610efe565b341561039a57600080fd5b6101b3610f18565b34156103ad57600080fd5b6101b3610f1e565b34156103c057600080fd5b6101b3610f24565b34156103d357600080fd5b6101b3610f2a565b34156103e657600080fd5b6101b3611025565b34156103f957600080fd5b610250600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061102b95505050505050565b341561044857600080fd5b61019e61112a565b341561045b57600080fd5b61035d61122a565b341561046e57600080fd5b610250611239565b341561048157600080fd5b6101b3611242565b341561049457600080fd5b61035d611248565b34156104a757600080fd5b610250611257565b34156104ba57600080fd5b61019e600160a060020a0360043516611265565b6000808080808034158015906104ec5750600f5462010000900460ff165b80156104fa5750600d544210155b80156105085750600e544211155b801561051657506000600454115b151561052157600080fd5b600c54600d5401421161053f5761053733610ba6565b151561053f57fe5b6000955060009450600093503492506000915061055a610f2a565b93506105716007543461130090919063ffffffff16565b9450610583348563ffffffff61130016565b9350610595858563ffffffff61133616565b9550600454861115610624576105ce866105c2670de0b6b3a764000060045461130090919063ffffffff16565b9063ffffffff61134516565b90506105ec670de0b6b3a76400006105c2858463ffffffff61130016565b925061060a670de0b6b3a76400006105c2868463ffffffff61130016565b60045496509350610621348463ffffffff61135c16565b91505b600854610637908463ffffffff61133616565b60085560045461064d908763ffffffff61135c16565b600455600160a060020a033316600090815260116020526040902054610679908463ffffffff61133616565b600160a060020a0333818116600090815260116020526040808220949094556002549092169263bfabd754928891516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156106ef57600080fd5b6102c65a03f1151561070057600080fd5b50505060405180519050151561071257fe5b600254600160a060020a031663a9059cbb338860006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561077157600080fd5b6102c65a03f1151561078257600080fd5b50505060405180515050600160a060020a0333167f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed848860405191825260208201526040908101905180910390a2600082111561080a57600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561080a57600080fd5b505050505050565b600f5460009062010000900460ff16151561082c57600080fd5b60095460085410801561084e5750600e54421115801561084e5750600d544210155b156108855750600f805461ffff191690557f496e2070726f67726573732028457468203c20536f6674636170290000000000610a3e565b6009546008541080156108995750600d5442105b156108d05750600f805461ffff191690557f43726f776473616c652069732073657475700000000000000000000000000000610a3e565b6009546008541080156108e45750600e5442115b1561091e5750600f805461ffff191660011790557f556e7375636365737366756c2028457468203c20536f66746361702900000000610a3e565b600954600854101580156109325750600454155b156109765750600f805460ff1961ff0019909116610100171660011790557f5375636365737366756c2028484f525345203e3d204861726463617029210000610a3e565b6009546008541015801561098b5750600e5442115b801561099957506000600454115b156109dd5750600f805460ff1961ff0019909116610100171660011790557f5375636365737366756c2028457468203e3d20536f6674636170292100000000610a3e565b600954600854101580156109f357506000600454115b8015610a015750600e544211155b15610a3e5750600f805460ff1961ff0019909116610100171690557f496e2070726f67726573732028457468203e3d20536f667463617029210000005b90565b60005433600160a060020a03908116911614610a5c57600080fd5b610a64610812565b50600f54610100900460ff168015610a80575060095460085410155b1515610a8b57600080fd5b600654600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610ac457600080fd5b565b60075481565b60005433600160a060020a03908116911614610ae757600080fd5b600f5462010000900460ff168015610b01575080600b5414155b8015610b185750600a54600d540162278d00018111155b8015610b255750600b5442105b8015610b36575080600a54600d5401105b1515610b4157600080fd5b600b819055610b59816224ea0063ffffffff61133616565b600e5550565b600d5481565b60055481565b6000610b85600554600a0a8361134590919063ffffffff16565b92915050565b600f5462010000900460ff1681565b60035481565b600a5481565b600160a060020a031660009081526001602052604090205460ff1690565b600b5481565b60005433600160a060020a03908116911614610be557600080fd5b801515610bf157600080fd5b601055565b60005433600160a060020a03908116911614610c1157600080fd5b600f5462010000900460ff16158015610c3857506006546000600160a060020a0390911611155b15610d01576002805473ffffffffffffffffffffffffffffffffffffffff19908116735b0751713b2527d7f002c0c4e2a37e1219610a6b179091556006805490911673eb0b40a8be19160ca63076ae67357b1a10c8c31a1790556130d46007556815af1d78b58c40000060095560126005556000600855610cbc6305f5e100610efe565b6003819055600455600d81905562093a80600a5562015180600c55621123808101600b5562360d808101600e55600f805460ff1962ff00001990911662010000171690555b50565b60008054819033600160a060020a03908116911614610d2257600080fd5b5060005b8251811015610e035760016000848381518110610d3f57fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff1615610dfb57600060016000858481518110610d7d57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055828181518110610dbb57fe5b90602001906020020151600160a060020a03167f63ed6d5de83b65405e74e66aea9f7df2c26bfac71b55f5d75ec5f85930c3520e60405160405180910390a25b600101610d26565b50600192915050565b6000610e16610812565b50600954600854108015610e2c5750600f5460ff165b8015610e395750600e5442115b8015610e5b5750600160a060020a033316600090815260116020526040812054115b1515610e6657600080fd5b50600160a060020a033316600081815260116020526040808220805492905590919082156108fc0290839051600060405180830381858888f193505050501515610eaf57600080fd5b33600160a060020a03167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d8260405190815260200160405180910390a250565b600254600160a060020a031681565b6000610b85600554600a0a8361130090919063ffffffff16565b60085481565b600e5481565b600c5481565b600f5460009062010000900460ff161515610f4457600080fd5b600b54600a54600d54011115610f5957600080fd5b600d544210158015610f715750600a54600d54014211155b15610f7f57506130d4610a3e565b600b5442118015610f975750600b5462015180014211155b15610fa5575061186a610a3e565b600b54620151800142118015610fc25750600b5462093a80014211155b15610fd057506109c4610a3e565b600b5462093a800142118015610fed5750600b5462127500014211155b15610ffb57506104e2610a3e565b600b546212750001421180156110135750600e544211155b1561102057506000610a3e565b600080fd5b60095481565b60008054819033600160a060020a0390811691161461104957600080fd5b5060005b8251811015610e03576001600084838151811061106657fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff1615156111225760018060008584815181106110a457fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790558281815181106110e257fe5b90602001906020020151600160a060020a03167f172960d4eef15ccec151ed01c8488f061df273831457381b8aac30412eada1de60405160405180910390a25b60010161104d565b6000805433600160a060020a0390811691161461114657600080fd5b600e54421161115457600080fd5b600254600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111ad57600080fd5b6102c65a03f115156111be57600080fd5b5050506040518051600254909250600160a060020a031690506342966c688260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561121357600080fd5b6102c65a03f1151561122457600080fd5b50505050565b600054600160a060020a031681565b600f5460ff1681565b60045481565b600654600160a060020a031681565b600f54610100900460ff1681565b60005433600160a060020a0390811691161461128057600080fd5b600160a060020a038116151561129557600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080831515611313576000915061132f565b5082820282848281151561132357fe5b041461132b57fe5b8091505b5092915050565b60008282018381101561132b57fe5b600080828481151561135357fe5b04949350505050565b60008282111561136857fe5b509003905600a165627a7a723058202d62d2fb63fe26f6ceb36e64dbb62edaf862e2b0434387e0a0ad8cfec34362950029

Swarm Source

bzzr://2d62d2fb63fe26f6ceb36e64dbb62edaf862e2b0434387e0a0ad8cfec3436295

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.