More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 236 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 7419948 | 2002 days ago | IN | 0.00000001 ETH | 0.00006695 | ||||
Transfer | 6537282 | 2157 days ago | IN | 0 ETH | 0.00008927 | ||||
Finalize | 6026073 | 2242 days ago | IN | 0 ETH | 0.00779758 | ||||
Assign Tokens To... | 5856439 | 2271 days ago | IN | 0 ETH | 0.00008199 | ||||
Assign Tokens To... | 5851484 | 2272 days ago | IN | 0 ETH | 0.01864923 | ||||
Assign Tokens To... | 5851479 | 2272 days ago | IN | 0 ETH | 0.04855026 | ||||
Assign Tokens To... | 5851441 | 2272 days ago | IN | 0 ETH | 0.00251796 | ||||
Assign Tokens To... | 5851438 | 2272 days ago | IN | 0 ETH | 0.02619915 | ||||
Assign Tokens To... | 5851366 | 2272 days ago | IN | 0 ETH | 0.03257778 | ||||
Assign Tokens To... | 5851339 | 2272 days ago | IN | 0 ETH | 0.02115045 | ||||
Transfer | 5850855 | 2272 days ago | IN | 0.26135179 ETH | 0.00196326 | ||||
Transfer | 5849742 | 2272 days ago | IN | 0.002 ETH | 0.00131122 | ||||
Transfer | 5849575 | 2272 days ago | IN | 0.001 ETH | 0.00131122 | ||||
Transfer | 5843021 | 2273 days ago | IN | 0.10120603 ETH | 0.00261768 | ||||
Transfer | 5839952 | 2274 days ago | IN | 0.05 ETH | 0.00131122 | ||||
Transfer | 5835908 | 2275 days ago | IN | 0.1 ETH | 0.00241326 | ||||
Assign Tokens To... | 5834957 | 2275 days ago | IN | 0 ETH | 0.00165144 | ||||
Transfer | 5834668 | 2275 days ago | IN | 1 ETH | 0.00241326 | ||||
Transfer | 5827079 | 2276 days ago | IN | 0.6 ETH | 0.00241326 | ||||
Assign Tokens To... | 5822076 | 2277 days ago | IN | 0 ETH | 0.00027407 | ||||
Assign Tokens To... | 5816667 | 2278 days ago | IN | 0 ETH | 0.00094655 | ||||
Assign Tokens To... | 5815758 | 2278 days ago | IN | 0 ETH | 0.00353411 | ||||
Transfer | 5812749 | 2279 days ago | IN | 0.6 ETH | 0.00329812 | ||||
Transfer | 5810420 | 2279 days ago | IN | 0.1 ETH | 0.00329812 | ||||
Transfer | 5809392 | 2279 days ago | IN | 0.40252457 ETH | 0.00046656 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5850855 | 2272 days ago | 0.26135179 ETH | ||||
5843021 | 2273 days ago | 0.10120603 ETH | ||||
5835908 | 2275 days ago | 0.1 ETH | ||||
5834668 | 2275 days ago | 1 ETH | ||||
5827079 | 2276 days ago | 0.6 ETH | ||||
5812749 | 2279 days ago | 0.6 ETH | ||||
5810420 | 2279 days ago | 0.1 ETH | ||||
5809392 | 2279 days ago | 0.40252457 ETH | ||||
5782436 | 2284 days ago | 0.11 ETH | ||||
5782129 | 2284 days ago | 0.16 ETH | ||||
5777443 | 2285 days ago | 0.28 ETH | ||||
5777170 | 2285 days ago | 0.121 ETH | ||||
5763467 | 2287 days ago | 0.15 ETH | ||||
5724116 | 2294 days ago | 0.1 ETH | ||||
5715343 | 2296 days ago | 0.2 ETH | ||||
5706764 | 2297 days ago | 0.25 ETH | ||||
5693909 | 2299 days ago | 0.2507 ETH | ||||
5693635 | 2300 days ago | 0.249 ETH | ||||
5693413 | 2300 days ago | 0.1 ETH | ||||
5691334 | 2300 days ago | 0.5 ETH | ||||
5691052 | 2300 days ago | 0.32 ETH | ||||
5666366 | 2304 days ago | 0.29 ETH | ||||
5657657 | 2306 days ago | 0.26767682 ETH | ||||
5656923 | 2306 days ago | 0.1 ETH | ||||
5651418 | 2307 days ago | 0.1 ETH |
Loading...
Loading
Contract Name:
HardcapCrowdsale
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-12 */ pragma solidity ^0.4.18; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ 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; } /** * @dev Integer division of two numbers, truncating the quotient. */ 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 a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @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; } } /** * @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 { function totalSupply() public view returns (uint256); 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; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @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]); 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]; } } /** * @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 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; } } /** * @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; } } /** * @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); } } /** * @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); } } /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract BurnableToken is BasicToken { event Burn(address indexed burner, uint256 value); /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public { require(_value <= balances[msg.sender]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure address burner = msg.sender; balances[burner] = balances[burner].sub(_value); totalSupply_ = totalSupply_.sub(_value); Burn(burner, _value); Transfer(burner, address(0), _value); } } /* HardcapToken is PausableToken and on the creation it is paused. It is made so because you don't want token to be transferable etc, while your ico is not over. */ contract HardcapToken is CappedToken, PausableToken, BurnableToken { uint256 private constant TOKEN_CAP = 100 * 10**24; string public constant name = "Welltrado token"; string public constant symbol = "WTL"; uint8 public constant decimals = 18; function HardcapToken() public CappedToken(TOKEN_CAP) { paused = true; } } contract HardcapCrowdsale is Ownable { using SafeMath for uint256; struct Phase { uint256 capTo; uint256 rate; } uint256 private constant TEAM_PERCENTAGE = 10; uint256 private constant PLATFORM_PERCENTAGE = 25; uint256 private constant CROWDSALE_PERCENTAGE = 65; uint256 private constant MIN_TOKENS_TO_PURCHASE = 100 * 10**18; uint256 private constant ICO_TOKENS_CAP = 65 * 10**24; uint256 private constant FINAL_CLOSING_TIME = 1529928000; uint256 private constant INITIAL_START_DATE = 1524484800; uint256 public phase = 0; HardcapToken public token; address public wallet; address public platform; address public assigner; address public teamTokenHolder; uint256 public weiRaised; bool public isFinalized = false; uint256 public openingTime = 1524484800; uint256 public closingTime = 1525089600; uint256 public finalizedTime; mapping (uint256 => Phase) private phases; event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); event TokenAssigned(address indexed purchaser, address indexed beneficiary, uint256 amount); event Finalized(); modifier onlyAssginer() { require(msg.sender == assigner); _; } function HardcapCrowdsale(address _wallet, address _platform, address _assigner, HardcapToken _token) public { require(_wallet != address(0)); require(_assigner != address(0)); require(_platform != address(0)); require(_token != address(0)); wallet = _wallet; platform = _platform; assigner = _assigner; token = _token; // phases capTo means that totalSupply must reach it to change the phase phases[0] = Phase(15 * 10**23, 1250); phases[1] = Phase(10 * 10**24, 1200); phases[2] = Phase(17 * 10**24, 1150); phases[3] = Phase(24 * 10**24, 1100); phases[4] = Phase(31 * 10**24, 1070); phases[5] = Phase(38 * 10**24, 1050); phases[6] = Phase(47 * 10**24, 1030); phases[7] = Phase(56 * 10**24, 1000); phases[8] = Phase(65 * 10**24, 1000); } function () external payable { buyTokens(msg.sender); } /* contract for teams tokens lockup */ function setTeamTokenHolder(address _teamTokenHolder) onlyOwner public { require(_teamTokenHolder != address(0)); // should allow set only once require(teamTokenHolder == address(0)); teamTokenHolder = _teamTokenHolder; } function buyTokens(address _beneficiary) public payable { _processTokensPurchase(_beneficiary, msg.value); } /* It may be needed to assign tokens in batches if multiple clients invested in any other crypto currency. NOTE: this will fail if there are not enough tokens left for at least one investor. for this to work all investors must get all their tokens. */ function assignTokensToMultipleInvestors(address[] _beneficiaries, uint256[] _tokensAmount) onlyAssginer public { require(_beneficiaries.length == _tokensAmount.length); for (uint i = 0; i < _tokensAmount.length; i++) { _processTokensAssgin(_beneficiaries[i], _tokensAmount[i]); } } /* If investmend was made in bitcoins etc. owner can assign apropriate amount of tokens to the investor. */ function assignTokens(address _beneficiary, uint256 _tokensAmount) onlyAssginer public { _processTokensAssgin(_beneficiary, _tokensAmount); } function finalize() onlyOwner public { require(teamTokenHolder != address(0)); require(!isFinalized); require(_hasClosed()); require(finalizedTime == 0); HardcapToken _token = HardcapToken(token); // assign each counterparty their share uint256 _tokenCap = _token.totalSupply().mul(100).div(CROWDSALE_PERCENTAGE); require(_token.mint(teamTokenHolder, _tokenCap.mul(TEAM_PERCENTAGE).div(100))); require(_token.mint(platform, _tokenCap.mul(PLATFORM_PERCENTAGE).div(100))); // mint and burn all leftovers uint256 _tokensToBurn = _token.cap().sub(_token.totalSupply()); require(_token.mint(address(this), _tokensToBurn)); _token.burn(_tokensToBurn); require(_token.finishMinting()); _token.transferOwnership(wallet); Finalized(); finalizedTime = _getTime(); isFinalized = true; } function _hasClosed() internal view returns (bool) { return _getTime() > FINAL_CLOSING_TIME || token.totalSupply() >= ICO_TOKENS_CAP; } function _processTokensAssgin(address _beneficiary, uint256 _tokenAmount) internal { _preValidateAssign(_beneficiary, _tokenAmount); // calculate token amount to be created uint256 _leftowers = 0; uint256 _tokens = 0; uint256 _currentSupply = token.totalSupply(); bool _phaseChanged = false; Phase memory _phase = phases[phase]; while (_tokenAmount > 0 && _currentSupply < ICO_TOKENS_CAP) { _leftowers = _phase.capTo.sub(_currentSupply); // check if it is possible to assign more than there is available in this phase if (_leftowers < _tokenAmount) { _tokens = _tokens.add(_leftowers); _tokenAmount = _tokenAmount.sub(_leftowers); phase = phase + 1; _phaseChanged = true; } else { _tokens = _tokens.add(_tokenAmount); _tokenAmount = 0; } _currentSupply = token.totalSupply().add(_tokens); _phase = phases[phase]; } require(_tokens >= MIN_TOKENS_TO_PURCHASE || _currentSupply == ICO_TOKENS_CAP); // if phase changes forward the date of the next phase change by 7 days if (_phaseChanged) { _changeClosingTime(); } require(HardcapToken(token).mint(_beneficiary, _tokens)); TokenAssigned(msg.sender, _beneficiary, _tokens); } function _processTokensPurchase(address _beneficiary, uint256 _weiAmount) internal { _preValidatePurchase(_beneficiary, _weiAmount); // calculate token amount to be created uint256 _leftowers = 0; uint256 _weiReq = 0; uint256 _weiSpent = 0; uint256 _tokens = 0; uint256 _currentSupply = token.totalSupply(); bool _phaseChanged = false; Phase memory _phase = phases[phase]; while (_weiAmount > 0 && _currentSupply < ICO_TOKENS_CAP) { _leftowers = _phase.capTo.sub(_currentSupply); _weiReq = _leftowers.div(_phase.rate); // check if it is possible to purchase more than there is available in this phase if (_weiReq < _weiAmount) { _tokens = _tokens.add(_leftowers); _weiAmount = _weiAmount.sub(_weiReq); _weiSpent = _weiSpent.add(_weiReq); phase = phase + 1; _phaseChanged = true; } else { _tokens = _tokens.add(_weiAmount.mul(_phase.rate)); _weiSpent = _weiSpent.add(_weiAmount); _weiAmount = 0; } _currentSupply = token.totalSupply().add(_tokens); _phase = phases[phase]; } require(_tokens >= MIN_TOKENS_TO_PURCHASE || _currentSupply == ICO_TOKENS_CAP); // if phase changes forward the date of the next phase change by 7 days if (_phaseChanged) { _changeClosingTime(); } // return leftovers to investor if tokens are over but he sent more ehters. if (msg.value > _weiSpent) { uint256 _overflowAmount = msg.value.sub(_weiSpent); _beneficiary.transfer(_overflowAmount); } weiRaised = weiRaised.add(_weiSpent); require(HardcapToken(token).mint(_beneficiary, _tokens)); TokenPurchase(msg.sender, _beneficiary, _weiSpent, _tokens); // You can access this method either buying tokens or assigning tokens to // someone. In the previous case you won't be sending any ehter to contract // so no need to forward any funds to wallet. if (msg.value > 0) { wallet.transfer(_weiSpent); } } function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal { // if the phase time ended calculate next phase end time and set new phase if (closingTime < _getTime() && closingTime < FINAL_CLOSING_TIME && phase < 8) { phase = phase.add(_calcPhasesPassed()); _changeClosingTime(); } require(_getTime() > INITIAL_START_DATE); require(_getTime() >= openingTime && _getTime() <= closingTime); require(_beneficiary != address(0)); require(_weiAmount != 0); require(phase <= 8); require(token.totalSupply() < ICO_TOKENS_CAP); require(!isFinalized); } function _preValidateAssign(address _beneficiary, uint256 _tokenAmount) internal { // if the phase time ended calculate next phase end time and set new phase if (closingTime < _getTime() && closingTime < FINAL_CLOSING_TIME && phase < 8) { phase = phase.add(_calcPhasesPassed()); _changeClosingTime(); } // should not allow to assign tokens to team members require(_beneficiary != assigner); require(_beneficiary != platform); require(_beneficiary != wallet); require(_beneficiary != teamTokenHolder); require(_getTime() >= openingTime && _getTime() <= closingTime); require(_beneficiary != address(0)); require(_tokenAmount > 0); require(phase <= 8); require(token.totalSupply() < ICO_TOKENS_CAP); require(!isFinalized); } function _changeClosingTime() internal { closingTime = _getTime() + 7 days; if (closingTime > FINAL_CLOSING_TIME) { closingTime = FINAL_CLOSING_TIME; } } function _calcPhasesPassed() internal view returns(uint256) { return _getTime().sub(closingTime).div(7 days).add(1); } function _getTime() internal view returns (uint256) { return now; } } contract TeamTokenHolder is Ownable { using SafeMath for uint256; uint256 private LOCKUP_TIME = 24; // in months HardcapCrowdsale crowdsale; HardcapToken token; uint256 public collectedTokens; function TeamTokenHolder(address _owner, address _crowdsale, address _token) public { owner = _owner; crowdsale = HardcapCrowdsale(_crowdsale); token = HardcapToken(_token); } /* @notice The Dev (Owner) will call this method to extract the tokens */ function collectTokens() public onlyOwner { uint256 balance = token.balanceOf(address(this)); uint256 total = collectedTokens.add(balance); uint256 finalizedTime = crowdsale.finalizedTime(); require(finalizedTime > 0 && getTime() >= finalizedTime.add(months(3))); uint256 canExtract = total.mul(getTime().sub(finalizedTime)).div(months(LOCKUP_TIME)); canExtract = canExtract.sub(collectedTokens); if (canExtract > balance) { canExtract = balance; } collectedTokens = collectedTokens.add(canExtract); assert(token.transfer(owner, canExtract)); TokensWithdrawn(owner, canExtract); } function months(uint256 m) internal pure returns (uint256) { return m.mul(30 days); } function getTime() internal view returns (uint256) { return now; } /* Safety Methods */ /* @notice This method can be used by the controller to extract mistakenly sent tokens to this contract. @param _token The address of the token contract that you want to recover set to 0 in case you want to extract ether. */ function claimTokens(address _token) public onlyOwner { require(_token != address(token)); if (_token == 0x0) { owner.transfer(this.balance); return; } HardcapToken _hardcapToken = HardcapToken(_token); uint256 balance = _hardcapToken.balanceOf(this); _hardcapToken.transfer(owner, balance); ClaimedTokens(_token, owner, balance); } event ClaimedTokens(address indexed _token, address indexed _controller, uint256 _amount); event TokensWithdrawn(address indexed _holder, uint256 _amount); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_teamTokenHolder","type":"address"}],"name":"setTeamTokenHolder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"assigner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiaries","type":"address[]"},{"name":"_tokensAmount","type":"uint256[]"}],"name":"assignTokensToMultipleInvestors","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":"closingTime","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":"platform","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_tokensAmount","type":"uint256"}],"name":"assignTokens","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":"teamTokenHolder","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":"phase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"openingTime","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":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"},{"constant":true,"inputs":[],"name":"finalizedTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_wallet","type":"address"},{"name":"_platform","type":"address"},{"name":"_assigner","type":"address"},{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenAssigned","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
606060405260006001556000600860006101000a81548160ff021916908315150217905550635addcac0600955635ae70540600a55341561003f57600080fd5b60405160808061283483398101604052808051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156100f257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561012e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561016a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156101a657600080fd5b83600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408051908101604052806a013da329b633647180000081526020016104e2815250600c6000808152602001908152602001600020600082015181600001556020820151816001015590505060408051908101604052806a084595161401484a00000081526020016104b0815250600c600060018152602001908152602001600020600082015181600001556020820151816001015590505060408051908101604052806a0e0fe3d8bb9bc7b1000000815260200161047e815250600c600060028152602001908152602001600020600082015181600001556020820151816001015590505060408051908101604052806a13da329b63364718000000815260200161044c815250600c600060038152602001908152602001600020600082015181600001556020820151816001015590505060408051908101604052806a19a4815e0ad0c67f000000815260200161042e815250600c600060048152602001908152602001600020600082015181600001556020820151816001015590505060408051908101604052806a1f6ed020b26b45e6000000815260200161041a815250600c600060058152602001908152602001600020600082015181600001556020820151816001015590505060408051908101604052806a26e0a31af79fa08f0000008152602001610406815250600c600060068152602001908152602001600020600082015181600001556020820151816001015590505060408051908101604052806a2e5276153cd3fb3800000081526020016103e8815250600c600060078152602001908152602001600020600082015181600001556020820151816001015590505060408051908101604052806a35c4490f820855e100000081526020016103e8815250600c6000600881526020019081526020016000206000820151816000015560208201518160010155905050505050506122c3806105716000396000f3006060604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a67dfbb1461010757806319973261146101405780631cbfbe47146101955780634042b66f1461022f5780634b6753bc146102585780634bb278f3146102815780634bde38c8146102965780634d7edc15146102eb578063521eb2731461032d578063566c37de146103825780638d4e4083146103d75780638da5cb5b14610404578063b1c9fe6e14610459578063b7a8807c14610482578063ec8ac4d8146104ab578063f2fde38b146104d9578063fc0c546a14610512578063fe67a18914610567575b61010533610590565b005b341561011257600080fd5b61013e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061059d565b005b341561014b57600080fd5b6101536106d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101a057600080fd5b61022d600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506106fb565b005b341561023a57600080fd5b6102426107c1565b6040518082815260200191505060405180910390f35b341561026357600080fd5b61026b6107c7565b6040518082815260200191505060405180910390f35b341561028c57600080fd5b6102946107cd565b005b34156102a157600080fd5b6102a9610f9e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102f657600080fd5b61032b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fc4565b005b341561033857600080fd5b61034061102e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561038d57600080fd5b610395611054565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103e257600080fd5b6103ea61107a565b604051808215151515815260200191505060405180910390f35b341561040f57600080fd5b61041761108d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046457600080fd5b61046c6110b2565b6040518082815260200191505060405180910390f35b341561048d57600080fd5b6104956110b8565b6040518082815260200191505060405180910390f35b6104d7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610590565b005b34156104e457600080fd5b610510600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110be565b005b341561051d57600080fd5b610525611213565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057257600080fd5b61057a611239565b6040518082815260200191505060405180910390f35b61059a813461123f565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105f857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561063457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561069157600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561075957600080fd5b8151835114151561076957600080fd5b600090505b81518110156107bc576107af838281518110151561078857fe5b9060200190602002015183838151811015156107a057fe5b906020019060200201516117a1565b808060010191505061076e565b505050565b60075481565b600a5481565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561082d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561088b57600080fd5b600860009054906101000a900460ff161515156108a757600080fd5b6108af611bad565b15156108ba57600080fd5b6000600b541415156108cb57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250610990604161098260648673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561095d57600080fd5b5af1151561096a57600080fd5b50505060405180519050611c7390919063ffffffff16565b611cae90919063ffffffff16565b91508273ffffffffffffffffffffffffffffffffffffffff166340c10f19600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166109f860646109ea600a88611c7390919063ffffffff16565b611cae90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a7c57600080fd5b5af11515610a8957600080fd5b505050604051805190501515610a9e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166340c10f19600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b046064610af6601988611c7390919063ffffffff16565b611cae90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610b8857600080fd5b5af11515610b9557600080fd5b505050604051805190501515610baa57600080fd5b610caf8373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610c1057600080fd5b5af11515610c1d57600080fd5b505050604051805190508473ffffffffffffffffffffffffffffffffffffffff1663355274ea6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610c8a57600080fd5b5af11515610c9757600080fd5b50505060405180519050611cc490919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610d5357600080fd5b5af11515610d6057600080fd5b505050604051805190501515610d7557600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166342966c68826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515610de357600080fd5b5af11515610df057600080fd5b5050508273ffffffffffffffffffffffffffffffffffffffff16637d64bcb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610e5657600080fd5b5af11515610e6357600080fd5b505050604051805190501515610e7857600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663f2fde38b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610f3457600080fd5b5af11515610f4157600080fd5b5050507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1610f78611cdd565b600b819055506001600860006101000a81548160ff021916908315150217905550505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561102057600080fd5b61102a82826117a1565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561115557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60008060008060008061125061227d565b600061125c8a8a611ce5565b60009750600096506000955060009450600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156112f157600080fd5b5af115156112fe57600080fd5b50505060405180519050935060009250600c600060015481526020019081526020016000206040805190810160405290816000820154815260200160018201548152505091505b60008911801561135f57506a35c4490f820855e100000084105b156115215761137b848360000151611cc490919063ffffffff16565b9750611394826020015189611cae90919063ffffffff16565b9650888710156113f1576113b18886611eb890919063ffffffff16565b94506113c6878a611cc490919063ffffffff16565b98506113db8787611eb890919063ffffffff16565b9550600180540160018190555060019250611436565b61141a61140b83602001518b611c7390919063ffffffff16565b86611eb890919063ffffffff16565b945061142f8987611eb890919063ffffffff16565b9550600098505b6114e485600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156114bf57600080fd5b5af115156114cc57600080fd5b50505060405180519050611eb890919063ffffffff16565b9350600c60006001548152602001908152602001600020604080519081016040529081600082015481526020016001820154815250509150611345565b68056bc75e2d631000008510158061154357506a35c4490f820855e100000084145b151561154e57600080fd5b821561155d5761155c611ed6565b5b853411156115bb576115788634611cc490919063ffffffff16565b90508973ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156115ba57600080fd5b5b6115d086600754611eb890919063ffffffff16565b600781905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f198b876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561169a57600080fd5b5af115156116a757600080fd5b5050506040518051905015156116bc57600080fd5b8973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188888604051808381526020018281526020019250505060405180910390a3600034111561179557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f19350505050151561179457600080fd5b5b50505050505050505050565b6000806000806117af61227d565b6117b98787611f05565b6000945060009350600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561184657600080fd5b5af1151561185357600080fd5b50505060405180519050925060009150600c600060015481526020019081526020016000206040805190810160405290816000820154815260200160018201548152505090505b6000861180156118b457506a35c4490f820855e100000083105b15611a1d576118d0838260000151611cc490919063ffffffff16565b945085851015611918576118ed8585611eb890919063ffffffff16565b93506119028587611cc490919063ffffffff16565b9550600180540160018190555060019150611932565b61192b8685611eb890919063ffffffff16565b9350600095505b6119e084600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156119bb57600080fd5b5af115156119c857600080fd5b50505060405180519050611eb890919063ffffffff16565b9250600c6000600154815260200190815260200160002060408051908101604052908160008201548152602001600182015481525050905061189a565b68056bc75e2d6310000084101580611a3f57506a35c4490f820855e100000083145b1515611a4a57600080fd5b8115611a5957611a58611ed6565b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611b1d57600080fd5b5af11515611b2a57600080fd5b505050604051805190501515611b3f57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc45d529961bae877898a6e38b099f73be1637abbd03e841e8ef9c93110f6e06d866040518082815260200191505060405180910390a350505050505050565b6000635b30d940611bbc611cdd565b1180611c6e57506a35c4490f820855e1000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611c5457600080fd5b5af11515611c6157600080fd5b5050506040518051905010155b905090565b6000806000841415611c885760009150611ca7565b8284029050828482811515611c9957fe5b04141515611ca357fe5b8091505b5092915050565b60008183811515611cbb57fe5b04905092915050565b6000828211151515611cd257fe5b818303905092915050565b600042905090565b611ced611cdd565b600a54108015611d025750635b30d940600a54105b8015611d1057506008600154105b15611d4057611d31611d20612232565b600154611eb890919063ffffffff16565b600181905550611d3f611ed6565b5b635addcac0611d4d611cdd565b111515611d5957600080fd5b600954611d64611cdd565b10158015611d7b5750600a54611d78611cdd565b11155b1515611d8657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611dc257600080fd5b60008114151515611dd257600080fd5b600860015411151515611de457600080fd5b6a35c4490f820855e1000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611e7557600080fd5b5af11515611e8257600080fd5b50505060405180519050101515611e9857600080fd5b600860009054906101000a900460ff16151515611eb457600080fd5b5050565b6000808284019050838110151515611ecc57fe5b8091505092915050565b62093a80611ee2611cdd565b01600a81905550635b30d940600a541115611f0357635b30d940600a819055505b565b611f0d611cdd565b600a54108015611f225750635b30d940600a54105b8015611f3057506008600154105b15611f6057611f51611f40612232565b600154611eb890919063ffffffff16565b600181905550611f5f611ed6565b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611fbd57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561201a57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561207757600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156120d457600080fd5b6009546120df611cdd565b101580156120f65750600a546120f3611cdd565b11155b151561210157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561213d57600080fd5b60008111151561214c57600080fd5b60086001541115151561215e57600080fd5b6a35c4490f820855e1000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156121ef57600080fd5b5af115156121fc57600080fd5b5050506040518051905010151561221257600080fd5b600860009054906101000a900460ff1615151561222e57600080fd5b5050565b6000612278600161226a62093a8061225c600a5461224e611cdd565b611cc490919063ffffffff16565b611cae90919063ffffffff16565b611eb890919063ffffffff16565b905090565b6040805190810160405280600081526020016000815250905600a165627a7a7230582084cbafc0c0359eaf5fdb47ca833ea8bff1a79db9fa3fd6d998d1b434af18dd6400290000000000000000000000008c5a5e27ae3937e0c07e5ac555d73f388a5fbd9c0000000000000000000000008c5a5e27ae3937e0c07e5ac555d73f388a5fbd9c000000000000000000000000cd03e9585120c439db70da981fe8692ea68b25090000000000000000000000009a0587eae7ef64b2b38a10442a44cfa43edd7d2a
Deployed Bytecode
0x6060604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a67dfbb1461010757806319973261146101405780631cbfbe47146101955780634042b66f1461022f5780634b6753bc146102585780634bb278f3146102815780634bde38c8146102965780634d7edc15146102eb578063521eb2731461032d578063566c37de146103825780638d4e4083146103d75780638da5cb5b14610404578063b1c9fe6e14610459578063b7a8807c14610482578063ec8ac4d8146104ab578063f2fde38b146104d9578063fc0c546a14610512578063fe67a18914610567575b61010533610590565b005b341561011257600080fd5b61013e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061059d565b005b341561014b57600080fd5b6101536106d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101a057600080fd5b61022d600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506106fb565b005b341561023a57600080fd5b6102426107c1565b6040518082815260200191505060405180910390f35b341561026357600080fd5b61026b6107c7565b6040518082815260200191505060405180910390f35b341561028c57600080fd5b6102946107cd565b005b34156102a157600080fd5b6102a9610f9e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102f657600080fd5b61032b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fc4565b005b341561033857600080fd5b61034061102e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561038d57600080fd5b610395611054565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103e257600080fd5b6103ea61107a565b604051808215151515815260200191505060405180910390f35b341561040f57600080fd5b61041761108d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046457600080fd5b61046c6110b2565b6040518082815260200191505060405180910390f35b341561048d57600080fd5b6104956110b8565b6040518082815260200191505060405180910390f35b6104d7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610590565b005b34156104e457600080fd5b610510600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110be565b005b341561051d57600080fd5b610525611213565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057257600080fd5b61057a611239565b6040518082815260200191505060405180910390f35b61059a813461123f565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105f857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561063457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561069157600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561075957600080fd5b8151835114151561076957600080fd5b600090505b81518110156107bc576107af838281518110151561078857fe5b9060200190602002015183838151811015156107a057fe5b906020019060200201516117a1565b808060010191505061076e565b505050565b60075481565b600a5481565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561082d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561088b57600080fd5b600860009054906101000a900460ff161515156108a757600080fd5b6108af611bad565b15156108ba57600080fd5b6000600b541415156108cb57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250610990604161098260648673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561095d57600080fd5b5af1151561096a57600080fd5b50505060405180519050611c7390919063ffffffff16565b611cae90919063ffffffff16565b91508273ffffffffffffffffffffffffffffffffffffffff166340c10f19600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166109f860646109ea600a88611c7390919063ffffffff16565b611cae90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610a7c57600080fd5b5af11515610a8957600080fd5b505050604051805190501515610a9e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166340c10f19600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b046064610af6601988611c7390919063ffffffff16565b611cae90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610b8857600080fd5b5af11515610b9557600080fd5b505050604051805190501515610baa57600080fd5b610caf8373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610c1057600080fd5b5af11515610c1d57600080fd5b505050604051805190508473ffffffffffffffffffffffffffffffffffffffff1663355274ea6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610c8a57600080fd5b5af11515610c9757600080fd5b50505060405180519050611cc490919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610d5357600080fd5b5af11515610d6057600080fd5b505050604051805190501515610d7557600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166342966c68826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515610de357600080fd5b5af11515610df057600080fd5b5050508273ffffffffffffffffffffffffffffffffffffffff16637d64bcb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610e5657600080fd5b5af11515610e6357600080fd5b505050604051805190501515610e7857600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663f2fde38b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610f3457600080fd5b5af11515610f4157600080fd5b5050507f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1610f78611cdd565b600b819055506001600860006101000a81548160ff021916908315150217905550505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561102057600080fd5b61102a82826117a1565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561115557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b60008060008060008061125061227d565b600061125c8a8a611ce5565b60009750600096506000955060009450600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156112f157600080fd5b5af115156112fe57600080fd5b50505060405180519050935060009250600c600060015481526020019081526020016000206040805190810160405290816000820154815260200160018201548152505091505b60008911801561135f57506a35c4490f820855e100000084105b156115215761137b848360000151611cc490919063ffffffff16565b9750611394826020015189611cae90919063ffffffff16565b9650888710156113f1576113b18886611eb890919063ffffffff16565b94506113c6878a611cc490919063ffffffff16565b98506113db8787611eb890919063ffffffff16565b9550600180540160018190555060019250611436565b61141a61140b83602001518b611c7390919063ffffffff16565b86611eb890919063ffffffff16565b945061142f8987611eb890919063ffffffff16565b9550600098505b6114e485600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156114bf57600080fd5b5af115156114cc57600080fd5b50505060405180519050611eb890919063ffffffff16565b9350600c60006001548152602001908152602001600020604080519081016040529081600082015481526020016001820154815250509150611345565b68056bc75e2d631000008510158061154357506a35c4490f820855e100000084145b151561154e57600080fd5b821561155d5761155c611ed6565b5b853411156115bb576115788634611cc490919063ffffffff16565b90508973ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156115ba57600080fd5b5b6115d086600754611eb890919063ffffffff16565b600781905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f198b876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561169a57600080fd5b5af115156116a757600080fd5b5050506040518051905015156116bc57600080fd5b8973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188888604051808381526020018281526020019250505060405180910390a3600034111561179557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f19350505050151561179457600080fd5b5b50505050505050505050565b6000806000806117af61227d565b6117b98787611f05565b6000945060009350600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561184657600080fd5b5af1151561185357600080fd5b50505060405180519050925060009150600c600060015481526020019081526020016000206040805190810160405290816000820154815260200160018201548152505090505b6000861180156118b457506a35c4490f820855e100000083105b15611a1d576118d0838260000151611cc490919063ffffffff16565b945085851015611918576118ed8585611eb890919063ffffffff16565b93506119028587611cc490919063ffffffff16565b9550600180540160018190555060019150611932565b61192b8685611eb890919063ffffffff16565b9350600095505b6119e084600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156119bb57600080fd5b5af115156119c857600080fd5b50505060405180519050611eb890919063ffffffff16565b9250600c6000600154815260200190815260200160002060408051908101604052908160008201548152602001600182015481525050905061189a565b68056bc75e2d6310000084101580611a3f57506a35c4490f820855e100000083145b1515611a4a57600080fd5b8115611a5957611a58611ed6565b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611b1d57600080fd5b5af11515611b2a57600080fd5b505050604051805190501515611b3f57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc45d529961bae877898a6e38b099f73be1637abbd03e841e8ef9c93110f6e06d866040518082815260200191505060405180910390a350505050505050565b6000635b30d940611bbc611cdd565b1180611c6e57506a35c4490f820855e1000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611c5457600080fd5b5af11515611c6157600080fd5b5050506040518051905010155b905090565b6000806000841415611c885760009150611ca7565b8284029050828482811515611c9957fe5b04141515611ca357fe5b8091505b5092915050565b60008183811515611cbb57fe5b04905092915050565b6000828211151515611cd257fe5b818303905092915050565b600042905090565b611ced611cdd565b600a54108015611d025750635b30d940600a54105b8015611d1057506008600154105b15611d4057611d31611d20612232565b600154611eb890919063ffffffff16565b600181905550611d3f611ed6565b5b635addcac0611d4d611cdd565b111515611d5957600080fd5b600954611d64611cdd565b10158015611d7b5750600a54611d78611cdd565b11155b1515611d8657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611dc257600080fd5b60008114151515611dd257600080fd5b600860015411151515611de457600080fd5b6a35c4490f820855e1000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611e7557600080fd5b5af11515611e8257600080fd5b50505060405180519050101515611e9857600080fd5b600860009054906101000a900460ff16151515611eb457600080fd5b5050565b6000808284019050838110151515611ecc57fe5b8091505092915050565b62093a80611ee2611cdd565b01600a81905550635b30d940600a541115611f0357635b30d940600a819055505b565b611f0d611cdd565b600a54108015611f225750635b30d940600a54105b8015611f3057506008600154105b15611f6057611f51611f40612232565b600154611eb890919063ffffffff16565b600181905550611f5f611ed6565b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611fbd57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561201a57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561207757600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156120d457600080fd5b6009546120df611cdd565b101580156120f65750600a546120f3611cdd565b11155b151561210157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561213d57600080fd5b60008111151561214c57600080fd5b60086001541115151561215e57600080fd5b6a35c4490f820855e1000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156121ef57600080fd5b5af115156121fc57600080fd5b5050506040518051905010151561221257600080fd5b600860009054906101000a900460ff1615151561222e57600080fd5b5050565b6000612278600161226a62093a8061225c600a5461224e611cdd565b611cc490919063ffffffff16565b611cae90919063ffffffff16565b611eb890919063ffffffff16565b905090565b6040805190810160405280600081526020016000815250905600a165627a7a7230582084cbafc0c0359eaf5fdb47ca833ea8bff1a79db9fa3fd6d998d1b434af18dd640029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008c5a5e27ae3937e0c07e5ac555d73f388a5fbd9c0000000000000000000000008c5a5e27ae3937e0c07e5ac555d73f388a5fbd9c000000000000000000000000cd03e9585120c439db70da981fe8692ea68b25090000000000000000000000009a0587eae7ef64b2b38a10442a44cfa43edd7d2a
-----Decoded View---------------
Arg [0] : _wallet (address): 0x8c5A5e27aE3937E0c07E5AC555d73f388A5fBD9c
Arg [1] : _platform (address): 0x8c5A5e27aE3937E0c07E5AC555d73f388A5fBD9c
Arg [2] : _assigner (address): 0xCd03e9585120C439DB70dA981FE8692EA68b2509
Arg [3] : _token (address): 0x9a0587EaE7eF64b2B38A10442a44CfA43EDd7D2A
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000008c5a5e27ae3937e0c07e5ac555d73f388a5fbd9c
Arg [1] : 0000000000000000000000008c5a5e27ae3937e0c07e5ac555d73f388a5fbd9c
Arg [2] : 000000000000000000000000cd03e9585120c439db70da981fe8692ea68b2509
Arg [3] : 0000000000000000000000009a0587eae7ef64b2b38a10442a44cfa43edd7d2a
Swarm Source
bzzr://84cbafc0c0359eaf5fdb47ca833ea8bff1a79db9fa3fd6d998d1b434af18dd64
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 25 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.