Overview
ETH Balance
2.556535082281214692 ETH
Eth Value
$6,729.16 (@ $2,632.14/ETH)Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,400 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Returns | 7567138 | 1945 days ago | IN | 0 ETH | 0.00006748 | ||||
Withdraw Dev Sha... | 6692654 | 2098 days ago | IN | 0 ETH | 0.00025972 | ||||
Start New Round | 6681047 | 2100 days ago | IN | 0.001 ETH | 0.00197408 | ||||
Buy Shares | 6583757 | 2116 days ago | IN | 0.001 ETH | 0.00006933 | ||||
Withdraw Returns | 6572022 | 2118 days ago | IN | 0 ETH | 0.00060369 | ||||
Withdraw Returns | 6569665 | 2118 days ago | IN | 0 ETH | 0.00047241 | ||||
Withdraw Returns | 6562481 | 2119 days ago | IN | 0 ETH | 0.00039931 | ||||
Withdraw Returns | 6560505 | 2119 days ago | IN | 0 ETH | 0.00032897 | ||||
Withdraw Returns | 6556936 | 2120 days ago | IN | 0 ETH | 0.00010543 | ||||
Withdraw Returns | 6556936 | 2120 days ago | IN | 0 ETH | 0.00022271 | ||||
Withdraw Returns | 6556333 | 2120 days ago | IN | 0 ETH | 0.00047241 | ||||
Reinvest Returns | 6553664 | 2121 days ago | IN | 0 ETH | 0.00090474 | ||||
Reinvest Returns | 6552724 | 2121 days ago | IN | 0 ETH | 0.00027838 | ||||
Withdraw Returns | 6552558 | 2121 days ago | IN | 0 ETH | 0.00032463 | ||||
Finalize Last Ro... | 6552555 | 2121 days ago | IN | 0 ETH | 0.00065847 | ||||
Reinvest Returns | 6552539 | 2121 days ago | IN | 0 ETH | 0.00021326 | ||||
Buy Shares | 6552449 | 2121 days ago | IN | 0.001 ETH | 0.00061439 | ||||
Buy Shares | 6552363 | 2121 days ago | IN | 0.005 ETH | 0.00101958 | ||||
Buy Shares | 6552348 | 2121 days ago | IN | 0.001 ETH | 0.00082707 | ||||
Buy Shares | 6552341 | 2121 days ago | IN | 0.001 ETH | 0.00124017 | ||||
Buy Shares | 6552289 | 2121 days ago | IN | 0.001 ETH | 0.00047261 | ||||
Buy Shares | 6552288 | 2121 days ago | IN | 0.001 ETH | 0.00095398 | ||||
Withdraw Returns | 6551998 | 2121 days ago | IN | 0 ETH | 0.0004199 | ||||
Buy Shares | 6551318 | 2121 days ago | IN | 0.001 ETH | 0.00061218 | ||||
Buy Shares | 6551268 | 2121 days ago | IN | 0.001 ETH | 0.00181042 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
7567138 | 1945 days ago | 0.0005113 ETH | ||||
6692654 | 2098 days ago | 0.0191 ETH | ||||
6572022 | 2118 days ago | 0.00674476 ETH | ||||
6569665 | 2118 days ago | 0.02081567 ETH | ||||
6562481 | 2119 days ago | 0.0011288 ETH | ||||
6560505 | 2119 days ago | 0.00331142 ETH | ||||
6556936 | 2120 days ago | 0.00078003 ETH | ||||
6556333 | 2120 days ago | 0.00100337 ETH | ||||
6552558 | 2121 days ago | 0.04586 ETH | ||||
6552555 | 2121 days ago | 0.00117 ETH | ||||
6551998 | 2121 days ago | 0.02100829 ETH | ||||
6551262 | 2121 days ago | 0.00877079 ETH | ||||
6549946 | 2121 days ago | 0.00014614 ETH | ||||
6547630 | 2121 days ago | 0.01536752 ETH | ||||
6547169 | 2122 days ago | 0.04383418 ETH | ||||
6546210 | 2122 days ago | 0.01476591 ETH | ||||
6546153 | 2122 days ago | 0.94397894 ETH | ||||
6546148 | 2122 days ago | 0.06489 ETH | ||||
6545212 | 2122 days ago | 0.00088086 ETH | ||||
6542365 | 2122 days ago | 0.01015015 ETH | ||||
6539774 | 2123 days ago | 0.03002553 ETH | ||||
6539756 | 2123 days ago | 0.11634668 ETH | ||||
6536367 | 2123 days ago | 0.03712339 ETH | ||||
6534657 | 2124 days ago | 0.00418398 ETH | ||||
6534631 | 2124 days ago | 0.00086286 ETH |
Loading...
Loading
Contract Name:
MobiusRED
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-10-04 */ pragma solidity^0.4.24; /** * MOBIUS RED * https://mobius.red/ * * This game was inspired by FOMO3D. Our code is much cleaner and more efficient (built from scratch). * Some useless "features" like the teams were not implemented. * * The Mobius RED game consists of rounds with guaranteed winners! * You buy "shares" (instad of keys) for a given round, and you get returns from investors after you. * The share price is constant until the hard deadline, after which it increases exponentially. * If a round is inactive for a day it can end earlier than the hard deadline. * If a round runs longer, it is guaranteed to finish not much after the hard deadline (and the last investor gets the big jackpot). * Additionally, if you invest more than 0.1 ETH you get a chance to win an airdrop and you get bonus shares * Part of all funds also go to a big final jackpot - the last investor (before a round runs out) wins. * Payouts work in REAL TIME - you can withdraw your returns at any time! * Additionally, the first round is an ICO, so you'll also get our tokens by participating! * !!!!!!!!!!!!!! * Token holders will receive part of current and future revenue of this and any other game we develop! * !!!!!!!!!!!!!! */ contract DSMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x); } function min(uint x, uint y) internal pure returns (uint z) { return x <= y ? x : y; } function max(uint x, uint y) internal pure returns (uint z) { return x >= y ? x : y; } function imin(int x, int y) internal pure returns (int z) { return x <= y ? x : y; } function imax(int x, int y) internal pure returns (int z) { return x >= y ? x : y; } uint constant WAD = 10 ** 18; uint constant RAY = 10 ** 27; function wmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), WAD / 2) / WAD; } function rmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), RAY / 2) / RAY; } function wdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, WAD), y / 2) / y; } function rdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, RAY), y / 2) / y; } // This famous algorithm is called "exponentiation by squaring" // and calculates x^n with x as fixed-point and n as regular unsigned. // // It's O(log n), instead of O(n) for naive repeated multiplication. // // These facts are why it works: // // If n is even, then x^n = (x^2)^(n/2). // If n is odd, then x^n = x * x^(n-1), // and applying the equation for even x gives // x^n = x * (x^2)^((n-1) / 2). // // Also, EVM division is flooring and // floor[(n-1) / 2] = floor[n / 2]. // function rpow(uint x, uint n) internal pure returns (uint z) { z = n % 2 != 0 ? x : RAY; for (n /= 2; n != 0; n /= 2) { x = rmul(x, x); if (n % 2 != 0) { z = rmul(z, x); } } } } contract DSAuthority { function canCall( address src, address dst, bytes4 sig ) public view returns (bool); } contract DSAuthEvents { event LogSetAuthority (address indexed authority); event LogSetOwner (address indexed owner); } contract DSAuth is DSAuthEvents { DSAuthority public authority; address public owner; constructor() public { owner = msg.sender; emit LogSetOwner(msg.sender); } function setOwner(address owner_) public auth { owner = owner_; emit LogSetOwner(owner); } function setAuthority(DSAuthority authority_) public auth { authority = authority_; emit LogSetAuthority(authority); } modifier auth { require(isAuthorized(msg.sender, msg.sig)); _; } function isAuthorized(address src, bytes4 sig) internal view returns (bool) { if (src == address(this)) { return true; } else if (src == owner) { return true; } else if (authority == DSAuthority(0)) { return false; } else { return authority.canCall(src, this, sig); } } } interface MobiusRedToken { function mint(address _to, uint _amount) external; function finishMinting() external returns (bool); function disburseDividends() external payable; } contract MobiusRED is DSMath, DSAuth { // IPFS hash of the website - can be accessed even if our domain goes down. // Just go to any public IPFS gateway and use this hash - e.g. ipfs.infura.io/ipfs/<ipfsHash> string public ipfsHash; string public ipfsHashType = "ipfs"; // can either be ipfs, or ipns MobiusRedToken public token; // In case of an upgrade, these variables will be set. An upgrade does not affect a currently running round, // nor does it do anything with investors' vaults. bool public upgraded; address public nextVersion; // Total stats uint public totalSharesSold; uint public totalEarningsGenerated; uint public totalDividendsPaid; uint public totalJackpotsWon; // Fractions for where revenue goes uint public constant DEV_FRACTION = WAD / 20; // 5% goes to devs uint public constant DEV_DIVISOR = 20; // 5% uint public constant RETURNS_FRACTION = 65 * 10**16; // 65% goes to share holders // 1% if it is a referral purchase, this value will be taken from the above fraction (e.g. if 1% is for refferals, then 64% goes to returns) uint public constant REFERRAL_FRACTION = 1 * 10**16; uint public constant JACKPOT_SEED_FRACTION = WAD / 20; // 5% goes to the next round's jackpot uint public constant JACKPOT_FRACTION = 15 * 10**16; // 15% goes to the final jackpot uint public constant AIRDROP_FRACTION = WAD / 100; // 1% goes to airdrops uint public constant DIVIDENDS_FRACTION = 9 * 10**16; // 9% goes to token holders! uint public constant STARTING_SHARE_PRICE = 1 finney; // a 1000th of an ETH uint public constant PRICE_INCREASE_PERIOD = 1 hours; // how often the price doubles after the hard deadline uint public constant HARD_DEADLINE_DURATION = 10 days; // hard deadline is this much after the round start uint public constant SOFT_DEADLINE_DURATION = 1 days; // max soft deadline uint public constant TIME_PER_SHARE = 5 minutes; // how much time is added to the soft deadline per share purchased uint public jackpotSeed;// Jackpot from previous rounds uint public devBalance; // outstanding balance for devs uint public raisedICO; // Helpers to calculate returns - no funds are ever held on lockdown uint public unclaimedReturns; uint public constant MULTIPLIER = RAY; // This represents an investor. No need to player IDs - they are useless (everyone already has a unique address). // Just use native mappings (duh!) struct Investor { uint lastCumulativeReturnsPoints; uint shares; } // This represents a round struct MobiusRound { uint totalInvested; uint jackpot; uint airdropPot; uint totalShares; uint cumulativeReturnsPoints; // this is to help calculate returns when the total number of shares changes uint hardDeadline; uint softDeadline; uint price; uint lastPriceIncreaseTime; address lastInvestor; bool finalized; mapping (address => Investor) investors; } struct Vault { uint totalReturns; // Total balance = returns + referral returns + jackpots/airdrops uint refReturns; // how much of the total is from referrals } mapping (address => Vault) vaults; uint public latestRoundID;// the first round has an ID of 0 MobiusRound[] rounds; event SharesIssued(address indexed to, uint shares); event ReturnsWithdrawn(address indexed by, uint amount); event JackpotWon(address by, uint amount); event AirdropWon(address by, uint amount); event RoundStarted(uint indexed ID, uint hardDeadline); event IPFSHashSet(string _type, string _hash); constructor(address _token) public { token = MobiusRedToken(_token); } // The return values will include all vault balance, but you must specify a roundID because // Returns are not actually calculated in storage until you invest in the round or withdraw them function estimateReturns(address investor, uint roundID) public view returns (uint totalReturns, uint refReturns) { MobiusRound storage rnd = rounds[roundID]; uint outstanding; if(rounds.length > 1) { if(hasReturns(investor, roundID - 1)) { MobiusRound storage prevRnd = rounds[roundID - 1]; outstanding = _outstandingReturns(investor, prevRnd); } } outstanding += _outstandingReturns(investor, rnd); totalReturns = vaults[investor].totalReturns + outstanding; refReturns = vaults[investor].refReturns; } function hasReturns(address investor, uint roundID) public view returns (bool) { MobiusRound storage rnd = rounds[roundID]; return rnd.cumulativeReturnsPoints > rnd.investors[investor].lastCumulativeReturnsPoints; } function investorInfo(address investor, uint roundID) external view returns(uint shares, uint totalReturns, uint referralReturns) { MobiusRound storage rnd = rounds[roundID]; shares = rnd.investors[investor].shares; (totalReturns, referralReturns) = estimateReturns(investor, roundID); } function roundInfo(uint roundID) external view returns( address leader, uint price, uint jackpot, uint airdrop, uint shares, uint totalInvested, uint distributedReturns, uint _hardDeadline, uint _softDeadline, bool finalized ) { MobiusRound storage rnd = rounds[roundID]; leader = rnd.lastInvestor; price = rnd.price; jackpot = rnd.jackpot; airdrop = rnd.airdropPot; shares = rnd.totalShares; totalInvested = rnd.totalInvested; distributedReturns = wmul(rnd.totalInvested, RETURNS_FRACTION); _hardDeadline = rnd.hardDeadline; _softDeadline = rnd.softDeadline; finalized = rnd.finalized; } function totalsInfo() external view returns( uint totalReturns, uint totalShares, uint totalDividends, uint totalJackpots ) { MobiusRound storage rnd = rounds[latestRoundID]; if(rnd.softDeadline > now) { totalShares = totalSharesSold + rnd.totalShares; totalReturns = totalEarningsGenerated + wmul(rnd.totalInvested, RETURNS_FRACTION); totalDividends = totalDividendsPaid + wmul(rnd.totalInvested, DIVIDENDS_FRACTION); } else { totalShares = totalSharesSold; totalReturns = totalEarningsGenerated; totalDividends = totalDividendsPaid; } totalJackpots = totalJackpotsWon; } function () public payable { buyShares(address(0x0)); } /// Function to buy shares in the latest round. Purchase logic is abstracted function buyShares(address ref) public payable { if(rounds.length > 0) { MobiusRound storage rnd = rounds[latestRoundID]; _purchase(rnd, msg.value, ref); } else { revert("Not yet started"); } } /// Function to purchase with what you have in your vault as returns function reinvestReturns(uint value) public { reinvestReturns(value, address(0x0)); } function reinvestReturns(uint value, address ref) public { MobiusRound storage rnd = rounds[latestRoundID]; _updateReturns(msg.sender, rnd); require(vaults[msg.sender].totalReturns >= value, "Can't spend what you don't have"); vaults[msg.sender].totalReturns = sub(vaults[msg.sender].totalReturns, value); vaults[msg.sender].refReturns = min(vaults[msg.sender].refReturns, vaults[msg.sender].totalReturns); unclaimedReturns = sub(unclaimedReturns, value); _purchase(rnd, value, ref); } function withdrawReturns() public { MobiusRound storage rnd = rounds[latestRoundID]; if(rounds.length > 1) {// check if they also have returns from before if(hasReturns(msg.sender, latestRoundID - 1)) { MobiusRound storage prevRnd = rounds[latestRoundID - 1]; _updateReturns(msg.sender, prevRnd); } } _updateReturns(msg.sender, rnd); uint amount = vaults[msg.sender].totalReturns; require(amount > 0, "Nothing to withdraw!"); unclaimedReturns = sub(unclaimedReturns, amount); vaults[msg.sender].totalReturns = 0; vaults[msg.sender].refReturns = 0; rnd.investors[msg.sender].lastCumulativeReturnsPoints = rnd.cumulativeReturnsPoints; msg.sender.transfer(amount); emit ReturnsWithdrawn(msg.sender, amount); } // Manually update your returns for a given round in case you were inactive since before it ended function updateMyReturns(uint roundID) public { MobiusRound storage rnd = rounds[roundID]; _updateReturns(msg.sender, rnd); } function finalizeAndRestart() public payable { finalizeLastRound(); startNewRound(); } /// Anyone can start a new round function startNewRound() public payable { require(!upgraded, "This contract has been upgraded!"); if(rounds.length > 0) { require(rounds[latestRoundID].finalized, "Previous round not finalized"); require(rounds[latestRoundID].softDeadline < now, "Previous round still running"); } uint _rID = rounds.length++; MobiusRound storage rnd = rounds[_rID]; latestRoundID = _rID; rnd.lastInvestor = msg.sender; rnd.price = STARTING_SHARE_PRICE; rnd.hardDeadline = now + HARD_DEADLINE_DURATION; rnd.softDeadline = now + SOFT_DEADLINE_DURATION; rnd.jackpot = jackpotSeed; jackpotSeed = 0; _purchase(rnd, msg.value, address(0x0)); emit RoundStarted(_rID, rnd.hardDeadline); } /// Anyone can finalize a finished round function finalizeLastRound() public { MobiusRound storage rnd = rounds[latestRoundID]; _finalizeRound(rnd); } /// This is how devs pay the bills function withdrawDevShare() public auth { uint value = devBalance; devBalance = 0; msg.sender.transfer(value); } function setIPFSHash(string _type, string _hash) public auth { ipfsHashType = _type; ipfsHash = _hash; emit IPFSHashSet(_type, _hash); } function upgrade(address _nextVersion) public auth { require(_nextVersion != address(0x0), "Invalid Address!"); require(!upgraded, "Already upgraded!"); upgraded = true; nextVersion = _nextVersion; if(rounds[latestRoundID].finalized) { //if last round was finalized (and no new round was started), transfer the jackpot seed to the new version vaults[nextVersion].totalReturns = jackpotSeed; jackpotSeed = 0; } } /// Purchase logic function _purchase(MobiusRound storage rnd, uint value, address ref) internal { require(rnd.softDeadline >= now, "After deadline!"); require(value >= rnd.price/10, "Not enough Ether!"); rnd.totalInvested = add(rnd.totalInvested, value); // Set the last investor (to win the jackpot after the deadline) if(value >= rnd.price) rnd.lastInvestor = msg.sender; // Check out airdrop _airDrop(rnd, value); // Process revenue in different "buckets" _splitRevenue(rnd, value, ref); // Update returns before issuing shares _updateReturns(msg.sender, rnd); //issue shares for the current round. 1 share = 1 time increase for the deadline uint newShares = _issueShares(rnd, msg.sender, value); //Mint tokens during the first round if(rounds.length == 1) { token.mint(msg.sender, newShares); } uint timeIncreases = newShares/WAD;// since 1 share is represented by 1 * 10^18, divide by 10^18 // adjust soft deadline to new soft deadline uint newDeadline = add(rnd.softDeadline, mul(timeIncreases, TIME_PER_SHARE)); rnd.softDeadline = min(newDeadline, now + SOFT_DEADLINE_DURATION); // If after hard deadline, double the price every price increase periods if(now > rnd.hardDeadline) { if(now > rnd.lastPriceIncreaseTime + PRICE_INCREASE_PERIOD) { rnd.price = rnd.price * 2; rnd.lastPriceIncreaseTime = now; } } } function _finalizeRound(MobiusRound storage rnd) internal { require(!rnd.finalized, "Already finalized!"); require(rnd.softDeadline < now, "Round still running!"); if(rounds.length == 1) { // After finishing minting tokens they will be transferable and dividends will be available! require(token.finishMinting(), "Couldn't finish minting tokens!"); } // Transfer jackpot to winner's vault vaults[rnd.lastInvestor].totalReturns = add(vaults[rnd.lastInvestor].totalReturns, rnd.jackpot); unclaimedReturns = add(unclaimedReturns, rnd.jackpot); emit JackpotWon(rnd.lastInvestor, rnd.jackpot); totalJackpotsWon += rnd.jackpot; // transfer the leftover to the next round's jackpot jackpotSeed = add(jackpotSeed, wmul(rnd.totalInvested, JACKPOT_SEED_FRACTION)); //Empty the AD pot if it has a balance. jackpotSeed = add(jackpotSeed, rnd.airdropPot); if(upgraded) { // if upgraded transfer the jackpot seed to the new version vaults[nextVersion].totalReturns = jackpotSeed; jackpotSeed = 0; } //Send out dividends to token holders uint _div; if(rounds.length == 1){ // 2% during the first round, and the normal fraction otherwise _div = wmul(rnd.totalInvested, 2 * 10**16); } else { _div = wmul(rnd.totalInvested, DIVIDENDS_FRACTION); } token.disburseDividends.value(_div)(); totalDividendsPaid += _div; totalSharesSold += rnd.totalShares; totalEarningsGenerated += wmul(rnd.totalInvested, RETURNS_FRACTION); rnd.finalized = true; } /** This is where the magic happens: every investor gets an exact share of all returns proportional to their shares If you're early, you'll have a larger share for longer, so obviously you earn more. */ function _updateReturns(address _investor, MobiusRound storage rnd) internal { if(rnd.investors[_investor].shares == 0) { return; } uint outstanding = _outstandingReturns(_investor, rnd); // if there are any returns, transfer them to the investor's vaults if (outstanding > 0) { vaults[_investor].totalReturns = add(vaults[_investor].totalReturns, outstanding); } rnd.investors[_investor].lastCumulativeReturnsPoints = rnd.cumulativeReturnsPoints; } function _outstandingReturns(address _investor, MobiusRound storage rnd) internal view returns(uint) { if(rnd.investors[_investor].shares == 0) { return 0; } // check if there've been new returns uint newReturns = sub( rnd.cumulativeReturnsPoints, rnd.investors[_investor].lastCumulativeReturnsPoints ); uint outstanding = 0; if(newReturns != 0) { // outstanding returns = (total new returns points * ivestor shares) / MULTIPLIER // The MULTIPLIER is used also at the point of returns disbursment outstanding = mul(newReturns, rnd.investors[_investor].shares) / MULTIPLIER; } return outstanding; } /// Process revenue according to fractions function _splitRevenue(MobiusRound storage rnd, uint value, address ref) internal { uint roundReturns; uint returnsOffset; if(rounds.length == 1){ returnsOffset = 13 * 10**16;// during the first round reduce returns (by 13%) and give more to the ICO } if(ref != address(0x0)) { // if there was a referral roundReturns = wmul(value, RETURNS_FRACTION - REFERRAL_FRACTION - returnsOffset); uint _ref = wmul(value, REFERRAL_FRACTION); vaults[ref].totalReturns = add(vaults[ref].totalReturns, _ref); vaults[ref].refReturns = add(vaults[ref].refReturns, _ref); unclaimedReturns = add(unclaimedReturns, _ref); } else { roundReturns = wmul(value, RETURNS_FRACTION - returnsOffset); } uint airdrop = wmul(value, AIRDROP_FRACTION); uint jackpot = wmul(value, JACKPOT_FRACTION); uint dev; // During the ICO, devs get 25% (5% originally, 7% from the dividends fraction, // and 13% from the returns), leaving 2% for dividends, and 52% for returns // This is only during the first round, and later rounds leave the original fractions: // 5% for devs, 9% dividends, 65% returns if(rounds.length == 1){ // calculate dividends at the end, no need to do it at every purchase dev = value / 4; // 25% raisedICO += dev; } else { dev = value / DEV_DIVISOR; } // if this is the first purchase, send to jackpot (no one can claim these returns otherwise) if(rnd.totalShares == 0) { rnd.jackpot = add(rnd.jackpot, roundReturns); } else { _disburseReturns(rnd, roundReturns); } rnd.airdropPot = add(rnd.airdropPot, airdrop); rnd.jackpot = add(rnd.jackpot, jackpot); devBalance = add(devBalance, dev); } function _disburseReturns(MobiusRound storage rnd, uint value) internal { unclaimedReturns = add(unclaimedReturns, value);// keep track of unclaimed returns // The returns points represent returns*MULTIPLIER/totalShares (at the point of purchase) // This allows us to keep outstanding balances of shareholders when the total supply changes in real time if(rnd.totalShares == 0) { rnd.cumulativeReturnsPoints = mul(value, MULTIPLIER) / wdiv(value, rnd.price); } else { rnd.cumulativeReturnsPoints = add( rnd.cumulativeReturnsPoints, mul(value, MULTIPLIER) / rnd.totalShares ); } } function _issueShares(MobiusRound storage rnd, address _investor, uint value) internal returns(uint) { if(rnd.investors[_investor].lastCumulativeReturnsPoints == 0) { rnd.investors[_investor].lastCumulativeReturnsPoints = rnd.cumulativeReturnsPoints; } uint newShares = wdiv(value, rnd.price); //bonuses: if(value >= 100 ether) { newShares = mul(newShares, 2);//get double shares if you paid more than 100 ether } else if(value >= 10 ether) { newShares = add(newShares, newShares/2);//50% bonus } else if(value >= 1 ether) { newShares = add(newShares, newShares/3);//33% bonus } else if(value >= 100 finney) { newShares = add(newShares, newShares/10);//10% bonus } rnd.investors[_investor].shares = add(rnd.investors[_investor].shares, newShares); rnd.totalShares = add(rnd.totalShares, newShares); emit SharesIssued(_investor, newShares); return newShares; } function _airDrop(MobiusRound storage rnd, uint value) internal { require(msg.sender == tx.origin, "ONLY HOOMANS (or scripts that don't use smart contracts)!"); if(value > 100 finney) { /** Creates a random number from the last block hash and current timestamp. One could add more seemingly random data like the msg.sender, etc, but that doesn't make it harder for a miner to manipulate the result in their favor (if they intended to). */ uint chance = uint(keccak256(abi.encodePacked(blockhash(block.number - 1), now))); if(chance % 200 == 0) {// once in 200 times uint prize = rnd.airdropPot / 2;// win half of the pot, regardless of how much you paid rnd.airdropPot = rnd.airdropPot / 2; vaults[msg.sender].totalReturns = add(vaults[msg.sender].totalReturns, prize); unclaimedReturns = add(unclaimedReturns, prize); totalJackpotsWon += prize; emit AirdropWon(msg.sender, prize); } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"raisedICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MULTIPLIER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nextVersion","type":"address"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nextVersion","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unclaimedReturns","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DEV_DIVISOR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TIME_PER_SHARE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ipfsHashType","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEarningsGenerated","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"},{"name":"roundID","type":"uint256"}],"name":"investorInfo","outputs":[{"name":"shares","type":"uint256"},{"name":"totalReturns","type":"uint256"},{"name":"referralReturns","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"roundID","type":"uint256"}],"name":"updateMyReturns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"roundID","type":"uint256"}],"name":"roundInfo","outputs":[{"name":"leader","type":"address"},{"name":"price","type":"uint256"},{"name":"jackpot","type":"uint256"},{"name":"airdrop","type":"uint256"},{"name":"shares","type":"uint256"},{"name":"totalInvested","type":"uint256"},{"name":"distributedReturns","type":"uint256"},{"name":"_hardDeadline","type":"uint256"},{"name":"_softDeadline","type":"uint256"},{"name":"finalized","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawDevShare","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"},{"name":"roundID","type":"uint256"}],"name":"hasReturns","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawReturns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ref","type":"address"}],"name":"buyShares","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"finalizeAndRestart","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"string"},{"name":"_hash","type":"string"}],"name":"setIPFSHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalsInfo","outputs":[{"name":"totalReturns","type":"uint256"},{"name":"totalShares","type":"uint256"},{"name":"totalDividends","type":"uint256"},{"name":"totalJackpots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"STARTING_SHARE_PRICE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"jackpotSeed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DIVIDENDS_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SOFT_DEADLINE_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSharesSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","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":"REFERRAL_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RETURNS_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HARD_DEADLINE_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"reinvestReturns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"},{"name":"roundID","type":"uint256"}],"name":"estimateReturns","outputs":[{"name":"totalReturns","type":"uint256"},{"name":"refReturns","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"JACKPOT_SEED_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"JACKPOT_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AIRDROP_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startNewRound","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalizeLastRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgraded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"},{"name":"ref","type":"address"}],"name":"reinvestReturns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ipfsHash","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDividendsPaid","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalJackpotsWon","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEV_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestRoundID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PRICE_INCREASE_PERIOD","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"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"shares","type":"uint256"}],"name":"SharesIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"ReturnsWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"by","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"JackpotWon","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"by","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AirdropWon","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ID","type":"uint256"},{"indexed":false,"name":"hardDeadline","type":"uint256"}],"name":"RoundStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_type","type":"string"},{"indexed":false,"name":"_hash","type":"string"}],"name":"IPFSHashSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]
Contract Creation Code
60c0604052600460808190527f697066730000000000000000000000000000000000000000000000000000000060a0908152620000409160039190620000c7565b503480156200004e57600080fd5b5060405160208062002876833981016040819052905160018054600160a060020a0319163390811790915590917fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a260048054600160a060020a031916600160a060020a03929092169190911790556200016c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010a57805160ff19168380011785556200013a565b828001600101855582156200013a579182015b828111156200013a5782518255916020019190600101906200011d565b50620001489291506200014c565b5090565b6200016991905b8082111562000148576000815560010162000153565b90565b6126fa806200017c6000396000f3006080604052600436106102455763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302605ea88114610251578063059f8b16146102785780630900f0101461028d5780630bafd60e146102ae5780630d6c03fa146102df57806313af4035146102f457806314a0450a146103155780633314b9521461032a578063377c93bf1461033f5780633bfc1b25146103c95780633d6859f2146103de57806340c0ece314610420578063427f0b001461043857806343db053e146104ac57806348afd1b3146104c15780634c7ce18a146104f95780634c85b4251461050e578063536942b614610522578063574d65541461052a57806357b16811146105c15780635faf500f146105fc578063619360df1461061157806361983c021461062657806368fab02a1461063b57806373aff5af146106505780637a9e5e4b146106655780638da5cb5b1461068657806398bf4c081461069b5780639a7f027c146106b05780639b079084146106c55780639e93d0e4146106da578063a2860050146106f2578063a44be5361461072f578063b017d08c14610744578063bc2f45a714610759578063bd85948c1461076e578063bf7e214f14610776578063c24a96741461078b578063c28de2cd146107a0578063c5c87db4146107b5578063c623674f146107d9578063c9e18986146107ee578063cd9a1b6314610803578063d287e9e414610818578063f1b604081461072f578063f76339dc1461082d578063f958b9ca14610842578063fc0c546a14610857575b61024f600061086c565b005b34801561025d57600080fd5b506102666108fe565b60408051918252519081900360200190f35b34801561028457600080fd5b50610266610904565b34801561029957600080fd5b5061024f600160a060020a0360043516610914565b3480156102ba57600080fd5b506102c3610aa3565b60408051600160a060020a039092168252519081900360200190f35b3480156102eb57600080fd5b50610266610ab2565b34801561030057600080fd5b5061024f600160a060020a0360043516610ab8565b34801561032157600080fd5b50610266610b36565b34801561033657600080fd5b50610266610b3b565b34801561034b57600080fd5b50610354610b41565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561038e578181015183820152602001610376565b50505050905090810190601f1680156103bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d557600080fd5b50610266610bcf565b3480156103ea57600080fd5b50610402600160a060020a0360043516602435610bd5565b60408051938452602084019290925282820152519081900360600190f35b34801561042c57600080fd5b5061024f600435610c31565b34801561044457600080fd5b50610450600435610c5c565b60408051600160a060020a03909b168b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e0850152610100840152151561012083015251908190036101400190f35b3480156104b857600080fd5b5061024f610d11565b3480156104cd57600080fd5b506104e5600160a060020a0360043516602435610d6d565b604080519115158252519081900360200190f35b34801561050557600080fd5b5061024f610db9565b61024f600160a060020a036004351661086c565b61024f610f42565b34801561053657600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261024f94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610f549650505050505050565b3480156105cd57600080fd5b506105d66110a1565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561060857600080fd5b5061026661113a565b34801561061d57600080fd5b50610266611145565b34801561063257600080fd5b5061026661114b565b34801561064757600080fd5b50610266611157565b34801561065c57600080fd5b5061026661115e565b34801561067157600080fd5b5061024f600160a060020a0360043516611164565b34801561069257600080fd5b506102c36111de565b3480156106a757600080fd5b506102666111ed565b3480156106bc57600080fd5b506102666111f8565b3480156106d157600080fd5b50610266611204565b3480156106e657600080fd5b5061024f60043561120b565b3480156106fe57600080fd5b50610716600160a060020a0360043516602435611216565b6040805192835260208301919091528051918290030190f35b34801561073b57600080fd5b506102666112c8565b34801561075057600080fd5b506102666112d8565b34801561076557600080fd5b506102666112e4565b61024f6112f4565b34801561078257600080fd5b506102c361153c565b34801561079757600080fd5b5061024f61154b565b3480156107ac57600080fd5b506104e5611577565b3480156107c157600080fd5b5061024f600435600160a060020a0360243516611587565b3480156107e557600080fd5b50610354611687565b3480156107fa57600080fd5b506102666116df565b34801561080f57600080fd5b506102666116e5565b34801561082457600080fd5b506102666116eb565b34801561083957600080fd5b506102666116f1565b34801561084e57600080fd5b506102666116f7565b34801561086357600080fd5b506102c36116fd565b6010546000908110156108aa576010600f5481548110151561088a57fe5b90600052602060002090600b020190506108a581348461170c565b6108fa565b6040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f742079657420737461727465640000000000000000000000000000000000604482015290519081900360640190fd5b5050565b600c5481565b6b033b2e3c9fd0803ce800000081565b61092a33600035600160e060020a03191661193a565b151561093557600080fd5b600160a060020a0381161515610995576040805160e560020a62461bcd02815260206004820152601060248201527f496e76616c696420416464726573732100000000000000000000000000000000604482015290519081900360640190fd5b60045460a060020a900460ff16156109f7576040805160e560020a62461bcd02815260206004820152601160248201527f416c726561647920757067726164656421000000000000000000000000000000604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a17905560058054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116179055600f54601080549091908110610a5757fe5b90600052602060002090600b020160090160149054906101000a900460ff1615610aa057600a8054600554600160a060020a03166000908152600e602052604081209190915590555b50565b600554600160a060020a031681565b600d5481565b610ace33600035600160e060020a03191661193a565b1515610ad957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b601481565b61012c81565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b820191906000526020600020905b815481529060010190602001808311610baa57829003601f168201915b505050505081565b60075481565b600080600080601085815481101515610bea57fe5b60009182526020808320600160a060020a038a168452600a600b90930201918201905260409091206001015494509050610c248686611216565b9497909650939450505050565b6000601082815481101515610c4257fe5b90600052602060002090600b020190506108fa3382611a43565b600080600080600080600080600080600060108c815481101515610c7c57fe5b90600052602060002090600b020190508060090160009054906101000a9004600160a060020a03169a508060070154995080600101549850806002015497508060030154965080600001549550610cdf8160000154670905438e60010000611ae3565b945080600501549350806006015492508060090160149054906101000a900460ff169150509193959799509193959799565b6000610d2933600035600160e060020a03191661193a565b1515610d3457600080fd5b50600b80546000918290556040519091339183156108fc0291849190818181858888f193505050501580156108fa573d6000803e3d6000fd5b600080601083815481101515610d7f57fe5b60009182526020808320600160a060020a0388168452600a600b909302019182019052604090912054600482015411925090505092915050565b60008060006010600f54815481101515610dcf57fe5b90600052602060002090600b0201925060016010805490501115610e2f57610dfc336001600f5403610d6d565b15610e2f5760106001600f5403815481101515610e1557fe5b90600052602060002090600b02019150610e2f3383611a43565b610e393384611a43565b50336000908152600e6020526040812054908111610ea1576040805160e560020a62461bcd02815260206004820152601460248201527f4e6f7468696e6720746f20776974686472617721000000000000000000000000604482015290519081900360640190fd5b610ead600d5482611b1e565b600d55336000818152600e602090815260408083208381556001018390556004870154600a8801909252808320919091555183156108fc0291849190818181858888f19350505050158015610f06573d6000803e3d6000fd5b5060408051828152905133917f0f9fa24c1d9febdaf99508f4923a7b5add9bd70eab45c8fc614509df79894938919081900360200190a2505050565b610f4a61154b565b610f526112f4565b565b610f6a33600035600160e060020a03191661193a565b1515610f7557600080fd5b8151610f88906003906020850190612596565b508051610f9c906002906020840190612596565b507ffee9db57784d702235f09dd34534f59c3087590639932195e0447e7728ff44108282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611001578181015183820152602001610fe9565b50505050905090810190601f16801561102e5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611061578181015183820152602001611049565b50505050905090810190601f16801561108e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60008060008060006010600f548154811015156110ba57fe5b90600052602060002090600b02019050428160060154111561111e5780600301546006540193506110f78160000154670905438e60010000611ae3565b600754019450611113816000015467013fbe85edc90000611ae3565b60085401925061112e565b6006549350600754945060085492505b60095491505090919293565b66038d7ea4c6800081565b600a5481565b67013fbe85edc9000081565b6201518081565b60065481565b61117a33600035600160e060020a03191661193a565b151561118557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b662386f26fc1000081565b670905438e6001000081565b620d2f0081565b610aa0816000611587565b600080600080600060108681548110151561122d57fe5b90600052602060002090600b020192506001601080549050111561128c576112588760018803610d6d565b1561128c5760108054600019880190811061126f57fe5b90600052602060002090600b020190506112898782611b2e565b91505b6112968784611b2e565b600160a060020a039097166000908152600e602052604090208054600190910154979092019190910196945050505050565b6014670de0b6b3a76400005b0481565b670214e8348c4f000081565b6064670de0b6b3a76400006112d4565b600454600090819060a060020a900460ff161561135b576040805160e560020a62461bcd02815260206004820181905260248201527f5468697320636f6e747261637420686173206265656e20757067726164656421604482015290519081900360640190fd5b60105460001015611467576010600f5481548110151561137757fe5b90600052602060002090600b020160090160149054906101000a900460ff1615156113ec576040805160e560020a62461bcd02815260206004820152601c60248201527f50726576696f757320726f756e64206e6f742066696e616c697a656400000000604482015290519081900360640190fd5b426010600f548154811015156113fe57fe5b90600052602060002090600b020160060154101515611467576040805160e560020a62461bcd02815260206004820152601c60248201527f50726576696f757320726f756e64207374696c6c2072756e6e696e6700000000604482015290519081900360640190fd5b60108054906114799060018301612614565b915060108281548110151561148a57fe5b600091825260208220600f8590556009600b90920201908101805473ffffffffffffffffffffffffffffffffffffffff19163317905566038d7ea4c68000600782015542620d2f008101600583015562015180016006820155600a8054600183015582905591506114fe908290349061170c565b6005810154604080519182525183917f278844837bcf8364a705384bf3a2812901f54155bae86dea81dd52aa5b9ec0e3919081900360200190a25050565b600054600160a060020a031681565b60006010600f5481548110151561155e57fe5b90600052602060002090600b02019050610aa081611be5565b60045460a060020a900460ff1681565b60006010600f5481548110151561159a57fe5b90600052602060002090600b020190506115b43382611a43565b336000908152600e602052604090205483111561161b576040805160e560020a62461bcd02815260206004820152601f60248201527f43616e2774207370656e64207768617420796f7520646f6e2774206861766500604482015290519081900360640190fd5b336000908152600e60205260409020546116359084611b1e565b336000908152600e602052604090208181556001015461165491611fc8565b336000908152600e6020526040902060010155600d546116749084611b1e565b600d5561168281848461170c565b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b60085481565b600b5481565b60095481565b600f5481565b610e1081565b600454600160a060020a031681565b60008060004286600601541015151561176f576040805160e560020a62461bcd02815260206004820152600f60248201527f416674657220646561646c696e65210000000000000000000000000000000000604482015290519081900360640190fd5b6007860154600a90048510156117cf576040805160e560020a62461bcd02815260206004820152601160248201527f4e6f7420656e6f75676820457468657221000000000000000000000000000000604482015290519081900360640190fd5b85546117db9086611fe1565b86556007860154851061180a5760098601805473ffffffffffffffffffffffffffffffffffffffff1916331790555b6118148686611ff1565b61181f8686866121ac565b6118293387611a43565b61183486338761235c565b601054909350600114156118c85760048054604080517f40c10f1900000000000000000000000000000000000000000000000000000000815233938101939093526024830186905251600160a060020a03909116916340c10f1991604480830192600092919082900301818387803b1580156118af57600080fd5b505af11580156118c3573d6000803e3d6000fd5b505050505b670de0b6b3a7640000830491506118ee86600601546118e98461012c6124c7565b611fe1565b90506118ff81620151804201611fc8565b6006870155600586015442111561193257610e108660080154014211156119325760078601805460020290554260088701555b505050505050565b6000600160a060020a03831630141561195557506001611a3d565b600154600160a060020a038481169116141561197357506001611a3d565b600054600160a060020a0316151561198d57506000611a3d565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152306024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b158015611a0e57600080fd5b505af1158015611a22573d6000803e3d6000fd5b505050506040513d6020811015611a3857600080fd5b505190505b92915050565b600160a060020a0382166000908152600a820160205260408120600101541515611a6c57611682565b611a768383611b2e565b90506000811115611abe57600160a060020a0383166000908152600e6020526040902054611aa49082611fe1565b600160a060020a0384166000908152600e60205260409020555b6004820154600160a060020a0384166000908152600a84016020526040902055505050565b6000670de0b6b3a7640000611b0d611afb85856124c7565b6002670de0b6b3a76400005b04611fe1565b811515611b1657fe5b049392505050565b80820382811115611a3d57600080fd5b600160a060020a0382166000908152600a82016020526040812060010154819081901515611b5f5760009250611bdd565b6004840154600160a060020a0386166000908152600a86016020526040902054611b899190611b1e565b9150600090508115611bd957600160a060020a0385166000908152600a850160205260409020600101546b033b2e3c9fd0803ce800000090611bcc9084906124c7565b811515611bd557fe5b0490505b8092505b505092915050565b600981015460009060a060020a900460ff1615611c4c576040805160e560020a62461bcd02815260206004820152601260248201527f416c72656164792066696e616c697a6564210000000000000000000000000000604482015290519081900360640190fd5b60068201544211611ca7576040805160e560020a62461bcd02815260206004820152601460248201527f526f756e64207374696c6c2072756e6e696e6721000000000000000000000000604482015290519081900360640190fd5b60105460011415611d915760048054604080517f7d64bcb40000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692637d64bcb49282820192602092908290030181600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050506040513d6020811015611d3957600080fd5b50511515611d91576040805160e560020a62461bcd02815260206004820152601f60248201527f436f756c646e27742066696e697368206d696e74696e6720746f6b656e732100604482015290519081900360640190fd5b6009820154600160a060020a03166000908152600e60205260409020546001830154611dbd9190611fe1565b6009830154600160a060020a03166000908152600e6020526040902055600d546001830154611dec9190611fe1565b600d556009820154600183015460408051600160a060020a039093168352602083019190915280517fbf737c87eff4ef74213cb228c9e25ca0c4519947f5fcc4a41b221ba93d76a4259281900390910190a16001820154600980549091019055600a548254611e6c91906118e9906014670de0b6b3a76400005b04611ae3565b600a8190556002830154611e809190611fe1565b600a5560045460a060020a900460ff1615611eba57600a8054600554600160a060020a03166000908152600e602052604081209190915590555b60105460011415611edf578154611ed89066470de4df820000611ae3565b9050611ef6565b8154611ef39067013fbe85edc90000611ae3565b90505b60048054604080517f36ef1abb0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926336ef1abb928592808301926000929182900301818588803b158015611f5457600080fd5b505af1158015611f68573d6000803e3d6000fd5b5050600880548501905550505060038201546006805490910190558154611f9790670905438e60010000611ae3565b60078054909101905550600901805474ff0000000000000000000000000000000000000000191660a060020a179055565b600081831115611fd85781611fda565b825b9392505050565b80820182811015611a3d57600080fd5b600080333214612071576040805160e560020a62461bcd02815260206004820152603960248201527f4f4e4c5920484f4f4d414e5320286f722073637269707473207468617420646f60448201527f6e27742075736520736d61727420636f6e747261637473292100000000000000606482015290519081900360840190fd5b67016345785d8a00008311156121a657604080516000194301406020808301919091524282840152825180830384018152606090920192839052815191929182918401908083835b602083106120d85780518252601f1990920191602091820191016120b9565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120945060c892508491506121119050565b0615156121a65750600283810180549190910490819055336000908152600e60205260409020546121429082611fe1565b336000908152600e6020526040902055600d5461215f9082611fe1565b600d556009805482019055604080513381526020810183905281517ff5d01889f04f77ed9ff391da32496e63ce53f4b0d0c246651254895d04bcd99a929181900390910190a15b50505050565b600080600080600080601080549050600114156121cf576701cdda4faccd000094505b600160a060020a03871615612286576121f3886708e1bc9bf0400000879003611ae3565b955061220688662386f26fc10000611ae3565b600160a060020a0388166000908152600e602052604090205490945061222c9085611fe1565b600160a060020a0388166000908152600e60205260409020908155600101546122559085611fe1565b600160a060020a0388166000908152600e6020526040902060010155600d5461227e9085611fe1565b600d5561229d565b61229a8886670905438e6001000003611ae3565b95505b6122b1886064670de0b6b3a7640000611e66565b92506122c588670214e8348c4f0000611ae3565b601054909250600114156122e75750600c8054600489049081019091556122ed565b50601487045b6003890154151561231057612306896001015487611fe1565b60018a015561231a565b61231a89876124ef565b612328896002015484611fe1565b60028a0155600189015461233c9083611fe1565b60018a0155600b5461234e9082611fe1565b600b55505050505050505050565b600160a060020a0382166000908152600a84016020526040812054819015156123a0576004850154600160a060020a0385166000908152600a870160205260409020555b6123ae838660070154612576565b905068056bc75e2d6310000083106123d2576123cb8160026124c7565b9050612426565b678ac7230489e8000083106123ed576123cb81600281611b07565b670de0b6b3a76400008310612408576123cb81600381611b07565b67016345785d8a000083106124265761242381600a81611b07565b90505b600160a060020a0384166000908152600a8601602052604090206001015461244e9082611fe1565b600160a060020a0385166000908152600a87016020526040902060010155600385015461247b9082611fe1565b6003860155604080518281529051600160a060020a038616917f3abf6d97fde3541bb582f72fa6fb75093b8bb699577fbc722ac25de9f6fbc4ed919081900360200190a2949350505050565b60008115806124e45750508082028282828115156124e157fe5b04145b1515611a3d57600080fd5b6124fb600d5482611fe1565b600d556003820154151561254157612517818360070154612576565b61252d826b033b2e3c9fd0803ce80000006124c7565b81151561253657fe5b0460048301556108fa565b61256d82600401548360030154612564846b033b2e3c9fd0803ce80000006124c7565b811515611b0757fe5b60048301555050565b600081611b0d61258e85670de0b6b3a76400006124c7565b600285611b07565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125d757805160ff1916838001178555612604565b82800160010185558215612604579182015b828111156126045782518255916020019190600101906125e9565b50612610929150612640565b5090565b81548183558181111561168257600b0281600b028360005260206000209182019101611682919061265d565b61265a91905b808211156126105760008155600101612646565b90565b61265a91905b8082111561261057600080825560018201819055600282018190556003820181905560048201819055600582018190556006820181905560078201819055600882015560098101805474ffffffffffffffffffffffffffffffffffffffffff19169055600b016126635600a165627a7a723058206efc7df64d81f9b9ab80b0219d8d55fd67bce31538f57ae2c4fd362ecca14c91002900000000000000000000000072ffda7153bab00e61ed93344eed8dcaec7450b4
Deployed Bytecode
0x6080604052600436106102455763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302605ea88114610251578063059f8b16146102785780630900f0101461028d5780630bafd60e146102ae5780630d6c03fa146102df57806313af4035146102f457806314a0450a146103155780633314b9521461032a578063377c93bf1461033f5780633bfc1b25146103c95780633d6859f2146103de57806340c0ece314610420578063427f0b001461043857806343db053e146104ac57806348afd1b3146104c15780634c7ce18a146104f95780634c85b4251461050e578063536942b614610522578063574d65541461052a57806357b16811146105c15780635faf500f146105fc578063619360df1461061157806361983c021461062657806368fab02a1461063b57806373aff5af146106505780637a9e5e4b146106655780638da5cb5b1461068657806398bf4c081461069b5780639a7f027c146106b05780639b079084146106c55780639e93d0e4146106da578063a2860050146106f2578063a44be5361461072f578063b017d08c14610744578063bc2f45a714610759578063bd85948c1461076e578063bf7e214f14610776578063c24a96741461078b578063c28de2cd146107a0578063c5c87db4146107b5578063c623674f146107d9578063c9e18986146107ee578063cd9a1b6314610803578063d287e9e414610818578063f1b604081461072f578063f76339dc1461082d578063f958b9ca14610842578063fc0c546a14610857575b61024f600061086c565b005b34801561025d57600080fd5b506102666108fe565b60408051918252519081900360200190f35b34801561028457600080fd5b50610266610904565b34801561029957600080fd5b5061024f600160a060020a0360043516610914565b3480156102ba57600080fd5b506102c3610aa3565b60408051600160a060020a039092168252519081900360200190f35b3480156102eb57600080fd5b50610266610ab2565b34801561030057600080fd5b5061024f600160a060020a0360043516610ab8565b34801561032157600080fd5b50610266610b36565b34801561033657600080fd5b50610266610b3b565b34801561034b57600080fd5b50610354610b41565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561038e578181015183820152602001610376565b50505050905090810190601f1680156103bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d557600080fd5b50610266610bcf565b3480156103ea57600080fd5b50610402600160a060020a0360043516602435610bd5565b60408051938452602084019290925282820152519081900360600190f35b34801561042c57600080fd5b5061024f600435610c31565b34801561044457600080fd5b50610450600435610c5c565b60408051600160a060020a03909b168b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e0850152610100840152151561012083015251908190036101400190f35b3480156104b857600080fd5b5061024f610d11565b3480156104cd57600080fd5b506104e5600160a060020a0360043516602435610d6d565b604080519115158252519081900360200190f35b34801561050557600080fd5b5061024f610db9565b61024f600160a060020a036004351661086c565b61024f610f42565b34801561053657600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261024f94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610f549650505050505050565b3480156105cd57600080fd5b506105d66110a1565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561060857600080fd5b5061026661113a565b34801561061d57600080fd5b50610266611145565b34801561063257600080fd5b5061026661114b565b34801561064757600080fd5b50610266611157565b34801561065c57600080fd5b5061026661115e565b34801561067157600080fd5b5061024f600160a060020a0360043516611164565b34801561069257600080fd5b506102c36111de565b3480156106a757600080fd5b506102666111ed565b3480156106bc57600080fd5b506102666111f8565b3480156106d157600080fd5b50610266611204565b3480156106e657600080fd5b5061024f60043561120b565b3480156106fe57600080fd5b50610716600160a060020a0360043516602435611216565b6040805192835260208301919091528051918290030190f35b34801561073b57600080fd5b506102666112c8565b34801561075057600080fd5b506102666112d8565b34801561076557600080fd5b506102666112e4565b61024f6112f4565b34801561078257600080fd5b506102c361153c565b34801561079757600080fd5b5061024f61154b565b3480156107ac57600080fd5b506104e5611577565b3480156107c157600080fd5b5061024f600435600160a060020a0360243516611587565b3480156107e557600080fd5b50610354611687565b3480156107fa57600080fd5b506102666116df565b34801561080f57600080fd5b506102666116e5565b34801561082457600080fd5b506102666116eb565b34801561083957600080fd5b506102666116f1565b34801561084e57600080fd5b506102666116f7565b34801561086357600080fd5b506102c36116fd565b6010546000908110156108aa576010600f5481548110151561088a57fe5b90600052602060002090600b020190506108a581348461170c565b6108fa565b6040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f742079657420737461727465640000000000000000000000000000000000604482015290519081900360640190fd5b5050565b600c5481565b6b033b2e3c9fd0803ce800000081565b61092a33600035600160e060020a03191661193a565b151561093557600080fd5b600160a060020a0381161515610995576040805160e560020a62461bcd02815260206004820152601060248201527f496e76616c696420416464726573732100000000000000000000000000000000604482015290519081900360640190fd5b60045460a060020a900460ff16156109f7576040805160e560020a62461bcd02815260206004820152601160248201527f416c726561647920757067726164656421000000000000000000000000000000604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a17905560058054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116179055600f54601080549091908110610a5757fe5b90600052602060002090600b020160090160149054906101000a900460ff1615610aa057600a8054600554600160a060020a03166000908152600e602052604081209190915590555b50565b600554600160a060020a031681565b600d5481565b610ace33600035600160e060020a03191661193a565b1515610ad957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b601481565b61012c81565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b820191906000526020600020905b815481529060010190602001808311610baa57829003601f168201915b505050505081565b60075481565b600080600080601085815481101515610bea57fe5b60009182526020808320600160a060020a038a168452600a600b90930201918201905260409091206001015494509050610c248686611216565b9497909650939450505050565b6000601082815481101515610c4257fe5b90600052602060002090600b020190506108fa3382611a43565b600080600080600080600080600080600060108c815481101515610c7c57fe5b90600052602060002090600b020190508060090160009054906101000a9004600160a060020a03169a508060070154995080600101549850806002015497508060030154965080600001549550610cdf8160000154670905438e60010000611ae3565b945080600501549350806006015492508060090160149054906101000a900460ff169150509193959799509193959799565b6000610d2933600035600160e060020a03191661193a565b1515610d3457600080fd5b50600b80546000918290556040519091339183156108fc0291849190818181858888f193505050501580156108fa573d6000803e3d6000fd5b600080601083815481101515610d7f57fe5b60009182526020808320600160a060020a0388168452600a600b909302019182019052604090912054600482015411925090505092915050565b60008060006010600f54815481101515610dcf57fe5b90600052602060002090600b0201925060016010805490501115610e2f57610dfc336001600f5403610d6d565b15610e2f5760106001600f5403815481101515610e1557fe5b90600052602060002090600b02019150610e2f3383611a43565b610e393384611a43565b50336000908152600e6020526040812054908111610ea1576040805160e560020a62461bcd02815260206004820152601460248201527f4e6f7468696e6720746f20776974686472617721000000000000000000000000604482015290519081900360640190fd5b610ead600d5482611b1e565b600d55336000818152600e602090815260408083208381556001018390556004870154600a8801909252808320919091555183156108fc0291849190818181858888f19350505050158015610f06573d6000803e3d6000fd5b5060408051828152905133917f0f9fa24c1d9febdaf99508f4923a7b5add9bd70eab45c8fc614509df79894938919081900360200190a2505050565b610f4a61154b565b610f526112f4565b565b610f6a33600035600160e060020a03191661193a565b1515610f7557600080fd5b8151610f88906003906020850190612596565b508051610f9c906002906020840190612596565b507ffee9db57784d702235f09dd34534f59c3087590639932195e0447e7728ff44108282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611001578181015183820152602001610fe9565b50505050905090810190601f16801561102e5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611061578181015183820152602001611049565b50505050905090810190601f16801561108e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60008060008060006010600f548154811015156110ba57fe5b90600052602060002090600b02019050428160060154111561111e5780600301546006540193506110f78160000154670905438e60010000611ae3565b600754019450611113816000015467013fbe85edc90000611ae3565b60085401925061112e565b6006549350600754945060085492505b60095491505090919293565b66038d7ea4c6800081565b600a5481565b67013fbe85edc9000081565b6201518081565b60065481565b61117a33600035600160e060020a03191661193a565b151561118557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b662386f26fc1000081565b670905438e6001000081565b620d2f0081565b610aa0816000611587565b600080600080600060108681548110151561122d57fe5b90600052602060002090600b020192506001601080549050111561128c576112588760018803610d6d565b1561128c5760108054600019880190811061126f57fe5b90600052602060002090600b020190506112898782611b2e565b91505b6112968784611b2e565b600160a060020a039097166000908152600e602052604090208054600190910154979092019190910196945050505050565b6014670de0b6b3a76400005b0481565b670214e8348c4f000081565b6064670de0b6b3a76400006112d4565b600454600090819060a060020a900460ff161561135b576040805160e560020a62461bcd02815260206004820181905260248201527f5468697320636f6e747261637420686173206265656e20757067726164656421604482015290519081900360640190fd5b60105460001015611467576010600f5481548110151561137757fe5b90600052602060002090600b020160090160149054906101000a900460ff1615156113ec576040805160e560020a62461bcd02815260206004820152601c60248201527f50726576696f757320726f756e64206e6f742066696e616c697a656400000000604482015290519081900360640190fd5b426010600f548154811015156113fe57fe5b90600052602060002090600b020160060154101515611467576040805160e560020a62461bcd02815260206004820152601c60248201527f50726576696f757320726f756e64207374696c6c2072756e6e696e6700000000604482015290519081900360640190fd5b60108054906114799060018301612614565b915060108281548110151561148a57fe5b600091825260208220600f8590556009600b90920201908101805473ffffffffffffffffffffffffffffffffffffffff19163317905566038d7ea4c68000600782015542620d2f008101600583015562015180016006820155600a8054600183015582905591506114fe908290349061170c565b6005810154604080519182525183917f278844837bcf8364a705384bf3a2812901f54155bae86dea81dd52aa5b9ec0e3919081900360200190a25050565b600054600160a060020a031681565b60006010600f5481548110151561155e57fe5b90600052602060002090600b02019050610aa081611be5565b60045460a060020a900460ff1681565b60006010600f5481548110151561159a57fe5b90600052602060002090600b020190506115b43382611a43565b336000908152600e602052604090205483111561161b576040805160e560020a62461bcd02815260206004820152601f60248201527f43616e2774207370656e64207768617420796f7520646f6e2774206861766500604482015290519081900360640190fd5b336000908152600e60205260409020546116359084611b1e565b336000908152600e602052604090208181556001015461165491611fc8565b336000908152600e6020526040902060010155600d546116749084611b1e565b600d5561168281848461170c565b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b60085481565b600b5481565b60095481565b600f5481565b610e1081565b600454600160a060020a031681565b60008060004286600601541015151561176f576040805160e560020a62461bcd02815260206004820152600f60248201527f416674657220646561646c696e65210000000000000000000000000000000000604482015290519081900360640190fd5b6007860154600a90048510156117cf576040805160e560020a62461bcd02815260206004820152601160248201527f4e6f7420656e6f75676820457468657221000000000000000000000000000000604482015290519081900360640190fd5b85546117db9086611fe1565b86556007860154851061180a5760098601805473ffffffffffffffffffffffffffffffffffffffff1916331790555b6118148686611ff1565b61181f8686866121ac565b6118293387611a43565b61183486338761235c565b601054909350600114156118c85760048054604080517f40c10f1900000000000000000000000000000000000000000000000000000000815233938101939093526024830186905251600160a060020a03909116916340c10f1991604480830192600092919082900301818387803b1580156118af57600080fd5b505af11580156118c3573d6000803e3d6000fd5b505050505b670de0b6b3a7640000830491506118ee86600601546118e98461012c6124c7565b611fe1565b90506118ff81620151804201611fc8565b6006870155600586015442111561193257610e108660080154014211156119325760078601805460020290554260088701555b505050505050565b6000600160a060020a03831630141561195557506001611a3d565b600154600160a060020a038481169116141561197357506001611a3d565b600054600160a060020a0316151561198d57506000611a3d565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152306024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b158015611a0e57600080fd5b505af1158015611a22573d6000803e3d6000fd5b505050506040513d6020811015611a3857600080fd5b505190505b92915050565b600160a060020a0382166000908152600a820160205260408120600101541515611a6c57611682565b611a768383611b2e565b90506000811115611abe57600160a060020a0383166000908152600e6020526040902054611aa49082611fe1565b600160a060020a0384166000908152600e60205260409020555b6004820154600160a060020a0384166000908152600a84016020526040902055505050565b6000670de0b6b3a7640000611b0d611afb85856124c7565b6002670de0b6b3a76400005b04611fe1565b811515611b1657fe5b049392505050565b80820382811115611a3d57600080fd5b600160a060020a0382166000908152600a82016020526040812060010154819081901515611b5f5760009250611bdd565b6004840154600160a060020a0386166000908152600a86016020526040902054611b899190611b1e565b9150600090508115611bd957600160a060020a0385166000908152600a850160205260409020600101546b033b2e3c9fd0803ce800000090611bcc9084906124c7565b811515611bd557fe5b0490505b8092505b505092915050565b600981015460009060a060020a900460ff1615611c4c576040805160e560020a62461bcd02815260206004820152601260248201527f416c72656164792066696e616c697a6564210000000000000000000000000000604482015290519081900360640190fd5b60068201544211611ca7576040805160e560020a62461bcd02815260206004820152601460248201527f526f756e64207374696c6c2072756e6e696e6721000000000000000000000000604482015290519081900360640190fd5b60105460011415611d915760048054604080517f7d64bcb40000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692637d64bcb49282820192602092908290030181600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050506040513d6020811015611d3957600080fd5b50511515611d91576040805160e560020a62461bcd02815260206004820152601f60248201527f436f756c646e27742066696e697368206d696e74696e6720746f6b656e732100604482015290519081900360640190fd5b6009820154600160a060020a03166000908152600e60205260409020546001830154611dbd9190611fe1565b6009830154600160a060020a03166000908152600e6020526040902055600d546001830154611dec9190611fe1565b600d556009820154600183015460408051600160a060020a039093168352602083019190915280517fbf737c87eff4ef74213cb228c9e25ca0c4519947f5fcc4a41b221ba93d76a4259281900390910190a16001820154600980549091019055600a548254611e6c91906118e9906014670de0b6b3a76400005b04611ae3565b600a8190556002830154611e809190611fe1565b600a5560045460a060020a900460ff1615611eba57600a8054600554600160a060020a03166000908152600e602052604081209190915590555b60105460011415611edf578154611ed89066470de4df820000611ae3565b9050611ef6565b8154611ef39067013fbe85edc90000611ae3565b90505b60048054604080517f36ef1abb0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926336ef1abb928592808301926000929182900301818588803b158015611f5457600080fd5b505af1158015611f68573d6000803e3d6000fd5b5050600880548501905550505060038201546006805490910190558154611f9790670905438e60010000611ae3565b60078054909101905550600901805474ff0000000000000000000000000000000000000000191660a060020a179055565b600081831115611fd85781611fda565b825b9392505050565b80820182811015611a3d57600080fd5b600080333214612071576040805160e560020a62461bcd02815260206004820152603960248201527f4f4e4c5920484f4f4d414e5320286f722073637269707473207468617420646f60448201527f6e27742075736520736d61727420636f6e747261637473292100000000000000606482015290519081900360840190fd5b67016345785d8a00008311156121a657604080516000194301406020808301919091524282840152825180830384018152606090920192839052815191929182918401908083835b602083106120d85780518252601f1990920191602091820191016120b9565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120945060c892508491506121119050565b0615156121a65750600283810180549190910490819055336000908152600e60205260409020546121429082611fe1565b336000908152600e6020526040902055600d5461215f9082611fe1565b600d556009805482019055604080513381526020810183905281517ff5d01889f04f77ed9ff391da32496e63ce53f4b0d0c246651254895d04bcd99a929181900390910190a15b50505050565b600080600080600080601080549050600114156121cf576701cdda4faccd000094505b600160a060020a03871615612286576121f3886708e1bc9bf0400000879003611ae3565b955061220688662386f26fc10000611ae3565b600160a060020a0388166000908152600e602052604090205490945061222c9085611fe1565b600160a060020a0388166000908152600e60205260409020908155600101546122559085611fe1565b600160a060020a0388166000908152600e6020526040902060010155600d5461227e9085611fe1565b600d5561229d565b61229a8886670905438e6001000003611ae3565b95505b6122b1886064670de0b6b3a7640000611e66565b92506122c588670214e8348c4f0000611ae3565b601054909250600114156122e75750600c8054600489049081019091556122ed565b50601487045b6003890154151561231057612306896001015487611fe1565b60018a015561231a565b61231a89876124ef565b612328896002015484611fe1565b60028a0155600189015461233c9083611fe1565b60018a0155600b5461234e9082611fe1565b600b55505050505050505050565b600160a060020a0382166000908152600a84016020526040812054819015156123a0576004850154600160a060020a0385166000908152600a870160205260409020555b6123ae838660070154612576565b905068056bc75e2d6310000083106123d2576123cb8160026124c7565b9050612426565b678ac7230489e8000083106123ed576123cb81600281611b07565b670de0b6b3a76400008310612408576123cb81600381611b07565b67016345785d8a000083106124265761242381600a81611b07565b90505b600160a060020a0384166000908152600a8601602052604090206001015461244e9082611fe1565b600160a060020a0385166000908152600a87016020526040902060010155600385015461247b9082611fe1565b6003860155604080518281529051600160a060020a038616917f3abf6d97fde3541bb582f72fa6fb75093b8bb699577fbc722ac25de9f6fbc4ed919081900360200190a2949350505050565b60008115806124e45750508082028282828115156124e157fe5b04145b1515611a3d57600080fd5b6124fb600d5482611fe1565b600d556003820154151561254157612517818360070154612576565b61252d826b033b2e3c9fd0803ce80000006124c7565b81151561253657fe5b0460048301556108fa565b61256d82600401548360030154612564846b033b2e3c9fd0803ce80000006124c7565b811515611b0757fe5b60048301555050565b600081611b0d61258e85670de0b6b3a76400006124c7565b600285611b07565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125d757805160ff1916838001178555612604565b82800160010185558215612604579182015b828111156126045782518255916020019190600101906125e9565b50612610929150612640565b5090565b81548183558181111561168257600b0281600b028360005260206000209182019101611682919061265d565b61265a91905b808211156126105760008155600101612646565b90565b61265a91905b8082111561261057600080825560018201819055600282018190556003820181905560048201819055600582018190556006820181905560078201819055600882015560098101805474ffffffffffffffffffffffffffffffffffffffffff19169055600b016126635600a165627a7a723058206efc7df64d81f9b9ab80b0219d8d55fd67bce31538f57ae2c4fd362ecca14c910029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000072ffda7153bab00e61ed93344eed8dcaec7450b4
-----Decoded View---------------
Arg [0] : _token (address): 0x72fFdA7153bAb00E61Ed93344eed8dCAEc7450B4
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000072ffda7153bab00e61ed93344eed8dcaec7450b4
Swarm Source
bzzr://6efc7df64d81f9b9ab80b0219d8d55fd67bce31538f57ae2c4fd362ecca14c91
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,631.75 | 2.5565 | $6,728.15 |
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.