Source Code
Latest 25 from a total of 3,158 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 5139192 | 2856 days ago | IN | 0.95 ETH | 0.00371794 | ||||
| Finalize | 5048669 | 2871 days ago | IN | 0 ETH | 0.004193 | ||||
| Transfer | 5041244 | 2872 days ago | IN | 1 ETH | 0.00135198 | ||||
| Transfer | 5041241 | 2872 days ago | IN | 2 ETH | 0.00135198 | ||||
| Transfer | 5041231 | 2872 days ago | IN | 0.5 ETH | 0.00112665 | ||||
| Transfer | 5041217 | 2872 days ago | IN | 0.5 ETH | 0.00112665 | ||||
| Transfer | 5041210 | 2872 days ago | IN | 0.5 ETH | 0.00105 | ||||
| Transfer | 5041210 | 2872 days ago | IN | 3 ETH | 0.00135198 | ||||
| Transfer | 5041201 | 2872 days ago | IN | 3 ETH | 0.00135198 | ||||
| Transfer | 5041172 | 2872 days ago | IN | 1 ETH | 0.00011266 | ||||
| Transfer | 5041171 | 2872 days ago | IN | 5 ETH | 0.0061073 | ||||
| Update Whitelist | 5041147 | 2872 days ago | IN | 0 ETH | 0.00184808 | ||||
| Transfer | 5041142 | 2872 days ago | IN | 1 ETH | 0.00279595 | ||||
| Transfer | 5041142 | 2872 days ago | IN | 0.37 ETH | 0.00464095 | ||||
| Transfer | 5041142 | 2872 days ago | IN | 0.5 ETH | 0.0056597 | ||||
| Transfer | 5041138 | 2872 days ago | IN | 0.5 ETH | 0.0056597 | ||||
| Transfer | 5041138 | 2872 days ago | IN | 1 ETH | 0.00409164 | ||||
| Transfer | 5041138 | 2872 days ago | IN | 0.3 ETH | 0.00409164 | ||||
| Transfer | 5041137 | 2872 days ago | IN | 5 ETH | 0.00260346 | ||||
| Transfer | 5041136 | 2872 days ago | IN | 0.07549278 ETH | 0.00464095 | ||||
| Transfer | 5041136 | 2872 days ago | IN | 2 ETH | 0.0056597 | ||||
| Transfer | 5041126 | 2872 days ago | IN | 0.3 ETH | 0.00679164 | ||||
| Update Whitelist | 5041124 | 2872 days ago | IN | 0 ETH | 0.00184808 | ||||
| Transfer | 5041122 | 2872 days ago | IN | 0.7 ETH | 0.00464095 | ||||
| Transfer | 5041118 | 2872 days ago | IN | 0.5 ETH | 0.00409164 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 5041171 | 2872 days ago | 3.59649262 ETH | ||||
| Transfer | 5041171 | 2872 days ago | 1.40350737 ETH | ||||
| Transfer | 5041142 | 2872 days ago | 1 ETH | ||||
| Transfer | 5041142 | 2872 days ago | 0.37 ETH | ||||
| Transfer | 5041142 | 2872 days ago | 0.5 ETH | ||||
| Transfer | 5041138 | 2872 days ago | 0.5 ETH | ||||
| Transfer | 5041138 | 2872 days ago | 1 ETH | ||||
| Transfer | 5041138 | 2872 days ago | 0.3 ETH | ||||
| Transfer | 5041137 | 2872 days ago | 5 ETH | ||||
| Transfer | 5041136 | 2872 days ago | 0.07549278 ETH | ||||
| Transfer | 5041136 | 2872 days ago | 2 ETH | ||||
| Transfer | 5041126 | 2872 days ago | 0.3 ETH | ||||
| Transfer | 5041122 | 2872 days ago | 0.7 ETH | ||||
| Transfer | 5041118 | 2872 days ago | 0.5 ETH | ||||
| Transfer | 5041113 | 2872 days ago | 0.2 ETH | ||||
| Transfer | 5041104 | 2872 days ago | 0.3 ETH | ||||
| Transfer | 5041102 | 2872 days ago | 2 ETH | ||||
| Transfer | 5041092 | 2872 days ago | 0.9 ETH | ||||
| Transfer | 5041065 | 2872 days ago | 1.0855 ETH | ||||
| Transfer | 5041049 | 2872 days ago | 2 ETH | ||||
| Transfer | 5041048 | 2872 days ago | 10 ETH | ||||
| Transfer | 5041048 | 2872 days ago | 2.5 ETH | ||||
| Transfer | 5041048 | 2872 days ago | 0.1 ETH | ||||
| Transfer | 5041043 | 2872 days ago | 10 ETH | ||||
| Transfer | 5041041 | 2872 days ago | 0.08693734 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DataWalletCrowdsale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-02-05
*/
pragma solidity ^0.4.13;
contract ReentrancyGuard {
/**
* @dev We use a single lock for the whole contract.
*/
bool private reentrancy_lock = false;
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* @notice If you mark a function `nonReentrant`, you should also
* mark it `external`. Calling one nonReentrant function from
* another is not supported. Instead, you can implement a
* `private` function doing the actual work, and a `external`
* wrapper marked as `nonReentrant`.
*/
modifier nonReentrant() {
require(!reentrancy_lock);
reentrancy_lock = true;
_;
reentrancy_lock = false;
}
}
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 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 RefundVault is Ownable {
using SafeMath for uint256;
enum State { Active, Refunding, Closed }
mapping (address => uint256) public deposited;
address public wallet;
State public state;
event Closed();
event RefundsEnabled();
event Refunded(address indexed beneficiary, uint256 weiAmount);
function RefundVault(address _wallet) public {
require(_wallet != address(0));
wallet = _wallet;
state = State.Active;
}
function deposit(address investor) onlyOwner public payable {
require(state == State.Active);
deposited[investor] = deposited[investor].add(msg.value);
}
function close() onlyOwner public {
require(state == State.Active);
state = State.Closed;
Closed();
wallet.transfer(this.balance);
}
function enableRefunds() onlyOwner public {
require(state == State.Active);
state = State.Refunding;
RefundsEnabled();
}
function refund(address investor) public {
require(state == State.Refunding);
uint256 depositedValue = deposited[investor];
deposited[investor] = 0;
investor.transfer(depositedValue);
Refunded(investor, depositedValue);
}
}
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*/
modifier whenNotPaused() {
require(!paused);
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*/
modifier whenPaused() {
require(paused);
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() onlyOwner whenNotPaused public {
paused = true;
Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() onlyOwner whenPaused public {
paused = false;
Unpause();
}
}
contract ERC20Basic {
uint256 public totalSupply;
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
}
contract BurnableToken is BasicToken {
event Burn(address indexed burner, uint256 value);
/**
* @dev Burns a specific amount of tokens.
* @param _value The amount of token to be burned.
*/
function burn(uint256 _value) public {
require(_value <= balances[msg.sender]);
// no need to require value <= totalSupply, since that would imply the
// sender's balance is greater than the totalSupply, which *should* be an assertion failure
address burner = msg.sender;
balances[burner] = balances[burner].sub(_value);
totalSupply = totalSupply.sub(_value);
Burn(burner, _value);
}
}
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
*
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
*/
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowed[_owner][_spender];
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _addedValue The amount of tokens to increase the allowance by.
*/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _subtractedValue The amount of tokens to decrease the allowance by.
*/
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
contract PausableToken is StandardToken, Pausable {
function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
return super.transfer(_to, _value);
}
function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
return super.transferFrom(_from, _to, _value);
}
function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
return super.approve(_spender, _value);
}
function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
return super.increaseApproval(_spender, _addedValue);
}
function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
return super.decreaseApproval(_spender, _subtractedValue);
}
}
contract DataWalletCrowdsale is Ownable, ReentrancyGuard {
using SafeMath for uint256;
// We have a window in the first 24hrs that permits to allocate all whitelist
// participants with an equal distribution => firstDayCap = cap / whitelist participants.
uint256 public firstDayCap;
uint256 public cap;
uint256 public goal;
uint256 public rate;
uint256 public constant WEI_TO_INSIGHTS = 10**uint256(10);
RefundVault public vault;
DataWalletToken public token;
uint256 public startTime;
uint256 public endTime;
uint256 public firstDay;
bool public isFinalized = false;
uint256 public weiRaised;
mapping(address => bool) public whitelist;
mapping(address => uint256) public contribution;
event WhitelistUpdate(address indexed purchaser, bool status);
event TokenPurchase(address indexed beneficiary, uint256 value, uint256 amount);
event TokenRefund(address indexed refundee, uint256 amount);
event Finalized();
function DataWalletCrowdsale(
address _token,
address _wallet,
uint256 _startTime,
uint256 _endTime,
uint256 _rate,
uint256 _cap,
uint256 _firstDayCap,
uint256 _goal
) {
require(_startTime >= getBlockTimestamp());
require(_endTime >= _startTime);
require(_rate > 0);
require(_goal > 0);
require(_cap > 0);
require(_wallet != 0x0);
vault = new RefundVault(_wallet);
token = DataWalletToken(_token);
startTime = _startTime;
endTime = _endTime;
firstDay = startTime + 1 * 1 days;
firstDayCap = _firstDayCap;
rate = _rate;
goal = _goal;
cap = _cap;
}
// fallback function can be used to buy tokens
function () external payable {
buyTokens(msg.sender);
}
//low level function to buy tokens
function buyTokens(address beneficiary) internal {
require(beneficiary != 0x0);
require(whitelist[beneficiary]);
require(validPurchase());
//derive amount in wei to buy
uint256 weiAmount = msg.value;
// check if contribution is in the first 24h hours
if (getBlockTimestamp() <= firstDay) {
require((contribution[beneficiary].add(weiAmount)) <= firstDayCap);
}
//check if there is enough funds
uint256 remainingToFund = cap.sub(weiRaised);
if (weiAmount > remainingToFund) {
weiAmount = remainingToFund;
}
uint256 weiToReturn = msg.value.sub(weiAmount);
//Forward funs to the vault
forwardFunds(weiAmount);
//refund if the contribution exceed the cap
if (weiToReturn > 0) {
beneficiary.transfer(weiToReturn);
TokenRefund(beneficiary, weiToReturn);
}
//derive how many tokens
uint256 tokens = getTokens(weiAmount);
//update the state of weiRaised
weiRaised = weiRaised.add(weiAmount);
contribution[beneficiary] = contribution[beneficiary].add(weiAmount);
//Trigger the event of TokenPurchase
TokenPurchase(beneficiary, weiAmount, tokens);
token.transfer(beneficiary, tokens);
}
function getTokens(uint256 amount) internal constant returns (uint256) {
return amount.mul(rate).div(WEI_TO_INSIGHTS);
}
// contributors can claim refund if the goal is not reached
function claimRefund() nonReentrant external {
require(isFinalized);
require(!goalReached());
vault.refund(msg.sender);
}
//in case of endTime before the reach of the cap, the owner can claim the unsold tokens
function claimUnsold() onlyOwner {
require(endTime <= getBlockTimestamp());
uint256 unsold = token.balanceOf(this);
if (unsold > 0) {
require(token.transfer(msg.sender, unsold));
}
}
// add/remove to whitelist array of addresses based on boolean status
function updateWhitelist(address[] addresses, bool status) public onlyOwner {
for (uint256 i = 0; i < addresses.length; i++) {
address contributorAddress = addresses[i];
whitelist[contributorAddress] = status;
WhitelistUpdate(contributorAddress, status);
}
}
//Only owner can manually finalize the sale
function finalize() onlyOwner {
require(!isFinalized);
require(hasEnded());
//update the sate of isFinalized
isFinalized = true;
//trigger and emit the event of finalization
Finalized();
if (goalReached()) {
//Close the vault
vault.close();
//Unpause the token
token.unpause();
//give ownership back to deployer
token.transferOwnership(owner);
} else {
//else enable refunds
vault.enableRefunds();
}
}
// send ether to the fund collection wallet, the vault in this case
function forwardFunds(uint256 weiAmount) internal {
vault.deposit.value(weiAmount)(msg.sender);
}
// @return true if crowdsale event has ended or cap reached
function hasEnded() public constant returns (bool) {
bool passedEndTime = getBlockTimestamp() > endTime;
return passedEndTime || capReached();
}
function capReached() public constant returns (bool) {
return weiRaised >= cap;
}
function goalReached() public constant returns (bool) {
return weiRaised >= goal;
}
function isWhitelisted(address contributor) public constant returns (bool) {
return whitelist[contributor];
}
// @return true if the transaction can buy tokens
function validPurchase() internal constant returns (bool) {
bool withinPeriod = getBlockTimestamp() >= startTime && getBlockTimestamp() <= endTime;
bool nonZeroPurchase = msg.value != 0;
bool capNotReached = weiRaised < cap;
return withinPeriod && nonZeroPurchase && capNotReached;
}
function getBlockTimestamp() internal constant returns (uint256) {
return block.timestamp;
}
}
contract DataWalletToken is PausableToken, BurnableToken {
string public constant name = "DataWallet Token";
string public constant symbol = "DXT";
uint8 public constant decimals = 8;
uint256 public constant INITIAL_SUPPLY = 1000000000 * 10**uint256(decimals);
/**
* @dev DataWalletToken Constructor
*/
function DataWalletToken() public {
totalSupply = INITIAL_SUPPLY;
balances[msg.sender] = INITIAL_SUPPLY;
}
function transfer(address beneficiary, uint256 amount) public returns (bool) {
if (msg.sender != owner) {
require(!paused);
}
require(beneficiary != address(0));
require(amount <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(amount);
balances[beneficiary] = balances[beneficiary].add(amount);
Transfer(msg.sender, beneficiary, amount);
return true;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"contributor","type":"address"}],"name":"isWhitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"goal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"capReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstDayCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"goalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WEI_TO_INSIGHTS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"status","type":"bool"}],"name":"updateWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"firstDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimUnsold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contribution","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","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"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"},{"name":"_wallet","type":"address"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_cap","type":"uint256"},{"name":"_firstDayCap","type":"uint256"},{"name":"_goal","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"status","type":"bool"}],"name":"WhitelistUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"refundee","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenRefund","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
606060405260008060146101000a81548160ff0219169083151502179055506000600a60006101000a81548160ff02191690831515021790555034156200004557600080fd5b60405161010080620024e683398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001006200029564010000000002620015e9176401000000009004565b86101515156200010f57600080fd5b8585101515156200011f57600080fd5b6000841115156200012f57600080fd5b6000811115156200013f57600080fd5b6000831115156200014f57600080fd5b60008773ffffffffffffffffffffffffffffffffffffffff16141515156200017657600080fd5b86620001816200029d565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801515620001ce57600080fd5b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600781905550846008819055506201518060075401600981905550816001819055508360048190555080600381905550826002819055505050505050505050620002ae565b600042905090565b604051610a778062001a6f83390190565b6117b180620002be6000396000f30060606040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632c4e722e146101495780633197cbb614610172578063355274ea1461019b5780633af32abf146101c457806340193883146102155780634042b66f1461023e5780634bb278f3146102675780634f9359451461027c5780635ab47550146102a957806378e97925146102d25780637d3d6522146102fb5780638d4e4083146103285780638da5cb5b146103555780639671ef91146103aa5780639b19251a146103d3578063aff177ca14610424578063b5545a3c14610489578063cf1405fe1461049e578063dad72332146104c7578063e2dc4310146104dc578063ecb70fb714610529578063f2fde38b14610556578063fbfa77cf1461058f578063fc0c546a146105e4575b61014733610639565b005b341561015457600080fd5b61015c610a24565b6040518082815260200191505060405180910390f35b341561017d57600080fd5b610185610a2a565b6040518082815260200191505060405180910390f35b34156101a657600080fd5b6101ae610a30565b6040518082815260200191505060405180910390f35b34156101cf57600080fd5b6101fb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a36565b604051808215151515815260200191505060405180910390f35b341561022057600080fd5b610228610a8c565b6040518082815260200191505060405180910390f35b341561024957600080fd5b610251610a92565b6040518082815260200191505060405180910390f35b341561027257600080fd5b61027a610a98565b005b341561028757600080fd5b61028f610e3a565b604051808215151515815260200191505060405180910390f35b34156102b457600080fd5b6102bc610e49565b6040518082815260200191505060405180910390f35b34156102dd57600080fd5b6102e5610e4f565b6040518082815260200191505060405180910390f35b341561030657600080fd5b61030e610e55565b604051808215151515815260200191505060405180910390f35b341561033357600080fd5b61033b610e64565b604051808215151515815260200191505060405180910390f35b341561036057600080fd5b610368610e77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103b557600080fd5b6103bd610e9c565b6040518082815260200191505060405180910390f35b34156103de57600080fd5b61040a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ea3565b604051808215151515815260200191505060405180910390f35b341561042f57600080fd5b6104876004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080351515906020019091905050610ec3565b005b341561049457600080fd5b61049c611005565b005b34156104a957600080fd5b6104b1611157565b6040518082815260200191505060405180910390f35b34156104d257600080fd5b6104da61115d565b005b34156104e757600080fd5b610513600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113b4565b6040518082815260200191505060405180910390f35b341561053457600080fd5b61053c6113cc565b604051808215151515815260200191505060405180910390f35b341561056157600080fd5b61058d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113f3565b005b341561059a57600080fd5b6105a2611548565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105ef57600080fd5b6105f761156e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060008060008573ffffffffffffffffffffffffffffffffffffffff161415151561066557600080fd5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106bd57600080fd5b6106c5611594565b15156106d057600080fd5b3493506009546106de6115e9565b1115156107485760015461073a85600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f190919063ffffffff16565b1115151561074757600080fd5b5b61075f600b5460025461160f90919063ffffffff16565b92508284111561076d578293505b610780843461160f90919063ffffffff16565b915061078b84611628565b6000821115610823578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156107d457600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167f50ea9274879b4e2a584129ff0e7d656cf15144ef80e8935d4cf890390f8f1580836040518082815260200191505060405180910390a25b61082c846116fc565b905061084384600b546115f190919063ffffffff16565b600b8190555061089b84600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f190919063ffffffff16565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8583604051808381526020018281526020019250505060405180910390a2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a0157600080fd5b6102c65a03f11515610a1257600080fd5b50505060405180519050505050505050565b60045481565b60085481565b60025481565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60035481565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af357600080fd5b600a60009054906101000a900460ff16151515610b0f57600080fd5b610b176113cc565b1515610b2257600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1610b71610e55565b15610d9e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343d726d66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610bfb57600080fd5b6102c65a03f11515610c0c57600080fd5b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4ba83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610d8557600080fd5b6102c65a03f11515610d9657600080fd5b505050610e38565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638c52dc416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610e2357600080fd5b6102c65a03f11515610e3457600080fd5b5050505b565b6000600254600b541015905090565b60015481565b60075481565b6000600354600b541015905090565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a800a81565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2157600080fd5b600091505b8351821015610fff578382815181101515610f3d57fe5b90602001906020020151905082600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fe79695dad1622e5cfb085702e2abebcb33fd471154ab1504f4c883df61e3e53b84604051808215151515815260200191505060405180910390a28180600101925050610f26565b50505050565b600060149054906101000a900460ff1615151561102157600080fd5b6001600060146101000a81548160ff021916908315150217905550600a60009054906101000a900460ff16151561105757600080fd5b61105f610e55565b15151561106b57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fa89401a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561112757600080fd5b6102c65a03f1151561113857600080fd5b50505060008060146101000a81548160ff021916908315150217905550565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ba57600080fd5b6111c26115e9565b600854111515156111d257600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561129757600080fd5b6102c65a03f115156112a857600080fd5b50505060405180519050905060008111156113b157600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561138a57600080fd5b6102c65a03f1151561139b57600080fd5b5050506040518051905015156113b057600080fd5b5b50565b600d6020528060005260406000206000915090505481565b6000806008546113da6115e9565b11905080806113ed57506113ec610e3a565b5b91505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561144e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561148a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806007546115a56115e9565b101580156115bc57506008546115b96115e9565b11155b925060003414159150600254600b541090508280156115d85750815b80156115e15750805b935050505090565b600042905090565b600080828401905083811015151561160557fe5b8091505092915050565b600082821115151561161d57fe5b818303905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0182336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b15156116e457600080fd5b6125ee5a03f115156116f557600080fd5b5050505050565b6000611728600a800a61171a6004548561172f90919063ffffffff16565b61176a90919063ffffffff16565b9050919050565b60008060008414156117445760009150611763565b828402905082848281151561175557fe5b0414151561175f57fe5b8091505b5092915050565b600080828481151561177857fe5b04905080915050929150505600a165627a7a72305820060d2c01638c1affd4f3ae045fff8aa56a62e4c6bf8f8c30cac74bbdcc82b58300296060604052341561000f57600080fd5b604051602080610a7783398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156100a757600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260146101000a81548160ff0219169083600281111561010757fe5b02179055505061095b8061011c6000396000f300606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806343d726d61461009e578063521eb273146100b35780638c52dc41146101085780638da5cb5b1461011d578063c19d93fb14610172578063cb13cddb146101a9578063f2fde38b146101f6578063f340fa011461022f578063fa89401a1461025d575b600080fd5b34156100a957600080fd5b6100b1610296565b005b34156100be57600080fd5b6100c66103ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561011357600080fd5b61011b610415565b005b341561012857600080fd5b6101306104f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561017d57600080fd5b61018561051b565b6040518082600281111561019557fe5b60ff16815260200191505060405180910390f35b34156101b457600080fd5b6101e0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061052e565b6040518082815260200191505060405180910390f35b341561020157600080fd5b61022d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610546565b005b61025b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061069b565b005b341561026857600080fd5b610294600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107c2565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102f157600080fd5b600060028111156102fe57fe5b600260149054906101000a900460ff16600281111561031957fe5b14151561032557600080fd5b60028060146101000a81548160ff0219169083600281111561034357fe5b02179055507f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a60405160405180910390a1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156103ed57600080fd5b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561047057600080fd5b6000600281111561047d57fe5b600260149054906101000a900460ff16600281111561049857fe5b1415156104a457600080fd5b6001600260146101000a81548160ff021916908360028111156104c357fe5b02179055507f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8960405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260149054906101000a900460ff1681565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105a157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105dd57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106f657600080fd5b6000600281111561070357fe5b600260149054906101000a900460ff16600281111561071e57fe5b14151561072a57600080fd5b61077c34600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461091190919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600160028111156107d157fe5b600260149054906101000a900460ff1660028111156107ec57fe5b1415156107f857600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156108bf57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651826040518082815260200191505060405180910390a25050565b600080828401905083811015151561092557fe5b80915050929150505600a165627a7a72305820b119bf336cdc9b65e6e068d30ab44c96de686e5f1421af5fd9473c2ab80671b700290000000000000000000000008db54ca569d3019a2ba126d03c37c44b5ef81ef60000000000000000000000007efc2977d11e078ce0c9aca1c12ab1683e93c875000000000000000000000000000000000000000000000000000000005a785550000000000000000000000000000000000000000000000000000000005a9d3f5000000000000000000000000000000000000000000000000000000000000011ff0000000000000000000000000000000000000000000001057bc7a2f560e780000000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000003635c9adc5dea00000
Deployed Bytecode
0x60606040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632c4e722e146101495780633197cbb614610172578063355274ea1461019b5780633af32abf146101c457806340193883146102155780634042b66f1461023e5780634bb278f3146102675780634f9359451461027c5780635ab47550146102a957806378e97925146102d25780637d3d6522146102fb5780638d4e4083146103285780638da5cb5b146103555780639671ef91146103aa5780639b19251a146103d3578063aff177ca14610424578063b5545a3c14610489578063cf1405fe1461049e578063dad72332146104c7578063e2dc4310146104dc578063ecb70fb714610529578063f2fde38b14610556578063fbfa77cf1461058f578063fc0c546a146105e4575b61014733610639565b005b341561015457600080fd5b61015c610a24565b6040518082815260200191505060405180910390f35b341561017d57600080fd5b610185610a2a565b6040518082815260200191505060405180910390f35b34156101a657600080fd5b6101ae610a30565b6040518082815260200191505060405180910390f35b34156101cf57600080fd5b6101fb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a36565b604051808215151515815260200191505060405180910390f35b341561022057600080fd5b610228610a8c565b6040518082815260200191505060405180910390f35b341561024957600080fd5b610251610a92565b6040518082815260200191505060405180910390f35b341561027257600080fd5b61027a610a98565b005b341561028757600080fd5b61028f610e3a565b604051808215151515815260200191505060405180910390f35b34156102b457600080fd5b6102bc610e49565b6040518082815260200191505060405180910390f35b34156102dd57600080fd5b6102e5610e4f565b6040518082815260200191505060405180910390f35b341561030657600080fd5b61030e610e55565b604051808215151515815260200191505060405180910390f35b341561033357600080fd5b61033b610e64565b604051808215151515815260200191505060405180910390f35b341561036057600080fd5b610368610e77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103b557600080fd5b6103bd610e9c565b6040518082815260200191505060405180910390f35b34156103de57600080fd5b61040a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ea3565b604051808215151515815260200191505060405180910390f35b341561042f57600080fd5b6104876004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080351515906020019091905050610ec3565b005b341561049457600080fd5b61049c611005565b005b34156104a957600080fd5b6104b1611157565b6040518082815260200191505060405180910390f35b34156104d257600080fd5b6104da61115d565b005b34156104e757600080fd5b610513600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113b4565b6040518082815260200191505060405180910390f35b341561053457600080fd5b61053c6113cc565b604051808215151515815260200191505060405180910390f35b341561056157600080fd5b61058d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113f3565b005b341561059a57600080fd5b6105a2611548565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105ef57600080fd5b6105f761156e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060008060008573ffffffffffffffffffffffffffffffffffffffff161415151561066557600080fd5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106bd57600080fd5b6106c5611594565b15156106d057600080fd5b3493506009546106de6115e9565b1115156107485760015461073a85600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f190919063ffffffff16565b1115151561074757600080fd5b5b61075f600b5460025461160f90919063ffffffff16565b92508284111561076d578293505b610780843461160f90919063ffffffff16565b915061078b84611628565b6000821115610823578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156107d457600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167f50ea9274879b4e2a584129ff0e7d656cf15144ef80e8935d4cf890390f8f1580836040518082815260200191505060405180910390a25b61082c846116fc565b905061084384600b546115f190919063ffffffff16565b600b8190555061089b84600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f190919063ffffffff16565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8583604051808381526020018281526020019250505060405180910390a2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a0157600080fd5b6102c65a03f11515610a1257600080fd5b50505060405180519050505050505050565b60045481565b60085481565b60025481565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60035481565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af357600080fd5b600a60009054906101000a900460ff16151515610b0f57600080fd5b610b176113cc565b1515610b2257600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1610b71610e55565b15610d9e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343d726d66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610bfb57600080fd5b6102c65a03f11515610c0c57600080fd5b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4ba83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610d8557600080fd5b6102c65a03f11515610d9657600080fd5b505050610e38565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638c52dc416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610e2357600080fd5b6102c65a03f11515610e3457600080fd5b5050505b565b6000600254600b541015905090565b60015481565b60075481565b6000600354600b541015905090565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a800a81565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2157600080fd5b600091505b8351821015610fff578382815181101515610f3d57fe5b90602001906020020151905082600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fe79695dad1622e5cfb085702e2abebcb33fd471154ab1504f4c883df61e3e53b84604051808215151515815260200191505060405180910390a28180600101925050610f26565b50505050565b600060149054906101000a900460ff1615151561102157600080fd5b6001600060146101000a81548160ff021916908315150217905550600a60009054906101000a900460ff16151561105757600080fd5b61105f610e55565b15151561106b57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fa89401a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561112757600080fd5b6102c65a03f1151561113857600080fd5b50505060008060146101000a81548160ff021916908315150217905550565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ba57600080fd5b6111c26115e9565b600854111515156111d257600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561129757600080fd5b6102c65a03f115156112a857600080fd5b50505060405180519050905060008111156113b157600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561138a57600080fd5b6102c65a03f1151561139b57600080fd5b5050506040518051905015156113b057600080fd5b5b50565b600d6020528060005260406000206000915090505481565b6000806008546113da6115e9565b11905080806113ed57506113ec610e3a565b5b91505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561144e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561148a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806007546115a56115e9565b101580156115bc57506008546115b96115e9565b11155b925060003414159150600254600b541090508280156115d85750815b80156115e15750805b935050505090565b600042905090565b600080828401905083811015151561160557fe5b8091505092915050565b600082821115151561161d57fe5b818303905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0182336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b15156116e457600080fd5b6125ee5a03f115156116f557600080fd5b5050505050565b6000611728600a800a61171a6004548561172f90919063ffffffff16565b61176a90919063ffffffff16565b9050919050565b60008060008414156117445760009150611763565b828402905082848281151561175557fe5b0414151561175f57fe5b8091505b5092915050565b600080828481151561177857fe5b04905080915050929150505600a165627a7a72305820060d2c01638c1affd4f3ae045fff8aa56a62e4c6bf8f8c30cac74bbdcc82b5830029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008db54ca569d3019a2ba126d03c37c44b5ef81ef60000000000000000000000007efc2977d11e078ce0c9aca1c12ab1683e93c875000000000000000000000000000000000000000000000000000000005a785550000000000000000000000000000000000000000000000000000000005a9d3f5000000000000000000000000000000000000000000000000000000000000011ff0000000000000000000000000000000000000000000001057bc7a2f560e780000000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000003635c9adc5dea00000
-----Decoded View---------------
Arg [0] : _token (address): 0x8dB54ca569D3019A2ba126D03C37c44b5eF81EF6
Arg [1] : _wallet (address): 0x7EfC2977D11E078ce0C9acA1C12aB1683E93C875
Arg [2] : _startTime (uint256): 1517835600
Arg [3] : _endTime (uint256): 1520254800
Arg [4] : _rate (uint256): 4607
Arg [5] : _cap (uint256): 4823519480000000000000
Arg [6] : _firstDayCap (uint256): 10000000000000000000
Arg [7] : _goal (uint256): 1000000000000000000000
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000008db54ca569d3019a2ba126d03c37c44b5ef81ef6
Arg [1] : 0000000000000000000000007efc2977d11e078ce0c9aca1c12ab1683e93c875
Arg [2] : 000000000000000000000000000000000000000000000000000000005a785550
Arg [3] : 000000000000000000000000000000000000000000000000000000005a9d3f50
Arg [4] : 00000000000000000000000000000000000000000000000000000000000011ff
Arg [5] : 0000000000000000000000000000000000000000000001057bc7a2f560e78000
Arg [6] : 0000000000000000000000000000000000000000000000008ac7230489e80000
Arg [7] : 00000000000000000000000000000000000000000000003635c9adc5dea00000
Swarm Source
bzzr://b119bf336cdc9b65e6e068d30ab44c96de686e5f1421af5fd9473c2ab80671b7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.