More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 123 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Finalize | 6098558 | 2236 days ago | IN | 0 ETH | 0.000904 | ||||
Finalize | 6098555 | 2236 days ago | IN | 0 ETH | 0.0020386 | ||||
Create Bounty To... | 6098466 | 2236 days ago | IN | 0 ETH | 0.00101991 | ||||
Create Bounty To... | 6098416 | 2236 days ago | IN | 0 ETH | 0.00101991 | ||||
Create Bounty To... | 6098404 | 2236 days ago | IN | 0 ETH | 0.00101991 | ||||
Create Bounty To... | 5899560 | 2270 days ago | IN | 0 ETH | 0.00240776 | ||||
Create Bounty To... | 5870600 | 2275 days ago | IN | 0 ETH | 0.00241039 | ||||
Create Bounty To... | 5870357 | 2275 days ago | IN | 0 ETH | 0.00241039 | ||||
Create Bounty To... | 5702395 | 2304 days ago | IN | 0 ETH | 0.00240776 | ||||
Create Bounty To... | 5696152 | 2305 days ago | IN | 0 ETH | 0.00240776 | ||||
Create Bounty To... | 5490792 | 2341 days ago | IN | 0 ETH | 0.00179276 | ||||
Create Bounty To... | 5485416 | 2342 days ago | IN | 0 ETH | 0.00241039 | ||||
Create Bounty To... | 5485362 | 2342 days ago | IN | 0 ETH | 0.00240776 | ||||
Transfer | 5446725 | 2349 days ago | IN | 10 ETH | 0.00014112 | ||||
Transfer | 5445418 | 2349 days ago | IN | 1 ETH | 0.00698573 | ||||
Transfer | 5445402 | 2349 days ago | IN | 1 ETH | 0.00168 | ||||
Transfer | 5441981 | 2349 days ago | IN | 0.02167549 ETH | 0.00227808 | ||||
Transfer | 5440488 | 2350 days ago | IN | 0.2 ETH | 0.00227808 | ||||
Transfer | 5438685 | 2350 days ago | IN | 0.241993 ETH | 0.00352815 | ||||
Create Bounty To... | 5438587 | 2350 days ago | IN | 0 ETH | 0.00240776 | ||||
Transfer | 5438103 | 2350 days ago | IN | 0.0667 ETH | 0.00016668 | ||||
Transfer | 5426839 | 2352 days ago | IN | 0.42792705 ETH | 0.00022225 | ||||
Transfer | 5426494 | 2352 days ago | IN | 0.06 ETH | 0.00211689 | ||||
Create Bounty To... | 5426393 | 2352 days ago | IN | 0 ETH | 0.00241039 | ||||
Create Bounty To... | 5426360 | 2352 days ago | IN | 0 ETH | 0.00241039 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5446725 | 2349 days ago | 10 ETH | ||||
5445418 | 2349 days ago | 1 ETH | ||||
5441981 | 2349 days ago | 0.02167549 ETH | ||||
5440488 | 2350 days ago | 0.2 ETH | ||||
5438685 | 2350 days ago | 0.241993 ETH | ||||
5438103 | 2350 days ago | 0.0667 ETH | ||||
5426839 | 2352 days ago | 0.42792705 ETH | ||||
5426494 | 2352 days ago | 0.06 ETH | ||||
5421628 | 2353 days ago | 1.1 ETH | ||||
5421566 | 2353 days ago | 0.29232917 ETH | ||||
5414956 | 2354 days ago | 0.11225142 ETH | ||||
5407970 | 2355 days ago | 0.5 ETH | ||||
5402126 | 2356 days ago | 0.3 ETH | ||||
5395565 | 2357 days ago | 0.02802642 ETH | ||||
5385355 | 2359 days ago | 1 ETH | ||||
5385330 | 2359 days ago | 0.157295 ETH | ||||
5374974 | 2361 days ago | 0.18 ETH | ||||
5363438 | 2363 days ago | 1.5 ETH | ||||
5363435 | 2363 days ago | 1 ETH | ||||
5363427 | 2363 days ago | 1 ETH | ||||
5357734 | 2364 days ago | 6.32911392 ETH | ||||
5356457 | 2364 days ago | 0.04559741 ETH | ||||
5342656 | 2366 days ago | 0.2 ETH | ||||
5335777 | 2367 days ago | 0.06 ETH | ||||
5334658 | 2367 days ago | 1 ETH |
Loading...
Loading
Contract Name:
ICOCappedRefundableCrowdsale
Compiler Version
v0.4.20+commit.3155dd80
Optimization Enabled:
Yes with 999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-24 */ /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ 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; } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ 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(); } } /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ 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); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ 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); } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ 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 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 MintableToken is StandardToken, Ownable { event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished); _; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); Transfer(address(0), _to, _amount); return true; } /** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() onlyOwner canMint public returns (bool) { mintingFinished = true; MintFinished(); return true; } } /** * @title ICOToken * @dev Very simple ERC20 Token example. * `StandardToken` functions. */ contract ICOToken is MintableToken, Pausable { string public constant name = "IPCHAIN Token"; string public constant symbol = "IP"; uint8 public constant decimals = 18; /** * @dev Constructor that gives msg.sender all of existing tokens. */ function ICOToken() public { } } contract Crowdsale { using SafeMath for uint256; // The token being sold MintableToken public token; // start and end timestamps where investments are allowed (both inclusive) uint256 public startTime; uint256 public endTime; // address where funds are collected address public wallet; // how many token units a buyer gets per wei uint256 public rate; // amount of raised money in wei uint256 public weiRaised; /** * event for token purchase logging * @param purchaser who paid for the tokens * @param beneficiary who got the tokens * @param value weis paid for purchase * @param amount amount of tokens purchased */ event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); function Crowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet) public { require(_startTime >= now); require(_endTime >= _startTime); require(_rate > 0); require(_wallet != address(0)); token = createTokenContract(); startTime = _startTime; endTime = _endTime; rate = _rate; wallet = _wallet; } // creates the token to be sold. // override this method to have crowdsale of a specific mintable token. function createTokenContract() internal returns (MintableToken) { return new MintableToken(); } // fallback function can be used to buy tokens function () external payable { buyTokens(msg.sender); } // Override this method to have a way to add business logic to your crowdsale when buying function getTokenAmount(uint256 weiAmount) internal view returns(uint256) { return weiAmount.mul(rate); } // low level token purchase function function buyTokens(address beneficiary) public payable { require(beneficiary != address(0)); require(validPurchase()); uint256 weiAmount = msg.value; // calculate token amount to be created uint256 tokens = getTokenAmount(weiAmount); // update state weiRaised = weiRaised.add(weiAmount); token.mint(beneficiary, tokens); TokenPurchase(msg.sender, beneficiary, weiAmount, tokens); forwardFunds(); } // send ether to the fund collection wallet // override to create custom fund forwarding mechanisms function forwardFunds() internal { wallet.transfer(msg.value); } // @return true if the transaction can buy tokens function validPurchase() internal view returns (bool) { bool withinPeriod = now >= startTime && now <= endTime; bool nonZeroPurchase = msg.value != 0; return withinPeriod && nonZeroPurchase; } // @return true if crowdsale event has ended function hasEnded() public view returns (bool) { return now > endTime; } } /** * @title FinalizableCrowdsale * @dev Extension of Crowdsale where an owner can do extra work * after finishing. */ contract FinalizableCrowdsale is Crowdsale, Ownable { using SafeMath for uint256; bool public isFinalized = false; event Finalized(); /** * @dev Must be called after crowdsale ends, to do some extra finalization * work. Calls the contract's finalization function. */ function finalize() onlyOwner public { require(!isFinalized); require(hasEnded()); finalization(); Finalized(); isFinalized = true; } /** * @dev Can be overridden to add finalization logic. The overriding function * should call super.finalization() to ensure the chain of finalization is * executed entirely. */ function finalization() internal { } } /** * @title CappedCrowdsale * @dev Extension of Crowdsale with a max amount of funds raised */ contract CappedCrowdsale is Crowdsale { using SafeMath for uint256; uint256 public cap; function CappedCrowdsale(uint256 _cap) public { require(_cap > 0); cap = _cap; } // overriding Crowdsale#validPurchase to add extra cap logic // @return true if investors can buy at the moment function validPurchase() internal view returns (bool) { bool withinCap = weiRaised.add(msg.value) <= cap; return super.validPurchase() && withinCap; } // overriding Crowdsale#hasEnded to add cap logic // @return true if crowdsale event has ended function hasEnded() public view returns (bool) { bool capReached = weiRaised >= cap; return super.hasEnded() || capReached; } } contract ICOCrowdsale is Ownable, Pausable, FinalizableCrowdsale { uint256 constant PRESALE_CAP = 2727 ether; uint256 constant PRESALE_RATE = 316; uint256 constant PRESALE_DURATION = 23 days; uint256 constant MAIN_SALE_START = 1527771600; uint256 constant BONUS_1_CAP = PRESALE_CAP + 3636 ether; uint256 constant BONUS_1_RATE = 292; uint256 constant BONUS_2_CAP = BONUS_1_CAP + 7273 ether; uint256 constant BONUS_2_RATE = 269; uint256 constant BONUS_3_CAP = BONUS_2_CAP + 9091 ether; uint256 constant BONUS_3_RATE = 257; uint256 constant BONUS_4_CAP = BONUS_3_CAP + 10909 ether; uint256 constant BONUS_4_RATE = 245; uint256 constant NORMAL_RATE = 234; address tokenAddress; event LogBountyTokenMinted(address minter, address beneficiary, uint256 amount); function ICOCrowdsale(uint256 _startTime, uint256 _endTime, address _wallet, address _tokenAddress) public FinalizableCrowdsale() Crowdsale(_startTime, _endTime, NORMAL_RATE, _wallet) { require((_endTime-_startTime) > (15 * 1 days)); require(_tokenAddress != address(0x0)); tokenAddress = _tokenAddress; token = createTokenContract(); } /** * Invoked on initialization of the contract */ function createTokenContract() internal returns (MintableToken) { return ICOToken(tokenAddress); } function finalization() internal { super.finalization(); // Un/Comment this if you have/have not paused the token contract ICOToken _token = ICOToken(token); if(_token.paused()) { _token.unpause(); } _token.transferOwnership(owner); } function buyTokens(address beneficiary) public payable { uint256 minContributionAmount = 1 finney; // 0.001 ETH require(msg.value >= minContributionAmount); super.buyTokens(beneficiary); } function getRate() internal constant returns(uint256) { // Pre-sale Period if (now < (startTime + PRESALE_DURATION)) { require(weiRaised <= PRESALE_CAP); return PRESALE_RATE; } // Main sale require(now >= MAIN_SALE_START); // First Bonus Period if (weiRaised <= BONUS_1_CAP) { return BONUS_1_RATE; } // Second Bonus Period if (weiRaised <= BONUS_2_CAP) { return BONUS_2_RATE; } // Third Bonus Period if (weiRaised <= BONUS_3_CAP) { return BONUS_3_RATE; } // Fourth Bonus Period if (weiRaised <= BONUS_4_CAP) { return BONUS_4_RATE; } // Default Period return rate; } function getTokenAmount(uint256 weiAmount) internal constant returns(uint256) { uint256 _rate = getRate(); return weiAmount.mul(_rate); } function createBountyToken(address beneficiary, uint256 amount) public onlyOwner returns(bool) { require(!hasEnded()); token.mint(beneficiary, amount); LogBountyTokenMinted(msg.sender, beneficiary, amount); return true; } } contract ICOCappedRefundableCrowdsale is CappedCrowdsale, ICOCrowdsale { function ICOCappedRefundableCrowdsale(uint256 _startTime, uint256 _endTime, uint256 _cap, address _wallet, address _tokenAddress) public FinalizableCrowdsale() ICOCrowdsale(_startTime, _endTime, _wallet, _tokenAddress) CappedCrowdsale(_cap) { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"amount","type":"uint256"}],"name":"createBountyToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_cap","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_tokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minter","type":"address"},{"indexed":false,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogBountyTokenMinted","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"}]
Contract Creation Code
60606040526007805460a060020a61ffff0219169055341561002057600080fd5b60405160a080610db38339810160405280805191906020018051919060200180519190602001805191906020018051915085905084838386848460ea854284101561006a57600080fd5b8383101561007757600080fd5b6000821161008457600080fd5b600160a060020a038116151561009957600080fd5b6100ae640100000000610bc161019982021704565b60008054600160a060020a0319908116600160a060020a039384161782556001969096556002949094556004929092556003805490941691161790915581116100f657600080fd5b60065560078054600160a060020a03191633600160a060020a03161790556213c6808484031161012557600080fd5b600160a060020a038116151561013a57600080fd5b60088054600160a060020a031916600160a060020a03831617905561016a6401000000006101998102610bc11704565b60008054600160a060020a031916600160a060020a0392909216919091179055506101a8975050505050505050565b600854600160a060020a031690565b610bfc806101b76000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632c4e722e81146100fb5780633197cbb614610120578063355274ea146101335780633f4ba83a146101465780634042b66f146101595780634bb278f31461016c578063521eb2731461017f5780635c975abb146101ae57806378e97925146101d55780638456cb59146101e85780638d4e4083146101fb5780638da5cb5b1461020e578063ec8ac4d814610221578063ecb70fb714610235578063f1a6373314610248578063f2fde38b1461026a578063fc0c546a14610289575b6100f93361029c565b005b341561010657600080fd5b61010e6102bf565b60405190815260200160405180910390f35b341561012b57600080fd5b61010e6102c5565b341561013e57600080fd5b61010e6102cb565b341561015157600080fd5b6100f96102d1565b341561016457600080fd5b61010e610361565b341561017757600080fd5b6100f9610367565b341561018a57600080fd5b610192610434565b604051600160a060020a03909116815260200160405180910390f35b34156101b957600080fd5b6101c1610443565b604051901515815260200160405180910390f35b34156101e057600080fd5b61010e610464565b34156101f357600080fd5b6100f961046a565b341561020657600080fd5b6101c1610510565b341561021957600080fd5b610192610532565b6100f9600160a060020a036004351661029c565b341561024057600080fd5b6101c1610541565b341561025357600080fd5b6101c1600160a060020a0360043516602435610563565b341561027557600080fd5b6100f9600160a060020a0360043516610683565b341561029457600080fd5b610192610729565b66038d7ea4c6800034819010156102b257600080fd5b6102bb82610738565b5050565b60045481565b60025481565b60065481565b60075433600160a060020a039081169116146102ec57600080fd5b60075474010000000000000000000000000000000000000000900460ff16151561031557600080fd5b6007805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60055481565b60075433600160a060020a0390811691161461038257600080fd5b6007547501000000000000000000000000000000000000000000900460ff16156103ab57600080fd5b6103b3610541565b15156103be57600080fd5b6103c661087a565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1600780547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b600354600160a060020a031681565b60075474010000000000000000000000000000000000000000900460ff1681565b60015481565b60075433600160a060020a0390811691161461048557600080fd5b60075474010000000000000000000000000000000000000000900460ff16156104ad57600080fd5b6007805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6007547501000000000000000000000000000000000000000000900460ff1681565b600754600160a060020a031681565b6006546005546000919010156105556109f8565b8061055d5750805b91505090565b60075460009033600160a060020a0390811691161461058157600080fd5b610589610541565b1561059357600080fd5b60008054600160a060020a0316906340c10f199085908590604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561060e57600080fd5b6102c65a03f1151561061f57600080fd5b50505060405180519050507fda06cceac0e5d29c435bd56e522309bbd7c1a35f7192d1aa7b533903d94854f0338484604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a150600192915050565b60075433600160a060020a0390811691161461069e57600080fd5b600160a060020a03811615156106b357600080fd5b600754600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600780547fffffffffffffffffffffffff000000000000000000000000000000000000000016600160a060020a0392909216919091179055565b600054600160a060020a031681565b600080600160a060020a038316151561075057600080fd5b610758610a01565b151561076357600080fd5b34915061076f82610a34565b600554909150610785908363ffffffff610a5816565b60055560008054600160a060020a0316906340c10f199085908490604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080357600080fd5b6102c65a03f1151561081457600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3610875610a72565b505050565b6000610884610aa6565b5060008054600160a060020a0316908190635c975abb90604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156108e957600080fd5b6102c65a03f115156108fa57600080fd5b50505060405180519050156109745780600160a060020a0316633f4ba83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b151561095f57600080fd5b6102c65a03f1151561097057600080fd5b5050505b600754600160a060020a038083169163f2fde38b91166040517c010000000000000000000000000000000000000000000000000000000063ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156109e157600080fd5b6102c65a03f115156109f257600080fd5b50505050565b60025442115b90565b600080600654610a1c34600554610a5890919063ffffffff16565b11159050610a28610aa8565b801561055d5750919050565b600080610a3f610ad8565b9050610a51838263ffffffff610b9616565b9392505050565b600082820183811015610a6757fe5b8091505b5092915050565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f193505050501515610aa657600080fd5b565b60008060006001544210158015610ac157506002544211155b915050341515818015610ad15750805b9250505090565b6000621e528060015401421015610b0b576005546893d4ba33bc1a3c0000901115610b0257600080fd5b5061013c6109fe565b635b0ff1d0421015610b1c57600080fd5b600554690158f05d2361928c00009011610b3957506101246109fe565b6005546902e33583b9602a9000009011610b56575061010d6109fe565b6005546904d0087bc7317ebc00009011610b7357506101016109fe565b60055469071f69454cd58f1000009011610b8f575060f56109fe565b5060045490565b600080831515610ba95760009150610a6b565b50828202828482811515610bb957fe5b0414610a6757fe5b600854600160a060020a0316905600a165627a7a72305820312cfaba19e2e7dc50095f8db655c9eb5e62dc86502cb2ee44b2aa799febca850029000000000000000000000000000000000000000000000000000000005ab64bd0000000000000000000000000000000000000000000000000000000005b60f7ff0000000000000000000000000000000000000000000007b34be0374550b00000000000000000000000000000d6f1f67e5b9ff288d5366a8aebdc9fa78eeb2bc9000000000000000000000000f9db182d6ca029b050954ff03fb342a54c34f5b7
Deployed Bytecode
0x6060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632c4e722e81146100fb5780633197cbb614610120578063355274ea146101335780633f4ba83a146101465780634042b66f146101595780634bb278f31461016c578063521eb2731461017f5780635c975abb146101ae57806378e97925146101d55780638456cb59146101e85780638d4e4083146101fb5780638da5cb5b1461020e578063ec8ac4d814610221578063ecb70fb714610235578063f1a6373314610248578063f2fde38b1461026a578063fc0c546a14610289575b6100f93361029c565b005b341561010657600080fd5b61010e6102bf565b60405190815260200160405180910390f35b341561012b57600080fd5b61010e6102c5565b341561013e57600080fd5b61010e6102cb565b341561015157600080fd5b6100f96102d1565b341561016457600080fd5b61010e610361565b341561017757600080fd5b6100f9610367565b341561018a57600080fd5b610192610434565b604051600160a060020a03909116815260200160405180910390f35b34156101b957600080fd5b6101c1610443565b604051901515815260200160405180910390f35b34156101e057600080fd5b61010e610464565b34156101f357600080fd5b6100f961046a565b341561020657600080fd5b6101c1610510565b341561021957600080fd5b610192610532565b6100f9600160a060020a036004351661029c565b341561024057600080fd5b6101c1610541565b341561025357600080fd5b6101c1600160a060020a0360043516602435610563565b341561027557600080fd5b6100f9600160a060020a0360043516610683565b341561029457600080fd5b610192610729565b66038d7ea4c6800034819010156102b257600080fd5b6102bb82610738565b5050565b60045481565b60025481565b60065481565b60075433600160a060020a039081169116146102ec57600080fd5b60075474010000000000000000000000000000000000000000900460ff16151561031557600080fd5b6007805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60055481565b60075433600160a060020a0390811691161461038257600080fd5b6007547501000000000000000000000000000000000000000000900460ff16156103ab57600080fd5b6103b3610541565b15156103be57600080fd5b6103c661087a565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1600780547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b600354600160a060020a031681565b60075474010000000000000000000000000000000000000000900460ff1681565b60015481565b60075433600160a060020a0390811691161461048557600080fd5b60075474010000000000000000000000000000000000000000900460ff16156104ad57600080fd5b6007805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6007547501000000000000000000000000000000000000000000900460ff1681565b600754600160a060020a031681565b6006546005546000919010156105556109f8565b8061055d5750805b91505090565b60075460009033600160a060020a0390811691161461058157600080fd5b610589610541565b1561059357600080fd5b60008054600160a060020a0316906340c10f199085908590604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561060e57600080fd5b6102c65a03f1151561061f57600080fd5b50505060405180519050507fda06cceac0e5d29c435bd56e522309bbd7c1a35f7192d1aa7b533903d94854f0338484604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a150600192915050565b60075433600160a060020a0390811691161461069e57600080fd5b600160a060020a03811615156106b357600080fd5b600754600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600780547fffffffffffffffffffffffff000000000000000000000000000000000000000016600160a060020a0392909216919091179055565b600054600160a060020a031681565b600080600160a060020a038316151561075057600080fd5b610758610a01565b151561076357600080fd5b34915061076f82610a34565b600554909150610785908363ffffffff610a5816565b60055560008054600160a060020a0316906340c10f199085908490604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080357600080fd5b6102c65a03f1151561081457600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3610875610a72565b505050565b6000610884610aa6565b5060008054600160a060020a0316908190635c975abb90604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156108e957600080fd5b6102c65a03f115156108fa57600080fd5b50505060405180519050156109745780600160a060020a0316633f4ba83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b151561095f57600080fd5b6102c65a03f1151561097057600080fd5b5050505b600754600160a060020a038083169163f2fde38b91166040517c010000000000000000000000000000000000000000000000000000000063ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156109e157600080fd5b6102c65a03f115156109f257600080fd5b50505050565b60025442115b90565b600080600654610a1c34600554610a5890919063ffffffff16565b11159050610a28610aa8565b801561055d5750919050565b600080610a3f610ad8565b9050610a51838263ffffffff610b9616565b9392505050565b600082820183811015610a6757fe5b8091505b5092915050565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f193505050501515610aa657600080fd5b565b60008060006001544210158015610ac157506002544211155b915050341515818015610ad15750805b9250505090565b6000621e528060015401421015610b0b576005546893d4ba33bc1a3c0000901115610b0257600080fd5b5061013c6109fe565b635b0ff1d0421015610b1c57600080fd5b600554690158f05d2361928c00009011610b3957506101246109fe565b6005546902e33583b9602a9000009011610b56575061010d6109fe565b6005546904d0087bc7317ebc00009011610b7357506101016109fe565b60055469071f69454cd58f1000009011610b8f575060f56109fe565b5060045490565b600080831515610ba95760009150610a6b565b50828202828482811515610bb957fe5b0414610a6757fe5b600854600160a060020a0316905600a165627a7a72305820312cfaba19e2e7dc50095f8db655c9eb5e62dc86502cb2ee44b2aa799febca850029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000005ab64bd0000000000000000000000000000000000000000000000000000000005b60f7ff0000000000000000000000000000000000000000000007b34be0374550b00000000000000000000000000000d6f1f67e5b9ff288d5366a8aebdc9fa78eeb2bc9000000000000000000000000f9db182d6ca029b050954ff03fb342a54c34f5b7
-----Decoded View---------------
Arg [0] : _startTime (uint256): 1521896400
Arg [1] : _endTime (uint256): 1533081599
Arg [2] : _cap (uint256): 36364000000000000000000
Arg [3] : _wallet (address): 0xD6f1F67e5B9fF288D5366A8aEbdC9fa78eeb2bC9
Arg [4] : _tokenAddress (address): 0xF9dB182D6Ca029b050954fF03Fb342A54c34f5B7
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005ab64bd0
Arg [1] : 000000000000000000000000000000000000000000000000000000005b60f7ff
Arg [2] : 0000000000000000000000000000000000000000000007b34be0374550b00000
Arg [3] : 000000000000000000000000d6f1f67e5b9ff288d5366a8aebdc9fa78eeb2bc9
Arg [4] : 000000000000000000000000f9db182d6ca029b050954ff03fb342a54c34f5b7
Swarm Source
bzzr://312cfaba19e2e7dc50095f8db655c9eb5e62dc86502cb2ee44b2aa799febca85
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.