Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,024 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 6627169 | 2073 days ago | IN | 0.0000001 ETH | 0.000399 | ||||
Transfer | 6627143 | 2073 days ago | IN | 0.00001 ETH | 0.000399 | ||||
Transfer | 6627138 | 2073 days ago | IN | 0.00001 ETH | 0.000399 | ||||
Transfer | 6627093 | 2073 days ago | IN | 0.00001 ETH | 0.0004179 | ||||
Transfer | 6627085 | 2073 days ago | IN | 0.000001 ETH | 0.0004179 | ||||
Transfer | 6627078 | 2073 days ago | IN | 0.000001 ETH | 0.0004179 | ||||
Transfer | 6627068 | 2073 days ago | IN | 0.00001 ETH | 0.0004179 | ||||
Transfer | 5050572 | 2340 days ago | IN | 0.038 ETH | 0.00096723 | ||||
Transfer | 5044327 | 2341 days ago | IN | 0.02837 ETH | 0.0012 | ||||
Transfer | 5036850 | 2342 days ago | IN | 0.03957 ETH | 0.00126 | ||||
Transfer | 5033475 | 2343 days ago | IN | 1 ETH | 0.00078192 | ||||
Transfer | 5020188 | 2345 days ago | IN | 0.04083 ETH | 0.00084 | ||||
Transfer | 5005788 | 2347 days ago | IN | 0.0509432 ETH | 0.00092326 | ||||
Transfer | 5000010 | 2348 days ago | IN | 1 ETH | 0.00286704 | ||||
Transfer | 5000009 | 2348 days ago | IN | 1 ETH | 0.0005792 | ||||
Transfer | 5000008 | 2348 days ago | IN | 1 ETH | 0.00191136 | ||||
Transfer | 4993739 | 2349 days ago | IN | 5 ETH | 0.00576304 | ||||
Transfer | 4985438 | 2351 days ago | IN | 1 ETH | 0.0008792 | ||||
Transfer | 4983818 | 2351 days ago | IN | 0.2 ETH | 0.0019782 | ||||
Transfer | 4982599 | 2351 days ago | IN | 0.3 ETH | 0.002896 | ||||
Transfer | 4979012 | 2352 days ago | IN | 50 ETH | 0.02893104 | ||||
Transfer | 4978459 | 2352 days ago | IN | 0.0946233 ETH | 0.000861 | ||||
Transfer | 4978442 | 2352 days ago | IN | 0.1546233 ETH | 0.000861 | ||||
Transfer | 4978381 | 2352 days ago | IN | 0.8 ETH | 0.00292496 | ||||
Transfer | 4978381 | 2352 days ago | IN | 0.8 ETH | 0.0034752 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
4964471 | 2354 days ago | 0.25 ETH | ||||
4964471 | 2354 days ago | 0.53 ETH | ||||
4964471 | 2354 days ago | 0.1 ETH | ||||
4964471 | 2354 days ago | 0.5 ETH | ||||
4964471 | 2354 days ago | 1 ETH | ||||
4964471 | 2354 days ago | 1 ETH | ||||
4964470 | 2354 days ago | 0.18979711 ETH | ||||
4964470 | 2354 days ago | 0.22 ETH | ||||
4964470 | 2354 days ago | 1 ETH | ||||
4964470 | 2354 days ago | 0.1 ETH | ||||
4964470 | 2354 days ago | 0.1 ETH | ||||
4964470 | 2354 days ago | 0.15 ETH | ||||
4964470 | 2354 days ago | 0.38 ETH | ||||
4964470 | 2354 days ago | 1.5 ETH | ||||
4964470 | 2354 days ago | 0.1 ETH | ||||
4964470 | 2354 days ago | 0.81 ETH | ||||
4964470 | 2354 days ago | 0.2 ETH | ||||
4964470 | 2354 days ago | 0.16524658 ETH | ||||
4964470 | 2354 days ago | 0.2 ETH | ||||
4964470 | 2354 days ago | 8 ETH | ||||
4964470 | 2354 days ago | 1.5 ETH | ||||
4964470 | 2354 days ago | 0.5 ETH | ||||
4964470 | 2354 days ago | 1 ETH | ||||
4964470 | 2354 days ago | 0.1 ETH | ||||
4964470 | 2354 days ago | 0.1 ETH |
Loading...
Loading
Contract Name:
BlockportCrowdsale
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-01-20 */ pragma solidity ^0.4.13; // File: contracts\zeppelin\ownership\Ownable.sol /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ 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; } } // File: contracts\zeppelin\math\SafeMath.sol /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal 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 returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } // File: contracts\zeppelin\token\ERC20Basic.sol /** * @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 returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } // File: contracts\zeppelin\token\BasicToken.sol /** * @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 returns (uint256 balance) { return balances[_owner]; } } // File: contracts\zeppelin\token\ERC20.sol /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public 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); } // File: contracts\zeppelin\token\StandardToken.sol /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @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) { return BasicToken.transfer(_to, _value); } /** * @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 returns (uint256) { return allowed[_owner][_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 */ 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; } 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; } } // File: contracts\zeppelin\token\MintableToken.sol /** * @title Mintable token * @dev Simple ERC20 Token example, with mintable token creation * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol */ 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; } } // File: contracts\zeppelin\token\CappedToken.sol /** * @title Capped token * @dev Mintable token with a token cap. */ contract CappedToken is MintableToken { uint256 public cap; function CappedToken(uint256 _cap) public { require(_cap > 0); cap = _cap; } /** * @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) { require(totalSupply.add(_amount) <= cap); return super.mint(_to, _amount); } } // File: contracts\zeppelin\lifecycle\Pausable.sol /** * @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(); } } // File: contracts\zeppelin\token\PausableToken.sol /** * @title Pausable token * * @dev StandardToken modified with pausable transfers. **/ 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); } } // File: contracts\BlockportToken.sol /// @title Blockport Token - Token code for our Blockport.nl Project /// @author Jan Bolhuis, Wesley van Heije // Version 3, december 2017 // This version is completely based on the Openzeppelin Solidity framework. // // There will be a presale cap of 6.400.000 BPT Tokens // Minimum presale investment in Ether will be set at the start in the Presale contract; calculated on a weekly avarage for an amount of ~ 1000 Euro // Unsold presale tokens will be burnt, implemented as mintbale token as such that only sold tokens are minted. // Presale rate has a 33% bonus to the crowdsale to compensate the extra risk // The total supply of tokens (pre-sale + crowdsale) will be 49,600,000 BPT // Minimum crowdsale investment will be 0.1 ether // Mac cap for the crowdsale is 43,200,000 BPT // There is no bonus scheme for the crowdsale // Unsold Crowsdale tokens will be burnt, implemented as mintbale token as such that only sold tokens are minted. // On the amount tokens sold an additional 40% will be minted; this will be allocated to the Blockport company(20%) and the Blockport team(20%) // BPT tokens will be tradable straigt after the finalization of the crowdsale. This is implemented by being a pausable token that is unpaused at Crowdsale finalisation. contract BlockportToken is CappedToken, PausableToken { string public constant name = "Blockport Token"; string public constant symbol = "BPT"; uint public constant decimals = 18; function BlockportToken(uint256 _totalSupply) CappedToken(_totalSupply) public { paused = true; } } // File: contracts\CrowdsaleWhitelist.sol contract CrowdsaleWhitelist is Ownable { mapping(address => bool) allowedAddresses; uint count = 0; modifier whitelisted() { require(allowedAddresses[msg.sender] == true); _; } function addToWhitelist(address[] _addresses) public onlyOwner { for (uint i = 0; i < _addresses.length; i++) { if (allowedAddresses[_addresses[i]]) { continue; } allowedAddresses[_addresses[i]] = true; count++; } WhitelistUpdated(block.timestamp, "Added", count); } function removeFromWhitelist(address[] _addresses) public onlyOwner { for (uint i = 0; i < _addresses.length; i++) { if (!allowedAddresses[_addresses[i]]) { continue; } allowedAddresses[_addresses[i]] = false; count--; } WhitelistUpdated(block.timestamp, "Removed", count); } function isWhitelisted() public whitelisted constant returns (bool) { return true; } function addressIsWhitelisted(address _address) public constant returns (bool) { return allowedAddresses[_address]; } function getAddressCount() public constant returns (uint) { return count; } event WhitelistUpdated(uint timestamp, string operation, uint totalAddresses); } // File: contracts\zeppelin\crowdsale\Crowdsale.sol /** * @title Crowdsale * @dev Crowdsale is a base contract for managing a token crowdsale. * Crowdsales have a start and end timestamps, where investors can make * token purchases and the crowdsale will assign them tokens based * on a token per ETH rate. Funds collected are forwarded to a wallet * as they arrive. */ 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); } // 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 = weiAmount.mul(rate); // 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 returns (bool) { bool withinPeriod = now >= startTime && now <= endTime; bool nonZeroPurchase = msg.value != 0; return withinPeriod && nonZeroPurchase; } // @return true if crowdsale event has started function hasStarted() public constant returns (bool) { return now >= startTime; } // @return true if crowdsale event has ended function hasEnded() public view returns (bool) { return now > endTime; } // @return current timestamp function currentTime() public constant returns(uint256) { return now; } } // File: contracts\zeppelin\crowdsale\CappedCrowdsale.sol /** * @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 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; } } // File: contracts\zeppelin\crowdsale\FinalizableCrowdsale.sol /** * @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); 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 { } } // File: contracts\BlockportCrowdsale.sol /// @title Blockport Token - Token code for our Blockport.nl Project /// @author Jan Bolhuis, Wesley van Heije // Version 3, January 2018 // Based on Openzeppelin framework // // The Crowdsale will start after the presale which had a cap of 6.400.000 BPT Tokens // Minimum presale investment in Ether will be set at the start; calculated on a weekly avarage for an amount of ~ 1000 Euro // Unsold presale tokens will be burnt. Implemented by using MintedToken. // There is no bonus in the Crowdsale. // The total supply of tokens (pre-sale + crowdsale) will be 49,600,000 BPT // Minimum crowdsale investment will be 0.1 ether // Mac cap for the crowdsale is 43,200,000 BPT // // contract BlockportCrowdsale is CappedCrowdsale, FinalizableCrowdsale, CrowdsaleWhitelist, Pausable { using SafeMath for uint256; address public tokenAddress; address public teamVault; address public companyVault; uint256 public minimalInvestmentInWei = 0.1 ether; uint256 public maxInvestmentInWei = 50 ether; mapping (address => uint256) internal invested; BlockportToken public bpToken; // Events for this contract event InitialRateChange(uint256 rate, uint256 cap); event InitialDateChange(uint256 startTime, uint256 endTime); // Initialise contract with parapametrs //@notice Function to initialise the token with configurable parameters. //@param ` _cap - max number ot tokens available for the presale //@param ` _goal - goal can be set, below this value the Crowdsale becomes refundable //@param ' _startTime - this is the place to adapt the presale period //@param ` _endTime - this is the place to adapt the presale period //@param ` rate - initial presale rate. //@param ` _wallet - Multisig wallet the investments are being send to during presale //@param ` _tokenAddress - Token to be used, created outside the prsale contract //@param ` _teamVault - Ether send to this contract will be stored at this multisig wallet function BlockportCrowdsale(uint256 _cap, uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet, address _tokenAddress, address _teamVault, address _companyVault) CappedCrowdsale(_cap) Crowdsale(_startTime, _endTime, _rate, _wallet) public { require(_tokenAddress != address(0)); require(_teamVault != address(0)); require(_companyVault != address(0)); tokenAddress = _tokenAddress; token = createTokenContract(); teamVault = _teamVault; companyVault = _companyVault; } //@notice Function to cast the Capped (&mintable) token provided with the constructor to a blockporttoken that is mintabletoken. // This is a workaround to surpass an issue that Mintabletoken functions are not accessible in this contract. // We did not want to change the Openzeppelin code and we did not have the time for an extensive drill down. function createTokenContract() internal returns (MintableToken) { bpToken = BlockportToken(tokenAddress); return BlockportToken(tokenAddress); } // low level token purchase function function buyTokens(address beneficiary) public payable { invested[msg.sender] += msg.value; super.buyTokens(beneficiary); } // overriding Crowdsale#validPurchase to add extra cap logic // @return true if investors can buy at the moment function validPurchase() internal returns (bool) { bool moreThanMinimalInvestment = msg.value >= minimalInvestmentInWei; bool whitelisted = addressIsWhitelisted(msg.sender); bool lessThanMaxInvestment = invested[msg.sender] <= maxInvestmentInWei; return super.validPurchase() && moreThanMinimalInvestment && lessThanMaxInvestment && !paused && whitelisted; } //@notice Function overidden function will finanalise the Crowdsale // Additional tokens are allocated to the team and to the company, adding 40% in total to tokens already sold. // After calling this function the blockporttoken gan be tranfered / traded by the holders of this token. function finalization() internal { uint256 totalSupply = token.totalSupply(); uint256 twentyPercentAllocation = totalSupply.div(5); // mint tokens for the foundation token.mint(teamVault, twentyPercentAllocation); token.mint(companyVault, twentyPercentAllocation); token.finishMinting(); // No more tokens can be added from now bpToken.unpause(); // ERC20 transfer functions will work after this so trading can start. super.finalization(); // finalise up in the tree bpToken.transferOwnership(owner); // transfer token Ownership back to original owner } //@notice Function sets the token conversion rate in this contract //@param ` __rateInWei - Price of 1 Blockport token in Wei. //@param ` __capInWei - Price of 1 Blockport token in Wei. function setRate(uint256 _rateInWei, uint256 _capInWei) public onlyOwner returns (bool) { require(startTime > block.timestamp); require(_rateInWei > 0); require(_capInWei > 0); rate = _rateInWei; cap = _capInWei; InitialRateChange(rate, cap); return true; } //@notice Function sets start and end date/time for this Crowdsale. Can be called multiple times //@param ' _startTime - this is the place to adapt the presale period //@param ` _endTime - this is the place to adapt the presale period function setCrowdsaleDates(uint256 _startTime, uint256 _endTime) public onlyOwner returns (bool) { require(startTime > block.timestamp); // current startTime in the future require(_startTime >= now); require(_endTime >= _startTime); startTime = _startTime; endTime = _endTime; InitialDateChange(startTime, endTime); return true; } //@notice Function sets the token owner to contract owner function resetTokenOwnership() onlyOwner public { bpToken.transferOwnership(owner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"bpToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"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":true,"inputs":[],"name":"hasStarted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rateInWei","type":"uint256"},{"name":"_capInWei","type":"uint256"}],"name":"setRate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"removeFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isWhitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimalInvestmentInWei","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":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"addressIsWhitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"companyVault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamVault","outputs":[{"name":"","type":"address"}],"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":"tokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"setCrowdsaleDates","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAddressCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxInvestmentInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"","type":"uint256"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resetTokenOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_cap","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_tokenAddress","type":"address"},{"name":"_teamVault","type":"address"},{"name":"_companyVault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"rate","type":"uint256"},{"indexed":false,"name":"cap","type":"uint256"}],"name":"InitialRateChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"startTime","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"}],"name":"InitialDateChange","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"operation","type":"string"},{"indexed":false,"name":"totalAddresses","type":"uint256"}],"name":"WhitelistUpdated","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"},{"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
60606040526007805460a060020a60ff02191690556000600955600a805460ff1916905567016345785d8a0000600d556802b5e3af16b1880000600e5534156200004857600080fd5b604051610100806200146f833981016040528080519190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191508890508787878742841015620000a557600080fd5b83831015620000b357600080fd5b60008211620000c157600080fd5b600160a060020a0381161515620000d757600080fd5b620000ef640100000000620011be6200021682021704565b60008054600160a060020a0319908116600160a060020a039384161782556001969096556002949094556004929092556003805490941691161790915581116200013857600080fd5b60065560078054600160a060020a03191633600160a060020a0390811691909117909155831615156200016a57600080fd5b600160a060020a03821615156200018057600080fd5b600160a060020a03811615156200019657600080fd5b600a805461010060a860020a031916610100600160a060020a03861602179055620001ce640100000000620002168102620011be1704565b60008054600160a060020a0319908116600160a060020a0393841617909155600b8054821694831694909417909355600c80549093169116179055506200023f945050505050565b600a5460108054610100909204600160a060020a0316600160a060020a03199092168217905590565b611220806200024f6000396000f30060606040526004361061017c5763ffffffff60e060020a60003504166323685b9781146101875780632c4e722e146101b65780633197cbb6146101db578063355274ea146101ee5780633f4ba83a146102015780634042b66f1461021457806344691f7e1461022757806346df2ccb1461024e5780634bb278f314610267578063521eb2731461027a578063548db1741461028d5780635c975abb146102dc578063611b4095146102ef5780636e80a8691461030257806378e97925146103155780637f649783146103285780638456cb591461037757806385d330021461038a5780638a77ba1a146103a95780638ab5212b146103bc5780638d4e4083146103cf5780638da5cb5b146103e25780639d76ea58146103f5578063a89acca414610408578063cdbb02af14610421578063cfc450af14610434578063d18e81b314610447578063ec8ac4d81461045a578063ecb70fb71461046e578063f2fde38b14610481578063f43098af146104a0578063fc0c546a146104b3575b610185336104c6565b005b341561019257600080fd5b61019a6104f0565b604051600160a060020a03909116815260200160405180910390f35b34156101c157600080fd5b6101c96104ff565b60405190815260200160405180910390f35b34156101e657600080fd5b6101c9610505565b34156101f957600080fd5b6101c961050b565b341561020c57600080fd5b610185610511565b341561021f57600080fd5b6101c9610575565b341561023257600080fd5b61023a61057b565b604051901515815260200160405180910390f35b341561025957600080fd5b61023a600435602435610584565b341561027257600080fd5b610185610618565b341561028557600080fd5b61019a6106c6565b341561029857600080fd5b61018560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506106d595505050505050565b34156102e757600080fd5b61023a610812565b34156102fa57600080fd5b61023a61081b565b341561030d57600080fd5b6101c961084b565b341561032057600080fd5b6101c9610851565b341561033357600080fd5b610185600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061085795505050505050565b341561038257600080fd5b610185610992565b341561039557600080fd5b61023a600160a060020a03600435166109f8565b34156103b457600080fd5b61019a610a16565b34156103c757600080fd5b61019a610a25565b34156103da57600080fd5b61023a610a34565b34156103ed57600080fd5b61019a610a55565b341561040057600080fd5b61019a610a64565b341561041357600080fd5b61023a600435602435610a78565b341561042c57600080fd5b6101c9610b0c565b341561043f57600080fd5b6101c9610b12565b341561045257600080fd5b6101c9610b18565b610185600160a060020a03600435166104c6565b341561047957600080fd5b61023a610b1c565b341561048c57600080fd5b610185600160a060020a0360043516610b3e565b34156104ab57600080fd5b610185610bd9565b34156104be57600080fd5b61019a610c61565b600160a060020a0333166000908152600f602052604090208054340190556104ed81610c70565b50565b601054600160a060020a031681565b60045481565b60025481565b60065481565b60075433600160a060020a0390811691161461052c57600080fd5b600a5460ff16151561053d57600080fd5b600a805460ff191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60055481565b60015442101590565b60075460009033600160a060020a039081169116146105a257600080fd5b6001544290116105b157600080fd5b600083116105be57600080fd5b600082116105cb57600080fd5b600483905560068290557ff4351908e9a9aee47fe6ea2dcd4b7d424ae7d02853bf8362952d6f214c6fcf68838360405191825260208201526040908101905180910390a150600192915050565b60075433600160a060020a0390811691161461063357600080fd5b60075474010000000000000000000000000000000000000000900460ff161561065b57600080fd5b610663610d9f565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16007805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600354600160a060020a031681565b60075460009033600160a060020a039081169116146106f357600080fd5b5060005b8151811015610799576008600083838151811061071057fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff16151561074257610791565b60006008600084848151811061075457fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055600980546000190190555b6001016106f7565b7f82a123ea45b23810ab840ab01938b9165d00c72ca4ccb87852b98fcabc3b2271426009546040519182526040808301919091526060602083018190526007908301527f52656d6f76656400000000000000000000000000000000000000000000000000608083015260a0909101905180910390a15050565b600a5460ff1681565b600160a060020a03331660009081526008602052604081205460ff16151560011461084557600080fd5b50600190565b600d5481565b60015481565b60075460009033600160a060020a0390811691161461087557600080fd5b5060005b8151811015610919576008600083838151811061089257fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff16156108c357610911565b6001600860008484815181106108d557fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790556009805460010190555b600101610879565b7f82a123ea45b23810ab840ab01938b9165d00c72ca4ccb87852b98fcabc3b2271426009546040519182526040808301919091526060602083018190526005908301527f4164646564000000000000000000000000000000000000000000000000000000608083015260a0909101905180910390a15050565b60075433600160a060020a039081169116146109ad57600080fd5b600a5460ff16156109bd57600080fd5b600a805460ff191660011790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600160a060020a031660009081526008602052604090205460ff1690565b600c54600160a060020a031681565b600b54600160a060020a031681565b60075474010000000000000000000000000000000000000000900460ff1681565b600754600160a060020a031681565b600a546101009004600160a060020a031681565b60075460009033600160a060020a03908116911614610a9657600080fd5b600154429011610aa557600080fd5b42831015610ab257600080fd5b82821015610abf57600080fd5b600183905560028290557f9ff25fa4c38b2d43069a74a00766cbe718d80f91bfcddd507579c7f6e0dfb7af838360405191825260208201526040908101905180910390a150600192915050565b60095490565b600e5481565b4290565b600654600554600091901015610b3061104f565b80610b385750805b91505090565b60075433600160a060020a03908116911614610b5957600080fd5b600160a060020a0381161515610b6e57600080fd5b600754600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60075433600160a060020a03908116911614610bf457600080fd5b601054600754600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c4b57600080fd5b6102c65a03f11515610c5c57600080fd5b505050565b600054600160a060020a031681565b600080600160a060020a0383161515610c8857600080fd5b610c90611057565b1515610c9b57600080fd5b600454349250610cb290839063ffffffff6110c916565b600554909150610cc8908363ffffffff6110ff16565b60055560008054600160a060020a0316906340c10f1990859084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d2d57600080fd5b6102c65a03f11515610d3e57600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3610c5c61110e565b600080548190600160a060020a03166318160ddd82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610de957600080fd5b6102c65a03f11515610dfa57600080fd5b50505060405180519250610e17905082600563ffffffff61114416565b60008054600b54929350600160a060020a03908116926340c10f199291169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e8257600080fd5b6102c65a03f11515610e9357600080fd5b5050506040518051505060008054600c54600160a060020a03918216926340c10f19929091169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f0657600080fd5b6102c65a03f11515610f1757600080fd5b5050506040518051505060008054600160a060020a031690637d64bcb490604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610f6a57600080fd5b6102c65a03f11515610f7b57600080fd5b50505060405180515050601054600160a060020a0316633f4ba83a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610fc457600080fd5b6102c65a03f11515610fd557600080fd5b505050610fe0611142565b601054600754600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561103757600080fd5b6102c65a03f1151561104857600080fd5b5050505050565b600254421190565b600d54600090341015818061106b336109f8565b600e54600160a060020a0333166000908152600f6020526040902054919350901115905061109761115b565b80156110a05750825b80156110a95750805b80156110b85750600a5460ff16155b80156110c15750815b935050505090565b6000808315156110dc57600091506110f8565b508282028284828115156110ec57fe5b04146110f457fe5b8091505b5092915050565b6000828201838110156110f457fe5b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561114257600080fd5b565b600080828481151561115257fe5b04949350505050565b600080600654611176346005546110ff90919063ffffffff16565b1115905061118261118e565b8015610b385750919050565b600080600060015442101580156111a757506002544211155b9150503415158180156111b75750805b9250505090565b600a5460108054610100909204600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990921682179055905600a165627a7a72305820d3d66d853a3c923da6315c31339c11b18c35bb1c21346bdf47620ef5cc024c17002900000000000000000000000000000000000000000000032d26d12e980b600000000000000000000000000000000000000000000000000000000000005a689f70000000000000000000000000000000000000000000000000000000005a96c3f00000000000000000000000000000000000000000000000000000000000000b40000000000000000000000000c0b9533525c58594ee6cf30f73ac88655b45f6b3000000000000000000000000327682779bab2bf4d1337e8974ab9de8275a7ca8000000000000000000000000d1a9a2b2e79cbf9a5a55ccb0be8d87a549885ba4000000000000000000000000d1a9a2b2e79cbf9a5a55ccb0be8d87a549885ba4
Deployed Bytecode
0x60606040526004361061017c5763ffffffff60e060020a60003504166323685b9781146101875780632c4e722e146101b65780633197cbb6146101db578063355274ea146101ee5780633f4ba83a146102015780634042b66f1461021457806344691f7e1461022757806346df2ccb1461024e5780634bb278f314610267578063521eb2731461027a578063548db1741461028d5780635c975abb146102dc578063611b4095146102ef5780636e80a8691461030257806378e97925146103155780637f649783146103285780638456cb591461037757806385d330021461038a5780638a77ba1a146103a95780638ab5212b146103bc5780638d4e4083146103cf5780638da5cb5b146103e25780639d76ea58146103f5578063a89acca414610408578063cdbb02af14610421578063cfc450af14610434578063d18e81b314610447578063ec8ac4d81461045a578063ecb70fb71461046e578063f2fde38b14610481578063f43098af146104a0578063fc0c546a146104b3575b610185336104c6565b005b341561019257600080fd5b61019a6104f0565b604051600160a060020a03909116815260200160405180910390f35b34156101c157600080fd5b6101c96104ff565b60405190815260200160405180910390f35b34156101e657600080fd5b6101c9610505565b34156101f957600080fd5b6101c961050b565b341561020c57600080fd5b610185610511565b341561021f57600080fd5b6101c9610575565b341561023257600080fd5b61023a61057b565b604051901515815260200160405180910390f35b341561025957600080fd5b61023a600435602435610584565b341561027257600080fd5b610185610618565b341561028557600080fd5b61019a6106c6565b341561029857600080fd5b61018560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506106d595505050505050565b34156102e757600080fd5b61023a610812565b34156102fa57600080fd5b61023a61081b565b341561030d57600080fd5b6101c961084b565b341561032057600080fd5b6101c9610851565b341561033357600080fd5b610185600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061085795505050505050565b341561038257600080fd5b610185610992565b341561039557600080fd5b61023a600160a060020a03600435166109f8565b34156103b457600080fd5b61019a610a16565b34156103c757600080fd5b61019a610a25565b34156103da57600080fd5b61023a610a34565b34156103ed57600080fd5b61019a610a55565b341561040057600080fd5b61019a610a64565b341561041357600080fd5b61023a600435602435610a78565b341561042c57600080fd5b6101c9610b0c565b341561043f57600080fd5b6101c9610b12565b341561045257600080fd5b6101c9610b18565b610185600160a060020a03600435166104c6565b341561047957600080fd5b61023a610b1c565b341561048c57600080fd5b610185600160a060020a0360043516610b3e565b34156104ab57600080fd5b610185610bd9565b34156104be57600080fd5b61019a610c61565b600160a060020a0333166000908152600f602052604090208054340190556104ed81610c70565b50565b601054600160a060020a031681565b60045481565b60025481565b60065481565b60075433600160a060020a0390811691161461052c57600080fd5b600a5460ff16151561053d57600080fd5b600a805460ff191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60055481565b60015442101590565b60075460009033600160a060020a039081169116146105a257600080fd5b6001544290116105b157600080fd5b600083116105be57600080fd5b600082116105cb57600080fd5b600483905560068290557ff4351908e9a9aee47fe6ea2dcd4b7d424ae7d02853bf8362952d6f214c6fcf68838360405191825260208201526040908101905180910390a150600192915050565b60075433600160a060020a0390811691161461063357600080fd5b60075474010000000000000000000000000000000000000000900460ff161561065b57600080fd5b610663610d9f565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16007805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600354600160a060020a031681565b60075460009033600160a060020a039081169116146106f357600080fd5b5060005b8151811015610799576008600083838151811061071057fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff16151561074257610791565b60006008600084848151811061075457fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055600980546000190190555b6001016106f7565b7f82a123ea45b23810ab840ab01938b9165d00c72ca4ccb87852b98fcabc3b2271426009546040519182526040808301919091526060602083018190526007908301527f52656d6f76656400000000000000000000000000000000000000000000000000608083015260a0909101905180910390a15050565b600a5460ff1681565b600160a060020a03331660009081526008602052604081205460ff16151560011461084557600080fd5b50600190565b600d5481565b60015481565b60075460009033600160a060020a0390811691161461087557600080fd5b5060005b8151811015610919576008600083838151811061089257fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff16156108c357610911565b6001600860008484815181106108d557fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790556009805460010190555b600101610879565b7f82a123ea45b23810ab840ab01938b9165d00c72ca4ccb87852b98fcabc3b2271426009546040519182526040808301919091526060602083018190526005908301527f4164646564000000000000000000000000000000000000000000000000000000608083015260a0909101905180910390a15050565b60075433600160a060020a039081169116146109ad57600080fd5b600a5460ff16156109bd57600080fd5b600a805460ff191660011790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600160a060020a031660009081526008602052604090205460ff1690565b600c54600160a060020a031681565b600b54600160a060020a031681565b60075474010000000000000000000000000000000000000000900460ff1681565b600754600160a060020a031681565b600a546101009004600160a060020a031681565b60075460009033600160a060020a03908116911614610a9657600080fd5b600154429011610aa557600080fd5b42831015610ab257600080fd5b82821015610abf57600080fd5b600183905560028290557f9ff25fa4c38b2d43069a74a00766cbe718d80f91bfcddd507579c7f6e0dfb7af838360405191825260208201526040908101905180910390a150600192915050565b60095490565b600e5481565b4290565b600654600554600091901015610b3061104f565b80610b385750805b91505090565b60075433600160a060020a03908116911614610b5957600080fd5b600160a060020a0381161515610b6e57600080fd5b600754600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60075433600160a060020a03908116911614610bf457600080fd5b601054600754600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c4b57600080fd5b6102c65a03f11515610c5c57600080fd5b505050565b600054600160a060020a031681565b600080600160a060020a0383161515610c8857600080fd5b610c90611057565b1515610c9b57600080fd5b600454349250610cb290839063ffffffff6110c916565b600554909150610cc8908363ffffffff6110ff16565b60055560008054600160a060020a0316906340c10f1990859084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d2d57600080fd5b6102c65a03f11515610d3e57600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3610c5c61110e565b600080548190600160a060020a03166318160ddd82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610de957600080fd5b6102c65a03f11515610dfa57600080fd5b50505060405180519250610e17905082600563ffffffff61114416565b60008054600b54929350600160a060020a03908116926340c10f199291169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e8257600080fd5b6102c65a03f11515610e9357600080fd5b5050506040518051505060008054600c54600160a060020a03918216926340c10f19929091169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f0657600080fd5b6102c65a03f11515610f1757600080fd5b5050506040518051505060008054600160a060020a031690637d64bcb490604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610f6a57600080fd5b6102c65a03f11515610f7b57600080fd5b50505060405180515050601054600160a060020a0316633f4ba83a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610fc457600080fd5b6102c65a03f11515610fd557600080fd5b505050610fe0611142565b601054600754600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561103757600080fd5b6102c65a03f1151561104857600080fd5b5050505050565b600254421190565b600d54600090341015818061106b336109f8565b600e54600160a060020a0333166000908152600f6020526040902054919350901115905061109761115b565b80156110a05750825b80156110a95750805b80156110b85750600a5460ff16155b80156110c15750815b935050505090565b6000808315156110dc57600091506110f8565b508282028284828115156110ec57fe5b04146110f457fe5b8091505b5092915050565b6000828201838110156110f457fe5b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561114257600080fd5b565b600080828481151561115257fe5b04949350505050565b600080600654611176346005546110ff90919063ffffffff16565b1115905061118261118e565b8015610b385750919050565b600080600060015442101580156111a757506002544211155b9150503415158180156111b75750805b9250505090565b600a5460108054610100909204600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990921682179055905600a165627a7a72305820d3d66d853a3c923da6315c31339c11b18c35bb1c21346bdf47620ef5cc024c170029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000032d26d12e980b600000000000000000000000000000000000000000000000000000000000005a689f70000000000000000000000000000000000000000000000000000000005a96c3f00000000000000000000000000000000000000000000000000000000000000b40000000000000000000000000c0b9533525c58594ee6cf30f73ac88655b45f6b3000000000000000000000000327682779bab2bf4d1337e8974ab9de8275a7ca8000000000000000000000000d1a9a2b2e79cbf9a5a55ccb0be8d87a549885ba4000000000000000000000000d1a9a2b2e79cbf9a5a55ccb0be8d87a549885ba4
-----Decoded View---------------
Arg [0] : _cap (uint256): 15000000000000000000000
Arg [1] : _startTime (uint256): 1516806000
Arg [2] : _endTime (uint256): 1519830000
Arg [3] : _rate (uint256): 2880
Arg [4] : _wallet (address): 0xC0B9533525C58594ee6cF30F73aC88655B45F6b3
Arg [5] : _tokenAddress (address): 0x327682779bAB2BF4d1337e8974ab9dE8275A7Ca8
Arg [6] : _teamVault (address): 0xd1a9A2B2E79cbF9A5a55CcB0bE8D87a549885Ba4
Arg [7] : _companyVault (address): 0xd1a9A2B2E79cbF9A5a55CcB0bE8D87a549885Ba4
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000032d26d12e980b600000
Arg [1] : 000000000000000000000000000000000000000000000000000000005a689f70
Arg [2] : 000000000000000000000000000000000000000000000000000000005a96c3f0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000b40
Arg [4] : 000000000000000000000000c0b9533525c58594ee6cf30f73ac88655b45f6b3
Arg [5] : 000000000000000000000000327682779bab2bf4d1337e8974ab9de8275a7ca8
Arg [6] : 000000000000000000000000d1a9a2b2e79cbf9a5a55ccb0be8d87a549885ba4
Arg [7] : 000000000000000000000000d1a9a2b2e79cbf9a5a55ccb0be8d87a549885ba4
Swarm Source
bzzr://d3d66d853a3c923da6315c31339c11b18c35bb1c21346bdf47620ef5cc024c17
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.