ETH Price: $3,465.16 (+0.31%)
Gas: 5 Gwei

Contract

0xFE2F0a2d25639366b19E4105068720837277E70F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Individual Claim42206062017-08-30 17:38:322518 days ago1504114712IN
0xFE2F0a2d...37277E70F
0 ETH0.0027117660
Beneficiary Send41248642017-08-06 17:48:502542 days ago1502041730IN
0xFE2F0a2d...37277E70F
0 ETH0.0006737420.42469852
Transfer41103942017-08-03 3:30:252546 days ago1501731025IN
0xFE2F0a2d...37277E70F
0.15131735 ETH0.002121
Transfer41103712017-08-03 3:22:552546 days ago1501730575IN
0xFE2F0a2d...37277E70F
0.15341735 ETH0.002121
Transfer40989532017-07-31 9:05:212549 days ago1501491921IN
0xFE2F0a2d...37277E70F
3 ETH0.002121
Transfer40977522017-07-31 2:58:562549 days ago1501469936IN
0xFE2F0a2d...37277E70F
0.21 ETH0.006358841
Transfer40962312017-07-30 19:17:232549 days ago1501442243IN
0xFE2F0a2d...37277E70F
0 ETH0.025221
Transfer40960932017-07-30 18:40:372549 days ago1501440037IN
0xFE2F0a2d...37277E70F
0.08 ETH0.00056721
Transfer40960802017-07-30 18:38:012549 days ago1501439881IN
0xFE2F0a2d...37277E70F
0.08 ETH0.00044121
Transfer40959852017-07-30 18:07:052549 days ago1501438025IN
0xFE2F0a2d...37277E70F
0.09 ETH0.00052521
Transfer40959722017-07-30 18:01:292549 days ago1501437689IN
0xFE2F0a2d...37277E70F
0.1 ETH0.00044121
Individual Claim40958662017-07-30 17:29:022549 days ago1501435742IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
Individual Claim40958372017-07-30 17:20:072549 days ago1501435207IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
Individual Claim40958142017-07-30 17:13:472549 days ago1501434827IN
0xFE2F0a2d...37277E70F
0 ETH0.00052521
Individual Claim40957112017-07-30 16:44:472549 days ago1501433087IN
0xFE2F0a2d...37277E70F
0 ETH0.000045191
Individual Claim40956422017-07-30 16:22:392550 days ago1501431759IN
0xFE2F0a2d...37277E70F
0 ETH0.000090392
Individual Claim40956402017-07-30 16:22:052550 days ago1501431725IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
Individual Claim40956392017-07-30 16:20:522550 days ago1501431652IN
0xFE2F0a2d...37277E70F
0 ETH0.0027117660
Individual Claim40955432017-07-30 15:53:532550 days ago1501430033IN
0xFE2F0a2d...37277E70F
0 ETH0.001039523
Individual Claim40955062017-07-30 15:40:432550 days ago1501429243IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
Individual Claim40955052017-07-30 15:39:352550 days ago1501429175IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
Individual Claim40954792017-07-30 15:33:282550 days ago1501428808IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
Individual Claim40954372017-07-30 15:21:142550 days ago1501428074IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
Individual Claim40954302017-07-30 15:19:482550 days ago1501427988IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
Individual Claim40954092017-07-30 15:13:052550 days ago1501427585IN
0xFE2F0a2d...37277E70F
0 ETH0.0009491121
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
41248642017-08-06 17:48:502542 days ago1502041730
0xFE2F0a2d...37277E70F
3,111.75759739 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FairAuction

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-07-14
*/

pragma solidity ^0.4.2;
contract token { 
    function transfer(address, uint256){  }
    function balanceOf(address) constant returns (uint256) { }
}

/// @title FairAuction contract
/// @author Christopher Grant - <[email protected]>
contract FairAuction {
    /* State */
    address public beneficiary;
    uint public amountRaised; uint public startTime; uint public deadline; uint public memberCount; uint public crowdsaleCap;
    uint256 public tokenSupply;
    token public tokenReward;
    mapping(address => uint256) public balanceOf;
    mapping (uint => address) accountIndex;
    bool public finalized;

    /* Events */
    event TokenAllocation(address recipient, uint amount);
    event Finalized(address beneficiary, uint amountRaised);
    event FundTransfer(address backer, uint amount);
    event FundClaim(address claimant, uint amount);

    /* Initialize relevant crowdsale contract details */
    function FairAuction(
        address fundedAddress,
        uint epochStartTime,
        uint durationInMinutes,
        uint256 capOnCrowdsale,
        token contractAddressOfRewardToken
    ) {
        beneficiary = fundedAddress;
        startTime = epochStartTime;
        deadline = startTime + (durationInMinutes * 1 minutes);
        tokenReward = token(contractAddressOfRewardToken);
        crowdsaleCap = capOnCrowdsale * 1 ether;
        finalized = false;
    }

    /* default function (called whenever funds are sent to the FairAuction) */
    function () payable {
        /* Ensure that auction is ongoing */
        if (now < startTime) throw;
        if (now >= deadline) throw;

        uint amount = msg.value;

        /* Ensure that we do not pass the cap */
        if (amountRaised + amount > crowdsaleCap) throw;

        uint256 existingBalance = balanceOf[msg.sender];

        /* Tally new members (helps iteration later) */
        if (existingBalance == 0) {
            accountIndex[memberCount] = msg.sender;
            memberCount += 1;
        } 
        
        /* Track contribution amount */
        balanceOf[msg.sender] = existingBalance + amount;
        amountRaised += amount;

        /* Fire FundTransfer event */
        FundTransfer(msg.sender, amount);
    }

    /* finalize() can be called once the FairAuction has ended, which will allow withdrawals */
    function finalize() {
        /* Nothing to finalize */
        if (amountRaised == 0) throw;

        /* Auction still ongoing */
        if (now < deadline) {
            /* Don't terminate auction before cap is reached */
            if (amountRaised < crowdsaleCap) throw;
        }

        /* Snapshot available supply of reward tokens */
        tokenSupply = tokenReward.balanceOf(this);

        /* Mark the FairAuction as finalized */
        finalized = true;
        /* Fire Finalized event */
        Finalized(beneficiary, amountRaised);
    }

    /* individualClaim() can be called by any auction participant once the FairAuction is finalized, to claim the tokens they are owed from the auction */
    function individualClaim() {
        /* Only allow once auction has been finalized */
        if (!finalized) throw;

        /* Grant tokens due */
        tokenReward.transfer(msg.sender, (balanceOf[msg.sender] * tokenSupply / amountRaised));
        /* Fire TokenAllocation event */
        TokenAllocation(msg.sender, (balanceOf[msg.sender] * tokenSupply / amountRaised));
        /* Prevent repeat-withdrawals */
        balanceOf[msg.sender] = 0;
    }

    /* beneficiarySend() can be called once the FairAuction is finalized, to send the crowdsale proceeds to their destination address */
    function beneficiarySend() {
        /* Only allow once auction has been finalized */
        if (!finalized) throw;

        /* Send proceeds to beneficiary */
        if (beneficiary.send(amountRaised)) {
            /* Fire FundClaim event */
            FundClaim(beneficiary, amountRaised);
        }
    }

    /* automaticWithdrawLoop() can be called once the FairAuction is finalized to automatically allocate a batch of auctioned tokens */
    function automaticWithdrawLoop(uint startIndex, uint endIndex) {
        /* Only allow once auction has been finalized */
        if (!finalized) throw;
        
        /* Distribute auctioned tokens fairly among a batch of participants. */
        for (uint i=startIndex; i<=endIndex && i<memberCount; i++) {
            /* Should not occur */
            if (accountIndex[i] == 0)
                continue;
            /* Grant tokens due */
            tokenReward.transfer(accountIndex[i], (balanceOf[accountIndex[i]] * tokenSupply / amountRaised));
            /* Fire TokenAllocation event */
            TokenAllocation(accountIndex[i], (balanceOf[accountIndex[i]] * tokenSupply / amountRaised));
            /* Prevent repeat-withdrawals */
            balanceOf[accountIndex[i]] = 0;
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"memberCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"individualClaim","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"deadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"beneficiarySend","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenReward","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"startIndex","type":"uint256"},{"name":"endIndex","type":"uint256"}],"name":"automaticWithdrawLoop","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"fundedAddress","type":"address"},{"name":"epochStartTime","type":"uint256"},{"name":"durationInMinutes","type":"uint256"},{"name":"capOnCrowdsale","type":"uint256"},{"name":"contractAddressOfRewardToken","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenAllocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amountRaised","type":"uint256"}],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"backer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"FundTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"claimant","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"FundClaim","type":"event"}]

6060604052341561000c57fe5b60405160a08061093183398101604090815281516020830151918301516060840151608090940151919390915b60008054600160a060020a03808816600160a060020a0319928316179092556002869055603c850286016003556007805492841692909116919091179055670de0b6b3a76400008202600555600a805460ff191690555b50505050505b61088c806100a56000396000f300606060405236156100b45763ffffffff60e060020a60003504166311aee38081146101b957806318958959146101db57806329dcb0cf146101ed57806338af3eed1461020f5780633e6a6a311461023b5780634951a18f1461024d5780634bb278f31461026f5780636e66f6e91461028157806370a08231146102ad5780637824407f146102db57806378e97925146102fd5780637b3e5e7b1461031f578063b3f05b9714610341578063eaa0e76014610365575b6101b75b600060006002544210156100cc5760006000fd5b60035442106100db5760006000fd5b349150600554826001540111156100f25760006000fd5b50600160a060020a03331660009081526008602052604090205480151561015357600480546000908152600960205260409020805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a0316179055805460010190555b600160a060020a033316600081815260086020908152604091829020848601905560018054860190558151928352820184905280517f97c35397cb6acebd9df368c206404479fc4c80dd6034d1b28943aaf5826318709281900390910190a15b5050565b005b34156101c157fe5b6101c961037d565b60408051918252519081900360200190f35b34156101e357fe5b6101b7610383565b005b34156101f557fe5b6101c96104c4565b60408051918252519081900360200190f35b341561021757fe5b61021f6104ca565b60408051600160a060020a039092168252519081900360200190f35b341561024357fe5b6101b76104d9565b005b341561025557fe5b6101c9610569565b60408051918252519081900360200190f35b341561027757fe5b6101b761056f565b005b341561028957fe5b61021f61067a565b60408051600160a060020a039092168252519081900360200190f35b34156102b557fe5b6101c9600160a060020a0360043516610689565b60408051918252519081900360200190f35b34156102e357fe5b6101c961069b565b60408051918252519081900360200190f35b341561030557fe5b6101c96106a1565b60408051918252519081900360200190f35b341561032757fe5b6101c96106a7565b60408051918252519081900360200190f35b341561034957fe5b6103516106ad565b604080519115158252519081900360200190f35b341561036d57fe5b6101b76004356024356106b6565b005b60045481565b600a5460ff1615156103955760006000fd5b60075460015460065433600160a060020a0381811660009081526008602052604090205494169363a9059cbb939192028115156103ce57fe5b046040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b151561041d57fe5b6102c65a03f1151561042b57fe5b5050507fbf207ad386f64ae17177a5400ae8ba9bf21d51f90e1b658e03806afca715ce03336001546006546008600033600160a060020a0316600160a060020a03168152602001908152602001600020540281151561048657fe5b60408051600160a060020a03909416845291900460208301528051918290030190a1600160a060020a0333166000908152600860205260408120555b565b60035481565b600054600160a060020a031681565b600a5460ff1615156104eb5760006000fd5b60008054600154604051600160a060020a039092169281156108fc029290818181858888f19350505050156104c25760005460015460408051600160a060020a039093168352602083019190915280517fd85cc5c9d0051ff07b97648726095aa987fe2594411500688feef47b09596bc79281900390910190a15b5b565b60055481565b600154151561057e5760006000fd5b60035442101561059a57600554600154101561059a5760006000fd5b5b600754604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033081166004830152935193909416936370a08231936024808301949391928390030190829087803b151561060957fe5b6102c65a03f1151561061757fe5b5050604080518051600655600a805460ff191660019081179091556000549054600160a060020a039091168252602082015281517f66b6851664a82efe6b871e434faba2b11421d2dad65eb71a344ae76cca8a2b8693509081900390910190a15b565b600754600160a060020a031681565b60086020526000908152604090205481565b60065481565b60025481565b60015481565b600a5460ff1681565b600a5460009060ff1615156106cb5760006000fd5b50815b8181111580156106df575060045481105b1561085a57600081815260096020526040902054600160a060020a0316151561070757610852565b600754600082815260096020908152604080832054600154600654600160a060020a039283168087526008909552929094205494169363a9059cbb93910281151561074e57fe5b046040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b151561079d57fe5b6102c65a03f115156107ab57fe5b505050600081815260096020908152604080832054600154600654600160a060020a03909216808652600890945291909320547fbf207ad386f64ae17177a5400ae8ba9bf21d51f90e1b658e03806afca715ce03930281151561080a57fe5b60408051600160a060020a03909416845291900460208301528051918290030190a1600081815260096020908152604080832054600160a060020a0316835260089091528120555b6001016106ce565b5b5050505600a165627a7a7230582053550973bb1c600f33d7d3f34f7b2dbab377a12963250335231a1999eefa5caa002900000000000000000000000048bc0647c9abff55a367f97860502e8b1a68ee8a00000000000000000000000000000000000000000000000000000000596a03c00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000003d090000000000000000000000000346c3be6aebebaf5cb766a75adc9827efbb7e41a

Deployed Bytecode

0x606060405236156100b45763ffffffff60e060020a60003504166311aee38081146101b957806318958959146101db57806329dcb0cf146101ed57806338af3eed1461020f5780633e6a6a311461023b5780634951a18f1461024d5780634bb278f31461026f5780636e66f6e91461028157806370a08231146102ad5780637824407f146102db57806378e97925146102fd5780637b3e5e7b1461031f578063b3f05b9714610341578063eaa0e76014610365575b6101b75b600060006002544210156100cc5760006000fd5b60035442106100db5760006000fd5b349150600554826001540111156100f25760006000fd5b50600160a060020a03331660009081526008602052604090205480151561015357600480546000908152600960205260409020805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a0316179055805460010190555b600160a060020a033316600081815260086020908152604091829020848601905560018054860190558151928352820184905280517f97c35397cb6acebd9df368c206404479fc4c80dd6034d1b28943aaf5826318709281900390910190a15b5050565b005b34156101c157fe5b6101c961037d565b60408051918252519081900360200190f35b34156101e357fe5b6101b7610383565b005b34156101f557fe5b6101c96104c4565b60408051918252519081900360200190f35b341561021757fe5b61021f6104ca565b60408051600160a060020a039092168252519081900360200190f35b341561024357fe5b6101b76104d9565b005b341561025557fe5b6101c9610569565b60408051918252519081900360200190f35b341561027757fe5b6101b761056f565b005b341561028957fe5b61021f61067a565b60408051600160a060020a039092168252519081900360200190f35b34156102b557fe5b6101c9600160a060020a0360043516610689565b60408051918252519081900360200190f35b34156102e357fe5b6101c961069b565b60408051918252519081900360200190f35b341561030557fe5b6101c96106a1565b60408051918252519081900360200190f35b341561032757fe5b6101c96106a7565b60408051918252519081900360200190f35b341561034957fe5b6103516106ad565b604080519115158252519081900360200190f35b341561036d57fe5b6101b76004356024356106b6565b005b60045481565b600a5460ff1615156103955760006000fd5b60075460015460065433600160a060020a0381811660009081526008602052604090205494169363a9059cbb939192028115156103ce57fe5b046040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b151561041d57fe5b6102c65a03f1151561042b57fe5b5050507fbf207ad386f64ae17177a5400ae8ba9bf21d51f90e1b658e03806afca715ce03336001546006546008600033600160a060020a0316600160a060020a03168152602001908152602001600020540281151561048657fe5b60408051600160a060020a03909416845291900460208301528051918290030190a1600160a060020a0333166000908152600860205260408120555b565b60035481565b600054600160a060020a031681565b600a5460ff1615156104eb5760006000fd5b60008054600154604051600160a060020a039092169281156108fc029290818181858888f19350505050156104c25760005460015460408051600160a060020a039093168352602083019190915280517fd85cc5c9d0051ff07b97648726095aa987fe2594411500688feef47b09596bc79281900390910190a15b5b565b60055481565b600154151561057e5760006000fd5b60035442101561059a57600554600154101561059a5760006000fd5b5b600754604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033081166004830152935193909416936370a08231936024808301949391928390030190829087803b151561060957fe5b6102c65a03f1151561061757fe5b5050604080518051600655600a805460ff191660019081179091556000549054600160a060020a039091168252602082015281517f66b6851664a82efe6b871e434faba2b11421d2dad65eb71a344ae76cca8a2b8693509081900390910190a15b565b600754600160a060020a031681565b60086020526000908152604090205481565b60065481565b60025481565b60015481565b600a5460ff1681565b600a5460009060ff1615156106cb5760006000fd5b50815b8181111580156106df575060045481105b1561085a57600081815260096020526040902054600160a060020a0316151561070757610852565b600754600082815260096020908152604080832054600154600654600160a060020a039283168087526008909552929094205494169363a9059cbb93910281151561074e57fe5b046040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b151561079d57fe5b6102c65a03f115156107ab57fe5b505050600081815260096020908152604080832054600154600654600160a060020a03909216808652600890945291909320547fbf207ad386f64ae17177a5400ae8ba9bf21d51f90e1b658e03806afca715ce03930281151561080a57fe5b60408051600160a060020a03909416845291900460208301528051918290030190a1600081815260096020908152604080832054600160a060020a0316835260089091528120555b6001016106ce565b5b5050505600a165627a7a7230582053550973bb1c600f33d7d3f34f7b2dbab377a12963250335231a1999eefa5caa0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000048bc0647c9abff55a367f97860502e8b1a68ee8a00000000000000000000000000000000000000000000000000000000596a03c00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000003d090000000000000000000000000346c3be6aebebaf5cb766a75adc9827efbb7e41a

-----Decoded View---------------
Arg [0] : fundedAddress (address): 0x48bc0647c9ABff55A367f97860502e8b1A68eE8a
Arg [1] : epochStartTime (uint256): 1500120000
Arg [2] : durationInMinutes (uint256): 21600
Arg [3] : capOnCrowdsale (uint256): 250000
Arg [4] : contractAddressOfRewardToken (address): 0x346c3be6aebEBaF5Cb766a75aDc9827EfbB7E41A

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000048bc0647c9abff55a367f97860502e8b1a68ee8a
Arg [1] : 00000000000000000000000000000000000000000000000000000000596a03c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000005460
Arg [3] : 000000000000000000000000000000000000000000000000000000000003d090
Arg [4] : 000000000000000000000000346c3be6aebebaf5cb766a75adc9827efbb7e41a


Swarm Source

bzzr://53550973bb1c600f33d7d3f34f7b2dbab377a12963250335231a1999eefa5caa

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.