More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 60 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Fund Minting... | 4954688 | 2496 days ago | IN | 0 ETH | 0.00119932 | ||||
Halt | 4954389 | 2496 days ago | IN | 0 ETH | 0.00109832 | ||||
Set Start Time T... | 4651184 | 2549 days ago | IN | 0 ETH | 0.00069008 | ||||
Transfer | 4578684 | 2561 days ago | IN | 0.5 ETH | 0.00157378 | ||||
Transfer | 4578554 | 2561 days ago | IN | 0.1 ETH | 0.00401313 | ||||
Transfer | 4578202 | 2561 days ago | IN | 0.6 ETH | 0.00157378 | ||||
Transfer | 4577967 | 2561 days ago | IN | 0.3 ETH | 0.00165246 | ||||
Transfer | 4577774 | 2561 days ago | IN | 0.4 ETH | 0.00165246 | ||||
Transfer | 4577413 | 2561 days ago | IN | 0.2 ETH | 0.00165246 | ||||
Transfer | 4576460 | 2561 days ago | IN | 1 ETH | 0.00157378 | ||||
Transfer | 4571860 | 2562 days ago | IN | 0.1 ETH | 0.00157378 | ||||
Transfer | 4571860 | 2562 days ago | IN | 1.2 ETH | 0.00157378 | ||||
Transfer | 4570172 | 2562 days ago | IN | 1 ETH | 0.00133746 | ||||
Transfer | 4569961 | 2563 days ago | IN | 0.04 ETH | 0.00050514 | ||||
Transfer | 4569207 | 2563 days ago | IN | 0.61 ETH | 0.0016682 | ||||
Transfer | 4569022 | 2563 days ago | IN | 0.05 ETH | 0.00053039 | ||||
Transfer | 4568999 | 2563 days ago | IN | 0.05 ETH | 0.00053039 | ||||
Transfer | 4568000 | 2563 days ago | IN | 0.4 ETH | 0.00188853 | ||||
Transfer | 4565505 | 2563 days ago | IN | 0.1 ETH | 0.00157378 | ||||
Transfer | 4565378 | 2563 days ago | IN | 0.5 ETH | 0.00159738 | ||||
Transfer | 4564228 | 2563 days ago | IN | 0.5 ETH | 0.00165246 | ||||
Transfer | 4559277 | 2564 days ago | IN | 0.043 ETH | 0.00050514 | ||||
Transfer | 4556344 | 2565 days ago | IN | 3.06 ETH | 0.00164759 | ||||
Transfer | 4551946 | 2565 days ago | IN | 0.1 ETH | 0.00164759 | ||||
Transfer | 4544163 | 2567 days ago | IN | 0.3 ETH | 0.00157698 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
4578684 | 2561 days ago | 0.5 ETH | ||||
4578554 | 2561 days ago | 0.1 ETH | ||||
4578202 | 2561 days ago | 0.6 ETH | ||||
4578081 | 2561 days ago | 0.280598 ETH | ||||
4578081 | 2561 days ago | 0.280598 ETH | ||||
4577967 | 2561 days ago | 0.3 ETH | ||||
4577774 | 2561 days ago | 0.4 ETH | ||||
4577413 | 2561 days ago | 0.2 ETH | ||||
4576460 | 2561 days ago | 1 ETH | ||||
4571860 | 2562 days ago | 0.1 ETH | ||||
4571860 | 2562 days ago | 1.2 ETH | ||||
4570172 | 2562 days ago | 1 ETH | ||||
4569207 | 2563 days ago | 0.61 ETH | ||||
4568000 | 2563 days ago | 0.4 ETH | ||||
4565505 | 2563 days ago | 0.1 ETH | ||||
4565378 | 2563 days ago | 0.5 ETH | ||||
4564228 | 2563 days ago | 0.5 ETH | ||||
4556344 | 2565 days ago | 3.06 ETH | ||||
4551946 | 2565 days ago | 0.1 ETH | ||||
4544163 | 2567 days ago | 0.3 ETH | ||||
4541271 | 2567 days ago | 0.2 ETH | ||||
4536643 | 2568 days ago | 5 ETH | ||||
4533469 | 2568 days ago | 0.1 ETH | ||||
4533431 | 2568 days ago | 0.1 ETH | ||||
4529276 | 2569 days ago | 20 ETH |
Loading...
Loading
Contract Name:
McFlyCrowdsale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-11-06 */ pragma solidity ^0.4.15; library SafeMath { function mul(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() { 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) onlyOwner public { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); // 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 constant returns (uint256 balance) { return balances[_owner]; } } contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) 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)); uint256 _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // require (_value <= _allowance); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = _allowance.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 constant returns (uint256 remaining) { 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) returns (bool success) { 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) returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract MintableToken is StandardToken, Ownable { event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished); _; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); Transfer(0x0, _to, _amount); return true; } /** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() onlyOwner public returns (bool) { mintingFinished = true; MintFinished(); return true; } } contract McFlyToken is MintableToken { string public constant name = 'McFly'; string public constant symbol = 'MFL'; uint8 public constant decimals = 18; mapping(address=>bool) whitelist; event Burn(address indexed from, uint256 value); event AllowTransfer(address from); modifier canTransfer() { require(mintingFinished || whitelist[msg.sender]); _; } function allowTransfer(address from) onlyOwner { AllowTransfer(from); whitelist[from] = true; } function transferFrom(address from, address to, uint256 value) canTransfer returns (bool) { return super.transferFrom(from, to, value); } function transfer(address to, uint256 value) canTransfer returns (bool) { return super.transfer(to, value); } function burn(address from) onlyOwner returns (bool) { Transfer(from, 0x0, balances[from]); Burn(from, balances[from]); balances[0x0] += balances[from]; balances[from] = 0; } } contract MultiOwners { event AccessGrant(address indexed owner); event AccessRevoke(address indexed owner); mapping(address => bool) owners; address public publisher; function MultiOwners() { owners[msg.sender] = true; publisher = msg.sender; } modifier onlyOwner() { require(owners[msg.sender] == true); _; } function isOwner() constant returns (bool) { return owners[msg.sender] ? true : false; } function checkOwner(address maybe_owner) constant returns (bool) { return owners[maybe_owner] ? true : false; } function grant(address _owner) onlyOwner { owners[_owner] = true; AccessGrant(_owner); } function revoke(address _owner) onlyOwner { require(_owner != publisher); require(msg.sender != _owner); owners[_owner] = false; AccessRevoke(_owner); } } contract Haltable is MultiOwners { bool public halted; modifier stopInEmergency { require(!halted); _; } modifier onlyInEmergency { require(halted); _; } // called by the owner on emergency, triggers stopped state function halt() external onlyOwner { halted = true; } // called by the owner on end of emergency, returns to normal state function unhalt() external onlyOwner onlyInEmergency { halted = false; } } contract McFlyCrowdsale is MultiOwners, Haltable { using SafeMath for uint256; // min wei per tx for TLP 1.1 uint256 public minimalWeiTLP1 = 1e17; // 0.1 ETH uint256 public priceTLP1 = 1e14; // 0.0001 ETH // min wei per tx for TLP 1.2 uint256 public minimalWeiTLP2 = 2e17; // 0.2 ETH uint256 public priceTLP2 = 2e14; // 0.0002 ETH // Total ETH received during WAVES, TLP1.1 and TLP1.2 uint256 public totalETH; // Token McFlyToken public token; // Withdraw wallet address public wallet; // start and end timestamp for TLP 1.1, endTimeTLP1 calculate from startTimeTLP1 uint256 public startTimeTLP1; uint256 public endTimeTLP1; uint256 daysTLP1 = 12 days; // start and end timestamp for TLP 1.2, endTimeTLP2 calculate from startTimeTLP2 uint256 public startTimeTLP2; uint256 public endTimeTLP2; uint256 daysTLP2 = 24 days; // Percents uint256 fundPercents = 15; uint256 teamPercents = 10; uint256 reservedPercents = 10; uint256 bountyOnlinePercents = 2; uint256 bountyOfflinePercents = 3; uint256 advisoryPercents = 5; // Cap // maximum possible tokens for minting uint256 public hardCapInTokens = 1800e24; // 1,800,000,000 MFL // maximum possible tokens for sell uint256 public mintCapInTokens = hardCapInTokens.mul(70).div(100); // 1,260,000,000 MFL // maximum possible tokens for fund minting uint256 public fundTokens = hardCapInTokens.mul(fundPercents).div(100); // 270,000,000 MFL uint256 public fundTotalSupply; address public fundMintingAgent; // Rewards // WAVES // maximum possible tokens to convert from WAVES uint256 public wavesTokens = 100e24; // 100,000,000 MFL address public wavesAgent; // Team 10% uint256 teamVestingPeriodInSeconds = 31 days; uint256 teamVestingPeriodsCount = 12; uint256 _teamTokens; uint256 public teamTotalSupply; address public teamWallet; // Bounty 5% (2% + 3%) // Bounty online 2% uint256 _bountyOnlineTokens; address public bountyOnlineWallet; // Bounty offline 3% uint256 _bountyOfflineTokens; address public bountyOfflineWallet; // Advisory 5% uint256 _advisoryTokens; address public advisoryWallet; // Reserved for future 10% uint256 _reservedTokens; address public reservedWallet; event TokenPurchase(address indexed beneficiary, uint256 value, uint256 amount); event TransferOddEther(address indexed beneficiary, uint256 value); event FundMinting(address indexed beneficiary, uint256 value); event TeamVesting(address indexed beneficiary, uint256 period, uint256 value); event SetFundMintingAgent(address new_agent); event SetStartTimeTLP1(uint256 new_startTimeTLP1); event SetStartTimeTLP2(uint256 new_startTimeTLP2); modifier validPurchase() { bool nonZeroPurchase = msg.value != 0; require(withinPeriod() && nonZeroPurchase); _; } function McFlyCrowdsale( uint256 _startTimeTLP1, uint256 _startTimeTLP2, address _wallet, address _wavesAgent, address _fundMintingAgent, address _teamWallet, address _bountyOnlineWallet, address _bountyOfflineWallet, address _advisoryWallet, address _reservedWallet ) { require(_startTimeTLP1 >= block.timestamp); require(_startTimeTLP2 > _startTimeTLP1); require(_wallet != 0x0); require(_wavesAgent != 0x0); require(_fundMintingAgent != 0x0); require(_teamWallet != 0x0); require(_bountyOnlineWallet != 0x0); require(_bountyOfflineWallet != 0x0); require(_advisoryWallet != 0x0); require(_reservedWallet != 0x0); token = new McFlyToken(); startTimeTLP1 = _startTimeTLP1; endTimeTLP1 = startTimeTLP1.add(daysTLP1); require(endTimeTLP1 < _startTimeTLP2); startTimeTLP2 = _startTimeTLP2; endTimeTLP2 = startTimeTLP2.add(daysTLP2); wavesAgent = _wavesAgent; fundMintingAgent = _fundMintingAgent; wallet = _wallet; teamWallet = _teamWallet; bountyOnlineWallet = _bountyOnlineWallet; bountyOfflineWallet = _bountyOfflineWallet; advisoryWallet = _advisoryWallet; reservedWallet = _reservedWallet; totalETH = wavesTokens.mul(priceTLP1.mul(65).div(100)).div(1e18); // 6500 for 100,000,000 MFL from WAVES token.mint(wavesAgent, wavesTokens); token.allowTransfer(wavesAgent); } function withinPeriod() constant public returns (bool) { bool withinPeriodTLP1 = (now >= startTimeTLP1 && now <= endTimeTLP1); bool withinPeriodTLP2 = (now >= startTimeTLP2 && now <= endTimeTLP2); return withinPeriodTLP1 || withinPeriodTLP2; } // @return false if crowdsale event was ended function running() constant public returns (bool) { return withinPeriod() && !token.mintingFinished(); } function teamTokens() constant public returns (uint256) { if(_teamTokens > 0) { return _teamTokens; } return token.totalSupply().mul(teamPercents).div(70); } function bountyOnlineTokens() constant public returns (uint256) { if(_bountyOnlineTokens > 0) { return _bountyOnlineTokens; } return token.totalSupply().mul(bountyOnlinePercents).div(70); } function bountyOfflineTokens() constant public returns (uint256) { if(_bountyOfflineTokens > 0) { return _bountyOfflineTokens; } return token.totalSupply().mul(bountyOfflinePercents).div(70); } function advisoryTokens() constant public returns (uint256) { if(_advisoryTokens > 0) { return _advisoryTokens; } return token.totalSupply().mul(advisoryPercents).div(70); } function reservedTokens() constant public returns (uint256) { if(_reservedTokens > 0) { return _reservedTokens; } return token.totalSupply().mul(reservedPercents).div(70); } // @return current stage name function stageName() constant public returns (string) { bool beforePeriodTLP1 = (now < startTimeTLP1); bool withinPeriodTLP1 = (now >= startTimeTLP1 && now <= endTimeTLP1); bool betweenPeriodTLP1andTLP2 = (now >= endTimeTLP1 && now <= startTimeTLP2); bool withinPeriodTLP2 = (now >= startTimeTLP2 && now <= endTimeTLP2); if(beforePeriodTLP1) { return 'Not started'; } if(withinPeriodTLP1) { return 'TLP1.1'; } if(betweenPeriodTLP1andTLP2) { return 'Between TLP1.1 and TLP1.2'; } if(withinPeriodTLP2) { return 'TLP1.2'; } return 'Finished'; } /* * @dev fallback for processing ether */ function() payable { return buyTokens(msg.sender); } /* * @dev change agent for waves minting * @praram agent - new agent address */ function setFundMintingAgent(address agent) onlyOwner { fundMintingAgent = agent; SetFundMintingAgent(agent); } /* * @dev set TLP1.2 start date * @param _at â new start date */ function setStartTimeTLP2(uint256 _at) onlyOwner { require(block.timestamp < startTimeTLP2); // forbid change time when TLP1.2 is active require(block.timestamp < _at); // should be great than current block timestamp require(endTimeTLP1 < _at); // should be great than end TLP1.1 startTimeTLP2 = _at; endTimeTLP2 = startTimeTLP2.add(daysTLP2); SetStartTimeTLP2(_at); } /* * @dev set TLP1.1 start date * @param _at - new start date */ function setStartTimeTLP1(uint256 _at) onlyOwner { require(block.timestamp < startTimeTLP1); // forbid change time when TLP1.1 is active require(block.timestamp < _at); // should be great than current block timestamp startTimeTLP1 = _at; endTimeTLP1 = startTimeTLP1.add(daysTLP1); SetStartTimeTLP1(_at); } /* * @dev Large Token Holder minting * @param to - mint to address * @param amount - how much mint */ function fundMinting(address to, uint256 amount) stopInEmergency { require(msg.sender == fundMintingAgent || isOwner()); require(block.timestamp <= startTimeTLP2); require(fundTotalSupply + amount <= fundTokens); require(token.totalSupply() + amount <= mintCapInTokens); fundTotalSupply = fundTotalSupply.add(amount); FundMinting(to, amount); token.mint(to, amount); } /* * @dev calculate amount * @param _value - ether to be converted to tokens * @param at - current time * @param _totalSupply - total supplied tokens * @return tokens amount that we should send to our dear investor * @return odd ethers amount, which contract should send back */ function calcAmountAt( uint256 amount, uint256 at, uint256 _totalSupply ) public constant returns (uint256, uint256) { uint256 estimate; uint256 discount; uint256 price; if(at >= startTimeTLP1 && at <= endTimeTLP1) { /* 35% 0.0650 | 1 ETH -> 1 / (100-35) * 100 / 0.1 * 1000 = 15384.61538461538 MFL 30% 0.0700 | 1 ETH -> 1 / (100-30) * 100 / 0.1 * 1000 = 14285.714287 MFL 15% 0.0850 | 1 ETH -> 1 / (100-15) * 100 / 0.1 * 1000 = 11764.705882352941 MFL 0% 0.1000 | 1 ETH -> 1 / (100-0) * 100 / 0.1 * 1000 = 10000 MFL */ require(amount >= minimalWeiTLP1); price = priceTLP1; if(at < startTimeTLP1 + 3 days) { discount = 65; // 100-35 = 0.065 ETH per 1000 MFL } else if(at < startTimeTLP1 + 6 days) { discount = 70; // 100-30 = 0.07 ETH per 1000 MFL } else if(at < startTimeTLP1 + 9 days) { discount = 85; // 100-15 = 0.085 ETH per 1000 MFL } else if(at < startTimeTLP1 + 12 days) { discount = 100; // 100 = 0.1 ETH per 1000 MFL } else { revert(); } } else if(at >= startTimeTLP2 && at <= endTimeTLP2) { /* -40% 0.12 | 1 ETH -> 1 / (100-40) * 100 / 0.2 * 1000 = 8333.3333333333 MFL -30% 0.14 | 1 ETH -> 1 / (100-30) * 100 / 0.2 * 1000 = 7142.8571428571 MFL -20% 0.16 | 1 ETH -> 1 / (100-20) * 100 / 0.2 * 1000 = 6250 MFL -10% 0.18 | 1 ETH -> 1 / (100-10) * 100 / 0.2 * 1000 = 5555.5555555556 MFL 0% 0.20 | 1 ETH -> 1 / (100-0) * 100 / 0.2 * 1000 = 5000 MFL 10% 0.22 | 1 ETH -> 1 / (100+10) * 100 / 0.2 * 1000 = 4545.4545454545 MFL 20% 0.24 | 1 ETH -> 1 / (100+20) * 100 / 0.2 * 1000 = 4166.6666666667 MFL 30% 0.26 | 1 ETH -> 1 / (100+30) * 100 / 0.2 * 1000 = 3846.1538461538 MFL */ require(amount >= minimalWeiTLP2); price = priceTLP2; if(at < startTimeTLP2 + 3 days) { discount = 60; // 100-40 = 0.12 ETH per 1000 MFL } else if(at < startTimeTLP2 + 6 days) { discount = 70; // 100-30 = 0.14 ETH per 1000 MFL } else if(at < startTimeTLP2 + 9 days) { discount = 80; // 100-20 = 0.16 ETH per 1000 MFL } else if(at < startTimeTLP2 + 12 days) { discount = 90; // 100-10 = 0.18 ETH per 1000 MFL } else if(at < startTimeTLP2 + 15 days) { discount = 100; // 100 = 0.2 ETH per 1000 MFL } else if(at < startTimeTLP2 + 18 days) { discount = 110; // 100+10 = 0.22 ETH per 1000 MFL } else if(at < startTimeTLP2 + 21 days) { discount = 120; // 100+20 = 0.24 ETH per 1000 MFL } else if(at < startTimeTLP2 + 24 days) { discount = 130; // 100+30 = 0.26 ETH per 1000 MFL } else { revert(); } } else { revert(); } price = price.mul(discount).div(100); estimate = _totalSupply.add(amount.mul(1e18).div(price)); if(estimate > mintCapInTokens) { return ( mintCapInTokens.sub(_totalSupply), estimate.sub(mintCapInTokens).mul(price).div(1e18) ); } return (estimate.sub(_totalSupply), 0); } /* * @dev sell token and send to contributor address * @param contributor address */ function buyTokens(address contributor) payable stopInEmergency validPurchase public { uint256 amount; uint256 odd_ethers; uint256 ethers; (amount, odd_ethers) = calcAmountAt(msg.value, block.timestamp, token.totalSupply()); require(contributor != 0x0) ; require(amount + token.totalSupply() <= mintCapInTokens); ethers = (msg.value - odd_ethers); token.mint(contributor, amount); // fail if minting is finished TokenPurchase(contributor, ethers, amount); totalETH += ethers; if(odd_ethers > 0) { require(odd_ethers < msg.value); TransferOddEther(contributor, odd_ethers); contributor.transfer(odd_ethers); } wallet.transfer(ethers); } function teamWithdraw() public { require(token.mintingFinished()); require(msg.sender == teamWallet || isOwner()); uint256 currentPeriod = (block.timestamp).sub(endTimeTLP2).div(teamVestingPeriodInSeconds); if(currentPeriod > teamVestingPeriodsCount) { currentPeriod = teamVestingPeriodsCount; } uint256 tokenAvailable = _teamTokens.mul(currentPeriod).div(teamVestingPeriodsCount).sub(teamTotalSupply); require(teamTotalSupply + tokenAvailable <= _teamTokens); teamTotalSupply = teamTotalSupply.add(tokenAvailable); TeamVesting(teamWallet, currentPeriod, tokenAvailable); token.transfer(teamWallet, tokenAvailable); } function finishCrowdsale() onlyOwner public { require(now > endTimeTLP2 || mintCapInTokens == token.totalSupply()); require(!token.mintingFinished()); uint256 _totalSupply = token.totalSupply(); // rewards _teamTokens = _totalSupply.mul(teamPercents).div(70); // 180,000,000 MFL token.mint(this, _teamTokens); // mint to contract address _reservedTokens = _totalSupply.mul(reservedPercents).div(70); // 180,000,000 MFL token.mint(reservedWallet, _reservedTokens); _advisoryTokens = _totalSupply.mul(advisoryPercents).div(70); // 90,000,000 MFL token.mint(advisoryWallet, _advisoryTokens); _bountyOfflineTokens = _totalSupply.mul(bountyOfflinePercents).div(70); // 54,000,000 MFL token.mint(bountyOfflineWallet, _bountyOfflineTokens); _bountyOnlineTokens = _totalSupply.mul(bountyOnlinePercents).div(70); // 36,000,000 MFL token.mint(bountyOnlineWallet, _bountyOnlineTokens); token.finishMinting(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"withinPeriod","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reservedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceTLP1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisoryTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardCapInTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_at","type":"uint256"}],"name":"setStartTimeTLP1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundMintingAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bountyOfflineTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"agent","type":"address"}],"name":"setFundMintingAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stageName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTimeTLP2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"grant","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minimalWeiTLP2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintCapInTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_at","type":"uint256"}],"name":"setStartTimeTLP2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"endTimeTLP2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"publisher","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wavesAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTimeTLP1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"},{"name":"at","type":"uint256"},{"name":"_totalSupply","type":"uint256"}],"name":"calcAmountAt","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bountyOnlineWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reservedWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"fundMinting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"teamWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"running","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bountyOfflineWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceTLP2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisoryWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"maybe_owner","type":"address"}],"name":"checkOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contributor","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"bountyOnlineTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wavesTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimalWeiTLP1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTimeTLP1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTimeTLP1","type":"uint256"},{"name":"_startTimeTLP2","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_wavesAgent","type":"address"},{"name":"_fundMintingAgent","type":"address"},{"name":"_teamWallet","type":"address"},{"name":"_bountyOnlineWallet","type":"address"},{"name":"_bountyOfflineWallet","type":"address"},{"name":"_advisoryWallet","type":"address"},{"name":"_reservedWallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TransferOddEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"FundMinting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"period","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TeamVesting","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"new_agent","type":"address"}],"name":"SetFundMintingAgent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"new_startTimeTLP1","type":"uint256"}],"name":"SetStartTimeTLP1","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"new_startTimeTLP2","type":"uint256"}],"name":"SetStartTimeTLP2","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"AccessGrant","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"AccessRevoke","type":"event"}]
Contract Creation Code
606060405267016345785d8a0000600255655af3107a40006003556702c68af0bb14000060045565b5e620f48000600555620fd200600b55621fa400600e55600f8055600a601055600a6011556002601255600360135560056014556b05d0ecd38610e6d408000000601555620000ac6064620000976046601554620004f66401000000000262001e26179091906401000000009004565b9064010000000062001e516200052482021704565b601655600f54601554620000d691606491620000979164010000000062001e26620004f682021704565b6017556a52b7d2dcc80cd2e4000000601a556228de80601c55600c601d5534156200010057600080fd5b604051610140806200317083398101604052808051919060200180519190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051600160a060020a0333166000818152602081905260409020805460ff191660019081179091558054600160a060020a0319169091179055915050428a10156200019c57600080fd5b898911620001a957600080fd5b600160a060020a0388161515620001bf57600080fd5b600160a060020a0387161515620001d557600080fd5b600160a060020a0386161515620001eb57600080fd5b600160a060020a03851615156200020157600080fd5b600160a060020a03841615156200021757600080fd5b600160a060020a03831615156200022d57600080fd5b600160a060020a03821615156200024357600080fd5b600160a060020a03811615156200025957600080fd5b620002636200054c565b604051809103906000f08015156200027a57600080fd5b60078054600160a060020a031916600160a060020a039290921691909117905560098a9055600b54620002bd908b906401000000006200053c810262001e681704565b600a819055899010620002cf57600080fd5b600c899055600e54620002f2908a9064010000000062001e686200053c82021704565b600d55601b8054600160a060020a0319908116600160a060020a038a8116919091179092556019805482168984161790556008805482168b841617905560208054821688841617905560228054821687841617905560248054821686841617905560268054821685841617905560288054909116918316919091179055600354620003be90670de0b6b3a7640000906200009790620003a69060649083906041640100000000620004f6810262001e261704565b601a549064010000000062001e26620004f682021704565b600655600754601b54601a54600160a060020a03928316926340c10f199216906000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156200044457600080fd5b6102c65a03f115156200045657600080fd5b50505060405180515050600754601b54600160a060020a039182169163b3490bfc91166040517c010000000000000000000000000000000000000000000000000000000063ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620004d157600080fd5b6102c65a03f11515620004e357600080fd5b505050505050505050505050506200055d565b60008282028315806200051457508284828115156200051157fe5b04145b15156200051d57fe5b9392505050565b60008082848115156200053357fe5b04949350505050565b6000828201838110156200051d57fe5b604051610d3c806200243483390190565b611ec7806200056d6000396000f30060606040526004361061022c5763ffffffff60e060020a600035041663063575de811461023757806315a553471461025e5780631613520f14610283578063175beead146102965780631da9ea0c146102a957806336bdee74146102bc578063373a7c01146102cf5780633af7c521146102e257806348688367146102f8578063492eec25146103275780634ee0cd981461033a57806350637dd214610359578063521eb273146103e357806359927044146103f65780635db5d1fb146104095780635ed7ca5b1461041c57806370284d191461042f57806370d1e6b41461044e57806374a8f103146104615780637a63c290146104805780637ba7d15e146104935780638875a40b146104a95780638c72c54e146104bc5780638f32d59b146104cf5780639af9f012146104e25780639f7ed5b8146104f5578063b65c3a7f14610508578063b80cdcf61461053c578063b9a683001461054f578063b9b8af0b14610562578063c22ab4e014610575578063c3e3c7bc14610588578063c4834c301461059b578063c7669337146105ae578063cb3e64fd146105d0578063cfbb7d36146105e3578063d85bd526146105f6578063dbf76c0314610609578063dc1cb47b1461061c578063dc4937901461062f578063e0e3671c14610642578063ec8ac4d814610661578063f4db9ad114610675578063fac6525614610688578063fc0c546a1461069b578063fcae08e1146106ae578063fe6e0441146106c1578063ff7e17b6146106d4575b610235336106e7565b005b341561024257600080fd5b61024a6109ac565b604051901515815260200160405180910390f35b341561026957600080fd5b6102716109ed565b60405190815260200160405180910390f35b341561028e57600080fd5b610271610a92565b34156102a157600080fd5b610271610a98565b34156102b457600080fd5b610271610b04565b34156102c757600080fd5b610271610b0a565b34156102da57600080fd5b610271610b10565b34156102ed57600080fd5b610235600435610b16565b341561030357600080fd5b61030b610bad565b604051600160a060020a03909116815260200160405180910390f35b341561033257600080fd5b610271610bbc565b341561034557600080fd5b610235600160a060020a0360043516610c28565b341561036457600080fd5b61036c610cba565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103a8578082015183820152602001610390565b50505050905090810190601f1680156103d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103ee57600080fd5b61030b610e4a565b341561040157600080fd5b61030b610e59565b341561041457600080fd5b610271610e68565b341561042757600080fd5b610235610e6e565b341561043a57600080fd5b610235600160a060020a0360043516610ebe565b341561045957600080fd5b610271610f3b565b341561046c57600080fd5b610235600160a060020a0360043516610f41565b341561048b57600080fd5b610271610ff7565b341561049e57600080fd5b610235600435610ffd565b34156104b457600080fd5b6102716110a3565b34156104c757600080fd5b61030b6110a9565b34156104da57600080fd5b61024a6110b8565b34156104ed57600080fd5b61030b6110e5565b341561050057600080fd5b6102716110f4565b341561051357600080fd5b6105246004356024356044356110fa565b60405191825260208201526040908101905180910390f35b341561054757600080fd5b610235611342565b341561055a57600080fd5b61030b611849565b341561056d57600080fd5b61024a611858565b341561058057600080fd5b61030b611868565b341561059357600080fd5b610271611877565b34156105a657600080fd5b6102716118e3565b34156105b957600080fd5b610235600160a060020a03600435166024356118e9565b34156105db57600080fd5b610235611a94565b34156105ee57600080fd5b610235611af6565b341561060157600080fd5b61024a611cc6565b341561061457600080fd5b61030b611d3f565b341561062757600080fd5b610271611d4e565b341561063a57600080fd5b61030b611d54565b341561064d57600080fd5b61024a600160a060020a0360043516611d63565b610235600160a060020a03600435166106e7565b341561068057600080fd5b610271611d93565b341561069357600080fd5b610271611dff565b34156106a657600080fd5b61030b611e05565b34156106b957600080fd5b610271611e14565b34156106cc57600080fd5b610271611e1a565b34156106df57600080fd5b610271611e20565b6001546000908190819060a060020a900460ff161561070557600080fd5b3415156107106109ac565b80156107195750805b151561072457600080fd5b6007546107949034904290600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561077457600080fd5b6102c65a03f1151561078557600080fd5b505050604051805190506110fa565b9094509250600160a060020a03851615156107ae57600080fd5b601654600754600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156107f957600080fd5b6102c65a03f1151561080a57600080fd5b5050506040518051905085011115151561082357600080fd5b600754348490039250600160a060020a03166340c10f19868660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561088857600080fd5b6102c65a03f1151561089957600080fd5b50505060405180515050600160a060020a0385167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f838660405191825260208201526040908101905180910390a2600680548301905560008311156109725734831061090457600080fd5b84600160a060020a03167f16d873cff9de7921f3cd6c67e737126fc5ab6aae623efc1470cab72c438ab4648460405190815260200160405180910390a2600160a060020a03851683156108fc0284604051600060405180830381858888f19350505050151561097257600080fd5b600854600160a060020a031682156108fc0283604051600060405180830381858888f1935050505015156109a557600080fd5b5050505050565b600080600060095442101580156109c55750600a544211155b9150600c5442101580156109db5750600d544211155b905081806109e65750805b9250505090565b6000806027541115610a025750602754610a8f565b601154600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b6102c65a03f11515610a6a57600080fd5b505050604051805191905063ffffffff611e2616565b9063ffffffff611e5116565b90505b90565b60035481565b6000806025541115610aad5750602554610a8f565b601454600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b60155481565b60065481565b60185481565b600160a060020a03331660009081526020819052604090205460ff161515600114610b4057600080fd5b6009544210610b4e57600080fd5b42819010610b5b57600080fd5b6009819055600b54610b7490829063ffffffff611e6816565b600a557fc3be6e8da3b9afc51094cdf21d1f4ff71ee9905fa13879534ace9827d8d696aa8160405190815260200160405180910390a150565b601954600160a060020a031681565b6000806023541115610bd15750602354610a8f565b601354600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b600160a060020a03331660009081526020819052604090205460ff161515600114610c5257600080fd5b6019805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790557ff5e47163842070f64bd51e37365975ce344fe9ce93956fb810ada1455b3692a481604051600160a060020a03909116815260200160405180910390a150565b610cc2611e89565b600954421060008080831584610cda5750600a544211155b9250600a544210158015610cf05750600c544211155b9150600c544210158015610d065750600d544211155b90508315610d495760408051908101604052600b81527f4e6f74207374617274656400000000000000000000000000000000000000000060208201529450610e43565b8215610d8a5760408051908101604052600681527f544c50312e31000000000000000000000000000000000000000000000000000060208201529450610e43565b8115610dcb5760408051908101604052601981527f4265747765656e20544c50312e3120616e6420544c50312e320000000000000060208201529450610e43565b8015610e0c5760408051908101604052600681527f544c50312e32000000000000000000000000000000000000000000000000000060208201529450610e43565b60408051908101604052600881527f46696e6973686564000000000000000000000000000000000000000000000000602082015294505b5050505090565b600854600160a060020a031681565b602054600160a060020a031681565b600c5481565b600160a060020a03331660009081526020819052604090205460ff161515600114610e9857600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a179055565b600160a060020a03331660009081526020819052604090205460ff161515600114610ee857600080fd5b600160a060020a03811660008181526020819052604090819020805460ff191660011790557f1350a997c6c86bcc51dd7e51f7ef618d620e6a85d8fdabb82a980c149ad88d47905160405180910390a250565b60045481565b600160a060020a03331660009081526020819052604090205460ff161515600114610f6b57600080fd5b600154600160a060020a0382811691161415610f8657600080fd5b80600160a060020a031633600160a060020a031614151515610fa757600080fd5b600160a060020a03811660008181526020819052604090819020805460ff191690557f1d1eff42eefbeecfca7e39f8adb5d7f19a7ebbb4c3e82c51f2500d7d76ab2468905160405180910390a250565b60165481565b600160a060020a03331660009081526020819052604090205460ff16151560011461102757600080fd5b600c54421061103557600080fd5b4281901061104257600080fd5b600a5481901061105157600080fd5b600c819055600e5461106a90829063ffffffff611e6816565b600d557f643e1aa51d78dc0ead8ac810cbbeac224f15436e37c9e955607e7409d315f5bf8160405190815260200160405180910390a150565b600d5481565b600154600160a060020a031681565b600160a060020a03331660009081526020819052604081205460ff166110df576000610a8c565b50600190565b601b54600160a060020a031681565b60095481565b600080600080600060095487101580156111165750600a548711155b156111985760025488101561112a57600080fd5b506003546009546203f480018710156111465760419150611193565b6009546207e9000187101561115e5760469150611193565b600954620bdd80018710156111765760559150611193565b600954620fd2000187101561118e5760649150611193565b600080fd5b611284565b600c5487101580156111ac5750600d548711155b1561118e576004548810156111c057600080fd5b50600554600c546203f480018710156111dc57603c9150611193565b600c546207e900018710156111f45760469150611193565b600c54620bdd800187101561120c5760509150611193565b600c54620fd2000187101561122457605a9150611193565b600c546213c6800187101561123c5760649150611193565b600c546217bb000187101561125457606e9150611193565b600c54621baf800187101561126c5760789150611193565b600c54621fa4000187101561118e5760829150611193565b6112996064610a80838563ffffffff611e2616565b90506112c76112ba82610a808b670de0b6b3a764000063ffffffff611e2616565b879063ffffffff611e6816565b9250601654831115611320576016546112e6908763ffffffff611e7716565b611317670de0b6b3a7640000610a808461130b60165489611e7790919063ffffffff16565b9063ffffffff611e2616565b94509450611337565b611330838763ffffffff611e7716565b9450600093505b505050935093915050565b600160a060020a03331660009081526020819052604081205460ff16151560011461136c57600080fd5b600d544211806113df5750600754600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156113bf57600080fd5b6102c65a03f115156113d057600080fd5b50505060405180519050601654145b15156113ea57600080fd5b600754600160a060020a03166305d2035b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561143257600080fd5b6102c65a03f1151561144357600080fd5b505050604051805115905061145757600080fd5b600754600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561149f57600080fd5b6102c65a03f115156114b057600080fd5b5050506040518051905090506114d66046610a8060105484611e2690919063ffffffff16565b601e819055600754600160a060020a0316906340c10f1990309060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561153c57600080fd5b6102c65a03f1151561154d57600080fd5b50505060405180519050506115726046610a8060115484611e2690919063ffffffff16565b6027819055600754602854600160a060020a03918216926340c10f19929091169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156115df57600080fd5b6102c65a03f115156115f057600080fd5b50505060405180519050506116156046610a8060145484611e2690919063ffffffff16565b6025819055600754602654600160a060020a03918216926340c10f19929091169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561168257600080fd5b6102c65a03f1151561169357600080fd5b50505060405180519050506116b86046610a8060135484611e2690919063ffffffff16565b6023819055600754602454600160a060020a03918216926340c10f19929091169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561172557600080fd5b6102c65a03f1151561173657600080fd5b505050604051805190505061175b6046610a8060125484611e2690919063ffffffff16565b6021819055600754602254600160a060020a03918216926340c10f19929091169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156117c857600080fd5b6102c65a03f115156117d957600080fd5b50505060405180515050600754600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561182b57600080fd5b6102c65a03f1151561183c57600080fd5b5050506040518051505050565b602254600160a060020a031681565b60015460a060020a900460ff1681565b602854600160a060020a031681565b600080601e54111561188c5750601e54610a8f565b601054600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b601f5481565b60015460a060020a900460ff161561190057600080fd5b60195433600160a060020a039081169116148061192057506119206110b8565b151561192b57600080fd5b600c5442111561193a57600080fd5b6017546018548201111561194d57600080fd5b6016546007548290600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561199a57600080fd5b6102c65a03f115156119ab57600080fd5b5050506040518051905001111515156119c357600080fd5b6018546119d6908263ffffffff611e6816565b601855600160a060020a0382167feb84de37a8eb2b514548e9caae274472e062da332bcab36341d209e68f1669598260405190815260200160405180910390a2600754600160a060020a03166340c10f19838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a7557600080fd5b6102c65a03f11515611a8657600080fd5b505050604051805150505050565b600160a060020a03331660009081526020819052604090205460ff161515600114611abe57600080fd5b60015460a060020a900460ff161515611ad657600080fd5b6001805474ff000000000000000000000000000000000000000019169055565b6007546000908190600160a060020a03166305d2035b82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611b4257600080fd5b6102c65a03f11515611b5357600080fd5b505050604051805190501515611b6857600080fd5b60205433600160a060020a0390811691161480611b885750611b886110b8565b1515611b9357600080fd5b611bae601c54610a80600d5442611e7790919063ffffffff16565b9150601d54821115611bc057601d5491505b611bed601f54611be1601d54610a8086601e54611e2690919063ffffffff16565b9063ffffffff611e7716565b9050601e5481601f540111151515611c0457600080fd5b601f54611c17908263ffffffff611e6816565b601f55602054600160a060020a03167f818ad300476aeaf0d8f3079d4c1f9c203540e81cfb341f3ceaa82d137f822835838360405191825260208201526040908101905180910390a2600754602054600160a060020a039182169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a7557600080fd5b6000611cd06109ac565b8015610a8c5750600754600160a060020a03166305d2035b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611d1f57600080fd5b6102c65a03f11515611d3057600080fd5b50505060405180511592915050565b602454600160a060020a031681565b60055481565b602654600160a060020a031681565b600160a060020a03811660009081526020819052604081205460ff16611d8a576000611d8d565b60015b92915050565b6000806021541115611da85750602154610a8f565b601254600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b601a5481565b600754600160a060020a031681565b60175481565b60025481565b600a5481565b6000828202831580611e425750828482811515611e3f57fe5b04145b1515611e4a57fe5b9392505050565b6000808284811515611e5f57fe5b04949350505050565b600082820183811015611e4a57fe5b600082821115611e8357fe5b50900390565b602060405190810160405260008152905600a165627a7a7230582027721f26907b791f00e2ced11d90a8c199ff4ade354beb55b5b8ecdfa56582240029606060405260038054600160a860020a03191633600160a060020a0316179055610d0e8061002e6000396000f3006060604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461010057806306fdde0314610127578063095ea7b3146101b157806318160ddd146101d357806323b872dd146101f8578063313ce5671461022057806340c10f1914610249578063661884631461026b57806370a082311461028d5780637d64bcb4146102ac57806389afcb44146102bf5780638da5cb5b146102de57806395d89b411461030d578063a9059cbb14610320578063b3490bfc14610342578063d73dd62314610363578063dd62ed3e14610385578063f2fde38b146103aa575b600080fd5b341561010b57600080fd5b6101136103c9565b604051901515815260200160405180910390f35b341561013257600080fd5b61013a6103d9565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017657808201518382015260200161015e565b50505050905090810190601f1680156101a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101bc57600080fd5b610113600160a060020a0360043516602435610410565b34156101de57600080fd5b6101e661047c565b60405190815260200160405180910390f35b341561020357600080fd5b610113600160a060020a0360043581169060243516604435610482565b341561022b57600080fd5b6102336104d3565b60405160ff909116815260200160405180910390f35b341561025457600080fd5b610113600160a060020a03600435166024356104d8565b341561027657600080fd5b610113600160a060020a03600435166024356105d3565b341561029857600080fd5b6101e6600160a060020a03600435166106cd565b34156102b757600080fd5b6101136106e8565b34156102ca57600080fd5b610113600160a060020a036004351661075c565b34156102e957600080fd5b6102f161084a565b604051600160a060020a03909116815260200160405180910390f35b341561031857600080fd5b61013a610859565b341561032b57600080fd5b610113600160a060020a0360043516602435610890565b341561034d57600080fd5b610361600160a060020a03600435166108df565b005b341561036e57600080fd5b610113600160a060020a036004351660243561095b565b341561039057600080fd5b6101e6600160a060020a03600435811690602435166109ff565b34156103b557600080fd5b610361600160a060020a0360043516610a2a565b60035460a060020a900460ff1681565b60408051908101604052600581527f4d63466c79000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b60035460009060a060020a900460ff16806104b55750600160a060020a03331660009081526004602052604090205460ff165b15156104c057600080fd5b6104cb848484610ac5565b949350505050565b601281565b60035460009033600160a060020a039081169116146104f657600080fd5b60035460a060020a900460ff161561050d57600080fd5b600054610520908363ffffffff610bdd16565b6000908155600160a060020a03841681526001602052604090205461054b908363ffffffff610bdd16565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a282600160a060020a03166000600080516020610cc38339815191528460405190815260200160405180910390a350600192915050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561063057600160a060020a033381166000908152600260209081526040808320938816835292905290812055610667565b610640818463ffffffff610bec16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461070657600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b60035460009033600160a060020a0390811691161461077a57600080fd5b600160a060020a03821660008181526001602052604080822054919291600080516020610cc3833981519152915190815260200160405180910390a3600160a060020a03821660008181526001602052604090819020547fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5915190815260200160405180910390a2600160a060020a0391909116600090815260016020526040812080547fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805490910190555590565b600354600160a060020a031681565b60408051908101604052600381527f4d464c0000000000000000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff16806108c35750600160a060020a03331660009081526004602052604090205460ff165b15156108ce57600080fd5b6108d88383610bfe565b9392505050565b60035433600160a060020a039081169116146108fa57600080fd5b7fcc25b8a957df0a0b6c4413850c122a29ee10048018cd63f00e453e1bba64943a81604051600160a060020a03909116815260200160405180910390a1600160a060020a03166000908152600460205260409020805460ff19166001179055565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610993908363ffffffff610bdd16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a03908116911614610a4557600080fd5b600160a060020a0381161515610a5a57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160a060020a0384161515610add57600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610b23908463ffffffff610bec16565b600160a060020a038087166000908152600160205260408082209390935590861681522054610b58908463ffffffff610bdd16565b600160a060020a038516600090815260016020526040902055610b81818463ffffffff610bec16565b600160a060020a0380871660008181526002602090815260408083203386168452909152908190209390935590861691600080516020610cc38339815191529086905190815260200160405180910390a3506001949350505050565b6000828201838110156108d857fe5b600082821115610bf857fe5b50900390565b6000600160a060020a0383161515610c1557600080fd5b600160a060020a033316600090815260016020526040902054610c3e908363ffffffff610bec16565b600160a060020a033381166000908152600160205260408082209390935590851681522054610c73908363ffffffff610bdd16565b600160a060020a038085166000818152600160205260409081902093909355913390911690600080516020610cc38339815191529085905190815260200160405180910390a3506001929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058205d9dbeec6170bfb3d366b5c52e52309bdda13fea849408aa27f91bb97130c22d0029000000000000000000000000000000000000000000000000000000005a00f780000000000000000000000000000000000000000000000000000000005a209b800000000000000000000000001968ca762be67170bdbac3e92b0994c94396ce8e000000000000000000000000a149371e5cb03a91ac4c145db3407a22cbac68cb0000000000000000000000008233a1e4e4559e3c14478e3b2f1f14e3aa5d70ce000000000000000000000000fe8aaf90e062779ca4d8bbef587e2314e9cd092200000000000000000000000015e3640cbf48f241a5c532523340323536ef03f0000000000000000000000000ef2c37b2ea0fd96ef3ca9ca1205943cf6b1acf40000000000000000000000000827b553d7161d07ba090bedb7a2990461c73fc14000000000000000000000000dcd7633fbf57f389480987861198eccca01b1286
Deployed Bytecode
0x60606040526004361061022c5763ffffffff60e060020a600035041663063575de811461023757806315a553471461025e5780631613520f14610283578063175beead146102965780631da9ea0c146102a957806336bdee74146102bc578063373a7c01146102cf5780633af7c521146102e257806348688367146102f8578063492eec25146103275780634ee0cd981461033a57806350637dd214610359578063521eb273146103e357806359927044146103f65780635db5d1fb146104095780635ed7ca5b1461041c57806370284d191461042f57806370d1e6b41461044e57806374a8f103146104615780637a63c290146104805780637ba7d15e146104935780638875a40b146104a95780638c72c54e146104bc5780638f32d59b146104cf5780639af9f012146104e25780639f7ed5b8146104f5578063b65c3a7f14610508578063b80cdcf61461053c578063b9a683001461054f578063b9b8af0b14610562578063c22ab4e014610575578063c3e3c7bc14610588578063c4834c301461059b578063c7669337146105ae578063cb3e64fd146105d0578063cfbb7d36146105e3578063d85bd526146105f6578063dbf76c0314610609578063dc1cb47b1461061c578063dc4937901461062f578063e0e3671c14610642578063ec8ac4d814610661578063f4db9ad114610675578063fac6525614610688578063fc0c546a1461069b578063fcae08e1146106ae578063fe6e0441146106c1578063ff7e17b6146106d4575b610235336106e7565b005b341561024257600080fd5b61024a6109ac565b604051901515815260200160405180910390f35b341561026957600080fd5b6102716109ed565b60405190815260200160405180910390f35b341561028e57600080fd5b610271610a92565b34156102a157600080fd5b610271610a98565b34156102b457600080fd5b610271610b04565b34156102c757600080fd5b610271610b0a565b34156102da57600080fd5b610271610b10565b34156102ed57600080fd5b610235600435610b16565b341561030357600080fd5b61030b610bad565b604051600160a060020a03909116815260200160405180910390f35b341561033257600080fd5b610271610bbc565b341561034557600080fd5b610235600160a060020a0360043516610c28565b341561036457600080fd5b61036c610cba565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103a8578082015183820152602001610390565b50505050905090810190601f1680156103d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103ee57600080fd5b61030b610e4a565b341561040157600080fd5b61030b610e59565b341561041457600080fd5b610271610e68565b341561042757600080fd5b610235610e6e565b341561043a57600080fd5b610235600160a060020a0360043516610ebe565b341561045957600080fd5b610271610f3b565b341561046c57600080fd5b610235600160a060020a0360043516610f41565b341561048b57600080fd5b610271610ff7565b341561049e57600080fd5b610235600435610ffd565b34156104b457600080fd5b6102716110a3565b34156104c757600080fd5b61030b6110a9565b34156104da57600080fd5b61024a6110b8565b34156104ed57600080fd5b61030b6110e5565b341561050057600080fd5b6102716110f4565b341561051357600080fd5b6105246004356024356044356110fa565b60405191825260208201526040908101905180910390f35b341561054757600080fd5b610235611342565b341561055a57600080fd5b61030b611849565b341561056d57600080fd5b61024a611858565b341561058057600080fd5b61030b611868565b341561059357600080fd5b610271611877565b34156105a657600080fd5b6102716118e3565b34156105b957600080fd5b610235600160a060020a03600435166024356118e9565b34156105db57600080fd5b610235611a94565b34156105ee57600080fd5b610235611af6565b341561060157600080fd5b61024a611cc6565b341561061457600080fd5b61030b611d3f565b341561062757600080fd5b610271611d4e565b341561063a57600080fd5b61030b611d54565b341561064d57600080fd5b61024a600160a060020a0360043516611d63565b610235600160a060020a03600435166106e7565b341561068057600080fd5b610271611d93565b341561069357600080fd5b610271611dff565b34156106a657600080fd5b61030b611e05565b34156106b957600080fd5b610271611e14565b34156106cc57600080fd5b610271611e1a565b34156106df57600080fd5b610271611e20565b6001546000908190819060a060020a900460ff161561070557600080fd5b3415156107106109ac565b80156107195750805b151561072457600080fd5b6007546107949034904290600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561077457600080fd5b6102c65a03f1151561078557600080fd5b505050604051805190506110fa565b9094509250600160a060020a03851615156107ae57600080fd5b601654600754600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156107f957600080fd5b6102c65a03f1151561080a57600080fd5b5050506040518051905085011115151561082357600080fd5b600754348490039250600160a060020a03166340c10f19868660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561088857600080fd5b6102c65a03f1151561089957600080fd5b50505060405180515050600160a060020a0385167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f838660405191825260208201526040908101905180910390a2600680548301905560008311156109725734831061090457600080fd5b84600160a060020a03167f16d873cff9de7921f3cd6c67e737126fc5ab6aae623efc1470cab72c438ab4648460405190815260200160405180910390a2600160a060020a03851683156108fc0284604051600060405180830381858888f19350505050151561097257600080fd5b600854600160a060020a031682156108fc0283604051600060405180830381858888f1935050505015156109a557600080fd5b5050505050565b600080600060095442101580156109c55750600a544211155b9150600c5442101580156109db5750600d544211155b905081806109e65750805b9250505090565b6000806027541115610a025750602754610a8f565b601154600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b6102c65a03f11515610a6a57600080fd5b505050604051805191905063ffffffff611e2616565b9063ffffffff611e5116565b90505b90565b60035481565b6000806025541115610aad5750602554610a8f565b601454600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b60155481565b60065481565b60185481565b600160a060020a03331660009081526020819052604090205460ff161515600114610b4057600080fd5b6009544210610b4e57600080fd5b42819010610b5b57600080fd5b6009819055600b54610b7490829063ffffffff611e6816565b600a557fc3be6e8da3b9afc51094cdf21d1f4ff71ee9905fa13879534ace9827d8d696aa8160405190815260200160405180910390a150565b601954600160a060020a031681565b6000806023541115610bd15750602354610a8f565b601354600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b600160a060020a03331660009081526020819052604090205460ff161515600114610c5257600080fd5b6019805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790557ff5e47163842070f64bd51e37365975ce344fe9ce93956fb810ada1455b3692a481604051600160a060020a03909116815260200160405180910390a150565b610cc2611e89565b600954421060008080831584610cda5750600a544211155b9250600a544210158015610cf05750600c544211155b9150600c544210158015610d065750600d544211155b90508315610d495760408051908101604052600b81527f4e6f74207374617274656400000000000000000000000000000000000000000060208201529450610e43565b8215610d8a5760408051908101604052600681527f544c50312e31000000000000000000000000000000000000000000000000000060208201529450610e43565b8115610dcb5760408051908101604052601981527f4265747765656e20544c50312e3120616e6420544c50312e320000000000000060208201529450610e43565b8015610e0c5760408051908101604052600681527f544c50312e32000000000000000000000000000000000000000000000000000060208201529450610e43565b60408051908101604052600881527f46696e6973686564000000000000000000000000000000000000000000000000602082015294505b5050505090565b600854600160a060020a031681565b602054600160a060020a031681565b600c5481565b600160a060020a03331660009081526020819052604090205460ff161515600114610e9857600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a179055565b600160a060020a03331660009081526020819052604090205460ff161515600114610ee857600080fd5b600160a060020a03811660008181526020819052604090819020805460ff191660011790557f1350a997c6c86bcc51dd7e51f7ef618d620e6a85d8fdabb82a980c149ad88d47905160405180910390a250565b60045481565b600160a060020a03331660009081526020819052604090205460ff161515600114610f6b57600080fd5b600154600160a060020a0382811691161415610f8657600080fd5b80600160a060020a031633600160a060020a031614151515610fa757600080fd5b600160a060020a03811660008181526020819052604090819020805460ff191690557f1d1eff42eefbeecfca7e39f8adb5d7f19a7ebbb4c3e82c51f2500d7d76ab2468905160405180910390a250565b60165481565b600160a060020a03331660009081526020819052604090205460ff16151560011461102757600080fd5b600c54421061103557600080fd5b4281901061104257600080fd5b600a5481901061105157600080fd5b600c819055600e5461106a90829063ffffffff611e6816565b600d557f643e1aa51d78dc0ead8ac810cbbeac224f15436e37c9e955607e7409d315f5bf8160405190815260200160405180910390a150565b600d5481565b600154600160a060020a031681565b600160a060020a03331660009081526020819052604081205460ff166110df576000610a8c565b50600190565b601b54600160a060020a031681565b60095481565b600080600080600060095487101580156111165750600a548711155b156111985760025488101561112a57600080fd5b506003546009546203f480018710156111465760419150611193565b6009546207e9000187101561115e5760469150611193565b600954620bdd80018710156111765760559150611193565b600954620fd2000187101561118e5760649150611193565b600080fd5b611284565b600c5487101580156111ac5750600d548711155b1561118e576004548810156111c057600080fd5b50600554600c546203f480018710156111dc57603c9150611193565b600c546207e900018710156111f45760469150611193565b600c54620bdd800187101561120c5760509150611193565b600c54620fd2000187101561122457605a9150611193565b600c546213c6800187101561123c5760649150611193565b600c546217bb000187101561125457606e9150611193565b600c54621baf800187101561126c5760789150611193565b600c54621fa4000187101561118e5760829150611193565b6112996064610a80838563ffffffff611e2616565b90506112c76112ba82610a808b670de0b6b3a764000063ffffffff611e2616565b879063ffffffff611e6816565b9250601654831115611320576016546112e6908763ffffffff611e7716565b611317670de0b6b3a7640000610a808461130b60165489611e7790919063ffffffff16565b9063ffffffff611e2616565b94509450611337565b611330838763ffffffff611e7716565b9450600093505b505050935093915050565b600160a060020a03331660009081526020819052604081205460ff16151560011461136c57600080fd5b600d544211806113df5750600754600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156113bf57600080fd5b6102c65a03f115156113d057600080fd5b50505060405180519050601654145b15156113ea57600080fd5b600754600160a060020a03166305d2035b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561143257600080fd5b6102c65a03f1151561144357600080fd5b505050604051805115905061145757600080fd5b600754600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561149f57600080fd5b6102c65a03f115156114b057600080fd5b5050506040518051905090506114d66046610a8060105484611e2690919063ffffffff16565b601e819055600754600160a060020a0316906340c10f1990309060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561153c57600080fd5b6102c65a03f1151561154d57600080fd5b50505060405180519050506115726046610a8060115484611e2690919063ffffffff16565b6027819055600754602854600160a060020a03918216926340c10f19929091169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156115df57600080fd5b6102c65a03f115156115f057600080fd5b50505060405180519050506116156046610a8060145484611e2690919063ffffffff16565b6025819055600754602654600160a060020a03918216926340c10f19929091169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561168257600080fd5b6102c65a03f1151561169357600080fd5b50505060405180519050506116b86046610a8060135484611e2690919063ffffffff16565b6023819055600754602454600160a060020a03918216926340c10f19929091169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561172557600080fd5b6102c65a03f1151561173657600080fd5b505050604051805190505061175b6046610a8060125484611e2690919063ffffffff16565b6021819055600754602254600160a060020a03918216926340c10f19929091169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156117c857600080fd5b6102c65a03f115156117d957600080fd5b50505060405180515050600754600160a060020a0316637d64bcb46000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561182b57600080fd5b6102c65a03f1151561183c57600080fd5b5050506040518051505050565b602254600160a060020a031681565b60015460a060020a900460ff1681565b602854600160a060020a031681565b600080601e54111561188c5750601e54610a8f565b601054600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b601f5481565b60015460a060020a900460ff161561190057600080fd5b60195433600160a060020a039081169116148061192057506119206110b8565b151561192b57600080fd5b600c5442111561193a57600080fd5b6017546018548201111561194d57600080fd5b6016546007548290600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561199a57600080fd5b6102c65a03f115156119ab57600080fd5b5050506040518051905001111515156119c357600080fd5b6018546119d6908263ffffffff611e6816565b601855600160a060020a0382167feb84de37a8eb2b514548e9caae274472e062da332bcab36341d209e68f1669598260405190815260200160405180910390a2600754600160a060020a03166340c10f19838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a7557600080fd5b6102c65a03f11515611a8657600080fd5b505050604051805150505050565b600160a060020a03331660009081526020819052604090205460ff161515600114611abe57600080fd5b60015460a060020a900460ff161515611ad657600080fd5b6001805474ff000000000000000000000000000000000000000019169055565b6007546000908190600160a060020a03166305d2035b82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611b4257600080fd5b6102c65a03f11515611b5357600080fd5b505050604051805190501515611b6857600080fd5b60205433600160a060020a0390811691161480611b885750611b886110b8565b1515611b9357600080fd5b611bae601c54610a80600d5442611e7790919063ffffffff16565b9150601d54821115611bc057601d5491505b611bed601f54611be1601d54610a8086601e54611e2690919063ffffffff16565b9063ffffffff611e7716565b9050601e5481601f540111151515611c0457600080fd5b601f54611c17908263ffffffff611e6816565b601f55602054600160a060020a03167f818ad300476aeaf0d8f3079d4c1f9c203540e81cfb341f3ceaa82d137f822835838360405191825260208201526040908101905180910390a2600754602054600160a060020a039182169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a7557600080fd5b6000611cd06109ac565b8015610a8c5750600754600160a060020a03166305d2035b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611d1f57600080fd5b6102c65a03f11515611d3057600080fd5b50505060405180511592915050565b602454600160a060020a031681565b60055481565b602654600160a060020a031681565b600160a060020a03811660009081526020819052604081205460ff16611d8a576000611d8d565b60015b92915050565b6000806021541115611da85750602154610a8f565b601254600754610a8c91604691610a809190600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a5957600080fd5b601a5481565b600754600160a060020a031681565b60175481565b60025481565b600a5481565b6000828202831580611e425750828482811515611e3f57fe5b04145b1515611e4a57fe5b9392505050565b6000808284811515611e5f57fe5b04949350505050565b600082820183811015611e4a57fe5b600082821115611e8357fe5b50900390565b602060405190810160405260008152905600a165627a7a7230582027721f26907b791f00e2ced11d90a8c199ff4ade354beb55b5b8ecdfa56582240029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000005a00f780000000000000000000000000000000000000000000000000000000005a209b800000000000000000000000001968ca762be67170bdbac3e92b0994c94396ce8e000000000000000000000000a149371e5cb03a91ac4c145db3407a22cbac68cb0000000000000000000000008233a1e4e4559e3c14478e3b2f1f14e3aa5d70ce000000000000000000000000fe8aaf90e062779ca4d8bbef587e2314e9cd092200000000000000000000000015e3640cbf48f241a5c532523340323536ef03f0000000000000000000000000ef2c37b2ea0fd96ef3ca9ca1205943cf6b1acf40000000000000000000000000827b553d7161d07ba090bedb7a2990461c73fc14000000000000000000000000dcd7633fbf57f389480987861198eccca01b1286
-----Decoded View---------------
Arg [0] : _startTimeTLP1 (uint256): 1510012800
Arg [1] : _startTimeTLP2 (uint256): 1512086400
Arg [2] : _wallet (address): 0x1968cA762Be67170BDbAC3E92b0994C94396ce8e
Arg [3] : _wavesAgent (address): 0xA149371e5Cb03a91ac4c145DB3407A22cBAc68cB
Arg [4] : _fundMintingAgent (address): 0x8233A1E4E4559e3c14478E3b2f1F14E3aA5d70Ce
Arg [5] : _teamWallet (address): 0xFe8aaf90e062779Ca4D8BbEF587E2314E9CD0922
Arg [6] : _bountyOnlineWallet (address): 0x15E3640cbf48F241a5c532523340323536Ef03f0
Arg [7] : _bountyOfflineWallet (address): 0xEf2C37B2EA0fd96eF3ca9cA1205943cf6b1AcF40
Arg [8] : _advisoryWallet (address): 0x827b553D7161d07ba090bedB7a2990461C73fc14
Arg [9] : _reservedWallet (address): 0xDcD7633Fbf57F389480987861198EcccA01b1286
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a00f780
Arg [1] : 000000000000000000000000000000000000000000000000000000005a209b80
Arg [2] : 0000000000000000000000001968ca762be67170bdbac3e92b0994c94396ce8e
Arg [3] : 000000000000000000000000a149371e5cb03a91ac4c145db3407a22cbac68cb
Arg [4] : 0000000000000000000000008233a1e4e4559e3c14478e3b2f1f14e3aa5d70ce
Arg [5] : 000000000000000000000000fe8aaf90e062779ca4d8bbef587e2314e9cd0922
Arg [6] : 00000000000000000000000015e3640cbf48f241a5c532523340323536ef03f0
Arg [7] : 000000000000000000000000ef2c37b2ea0fd96ef3ca9ca1205943cf6b1acf40
Arg [8] : 000000000000000000000000827b553d7161d07ba090bedb7a2990461c73fc14
Arg [9] : 000000000000000000000000dcd7633fbf57f389480987861198eccca01b1286
Swarm Source
bzzr://5d9dbeec6170bfb3d366b5c52e52309bdda13fea849408aa27f91bb97130c22d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.