More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 531 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Individual Claim | 4220606 | 2518 days ago | IN | 0 ETH | 0.00271176 | ||||
Beneficiary Send | 4124864 | 2542 days ago | IN | 0 ETH | 0.00067374 | ||||
Transfer | 4110394 | 2546 days ago | IN | 0.15131735 ETH | 0.0021 | ||||
Transfer | 4110371 | 2546 days ago | IN | 0.15341735 ETH | 0.0021 | ||||
Transfer | 4098953 | 2549 days ago | IN | 3 ETH | 0.0021 | ||||
Transfer | 4097752 | 2549 days ago | IN | 0.21 ETH | 0.00635884 | ||||
Transfer | 4096231 | 2549 days ago | IN | 0 ETH | 0.0252 | ||||
Transfer | 4096093 | 2549 days ago | IN | 0.08 ETH | 0.000567 | ||||
Transfer | 4096080 | 2549 days ago | IN | 0.08 ETH | 0.000441 | ||||
Transfer | 4095985 | 2549 days ago | IN | 0.09 ETH | 0.000525 | ||||
Transfer | 4095972 | 2549 days ago | IN | 0.1 ETH | 0.000441 | ||||
Individual Claim | 4095866 | 2549 days ago | IN | 0 ETH | 0.00094911 | ||||
Individual Claim | 4095837 | 2549 days ago | IN | 0 ETH | 0.00094911 | ||||
Individual Claim | 4095814 | 2549 days ago | IN | 0 ETH | 0.000525 | ||||
Individual Claim | 4095711 | 2549 days ago | IN | 0 ETH | 0.00004519 | ||||
Individual Claim | 4095642 | 2550 days ago | IN | 0 ETH | 0.00009039 | ||||
Individual Claim | 4095640 | 2550 days ago | IN | 0 ETH | 0.00094911 | ||||
Individual Claim | 4095639 | 2550 days ago | IN | 0 ETH | 0.00271176 | ||||
Individual Claim | 4095543 | 2550 days ago | IN | 0 ETH | 0.0010395 | ||||
Individual Claim | 4095506 | 2550 days ago | IN | 0 ETH | 0.00094911 | ||||
Individual Claim | 4095505 | 2550 days ago | IN | 0 ETH | 0.00094911 | ||||
Individual Claim | 4095479 | 2550 days ago | IN | 0 ETH | 0.00094911 | ||||
Individual Claim | 4095437 | 2550 days ago | IN | 0 ETH | 0.00094911 | ||||
Individual Claim | 4095430 | 2550 days ago | IN | 0 ETH | 0.00094911 | ||||
Individual Claim | 4095409 | 2550 days ago | IN | 0 ETH | 0.00094911 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
4124864 | 2542 days ago | 3,111.75759739 ETH |
Loading...
Loading
Contract Name:
FairAuction
Compiler Version
v0.4.11+commit.68ef5810
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.00363 | 99.99 | $0.363 |
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.