More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 910 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Claim Team Token... | 4737009 | 2399 days ago | IN | 0 ETH | 0.00134196 | ||||
Claim Team Token... | 4737001 | 2399 days ago | IN | 0 ETH | 0.00123688 | ||||
Claim Team Token... | 4736986 | 2399 days ago | IN | 0 ETH | 0.00153634 | ||||
Transfer | 4711285 | 2403 days ago | IN | 3.4 ETH | 0.00026928 | ||||
Transfer | 4711272 | 2403 days ago | IN | 0.03 ETH | 0.00026928 | ||||
Transfer | 4711265 | 2403 days ago | IN | 1 ETH | 0.00026928 | ||||
Transfer | 4711235 | 2403 days ago | IN | 4.97879676 ETH | 0.00026928 | ||||
Transfer | 4710888 | 2404 days ago | IN | 0.2975 ETH | 0.00026928 | ||||
Withdraw Eth | 4710783 | 2404 days ago | IN | 0 ETH | 0.0008413 | ||||
Transfer | 4709832 | 2404 days ago | IN | 0.5 ETH | 0.0003344 | ||||
Transfer | 4709435 | 2404 days ago | IN | 0.02089087 ETH | 0.00045777 | ||||
Transfer | 4709214 | 2404 days ago | IN | 0.019 ETH | 0.0002962 | ||||
Transfer | 4708122 | 2404 days ago | IN | 0.8 ETH | 0.00292305 | ||||
Transfer | 4708119 | 2404 days ago | IN | 5 ETH | 0.00416652 | ||||
Transfer | 4708110 | 2404 days ago | IN | 6.95328971 ETH | 0.00294462 | ||||
Transfer | 4708110 | 2404 days ago | IN | 0.4 ETH | 0.0035978 | ||||
Transfer | 4708103 | 2404 days ago | IN | 0.98475 ETH | 0.00574902 | ||||
Transfer | 4708102 | 2404 days ago | IN | 0.205 ETH | 0.0034721 | ||||
Transfer | 4708102 | 2404 days ago | IN | 2.5 ETH | 0.00729144 | ||||
Transfer | 4708101 | 2404 days ago | IN | 0.51 ETH | 0.00294462 | ||||
Transfer | 4708083 | 2404 days ago | IN | 2.87495212 ETH | 0.00294462 | ||||
Transfer | 4708079 | 2404 days ago | IN | 0.13 ETH | 0.00294462 | ||||
Transfer | 4708055 | 2404 days ago | IN | 1.8 ETH | 0.007011 | ||||
Transfer | 4708055 | 2404 days ago | IN | 1.70124023 ETH | 0.0091143 | ||||
Transfer | 4708049 | 2404 days ago | IN | 0.4 ETH | 0.00145828 |
Loading...
Loading
Contract Name:
SportifyCrowdsale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-11-20 */ contract SafeMath { uint256 constant MAX_UINT256 = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; function safeAdd(uint256 x, uint256 y) constant internal returns (uint256 z) { require(x <= MAX_UINT256 - y); return x + y; } function safeSub(uint256 x, uint256 y) constant internal returns (uint256 z) { require(x >= y); return x - y; } function safeMul(uint256 x, uint256 y) constant internal returns (uint256 z) { if (y == 0) { return 0; } require(x <= (MAX_UINT256 / y)); return x * y; } } contract Owned { address public owner; address public newOwner; function Owned() { owner = msg.sender; } modifier onlyOwner { assert(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner { require(_newOwner != owner); newOwner = _newOwner; } function acceptOwnership() public { require(msg.sender == newOwner); OwnerUpdate(owner, newOwner); owner = newOwner; newOwner = 0x0; } event OwnerUpdate(address _prevOwner, address _newOwner); } contract Lockable is Owned { uint256 public lockedUntilBlock; event ContractLocked(uint256 _untilBlock, string _reason); modifier lockAffected { require(block.number > lockedUntilBlock); _; } function lockFromSelf(uint256 _untilBlock, string _reason) internal { lockedUntilBlock = _untilBlock; ContractLocked(_untilBlock, _reason); } function lockUntil(uint256 _untilBlock, string _reason) onlyOwner public { lockedUntilBlock = _untilBlock; ContractLocked(_untilBlock, _reason); } } contract ReentrancyHandlingContract{ bool locked; modifier noReentrancy() { require(!locked); locked = true; _; locked = false; } } contract tokenRecipientInterface { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); } contract ERC20TokenInterface { function totalSupply() public constant returns (uint256 _totalSupply); function balanceOf(address _owner) public constant returns (uint256 balance); function transfer(address _to, uint256 _value) public returns (bool success); function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); function approve(address _spender, uint256 _value) public returns (bool success); function allowance(address _owner, address _spender) public constant returns (uint256 remaining); event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } contract SportifyTokenInterface { function mint(address _to, uint256 _amount) public; } contract Crowdsale is ReentrancyHandlingContract, Owned { struct ContributorData { uint contributionAmount; uint tokensIssued; } mapping(address => ContributorData) public contributorList; uint nextContributorIndex; mapping(uint => address) contributorIndexes; state public crowdsaleState = state.pendingStart; enum state { pendingStart, crowdsale, crowdsaleEnded } uint public crowdsaleStartBlock; uint public crowdsaleEndedBlock; event CrowdsaleStarted(uint blockNumber); event CrowdsaleEnded(uint blockNumber); event ErrorSendingETH(address to, uint amount); event MinCapReached(uint blockNumber); event MaxCapReached(uint blockNumber); address tokenAddress = 0x0; uint decimals = 18; uint ethToTokenConversion; uint public minCap; uint public maxCap; uint public ethRaised; uint public tokenTotalSupply = 200000000 * 10**decimals; address public multisigAddress; uint blocksInADay; uint nextContributorToClaim; mapping(address => bool) hasClaimedEthWhenFail; uint crowdsaleTokenCap = 134000000 * 10**decimals; uint foundersAndTeamTokens = 36000000 * 10**decimals; uint advisorAndAmbassadorTokens = 20000000 * 10**decimals; uint futurePromoEventTokens = 10000000 * 10**decimals; bool foundersAndTeamTokensClaimed = false; bool advisorAndAmbassadorTokensClaimed = false; bool futurePromoEventTokensClaimed = false; // // Unnamed function that runs when eth is sent to the contract // function() noReentrancy payable public { require(msg.value != 0); // Throw if value is 0 require(crowdsaleState != state.crowdsaleEnded);// Check if crowdsale has ended bool stateChanged = checkCrowdsaleState(); // Check blocks and calibrate crowdsale state if (crowdsaleState == state.crowdsale) { processTransaction(msg.sender, msg.value); // Process transaction and issue tokens } else { refundTransaction(stateChanged); // Set state and return funds or throw } } // // Check crowdsale state and calibrate it // function checkCrowdsaleState() internal returns (bool) { if (ethRaised == maxCap && crowdsaleState != state.crowdsaleEnded) { // Check if max cap is reached crowdsaleState = state.crowdsaleEnded; CrowdsaleEnded(block.number); // Raise event return true; } if (block.number > crowdsaleStartBlock && block.number <= crowdsaleEndedBlock) { // Check if we are in crowdsale state if (crowdsaleState != state.crowdsale) { // Check if state needs to be changed crowdsaleState = state.crowdsale; // Set new state CrowdsaleStarted(block.number); // Raise event return true; } } else { if (crowdsaleState != state.crowdsaleEnded && block.number > crowdsaleEndedBlock) { // Check if crowdsale is over crowdsaleState = state.crowdsaleEnded; // Set new state CrowdsaleEnded(block.number); // Raise event return true; } } return false; } // // Decide if throw or only return ether // function refundTransaction(bool _stateChanged) internal { if (_stateChanged) { msg.sender.transfer(msg.value); } else { revert(); } } function calculateEthToToken(uint _eth, uint _blockNumber) constant public returns(uint) { if (_blockNumber < crowdsaleStartBlock + blocksInADay * 3) { return _eth * 3298; } if (_eth >= 100*10**decimals) { return _eth * 3298; } if (_blockNumber > crowdsaleStartBlock) { return _eth * 2998; } } // // Issue tokens and return if there is overflow // function processTransaction(address _contributor, uint _amount) internal{ uint contributionAmount = _amount; uint returnAmount = 0; if (_amount > (maxCap - ethRaised)) { // Check if max contribution is lower than _amount sent contributionAmount = maxCap - ethRaised; // Set that user contibutes his maximum alowed contribution returnAmount = _amount - contributionAmount; // Calculate howmuch he must get back } if (ethRaised + contributionAmount > minCap && minCap > ethRaised) { MinCapReached(block.number); } if (ethRaised + contributionAmount == maxCap && ethRaised < maxCap) { MaxCapReached(block.number); } if (contributorList[_contributor].contributionAmount == 0) { contributorIndexes[nextContributorIndex] = _contributor; nextContributorIndex += 1; } contributorList[_contributor].contributionAmount += contributionAmount; ethRaised += contributionAmount; // Add to eth raised uint tokenAmount = calculateEthToToken(contributionAmount, block.number); // Calculate how much tokens must contributor get if (tokenAmount > 0) { SportifyTokenInterface(tokenAddress).mint(_contributor, tokenAmount); // Issue new tokens contributorList[_contributor].tokensIssued += tokenAmount; // log token issuance } if (returnAmount != 0) { _contributor.transfer(returnAmount); } } function pushAngelInvestmentData(address _address, uint _ethContributed) onlyOwner public { assert(ethRaised + _ethContributed <= maxCap); processTransaction(_address, _ethContributed); } function depositAngelInvestmentEth() payable onlyOwner public {} // // Method is needed for recovering tokens accedentaly sent to token address // function salvageTokensFromContract(address _tokenAddress, address _to, uint _amount) onlyOwner public { ERC20TokenInterface(_tokenAddress).transfer(_to, _amount); } // // withdrawEth when minimum cap is reached // function withdrawEth() onlyOwner public { require(this.balance != 0); require(ethRaised >= minCap); multisigAddress.transfer(this.balance); } // // Users can claim their contribution if min cap is not raised // function claimEthIfFailed() public { require(block.number > crowdsaleEndedBlock && ethRaised < minCap); // Check if crowdsale has failed require(contributorList[msg.sender].contributionAmount > 0); // Check if contributor has contributed to crowdsaleEndedBlock require(!hasClaimedEthWhenFail[msg.sender]); // Check if contributor has already claimed his eth uint ethContributed = contributorList[msg.sender].contributionAmount; // Get contributors contribution hasClaimedEthWhenFail[msg.sender] = true; // Set that he has claimed if (!msg.sender.send(ethContributed)) { // Refund eth ErrorSendingETH(msg.sender, ethContributed); // If there is an issue raise event for manual recovery } } // // Owner can batch return contributors contributions(eth) // function batchReturnEthIfFailed(uint _numberOfReturns) onlyOwner public { require(block.number > crowdsaleEndedBlock && ethRaised < minCap); // Check if crowdsale has failed address currentParticipantAddress; uint contribution; for (uint cnt = 0; cnt < _numberOfReturns; cnt++) { currentParticipantAddress = contributorIndexes[nextContributorToClaim]; // Get next unclaimed participant if (currentParticipantAddress == 0x0) { return; // Check if all the participants were compensated } if (!hasClaimedEthWhenFail[currentParticipantAddress]) { // Check if participant has already claimed contribution = contributorList[currentParticipantAddress].contributionAmount; // Get contribution of participant hasClaimedEthWhenFail[currentParticipantAddress] = true; // Set that he has claimed if (!currentParticipantAddress.send(contribution)) { // Refund eth ErrorSendingETH(currentParticipantAddress, contribution); // If there is an issue raise event for manual recovery } } nextContributorToClaim += 1; // Repeat } } // // If there were any issue/attach with refund owner can withraw eth at the end for manual recovery // function withdrawRemainingBalanceForManualRecovery() onlyOwner public { require(this.balance != 0); // Check if there are any eth to claim require(block.number > crowdsaleEndedBlock); // Check if crowdsale is over require(contributorIndexes[nextContributorToClaim] == 0x0); // Check if all the users were refunded multisigAddress.transfer(this.balance); // Withdraw to multisig } function claimTeamTokens(address _to, uint _choice) onlyOwner public { require(crowdsaleState == state.crowdsaleEnded); require(ethRaised >= minCap); uint mintAmount; if (_choice == 1) { assert(!advisorAndAmbassadorTokensClaimed); mintAmount = advisorAndAmbassadorTokens; advisorAndAmbassadorTokensClaimed = true; } else if (_choice == 2) { assert(!futurePromoEventTokensClaimed); mintAmount = futurePromoEventTokens; futurePromoEventTokensClaimed = true; } else if (_choice == 3) { assert(!foundersAndTeamTokensClaimed); assert(advisorAndAmbassadorTokensClaimed); assert(futurePromoEventTokensClaimed); assert(tokenTotalSupply > ERC20TokenInterface(tokenAddress).totalSupply()); mintAmount = tokenTotalSupply - ERC20TokenInterface(tokenAddress).totalSupply(); foundersAndTeamTokensClaimed = true; } else { revert(); } SportifyTokenInterface(tokenAddress).mint(_to, mintAmount); } // // Owner can set multisig address for crowdsale // function setMultisigAddress(address _newAddress) onlyOwner public { multisigAddress = _newAddress; } // // Owner can set token address where mints will happen // function setToken(address _newAddress) onlyOwner public { tokenAddress = _newAddress; } function getTokenAddress() constant public returns(address) { return tokenAddress; } function investorCount() constant public returns(uint) { return nextContributorIndex; } } contract SportifyCrowdsale is Crowdsale { function SportifyCrowdsale() { crowdsaleStartBlock = 4595138; crowdsaleEndedBlock = 4708120; minCap = 4190000000000000000000; maxCap = 40629000000000000000000; blocksInADay = 6646; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"setMultisigAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"setToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleEndedBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawRemainingBalanceForManualRecovery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_eth","type":"uint256"},{"name":"_blockNumber","type":"uint256"}],"name":"calculateEthToToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multisigAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimEthIfFailed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_numberOfReturns","type":"uint256"}],"name":"batchReturnEthIfFailed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_choice","type":"uint256"}],"name":"claimTeamTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributorList","outputs":[{"name":"contributionAmount","type":"uint256"},{"name":"tokensIssued","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"salvageTokensFromContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleStartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"depositAngelInvestmentEth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_ethContributed","type":"uint256"}],"name":"pushAngelInvestmentData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"blockNumber","type":"uint256"}],"name":"CrowdsaleStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"blockNumber","type":"uint256"}],"name":"CrowdsaleEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"ErrorSendingETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"blockNumber","type":"uint256"}],"name":"MinCapReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"blockNumber","type":"uint256"}],"name":"MaxCapReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"}]
Contract Creation Code
60606040526000600560006101000a81548160ff0219169083600281111561002357fe5b02179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600955600954600a0a630bebc20002600e55600954600a0a6307fcad8002601355600954600a0a630225510002601455600954600a0a6301312d0002601555600954600a0a62989680026016556000601760006101000a81548160ff0219169083151502179055506000601760016101000a81548160ff0219169083151502179055506000601760026101000a81548160ff021916908315150217905550341561011557600080fd5b33600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062461dc26006819055506247d71860078190555068e323ee506db6b80000600b8190555069089a80a40e5511b40000600c819055506119f6601081905550611fee806101a36000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063055405341461023d57806310fe9ae814610276578063144fa6d7146102cb57806320d19181146103045780632165e1aa1461032d57806323548b8b146103425780633fa615b01461036b5780634b1cab4e146103945780635462870d146103d457806379ba5097146104295780637d6651b91461043e5780637f86033014610453578063826776fa146104765780638da5cb5b146104b857806392acb4d61461050d578063a0929cda14610561578063a0ef91df146105c2578063cdd3574a146105d7578063d4ee1d9014610600578063d7e64c0014610655578063de271ee01461067e578063e7bb523314610688578063f28afb1e146106bf578063f2fde38b14610701578063f7abab9e1461073a578063fddf0fc014610763575b60008060009054906101000a900460ff1615151561017157600080fd5b60016000806101000a81548160ff0219169083151502179055506000341415151561019b57600080fd5b6002808111156101a757fe5b600560009054906101000a900460ff1660028111156101c257fe5b141515156101cf57600080fd5b6101d761078c565b9050600160028111156101e657fe5b600560009054906101000a900460ff16600281111561020157fe5b1415610216576102113334610987565b610220565b61021f81610cfb565b5b60008060006101000a81548160ff02191690831515021790555050005b341561024857600080fd5b610274600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d4e565b005b341561028157600080fd5b610289610deb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102d657600080fd5b610302600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e15565b005b341561030f57600080fd5b610317610eb2565b6040518082815260200191505060405180910390f35b341561033857600080fd5b610340610eb8565b005b341561034d57600080fd5b61035561101d565b6040518082815260200191505060405180910390f35b341561037657600080fd5b61037e611023565b6040518082815260200191505060405180910390f35b341561039f57600080fd5b6103be6004808035906020019091908035906020019091905050611029565b6040518082815260200191505060405180910390f35b34156103df57600080fd5b6103e7611082565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043457600080fd5b61043c6110a8565b005b341561044957600080fd5b610451611286565b005b341561045e57600080fd5b6104746004808035906020019091905050611498565b005b341561048157600080fd5b6104b6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061173a565b005b34156104c357600080fd5b6104cb611b22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051857600080fd5b610544600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b48565b604051808381526020018281526020019250505060405180910390f35b341561056c57600080fd5b6105c0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611b6c565b005b34156105cd57600080fd5b6105d5611c91565b005b34156105e257600080fd5b6105ea611d9f565b6040518082815260200191505060405180910390f35b341561060b57600080fd5b610613611da5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561066057600080fd5b610668611dcb565b6040518082815260200191505060405180910390f35b610686611dd5565b005b341561069357600080fd5b61069b611e30565b604051808260028111156106ab57fe5b60ff16815260200191505060405180910390f35b34156106ca57600080fd5b6106ff600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e43565b005b341561070c57600080fd5b610738600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ebc565b005b341561074557600080fd5b61074d611fb6565b6040518082815260200191505060405180910390f35b341561076e57600080fd5b610776611fbc565b6040518082815260200191505060405180910390f35b6000600c54600d541480156107c657506002808111156107a857fe5b600560009054906101000a900460ff1660028111156107c357fe5b14155b1561082f576002600560006101000a81548160ff021916908360028111156107ea57fe5b02179055507f9145a7fd7de2aa5b50a289cf5dd2e2d100aa067911e49855b88f94b5a196f04b436040518082815260200191505060405180910390a160019050610984565b6006544311801561084257506007544311155b156108df576001600281111561085457fe5b600560009054906101000a900460ff16600281111561086f57fe5b1415156108da576001600560006101000a81548160ff0219169083600281111561089557fe5b02179055507f712173de1d50109191e0d0671c67415bf3d44508558069796106054c5600d501436040518082815260200191505060405180910390a160019050610984565b61097f565b6002808111156108eb57fe5b600560009054906101000a900460ff16600281111561090657fe5b14158015610915575060075443115b1561097e576002600560006101000a81548160ff0219169083600281111561093957fe5b02179055507f9145a7fd7de2aa5b50a289cf5dd2e2d100aa067911e49855b88f94b5a196f04b436040518082815260200191505060405180910390a160019050610984565b5b600090505b90565b600080600083925060009150600d54600c54038411156109b057600d54600c5403925082840391505b600b5483600d54011180156109c85750600d54600b54115b15610a05577f71bd1f47064193be653e360173639170d33d2cfe47bf52a3de621ca4040e2358436040518082815260200191505060405180910390a15b600c5483600d5401148015610a1d5750600c54600d54105b15610a5a577f38caa2c61728c18eb71cbd06d1915e4164ffe51c69a09b68d78be1f125a5dea7436040518082815260200191505060405180910390a15b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610b0b578460046000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016003600082825401925050819055505b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254019250508190555082600d60008282540192505081905550610b758343611029565b90506000811115610ca957600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1986836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610c4457600080fd5b6102c65a03f11515610c5557600080fd5b50505080600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055505b600082141515610cf4578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610cf357600080fd5b5b5050505050565b8015610d46573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610d4157600080fd5b610d4b565b600080fd5b50565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da757fe5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6e57fe5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1157fe5b60003073ffffffffffffffffffffffffffffffffffffffff163114151515610f3857600080fd5b60075443111515610f4857600080fd5b600060046000601154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fa257600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561101b57600080fd5b565b600c5481565b600b5481565b60006003601054026006540182101561104857610ce28302905061107c565b600954600a0a6064028310151561106557610ce28302905061107c565b60065482111561107b57610bb68302905061107c565b5b92915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561110457600080fd5b7f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006007544311801561129c5750600b54600d54105b15156112a757600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115156112f857600080fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561135157600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611495577fdb623bd5ad9b688a8d252706b5f3b2849545e7c47f1a9be77f95b198445a67d33382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b50565b60008060008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114f557fe5b600754431180156115095750600b54600d54105b151561151457600080fd5b600090505b838110156117335760046000601154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925060008373ffffffffffffffffffffffffffffffffffffffff16141561157d57611734565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561171557600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611714577fdb623bd5ad9b688a8d252706b5f3b2849545e7c47f1a9be77f95b198445a67d38383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b60016011600082825401925050819055508080600101915050611519565b5b50505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561179457fe5b6002808111156117a057fe5b600560009054906101000a900460ff1660028111156117bb57fe5b1415156117c757600080fd5b600b54600d54101515156117da57600080fd5b600182141561182157601760019054906101000a900460ff161515156117fc57fe5b60155490506001601760016101000a81548160ff021916908315150217905550611a45565b600282141561186857601760029054906101000a900460ff1615151561184357fe5b60165490506001601760026101000a81548160ff021916908315150217905550611a44565b6003821415611a3e57601760009054906101000a900460ff1615151561188a57fe5b601760019054906101000a900460ff1615156118a257fe5b601760029054906101000a900460ff1615156118ba57fe5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561194857600080fd5b6102c65a03f1151561195957600080fd5b50505060405180519050600e5411151561196f57fe5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156119fd57600080fd5b6102c65a03f11515611a0e57600080fd5b50505060405180519050600e540390506001601760006101000a81548160ff021916908315150217905550611a43565b600080fd5b5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1984836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515611b0957600080fd5b6102c65a03f11515611b1a57600080fd5b505050505050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090508060000154908060010154905082565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc557fe5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611c7057600080fd5b6102c65a03f11515611c8157600080fd5b5050506040518051905050505050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cea57fe5b60003073ffffffffffffffffffffffffffffffffffffffff163114151515611d1157600080fd5b600b54600d5410151515611d2457600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611d9d57600080fd5b565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600354905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2e57fe5b565b600560009054906101000a900460ff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9c57fe5b600c5481600d540111151515611eae57fe5b611eb88282610987565b5050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f1557fe5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f7257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b600d54815600a165627a7a72305820dc7ca859c1b9f0a2d39ede808d7c10942a907750af9916839a1bdebf8287ab270029
Deployed Bytecode
0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063055405341461023d57806310fe9ae814610276578063144fa6d7146102cb57806320d19181146103045780632165e1aa1461032d57806323548b8b146103425780633fa615b01461036b5780634b1cab4e146103945780635462870d146103d457806379ba5097146104295780637d6651b91461043e5780637f86033014610453578063826776fa146104765780638da5cb5b146104b857806392acb4d61461050d578063a0929cda14610561578063a0ef91df146105c2578063cdd3574a146105d7578063d4ee1d9014610600578063d7e64c0014610655578063de271ee01461067e578063e7bb523314610688578063f28afb1e146106bf578063f2fde38b14610701578063f7abab9e1461073a578063fddf0fc014610763575b60008060009054906101000a900460ff1615151561017157600080fd5b60016000806101000a81548160ff0219169083151502179055506000341415151561019b57600080fd5b6002808111156101a757fe5b600560009054906101000a900460ff1660028111156101c257fe5b141515156101cf57600080fd5b6101d761078c565b9050600160028111156101e657fe5b600560009054906101000a900460ff16600281111561020157fe5b1415610216576102113334610987565b610220565b61021f81610cfb565b5b60008060006101000a81548160ff02191690831515021790555050005b341561024857600080fd5b610274600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d4e565b005b341561028157600080fd5b610289610deb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102d657600080fd5b610302600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e15565b005b341561030f57600080fd5b610317610eb2565b6040518082815260200191505060405180910390f35b341561033857600080fd5b610340610eb8565b005b341561034d57600080fd5b61035561101d565b6040518082815260200191505060405180910390f35b341561037657600080fd5b61037e611023565b6040518082815260200191505060405180910390f35b341561039f57600080fd5b6103be6004808035906020019091908035906020019091905050611029565b6040518082815260200191505060405180910390f35b34156103df57600080fd5b6103e7611082565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043457600080fd5b61043c6110a8565b005b341561044957600080fd5b610451611286565b005b341561045e57600080fd5b6104746004808035906020019091905050611498565b005b341561048157600080fd5b6104b6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061173a565b005b34156104c357600080fd5b6104cb611b22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051857600080fd5b610544600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b48565b604051808381526020018281526020019250505060405180910390f35b341561056c57600080fd5b6105c0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611b6c565b005b34156105cd57600080fd5b6105d5611c91565b005b34156105e257600080fd5b6105ea611d9f565b6040518082815260200191505060405180910390f35b341561060b57600080fd5b610613611da5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561066057600080fd5b610668611dcb565b6040518082815260200191505060405180910390f35b610686611dd5565b005b341561069357600080fd5b61069b611e30565b604051808260028111156106ab57fe5b60ff16815260200191505060405180910390f35b34156106ca57600080fd5b6106ff600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e43565b005b341561070c57600080fd5b610738600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ebc565b005b341561074557600080fd5b61074d611fb6565b6040518082815260200191505060405180910390f35b341561076e57600080fd5b610776611fbc565b6040518082815260200191505060405180910390f35b6000600c54600d541480156107c657506002808111156107a857fe5b600560009054906101000a900460ff1660028111156107c357fe5b14155b1561082f576002600560006101000a81548160ff021916908360028111156107ea57fe5b02179055507f9145a7fd7de2aa5b50a289cf5dd2e2d100aa067911e49855b88f94b5a196f04b436040518082815260200191505060405180910390a160019050610984565b6006544311801561084257506007544311155b156108df576001600281111561085457fe5b600560009054906101000a900460ff16600281111561086f57fe5b1415156108da576001600560006101000a81548160ff0219169083600281111561089557fe5b02179055507f712173de1d50109191e0d0671c67415bf3d44508558069796106054c5600d501436040518082815260200191505060405180910390a160019050610984565b61097f565b6002808111156108eb57fe5b600560009054906101000a900460ff16600281111561090657fe5b14158015610915575060075443115b1561097e576002600560006101000a81548160ff0219169083600281111561093957fe5b02179055507f9145a7fd7de2aa5b50a289cf5dd2e2d100aa067911e49855b88f94b5a196f04b436040518082815260200191505060405180910390a160019050610984565b5b600090505b90565b600080600083925060009150600d54600c54038411156109b057600d54600c5403925082840391505b600b5483600d54011180156109c85750600d54600b54115b15610a05577f71bd1f47064193be653e360173639170d33d2cfe47bf52a3de621ca4040e2358436040518082815260200191505060405180910390a15b600c5483600d5401148015610a1d5750600c54600d54105b15610a5a577f38caa2c61728c18eb71cbd06d1915e4164ffe51c69a09b68d78be1f125a5dea7436040518082815260200191505060405180910390a15b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610b0b578460046000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016003600082825401925050819055505b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254019250508190555082600d60008282540192505081905550610b758343611029565b90506000811115610ca957600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1986836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610c4457600080fd5b6102c65a03f11515610c5557600080fd5b50505080600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055505b600082141515610cf4578473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610cf357600080fd5b5b5050505050565b8015610d46573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610d4157600080fd5b610d4b565b600080fd5b50565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da757fe5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6e57fe5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1157fe5b60003073ffffffffffffffffffffffffffffffffffffffff163114151515610f3857600080fd5b60075443111515610f4857600080fd5b600060046000601154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fa257600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561101b57600080fd5b565b600c5481565b600b5481565b60006003601054026006540182101561104857610ce28302905061107c565b600954600a0a6064028310151561106557610ce28302905061107c565b60065482111561107b57610bb68302905061107c565b5b92915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561110457600080fd5b7f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006007544311801561129c5750600b54600d54105b15156112a757600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115156112f857600080fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561135157600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515611495577fdb623bd5ad9b688a8d252706b5f3b2849545e7c47f1a9be77f95b198445a67d33382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b50565b60008060008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114f557fe5b600754431180156115095750600b54600d54105b151561151457600080fd5b600090505b838110156117335760046000601154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925060008373ffffffffffffffffffffffffffffffffffffffff16141561157d57611734565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561171557600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611714577fdb623bd5ad9b688a8d252706b5f3b2849545e7c47f1a9be77f95b198445a67d38383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5b60016011600082825401925050819055508080600101915050611519565b5b50505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561179457fe5b6002808111156117a057fe5b600560009054906101000a900460ff1660028111156117bb57fe5b1415156117c757600080fd5b600b54600d54101515156117da57600080fd5b600182141561182157601760019054906101000a900460ff161515156117fc57fe5b60155490506001601760016101000a81548160ff021916908315150217905550611a45565b600282141561186857601760029054906101000a900460ff1615151561184357fe5b60165490506001601760026101000a81548160ff021916908315150217905550611a44565b6003821415611a3e57601760009054906101000a900460ff1615151561188a57fe5b601760019054906101000a900460ff1615156118a257fe5b601760029054906101000a900460ff1615156118ba57fe5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561194857600080fd5b6102c65a03f1151561195957600080fd5b50505060405180519050600e5411151561196f57fe5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156119fd57600080fd5b6102c65a03f11515611a0e57600080fd5b50505060405180519050600e540390506001601760006101000a81548160ff021916908315150217905550611a43565b600080fd5b5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1984836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515611b0957600080fd5b6102c65a03f11515611b1a57600080fd5b505050505050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090508060000154908060010154905082565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc557fe5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611c7057600080fd5b6102c65a03f11515611c8157600080fd5b5050506040518051905050505050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cea57fe5b60003073ffffffffffffffffffffffffffffffffffffffff163114151515611d1157600080fd5b600b54600d5410151515611d2457600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611d9d57600080fd5b565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600354905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2e57fe5b565b600560009054906101000a900460ff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9c57fe5b600c5481600d540111151515611eae57fe5b611eb88282610987565b5050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f1557fe5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f7257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b600d54815600a165627a7a72305820dc7ca859c1b9f0a2d39ede808d7c10942a907750af9916839a1bdebf8287ab270029
Swarm Source
bzzr://dc7ca859c1b9f0a2d39ede808d7c10942a907750af9916839a1bdebf8287ab27
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.