This is Etheroll old contract address. The new contract can be found here.
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 615 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 5614789 | 2455 days ago | IN | 0 ETH | 0.0048 | ||||
Transfer | 4130611 | 2735 days ago | IN | 0.01 ETH | 0.00414434 | ||||
Transfer | 4130555 | 2735 days ago | IN | 0.01 ETH | 0.00044531 | ||||
Transfer | 3973138 | 2769 days ago | IN | 0.12 ETH | 0.00105 | ||||
Transfer | 3971553 | 2769 days ago | IN | 0.15 ETH | 0.000441 | ||||
Transfer | 3966493 | 2770 days ago | IN | 0.65 ETH | 0.0042 | ||||
Transfer | 3966485 | 2770 days ago | IN | 0.69703872 ETH | 0.000441 | ||||
Transfer | 3966466 | 2770 days ago | IN | 0.69747972 ETH | 0.00525 | ||||
Transfer | 3917686 | 2780 days ago | IN | 0.1 ETH | 0.0096 | ||||
Transfer | 3898361 | 2784 days ago | IN | 0.5 ETH | 0.000847 | ||||
Transfer | 3829280 | 2797 days ago | IN | 0.467 ETH | 0.0048 | ||||
Transfer | 3829261 | 2797 days ago | IN | 0.472 ETH | 0.0048 | ||||
Transfer | 3507707 | 2855 days ago | IN | 0.06769804 ETH | 0.0018 | ||||
Transfer | 3447475 | 2865 days ago | IN | 0.1 ETH | 0.000847 | ||||
Transfer | 3447331 | 2865 days ago | IN | 0.1 ETH | 0.000847 | ||||
Transfer | 3447310 | 2865 days ago | IN | 0.1 ETH | 0.000847 | ||||
Transfer | 3407823 | 2872 days ago | IN | 11 ETH | 0.00067061 | ||||
Transfer | 3407803 | 2872 days ago | IN | 11 ETH | 0.00067061 | ||||
Transfer | 3312372 | 2888 days ago | IN | 0 ETH | 0.0023499 | ||||
Transfer | 3312350 | 2888 days ago | IN | 0 ETH | 0.0014206 | ||||
Transfer | 3262376 | 2896 days ago | IN | 0.53715162 ETH | 0.00058802 | ||||
Owner Burn Unsol... | 3259409 | 2896 days ago | IN | 0 ETH | 0.01037741 | ||||
Safe Withdraw | 3259353 | 2896 days ago | IN | 0 ETH | 0.05737554 | ||||
Transfer | 3258735 | 2896 days ago | IN | 5 ETH | 0.00335166 | ||||
Transfer | 3258707 | 2896 days ago | IN | 4 ETH | 0.00161656 |
Latest 10 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
3863983 | 2791 days ago | 0.12 ETH | ||||
3863957 | 2791 days ago | 0.12 ETH | ||||
3259353 | 2896 days ago | 4,736.11526324 ETH | ||||
3259353 | 2896 days ago | 18,944.46105297 ETH | ||||
3237615 | 2900 days ago | 10 ETH | ||||
3207198 | 2905 days ago | 9 ETH | ||||
3207188 | 2905 days ago | 2 ETH | ||||
3207188 | 2905 days ago | 5 ETH | ||||
3207188 | 2905 days ago | 2 ETH | ||||
3207004 | 2905 days ago | 2 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xa9A81089...73876Ddf1 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
EtherollCrowdfund
Compiler Version
v0.4.8+commit.60cc1668
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-02-13 */ pragma solidity ^0.4.2; /* * @notice the token contract used as reward */ contract token { /* * @notice exposes the transfer method of the token contract * @param _receiver address receiving tokens * @param _amount number of tokens being transferred */ function transfer(address _receiver, uint _amount) returns (bool success) { } /* * @notice exposes the priviledgedAddressBurnUnsoldCoins method of the token contract * burns all unsold coins */ function priviledgedAddressBurnUnsoldCoins(){ } } /* `* is owned */ contract owned { address public owner; function owned() { owner = msg.sender; } modifier onlyOwner { if (msg.sender != owner) throw; _; } function ownerTransferOwnership(address newOwner) onlyOwner { owner = newOwner; } } /* * safe math */ contract DSSafeAddSub { function safeToAdd(uint a, uint b) internal returns (bool) { return (a + b >= a); } function safeAdd(uint a, uint b) internal returns (uint) { if (!safeToAdd(a, b)) throw; return a + b; } function safeToSubtract(uint a, uint b) internal returns (bool) { return (b <= a); } function safeSub(uint a, uint b) internal returns (uint) { if (!safeToSubtract(a, b)) throw; return a - b; } } /* * EtherollCrowdfund contract * Funds sent to this address transfer a customized ERC20 token to msg.sender for the duration of the crowdfund * Deployment order: * EtherollToken, EtherollCrowdfund * 1) Send tokens to this * 2) Assign this as priviledgedAddress in EtherollToken * 3) Call updateTokenStatus in EtherollToken * -- crowdfund is open -- * 4) safeWithdraw onlyAfterDeadline in this * 5) ownerBurnUnsoldTokens onlyAfterDeadline in this * 6) updateTokenStatus in EtherollToken freezes/thaws tokens */ contract EtherollCrowdfund is owned, DSSafeAddSub { /* * checks only after crowdfund deadline */ modifier onlyAfterDeadline() { if (now < deadline) throw; _; } /* * checks only in emergency */ modifier isEmergency() { if (!emergency) throw; _; } /* the crowdfund goal */ uint public fundingGoal; /* 1 week countdown to price increase */ uint public weekTwoPriceRiseBegin = now + 10080 * 1 minutes; /* 80% to standard multi-sig wallet contract is house bankroll */ address public bankRollBeneficiary; /* 20% to etheroll wallet*/ address public etherollBeneficiary; /* total amount of ether raised */ uint public amountRaised; /* two weeks */ uint public deadline; /* 0.01 ETH per token base price */ uint public price = 10000000000000000; /* address of token used as reward */ token public tokenReward; /* crowdsale is open */ bool public crowdsaleClosed = false; /* 80% of funds raised */ uint public bankrollBeneficiaryAmount; /* 20% of funds raised */ uint public etherollBeneficiaryAmount; /* map balance of address */ mapping (address => uint) public balanceOf; /* funding goal has not been reached */ bool public fundingGoalReached = false; /* escape hatch for all in emergency */ bool public emergency = false; /* log events */ event LogFundTransfer(address indexed Backer, uint indexed Amount, bool indexed IsContribution); event LogGoalReached(address indexed Beneficiary, uint indexed AmountRaised); /* * @param _ifSuccessfulSendToBeneficiary receives 80% of ether raised end of crowdfund * @param _ifSuccessfulSendToEtheroll receives 20% of ether raised end of crowdfund * @param _fundingGoalInEthers the funding goal of the crowdfund * @param _durationInMinutes the length of the crowdfund in minutes * @param _addressOfTokenUsedAsReward the token address */ function EtherollCrowdfund( /* multi-sig address to send 80% */ address _ifSuccessfulSendToBeneficiary, /* address to send 20% */ address _ifSuccessfulSendToEtheroll, /* funding goal */ uint _fundingGoalInEthers, /* two weeks: 20160 minutes*/ uint _durationInMinutes, /* token */ token _addressOfTokenUsedAsReward ) { bankRollBeneficiary = _ifSuccessfulSendToBeneficiary; etherollBeneficiary = _ifSuccessfulSendToEtheroll; fundingGoal = _fundingGoalInEthers * 1 ether; deadline = now + _durationInMinutes * 1 minutes; tokenReward = token(_addressOfTokenUsedAsReward); } /* * @notice public function * default function is payable * responsible for transfer of tokens based on price, msg.sender and msg.value * tracks investment total of msg.sender * refunds any spare change */ function () payable { /* crowdfund period is over */ if(now > deadline) crowdsaleClosed = true; /* crowdsale is closed */ if (crowdsaleClosed) throw; /* do not allow creating 0 */ if (msg.value == 0) throw; /* * transfer tokens * check/set week two price rise */ if(now < weekTwoPriceRiseBegin) { /* week 1 power token conversion * 2: 1 ETH = 200 tokens */ if(tokenReward.transfer(msg.sender, ((msg.value*price)/price)*2)) { LogFundTransfer(msg.sender, msg.value, true); } else { throw; } }else{ /* week 2 conversion: 1 ETH = 100 tokens */ if(tokenReward.transfer(msg.sender, (msg.value*price)/price)) { LogFundTransfer(msg.sender, msg.value, true); } else { throw; } } /* add to amountRaised */ amountRaised = safeAdd(amountRaised, msg.value); /* track ETH balanceOf address in case emergency refund is required */ balanceOf[msg.sender] = safeAdd(balanceOf[msg.sender], msg.value); } /* * @notice public function * onlyAfterDeadline * moves ether to beneficiary contracts if goal reached * if goal not reached msg.sender can withdraw their deposit */ function safeWithdraw() public onlyAfterDeadline { if (amountRaised >= fundingGoal){ /* allows funds to be moved to beneficiary */ fundingGoalReached = true; /* log event */ LogGoalReached(bankRollBeneficiary, amountRaised); } /* close crowdsale */ crowdsaleClosed = true; /* * public * funding goal not reached * manual refunds */ if (!fundingGoalReached) { calcRefund(msg.sender); } /* * onlyOwner can call * funding goal reached * move funds to beneficiary addresses */ if (msg.sender == owner && fundingGoalReached) { /* multi-sig bankrollBeneficiary receives 80% */ bankrollBeneficiaryAmount = (this.balance*80)/100; /* send to trusted address bankRollBeneficiary 80% */ if (bankRollBeneficiary.send(bankrollBeneficiaryAmount)) { /* log event */ LogFundTransfer(bankRollBeneficiary, bankrollBeneficiaryAmount, false); /* etherollBeneficiary receives remainder */ etherollBeneficiaryAmount = this.balance; /* send to trusted address etherollBeneficiary the remainder */ if(!etherollBeneficiary.send(etherollBeneficiaryAmount)) throw; /* log event */ LogFundTransfer(etherollBeneficiary, etherollBeneficiaryAmount, false); } else { /* allow manual refunds via safeWithdrawal */ fundingGoalReached = false; } } } /* * @notice internal function * @param _addressToRefund the address being refunded * accessed via public functions emergencyWithdraw and safeWithdraw * calculates refund amount available for an address */ function calcRefund(address _addressToRefund) internal { /* assigns var amount to balance of _addressToRefund */ uint amount = balanceOf[_addressToRefund]; /* sets balance to 0 */ balanceOf[_addressToRefund] = 0; /* is there any balance? */ if (amount > 0) { /* call to untrusted address */ if (_addressToRefund.call.value(amount)()) { /* log event */ LogFundTransfer(_addressToRefund, amount, false); } else { /* unsuccessful send so reset the balance */ balanceOf[_addressToRefund] = amount; } } } /* * @notice public function * emergency manual refunds */ function emergencyWithdraw() public isEmergency { /* manual refunds */ calcRefund(msg.sender); } /* * @notice owner restricted function * @param _newEmergencyStatus boolean * sets contract mode to emergency status to allow individual withdraw via emergencyWithdraw() */ function ownerSetEmergencyStatus(bool _newEmergencyStatus) public onlyOwner { /* close crowdsale */ crowdsaleClosed = _newEmergencyStatus; /* allow manual refunds via emergencyWithdraw */ emergency = _newEmergencyStatus; } /* * @notice owner restricted function * burns any unsold tokens at end of crowdfund */ function ownerBurnUnsoldTokens() onlyOwner onlyAfterDeadline { tokenReward.priviledgedAddressBurnUnsoldCoins(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"ownerBurnUnsoldTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etherollBeneficiaryAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"deadline","outputs":[{"name":"","type":"uint256"}],"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":"fundingGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"safeWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"bankRollBeneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newEmergencyStatus","type":"bool"}],"name":"ownerSetEmergencyStatus","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"ownerTransferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weekTwoPriceRiseBegin","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"emergency","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"bankrollBeneficiaryAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fundingGoalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etherollBeneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"emergencyWithdraw","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_ifSuccessfulSendToBeneficiary","type":"address"},{"name":"_ifSuccessfulSendToEtheroll","type":"address"},{"name":"_fundingGoalInEthers","type":"uint256"},{"name":"_durationInMinutes","type":"uint256"},{"name":"_addressOfTokenUsedAsReward","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Backer","type":"address"},{"indexed":true,"name":"Amount","type":"uint256"},{"indexed":true,"name":"IsContribution","type":"bool"}],"name":"LogFundTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Beneficiary","type":"address"},{"indexed":true,"name":"AmountRaised","type":"uint256"}],"name":"LogGoalReached","type":"event"}]
Deployed Bytecode
0x606060405236156100f65763ffffffff60e060020a6000350416630860a90281146103215780631671055d1461033057806329dcb0cf1461034f5780636e66f6e91461036e57806370a08231146103975780637a3a0e84146103c25780637b3e5e7b146103e15780637fd42617146104005780638da5cb5b1461040f5780638e72a92614610438578063972afc8014610461578063a035b1fe14610475578063a09cca9314610494578063a3666d23146104af578063caa6fea4146104ce578063ccb07cef146104ef578063ccbd515214610510578063d424f6281461052f578063d4c72e7f14610550578063db2e21bc14610579575b61031f5b60065442111561011b576008805460a060020a60ff02191660a060020a1790555b60085460a060020a900460ff161561013257610000565b34151561013e57610000565b60025442101561021057600854600754600160a060020a039091169063a9059cbb903390348102811561000057046002026000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f11561000057505060405151159050610206576040516001903490600160a060020a033316906000805160206109df83398151915290600090a461020b565b610000565b6102d0565b600854600754600160a060020a039091169063a9059cbb903390348102811561000057046000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f11561000057505060405151159050610206576040516001903490600160a060020a033316906000805160206109df83398151915290600090a46102d0565b610000565b5b6102dd60055434610588565b600555600160a060020a0333166000908152600b60205260409020546103039034610588565b600160a060020a0333166000908152600b60205260409020555b565b005b346100005761031f6105aa565b005b346100005761033d61063e565b60408051918252519081900360200190f35b346100005761033d610644565b60408051918252519081900360200190f35b346100005761037b61064a565b60408051600160a060020a039092168252519081900360200190f35b346100005761033d600160a060020a0360043516610659565b60408051918252519081900360200190f35b346100005761033d61066b565b60408051918252519081900360200190f35b346100005761033d610671565b60408051918252519081900360200190f35b346100005761031f610677565b005b346100005761037b610811565b60408051600160a060020a039092168252519081900360200190f35b346100005761037b610820565b60408051600160a060020a039092168252519081900360200190f35b346100005761031f600435151561082f565b005b346100005761033d610884565b60408051918252519081900360200190f35b346100005761031f600160a060020a036004351661088a565b005b346100005761033d6108d2565b60408051918252519081900360200190f35b34610000576104db6108d8565b604080519115158252519081900360200190f35b34610000576104db6108e6565b604080519115158252519081900360200190f35b346100005761033d6108f6565b60408051918252519081900360200190f35b34610000576104db6108fc565b604080519115158252519081900360200190f35b346100005761037b610905565b60408051600160a060020a039092168252519081900360200190f35b346100005761031f610914565b005b60006105948383610937565b151561059f57610000565b508181015b92915050565b60005433600160a060020a039081169116146105c557610000565b6006544210156105d457610000565b600854604080517f6410c41a0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691636410c41a9160048082019260009290919082900301818387803b156100005760325a03f115610000575050505b5b5b565b600a5481565b60065481565b600854600160a060020a031681565b600b6020526000908152604090205481565b60015481565b60055481565b60065442101561068657610000565b600154600554106106da57600c805460ff19166001179055600554600354604051600160a060020a03909116907f655cc366c2a16e8b3fe61a1d71b77613e15ab137cd4e476fc18ce3b2c4e8471190600090a35b6008805460a060020a60ff02191660a060020a179055600c5460ff1615156107055761070533610945565b5b60005433600160a060020a0390811691161480156107265750600c5460ff165b1561031d5760646050600160a060020a0330163102046009819055600354604051600160a060020a039091169180156108fc02916000818181858888f19350505050156108015760095460035460405160009291600160a060020a0316906000805160206109df833981519152908490a4600160a060020a0330811631600a81905560045460405192169181156108fc0291906000818181858888f1935050505015156107d257610000565b600a5460045460405160009291600160a060020a0316906000805160206109df833981519152908490a461031d565b600c805460ff191690555b5b5b5b565b600054600160a060020a031681565b600354600160a060020a031681565b60005433600160a060020a0390811691161461084a57610000565b6008805460a060020a60ff02191660a060020a83151590810291909117909155600c805461ff0019166101009092029190911790555b5b50565b60075481565b60005433600160a060020a039081169116146108a557610000565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60025481565b600c54610100900460ff1681565b60085460a060020a900460ff1681565b60095481565b600c5460ff1681565b600454600160a060020a031681565b600c54610100900460ff16151561092a57610000565b61031d33610945565b5b5b565b808201829010155b92915050565b600160a060020a0381166000908152600b60205260408120805490829055908111156109d857604051600160a060020a038316908290600081818185876185025a03f192505050156109bc576040516000908290600160a060020a038516906000805160206109df833981519152908490a46109d8565b600160a060020a0382166000908152600b602052604090208190555b5b5b50505600c6c8cdc73e475586adbde0de9cf617d7015acc6e38598292ea9033a73dbc868ca165627a7a72305820840db9a355204fd8e6b3a2d0eb20d46031e2bf0e99f97799478d259bee6882210029
Swarm Source
bzzr://840db9a355204fd8e6b3a2d0eb20d46031e2bf0e99f97799478d259bee688221
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.