Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 25 from a total of 252 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Zero Out | 6846758 | 2304 days ago | IN | 0 ETH | 0.00015471 | ||||
User Withdraw | 6271949 | 2399 days ago | IN | 0 ETH | 0.0162 | ||||
Dev Withdraw | 6271937 | 2399 days ago | IN | 0 ETH | 0.00122601 | ||||
User Withdraw | 6271929 | 2399 days ago | IN | 0 ETH | 0.0162 | ||||
User Withdraw | 6268612 | 2399 days ago | IN | 0 ETH | 0.003 | ||||
User Withdraw | 6257144 | 2401 days ago | IN | 0 ETH | 0.0036 | ||||
User Withdraw | 6246297 | 2403 days ago | IN | 0 ETH | 0.0078 | ||||
Transfer | 6246288 | 2403 days ago | IN | 0 ETH | 0.00016836 | ||||
User Withdraw | 6246277 | 2403 days ago | IN | 0 ETH | 0.0036 | ||||
User Withdraw | 6244509 | 2403 days ago | IN | 0 ETH | 0.00053804 | ||||
User Withdraw | 6242291 | 2404 days ago | IN | 0 ETH | 0.00018841 | ||||
User Withdraw | 6241908 | 2404 days ago | IN | 0 ETH | 0.00026941 | ||||
User Withdraw | 6240960 | 2404 days ago | IN | 0 ETH | 0.00020176 | ||||
User Withdraw | 6240757 | 2404 days ago | IN | 0 ETH | 0.00022046 | ||||
User Withdraw | 6240482 | 2404 days ago | IN | 0 ETH | 0.00033676 | ||||
User Withdraw | 6240482 | 2404 days ago | IN | 0 ETH | 0.00033759 | ||||
User Withdraw | 6240231 | 2404 days ago | IN | 0 ETH | 0.00045012 | ||||
User Withdraw | 6240156 | 2404 days ago | IN | 0 ETH | 0.00020259 | ||||
User Withdraw | 6240141 | 2404 days ago | IN | 0 ETH | 0.00026902 | ||||
User Withdraw | 6239656 | 2404 days ago | IN | 0 ETH | 0.00033759 | ||||
User Withdraw | 6239542 | 2404 days ago | IN | 0 ETH | 0.00067353 | ||||
User Withdraw | 6239389 | 2404 days ago | IN | 0 ETH | 0.00028176 | ||||
User Withdraw | 6239173 | 2404 days ago | IN | 0 ETH | 0.00033676 | ||||
User Withdraw | 6239144 | 2404 days ago | IN | 0 ETH | 0.000343 | ||||
User Withdraw | 6239000 | 2404 days ago | IN | 0 ETH | 0.00022506 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
- | 6846758 | 2304 days ago | 1.00802636 ETH | ||||
Transfer | 6249131 | 2403 days ago | 0.01 ETH | ||||
Transfer | 6249113 | 2403 days ago | 0 ETH | ||||
Transfer | 6244509 | 2403 days ago | 0.68824132 ETH | ||||
Transfer | 6242291 | 2404 days ago | 0.00140713 ETH | ||||
Transfer | 6241908 | 2404 days ago | 0.01769259 ETH | ||||
Transfer | 6240960 | 2404 days ago | 0.39442402 ETH | ||||
Transfer | 6240482 | 2404 days ago | 1.0069469 ETH | ||||
Transfer | 6240482 | 2404 days ago | 0.12463374 ETH | ||||
Transfer | 6240231 | 2404 days ago | 0.03908856 ETH | ||||
Transfer | 6240156 | 2404 days ago | 0.00264943 ETH | ||||
Transfer | 6240141 | 2404 days ago | 0.77753056 ETH | ||||
Transfer | 6239656 | 2404 days ago | 0.0870366 ETH | ||||
Transfer | 6239542 | 2404 days ago | 0.1015623 ETH | ||||
Transfer | 6239389 | 2404 days ago | 0.00884629 ETH | ||||
Transfer | 6239173 | 2404 days ago | 0.00884629 ETH | ||||
Transfer | 6239144 | 2404 days ago | 0.06174093 ETH | ||||
Transfer | 6239000 | 2404 days ago | 0.03982314 ETH | ||||
Transfer | 6238895 | 2404 days ago | 0.18551708 ETH | ||||
Transfer | 6238768 | 2404 days ago | 0.00023122 ETH | ||||
Transfer | 6238690 | 2404 days ago | 0.03131638 ETH | ||||
Transfer | 6238680 | 2404 days ago | 0.00679188 ETH | ||||
Transfer | 6238662 | 2404 days ago | 0.02211574 ETH | ||||
Transfer | 6238605 | 2404 days ago | 0.02211574 ETH | ||||
Transfer | 6238577 | 2404 days ago | 10.17268644 ETH |
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x502465e23db9665a1c70576fff7ecb188a1c2051bd6efbb39c5db927df5254f3
Contract Name:
ZEROxRACER
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-08-26 */ // 0xRACER is a brand new team-based pot lottery game. // Users are grouped into teams based on the first byte of their address. // Team One: 0x0..., 0x1..., 0x2..., 0x3..., 0x4..., 0x5..., 0x6..., 0x7... // Team Two: 0x8..., 0x9..., 0xa..., 0xb..., 0xc..., 0xd..., 0xe..., 0x0... // DISCLAIMER: This is an experimental game in distributed psychology and distributed technology. // DISCLAIMER: You can, and likely will, lose any ETH you send to this contract. Don't send more than you can afford to lose. Or any at all. // RULES: // 1. The team with the highest buy volume when the clock expires wins the pot. // 2. The pot is divided among the winning team members, proportional to a weighted share of team volume. // 3. Each team has a different share price that increases at a rate of 102% per ETH of buy volume. // 4. Every new buy adds time to the clock at the rate of 1 second/finney. The timer is capped at 24h. // 5. You can also reduce the clock at the rate of 1 second/finney, but this does not count towards your share. The timer can't go below 5 minutes with this method. // 6. Referrals and dividends are distributed by team. 50% of each new buy is proportionally split between that team's members. // 7. New seeded rounds with new teams will begin on a semi-regular basis based on user interest. Each game will use a new contract. // 8. In the unlikely event of a tie, the pot is distributed proportionally as weighted shares of total volume. // 9. The minimum buy starts at 1 finney and increases with share price. No maximum. // 10. There is no maximum buy, but large buys receive proportionally fewer shares. For example: 1 x 100 ETH buy (33,333 shares) vs. 100 x 1 ETH (55,265 shares). // 10. No contracts allowed. // 11. Users can withdraw earned dividends from referrals or pot wins at any time. Shares cannot be sold. // 12. The round will automatically open based on a preset timer. // 13. The contract will be closed no sooner than 100 days after the round ends. Any unclaimed user funds left past this time may be lost. // STRATEGY: // A. This game is designed to support multiple modes of play. // B. Get in early and shill your team to collect divs. // C. Manage risk by playing both sides of the fence. // D. Flex your whale wallet by front running and reducing the timer. // E. Piggy back on big players by making sure you're on the same team. // F. Gain a larger share of divs by supporting the underdog. // G. Buy smaller amounts to maximize your share count. // https://zeroxracer.surge.sh/ // https://discord.gg/6Q7kGpc // by nightman pragma solidity ^0.4.24; contract ZEROxRACER { //VARIABLES AND CONSTANTS //global address public owner; uint256 public devBalance; uint256 public devFeeRate = 4; //4% of pot, not volume; effective dev fee, including premine, is ~2.5-3.5% depending on volume uint256 public precisionFactor = 6; //shares precise to 0.0001% address public addressThreshold = 0x7F00000000000000000000000000000000000000; //0x00-0x7f on Team One; 0x80-0xff on Team Two uint256 public divRate = 50; //50% dividends for each buy, distributed proportionally to weighted team volume //team accounting uint256 public teamOneId = 1; string public teamOnePrefix = "Team 0x1234567"; uint256 public teamOneVolume; uint256 public teamOneShares; uint256 public teamOneDivsTotal; uint256 public teamOneDivsUnclaimed; uint256 public teamOneSharePrice = 1000000000000000; //1 finney starting price; increases 102% per ETH bought uint256 public teamTwoId = 2; string public teamTwoPrefix = "Team 0x89abcdef"; uint256 public teamTwoVolume; uint256 public teamTwoShares; uint256 public teamTwoDivsTotal; uint256 public teamTwoDivsUnclaimed; uint256 public teamTwoSharePrice = 1000000000000000; //1 finney starting price; increases 102% per ETH bought //user accounting address[] public teamOneMembers; mapping (address => bool) public isTeamOneMember; mapping (address => uint256) public userTeamOneStake; mapping (address => uint256) public userTeamOneShares; mapping (address => uint256) private userDivsTeamOneTotal; mapping (address => uint256) private userDivsTeamOneClaimed; mapping (address => uint256) private userDivsTeamOneUnclaimed; mapping (address => uint256) private userDivRateTeamOne; address[] public teamTwoMembers; mapping (address => bool) public isTeamTwoMember; mapping (address => uint256) public userTeamTwoStake; mapping (address => uint256) public userTeamTwoShares; mapping (address => uint256) private userDivsTeamTwoTotal; mapping (address => uint256) private userDivsTeamTwoClaimed; mapping (address => uint256) private userDivsTeamTwoUnclaimed; mapping (address => uint256) private userDivRateTeamTwo; //round accounting uint256 public pot; uint256 public timerStart; uint256 public timerMax; uint256 public roundStartTime; uint256 public roundEndTime; bool public roundOpen = false; bool public roundSetUp = false; bool public roundResolved = false; //CONSTRUCTOR constructor() public { owner = msg.sender; emit contractLaunched(owner); } //MODIFIERS modifier onlyOwner() { require (msg.sender == owner, "you are not the owner"); _; } modifier gameOpen() { require (roundResolved == false); require (roundSetUp == true); require (now < roundEndTime, "it is too late to play"); require (now >= roundStartTime, "it is too early to play"); _; } modifier onlyHumans() { require (msg.sender == tx.origin, "you cannot use a contract"); _; } //EVENTS event potFunded( address _funder, uint256 _amount, string _message ); event teamBuy( address _buyer, uint256 _amount, uint256 _teamID, string _message ); event roundEnded( uint256 _winningTeamId, string _winningTeamString, uint256 _pot, string _message ); event newRoundStarted( uint256 _timeStart, uint256 _timeMax, uint256 _seed, string _message ); event userWithdrew( address _user, uint256 _teamID, uint256 _teamAmount, string _message ); event devWithdrew( address _owner, uint256 _amount, string _message ); event contractClosed( address _owner, uint256 _amount, string _message ); event contractLaunched( address _owner ); //DEV FUNCTIONS //start round function openRound (uint _timerStart, uint _timerMax) public payable onlyOwner() { require (roundOpen == false, "you can only start the game once"); require (roundResolved == false, "you cannot restart a finished game"); require (msg.value == 2 ether, "you must give a decent seed"); //round set up roundSetUp = true; timerStart = _timerStart; timerMax = _timerMax; roundStartTime = 1535504400; //Tuesday, August 28, 2018 9:00:00 PM Eastern Time roundEndTime = 1535504400 + timerStart; pot += msg.value; //the seed is also a sneaky premine //set up correct accounting for 1 ETH buy to each team without calling buy() address devA = 0x5C035Bb4Cb7dacbfeE076A5e61AA39a10da2E956; address devB = 0x84ECB387395a1be65E133c75Ff9e5FCC6F756DB3; teamOneVolume = 1 ether; teamTwoVolume = 1 ether; teamOneMembers.push(devA); teamTwoMembers.push(devB); isTeamOneMember[devA] = true; isTeamOneMember[devB] = true; userTeamOneStake[devA] = 1 ether; userTeamTwoStake[devB] = 1 ether; userTeamOneShares[devA] = 1000; userTeamTwoShares[devB] = 1000; teamOneShares = 1000; teamTwoShares = 1000; emit newRoundStarted(timerStart, timerMax, msg.value, "a new game was just set up"); } //dev withdraw function devWithdraw() public onlyOwner() { require (devBalance > 0, "you must have an available balance"); require(devBalance <= address(this).balance, "you cannot print money"); uint256 shareTemp = devBalance; devBalance = 0; owner.transfer(shareTemp); emit devWithdrew(owner, shareTemp, "the dev just withdrew"); } //close contract //this function allows the dev to collect any wei dust from rounding errors no sooner than 100 days after the game ends //wei dust will be at most (teamOneVolume + teamTwoVolume) / 10 ** precisionFactor (ie, 0.0001% of the total buy volume) //users must withdraw any earned divs before this date, or risk losing them function zeroOut() public onlyOwner() { require (now >= roundEndTime + 100 days, "too early to exit scam"); require (roundResolved == true && roundOpen == false, "the game is not resolved"); emit contractClosed(owner, address(this).balance, "the contract is now closed"); selfdestruct(owner); } //PUBLIC FUNCTIONS function buy() public payable gameOpen() onlyHumans() { //toggle roundOpen on first buy after roundStartTime if (roundOpen == false && now >= roundStartTime && now < roundEndTime) { roundOpen = true; } //establish team affiliation uint256 _teamID; if (checkAddressTeamOne(msg.sender) == true) { _teamID = 1; } else if (checkAddressTeamTwo(msg.sender) == true) { _teamID = 2; } //adjust pot and div balances if (_teamID == 1 && teamOneMembers.length == 0 || _teamID == 2 && teamTwoMembers.length == 0) { //do not distribute divs on first buy from either team. prevents black-holed ether //redundant if openRound() includes a premine pot += msg.value; } else { uint256 divContribution = uint256(SafeMaths.div(SafeMaths.mul(msg.value, divRate), 100)); uint256 potContribution = msg.value - divContribution; pot += potContribution; distributeDivs(divContribution, _teamID); } //adjust time timeAdjustPlus(); //update team and player accounting if (_teamID == 1) { require (msg.value >= teamOneSharePrice, "you must buy at least one Team One share"); if (isTeamOneMember[msg.sender] == false) { isTeamOneMember[msg.sender] = true; teamOneMembers.push(msg.sender); } userTeamOneStake[msg.sender] += msg.value; teamOneVolume += msg.value; //adjust team one share price uint256 shareIncreaseOne = SafeMaths.mul(SafeMaths.div(msg.value, 100000), 2); //increases 102% per ETH spent teamOneSharePrice += shareIncreaseOne; uint256 newSharesOne = SafeMaths.div(msg.value, teamOneSharePrice); userTeamOneShares[msg.sender] += newSharesOne; teamOneShares += newSharesOne; } else if (_teamID == 2) { require (msg.value >= teamTwoSharePrice, "you must buy at least one Team Two share"); if (isTeamTwoMember[msg.sender] == false) { isTeamTwoMember[msg.sender] = true; teamTwoMembers.push(msg.sender); } userTeamTwoStake[msg.sender] += msg.value; teamTwoVolume += msg.value; //adjust team two share price uint256 shareIncreaseTwo = SafeMaths.mul(SafeMaths.div(msg.value, 100000), 2); //increases 102% per ETH spent teamTwoSharePrice += shareIncreaseTwo; uint256 newSharesTwo = SafeMaths.div(msg.value, teamTwoSharePrice); userTeamTwoShares[msg.sender] += newSharesTwo; teamTwoShares += newSharesTwo; } emit teamBuy(msg.sender, msg.value, _teamID, "a new buy just happened"); } function resolveRound() public onlyHumans() { //can be called by anyone if the round has ended require (now > roundEndTime, "you can only call this if time has expired"); require (roundSetUp == true, "you cannot call this before the game starts"); require (roundResolved == false, "you can only call this once"); //resolve round based on current winner if (teamOneVolume > teamTwoVolume) { teamOneWin(); } else if (teamOneVolume < teamTwoVolume) { teamTwoWin(); } else if (teamOneVolume == teamTwoVolume) { tie(); } //ensure this function can only be called once roundResolved = true; roundOpen = false; } function userWithdraw() public onlyHumans() { //user divs calculated on withdraw to prevent runaway gas costs associated with looping balance updates in distributeDivs if (userTeamOneShares[msg.sender] > 0) { //first, calculate total earned user divs as a proportion of their shares vs. team shares //second, determine whether the user has available divs //precise to 0.0001% userDivRateTeamOne[msg.sender] = SafeMaths.div(SafeMaths.div(SafeMaths.mul(userTeamOneShares[msg.sender], 10 ** (precisionFactor + 1)), teamOneShares) + 5, 10); userDivsTeamOneTotal[msg.sender] = uint256(SafeMaths.div(SafeMaths.mul(teamOneDivsTotal, userDivRateTeamOne[msg.sender]), 10 ** precisionFactor)); userDivsTeamOneUnclaimed[msg.sender] = SafeMaths.sub(userDivsTeamOneTotal[msg.sender], userDivsTeamOneClaimed[msg.sender]); if (userDivsTeamOneUnclaimed[msg.sender] > 0) { //sanity check assert(userDivsTeamOneUnclaimed[msg.sender] <= address(this).balance && userDivsTeamOneUnclaimed[msg.sender] <= teamOneDivsUnclaimed); //update user accounting and transfer teamOneDivsUnclaimed -= userDivsTeamOneUnclaimed[msg.sender]; userDivsTeamOneClaimed[msg.sender] = userDivsTeamOneTotal[msg.sender]; uint256 shareTempTeamOne = userDivsTeamOneUnclaimed[msg.sender]; userDivsTeamOneUnclaimed[msg.sender] = 0; msg.sender.transfer(shareTempTeamOne); emit userWithdrew(msg.sender, 1, shareTempTeamOne, "a user just withdrew team one shares"); } } else if (userTeamTwoShares[msg.sender] > 0) { //first, calculate total earned user divs as a proportion of their shares vs. team shares //second, determine whether the user has available divs //precise to 0.0001% userDivRateTeamTwo[msg.sender] = SafeMaths.div(SafeMaths.div(SafeMaths.mul(userTeamTwoShares[msg.sender], 10 ** (precisionFactor + 1)), teamTwoShares) + 5, 10); userDivsTeamTwoTotal[msg.sender] = uint256(SafeMaths.div(SafeMaths.mul(teamTwoDivsTotal, userDivRateTeamTwo[msg.sender]), 10 ** precisionFactor)); userDivsTeamTwoUnclaimed[msg.sender] = SafeMaths.sub(userDivsTeamTwoTotal[msg.sender], userDivsTeamTwoClaimed[msg.sender]); if (userDivsTeamTwoUnclaimed[msg.sender] > 0) { //sanity check assert(userDivsTeamTwoUnclaimed[msg.sender] <= address(this).balance && userDivsTeamTwoUnclaimed[msg.sender] <= teamTwoDivsUnclaimed); //update user accounting and transfer teamTwoDivsUnclaimed -= userDivsTeamTwoUnclaimed[msg.sender]; userDivsTeamTwoClaimed[msg.sender] = userDivsTeamTwoTotal[msg.sender]; uint256 shareTempTeamTwo = userDivsTeamTwoUnclaimed[msg.sender]; userDivsTeamTwoUnclaimed[msg.sender] = 0; msg.sender.transfer(shareTempTeamTwo); emit userWithdrew(msg.sender, 2, shareTempTeamTwo, "a user just withdrew team one shares"); } } } function fundPot() public payable onlyHumans() gameOpen() { //ETH sent with this function is a benevolent gift. It does not count towards user shares or adjust the clock pot += msg.value; emit potFunded(msg.sender, msg.value, "a generous person funded the pot"); } function reduceTime() public payable onlyHumans() gameOpen() { //ETH sent with this function does not count towards user shares timeAdjustNeg(); pot += msg.value; emit potFunded(msg.sender, msg.value, "someone just reduced the clock"); } //VIEW FUNCTIONS function calcUserDivsTotal(address _user) public view returns(uint256 _divs) { //calculated locally to avoid unnecessary state change if (userTeamOneShares[_user] > 0) { uint256 userDivRateTeamOneView = SafeMaths.div(SafeMaths.div(SafeMaths.mul(userTeamOneShares[_user], 10 ** (precisionFactor + 1)), teamOneShares) + 5, 10); uint256 userDivsTeamOneTotalView = uint256(SafeMaths.div(SafeMaths.mul(teamOneDivsTotal, userDivRateTeamOneView), 10 ** precisionFactor)); } else if (userTeamTwoShares[_user] > 0) { uint256 userDivRateTeamTwoView = SafeMaths.div(SafeMaths.div(SafeMaths.mul(userTeamTwoShares[_user], 10 ** (precisionFactor + 1)), teamTwoShares) + 5, 10); uint256 userDivsTeamTwoTotalView = uint256(SafeMaths.div(SafeMaths.mul(teamTwoDivsTotal, userDivRateTeamTwoView), 10 ** precisionFactor)); } uint256 userDivsTotal = userDivsTeamOneTotalView + userDivsTeamTwoTotalView; return userDivsTotal; } function calcUserDivsAvailable(address _user) public view returns(uint256 _divs) { //calculated locally to avoid unnecessary state change if (userTeamOneShares[_user] > 0) { uint256 userDivRateTeamOneView = SafeMaths.div(SafeMaths.div(SafeMaths.mul(userTeamOneShares[_user], 10 ** (precisionFactor + 1)), teamOneShares) + 5, 10); uint256 userDivsTeamOneTotalView = uint256(SafeMaths.div(SafeMaths.mul(teamOneDivsTotal, userDivRateTeamOneView), 10 ** precisionFactor)); uint256 userDivsTeamOneUnclaimedView = SafeMaths.sub(userDivsTeamOneTotalView, userDivsTeamOneClaimed[_user]); } else if (userTeamTwoShares[_user] > 0) { uint256 userDivRateTeamTwoView = SafeMaths.div(SafeMaths.div(SafeMaths.mul(userTeamTwoShares[_user], 10 ** (precisionFactor + 1)), teamTwoShares) + 5, 10); uint256 userDivsTeamTwoTotalView = uint256(SafeMaths.div(SafeMaths.mul(teamTwoDivsTotal, userDivRateTeamTwoView), 10 ** precisionFactor)); uint256 userDivsTeamTwoUnclaimedView = SafeMaths.sub(userDivsTeamTwoTotalView, userDivsTeamTwoClaimed[_user]); } uint256 userDivsUnclaimed = userDivsTeamOneUnclaimedView + userDivsTeamTwoUnclaimedView; return userDivsUnclaimed; } function currentRoundInfo() public view returns( uint256 _pot, uint256 _teamOneVolume, uint256 _teamTwoVolume, uint256 _teamOnePlayerCount, uint256 _teamTwoPlayerCount, uint256 _totalPlayerCount, uint256 _timerStart, uint256 _timerMax, uint256 _roundStartTime, uint256 _roundEndTime, uint256 _timeLeft, string _currentWinner ) { return ( pot, teamOneVolume, teamTwoVolume, teamOneTotalPlayers(), teamTwoTotalPlayers(), totalPlayers(), timerStart, timerMax, roundStartTime, roundEndTime, getTimeLeft(), currentWinner() ); } function getTimeLeft() public view returns(uint256 _timeLeftSeconds) { //game over: display zero if (now >= roundEndTime) { return 0; //game not yet started: display countdown until roundStartTime } else if (roundOpen == false && roundResolved == false && roundSetUp == false) { return roundStartTime - now; //game in progress: display time left } else { return roundEndTime - now; } } function teamOneTotalPlayers() public view returns(uint256 _teamOnePlayerCount) { return teamOneMembers.length; } function teamTwoTotalPlayers() public view returns(uint256 _teamTwoPlayerCount) { return teamTwoMembers.length; } function totalPlayers() public view returns(uint256 _totalPlayerCount) { return teamOneMembers.length + teamTwoMembers.length; } function adjustedPotBalance() public view returns(uint256 _adjustedPotBalance) { uint256 devFee = uint256(SafeMaths.div(SafeMaths.mul(pot, devFeeRate), 100)); return pot - devFee; } function contractBalance() public view returns(uint256 _contractBalance) { return address(this).balance; } function currentTime() public view returns(uint256 _time) { return now; } function currentWinner() public view returns(string _winner) { if (teamOneVolume > teamTwoVolume) { return teamOnePrefix; } else if (teamOneVolume < teamTwoVolume) { return teamTwoPrefix; } else if (teamOneVolume == teamTwoVolume) { return "a tie? wtf"; } } //INTERNAL FUNCTIONS //time adjustments function timeAdjustPlus() internal { if (msg.value >= 1 finney) { uint256 timeFactor = 1000000000000000; //one finney in wei uint256 timeShares = uint256(SafeMaths.div(msg.value, timeFactor)); if (timeShares + roundEndTime > now + timerMax) { roundEndTime = now + timerMax; } else { roundEndTime += timeShares; //add one second per finney } } } function timeAdjustNeg() internal { if (msg.value >= 1 finney) { uint256 timeFactor = 1000000000000000; //one finney in wei uint256 timeShares = uint256(SafeMaths.div(msg.value, timeFactor)); // prevents extreme edge case underflow if someone sends more than 1.5 million ETH require (timeShares < roundEndTime, "you sent an absurd amount! relax vitalik"); if (roundEndTime - timeShares < now + 5 minutes) { roundEndTime = now + 5 minutes; //you can't win by buying up the clock, but you can come close } else { roundEndTime -= timeShares; //subtract one second per finney } } } //divs function distributeDivs(uint256 _divContribution, uint256 _teamID) internal { if (_teamID == 1) { teamOneDivsTotal += _divContribution; teamOneDivsUnclaimed += _divContribution; } else if (_teamID == 2) { teamTwoDivsTotal += _divContribution; teamTwoDivsUnclaimed += _divContribution; } } //round payouts function teamOneWin() internal { uint256 devShare = uint256(SafeMaths.div(SafeMaths.mul(pot, devFeeRate), 100)); devBalance += devShare; uint256 potAdjusted = pot - devShare; teamOneDivsTotal += potAdjusted; teamOneDivsUnclaimed += potAdjusted; emit roundEnded(1, teamOnePrefix, potAdjusted, "team one won!"); } function teamTwoWin() internal { uint256 devShare = uint256(SafeMaths.div(SafeMaths.mul(pot, devFeeRate), 100)); devBalance += devShare; uint256 potAdjusted = pot - devShare; teamTwoDivsTotal += potAdjusted; teamTwoDivsUnclaimed += potAdjusted; emit roundEnded(2, teamTwoPrefix, potAdjusted, "team two won!"); } function tie() internal { //very unlikely this will happen, but just in case uint256 devShare = uint256(SafeMaths.div(SafeMaths.mul(pot, devFeeRate), 100)); devBalance += devShare; uint256 potAdjusted = pot - devShare; teamOneDivsTotal += SafeMaths.div(potAdjusted, 2); teamOneDivsUnclaimed += SafeMaths.div(potAdjusted, 2); teamTwoDivsTotal += SafeMaths.div(potAdjusted, 2); teamTwoDivsUnclaimed += SafeMaths.div(potAdjusted, 2); emit roundEnded(0, "Tied", potAdjusted, "a tie?! wtf"); } //convert and address to bytes format function toBytes(address a) internal pure returns (bytes b) { assembly { let m := mload(0x40) mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a)) mstore(0x40, add(m, 52)) b := m } return b; } //take the first byte of a bytes argument and return bytes1 function toBytes1(bytes data) internal pure returns (bytes1) { uint val; for (uint i = 0; i < 1; i++) { val *= 256; if (i < data.length) val |= uint8(data[i]); } return bytes1(val); } //combine the above function function addressToBytes1(address input) internal pure returns(bytes1) { bytes1 output = toBytes1(toBytes(input)); return output; } //address checks function checkAddressTeamOne(address _input) internal view returns(bool) { if (addressToBytes1(_input) <= addressToBytes1(addressThreshold)) { return true; } else { return false; } } function checkAddressTeamTwo(address _input) internal view returns(bool) { if (addressToBytes1(_input) > addressToBytes1(addressThreshold)) { return true; } else { return false; } } } //LIBRARIES library SafeMaths { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a / b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"currentRoundInfo","outputs":[{"name":"_pot","type":"uint256"},{"name":"_teamOneVolume","type":"uint256"},{"name":"_teamTwoVolume","type":"uint256"},{"name":"_teamOnePlayerCount","type":"uint256"},{"name":"_teamTwoPlayerCount","type":"uint256"},{"name":"_totalPlayerCount","type":"uint256"},{"name":"_timerStart","type":"uint256"},{"name":"_timerMax","type":"uint256"},{"name":"_roundStartTime","type":"uint256"},{"name":"_roundEndTime","type":"uint256"},{"name":"_timeLeft","type":"uint256"},{"name":"_currentWinner","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_timerStart","type":"uint256"},{"name":"_timerMax","type":"uint256"}],"name":"openRound","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"teamTwoShares","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devFeeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"teamOneMembers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundOpen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addressThreshold","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTwoDivsTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTwoSharePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pot","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userTeamOneShares","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamOneDivsTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isTeamOneMember","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamOneSharePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundSetUp","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamOneId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"calcUserDivsTotal","outputs":[{"name":"_divs","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamOneDivsUnclaimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamOnePrefix","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"zeroOut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resolveRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamOneTotalPlayers","outputs":[{"name":"_teamOnePlayerCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adjustedPotBalance","outputs":[{"name":"_adjustedPotBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userTeamTwoStake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamOneVolume","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userTeamTwoShares","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractBalance","outputs":[{"name":"_contractBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTwoDivsUnclaimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userTeamOneStake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"fundPot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"precisionFactor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTwoVolume","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"userWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"teamTwoId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentWinner","outputs":[{"name":"_winner","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isTeamTwoMember","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"devWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamTwoPrefix","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"divRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundResolved","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTimeLeft","outputs":[{"name":"_timeLeftSeconds","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":"currentTime","outputs":[{"name":"_time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamOneShares","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timerMax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timerStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"teamTwoMembers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reduceTime","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalPlayers","outputs":[{"name":"_totalPlayerCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"calcUserDivsAvailable","outputs":[{"name":"_divs","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTwoTotalPlayers","outputs":[{"name":"_teamTwoPlayerCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_funder","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_message","type":"string"}],"name":"potFunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_buyer","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_teamID","type":"uint256"},{"indexed":false,"name":"_message","type":"string"}],"name":"teamBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_winningTeamId","type":"uint256"},{"indexed":false,"name":"_winningTeamString","type":"string"},{"indexed":false,"name":"_pot","type":"uint256"},{"indexed":false,"name":"_message","type":"string"}],"name":"roundEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_timeStart","type":"uint256"},{"indexed":false,"name":"_timeMax","type":"uint256"},{"indexed":false,"name":"_seed","type":"uint256"},{"indexed":false,"name":"_message","type":"string"}],"name":"newRoundStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"},{"indexed":false,"name":"_teamID","type":"uint256"},{"indexed":false,"name":"_teamAmount","type":"uint256"},{"indexed":false,"name":"_message","type":"string"}],"name":"userWithdrew","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_owner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_message","type":"string"}],"name":"devWithdrew","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_owner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_message","type":"string"}],"name":"contractClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_owner","type":"address"}],"name":"contractLaunched","type":"event"}]
Contract Creation Code
60046002819055600660038190558154600160a060020a031916737f000000000000000000000000000000000000001790915560326005556001905560c0604052600e60808190527f5465616d2030783132333435363700000000000000000000000000000000000060a09081526200007c916007919062000150565b5066038d7ea4c68000600c556002600d5560408051808201909152600f8082527f5465616d203078383961626364656600000000000000000000000000000000006020909201918252620000d391600e9162000150565b5066038d7ea4c680006013556029805462ffffff19169055348015620000f857600080fd5b5060008054600160a060020a03191633179081905560408051600160a060020a03929092168252517fc0fd912c79daddafb4895907db83af67bcbc72690843afcf0bd7adf08ddd11e49181900360200190a1620001f5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019357805160ff1916838001178555620001c3565b82800160010185558215620001c3579182015b82811115620001c3578251825591602001919060010190620001a6565b50620001d1929150620001d5565b5090565b620001f291905b80821115620001d15760008155600101620001dc565b90565b612d7280620002056000396000f3006080604052600436106102915763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416628f8b3581146102965780630bf0998514610370578063177cfaa2146103805780631ae3a94a146103a75780631e77726b146103bc5780632032677f146103f057806323c6bc391461041957806333cbee231461042e57806341240314146104435780634ba2363a146104585780634d22b1301461046d578063569f76e11461048e5780635a1cf178146104a35780635d5b92b1146104c4578063631b3672146104d957806363299226146104ee5780636dbe2ebc146105035780636ec069f814610524578063737050901461053957806379cf3a7a146105c35780637c8af704146105d85780637c8e17e5146105ed57806380097a8e14610602578063858ece5b1461061757806385cdafa61461063857806388da58831461064d5780638b7afe2e1461066e5780638da5cb5b14610683578063929790371461069857806395b6abf6146106ad5780639c737e8f146106ce5780639d902fc0146106d65780639faf52ee146106eb578063a646f9ad14610700578063a6f2ae3a14610715578063aa99f4d01461071d578063aabe2fe314610732578063ac73a2ef14610747578063ad606c7214610768578063afb058ce1461077d578063b2e0243014610792578063b68cf49f146107a7578063c7e284b8146107bc578063cd9a1b63146107d1578063d18e81b3146107e6578063d489b83f146107fb578063d978545114610810578063dd4f8f7414610825578063de5e21df1461083a578063e40205d61461084f578063eee52d6d14610864578063f60436cd1461087c578063f60cdcf614610884578063fa0c76c514610899578063fe0dadd7146108ba575b600080fd5b3480156102a257600080fd5b506102ab6108cf565b604051808d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b61037e600435602435610945565b005b34801561038c57600080fd5b50610395610d68565b60408051918252519081900360200190f35b3480156103b357600080fd5b50610395610d6e565b3480156103c857600080fd5b506103d4600435610d74565b60408051600160a060020a039092168252519081900360200190f35b3480156103fc57600080fd5b50610405610d9c565b604080519115158252519081900360200190f35b34801561042557600080fd5b506103d4610da5565b34801561043a57600080fd5b50610395610db4565b34801561044f57600080fd5b50610395610dba565b34801561046457600080fd5b50610395610dc0565b34801561047957600080fd5b50610395600160a060020a0360043516610dc6565b34801561049a57600080fd5b50610395610dd8565b3480156104af57600080fd5b50610405600160a060020a0360043516610dde565b3480156104d057600080fd5b50610395610df3565b3480156104e557600080fd5b50610405610df9565b3480156104fa57600080fd5b50610395610e07565b34801561050f57600080fd5b50610395600160a060020a0360043516610e0d565b34801561053057600080fd5b50610395610f28565b34801561054557600080fd5b5061054e610f2e565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610588578181015183820152602001610570565b50505050905090810190601f1680156105b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cf57600080fd5b5061037e610fbc565b3480156105e457600080fd5b5061037e61117b565b3480156105f957600080fd5b50610395611385565b34801561060e57600080fd5b5061039561138c565b34801561062357600080fd5b50610395600160a060020a03600435166113b1565b34801561064457600080fd5b506103956113c3565b34801561065957600080fd5b50610395600160a060020a03600435166113c9565b34801561067a57600080fd5b506103956113db565b34801561068f57600080fd5b506103d46113e0565b3480156106a457600080fd5b506103956113ef565b3480156106b957600080fd5b50610395600160a060020a03600435166113f5565b61037e611407565b3480156106e257600080fd5b506103956115ab565b3480156106f757600080fd5b506103956115b1565b34801561070c57600080fd5b5061037e6115b7565b61037e6119bd565b34801561072957600080fd5b50610395611f3b565b34801561073e57600080fd5b5061054e611f41565b34801561075357600080fd5b50610405600160a060020a036004351661208e565b34801561077457600080fd5b5061037e6120a3565b34801561078957600080fd5b5061054e6122a4565b34801561079e57600080fd5b506103956122ff565b3480156107b357600080fd5b50610405612305565b3480156107c857600080fd5b50610395612314565b3480156107dd57600080fd5b50610395612375565b3480156107f257600080fd5b5061039561237b565b34801561080757600080fd5b5061039561237f565b34801561081c57600080fd5b50610395612385565b34801561083157600080fd5b5061039561238b565b34801561084657600080fd5b50610395612391565b34801561085b57600080fd5b50610395612397565b34801561087057600080fd5b506103d460043561239d565b61037e6123ab565b34801561089057600080fd5b50610395612556565b3480156108a557600080fd5b50610395600160a060020a0360043516612560565b3480156108c657600080fd5b506103956126a9565b60008060008060008060008060008060006060602454600854600f546108f3611385565b6108fb6126a9565b610903612556565b602554602654602754602854610917612314565b61091f611f41565b9b509b509b509b509b509b509b509b509b509b509b509b50909192939495969798999a9b565b600080548190600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152601560248201527f796f7520617265206e6f7420746865206f776e65720000000000000000000000604482015290519081900360640190fd5b60295460ff1615610a05576040805160e560020a62461bcd02815260206004820181905260248201527f796f752063616e206f6e6c79207374617274207468652067616d65206f6e6365604482015290519081900360640190fd5b60295462010000900460ff1615610a8c576040805160e560020a62461bcd02815260206004820152602260248201527f796f752063616e6e6f74207265737461727420612066696e697368656420676160448201527f6d65000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b671bc16d674ec800003414610aeb576040805160e560020a62461bcd02815260206004820152601b60248201527f796f75206d7573742067697665206120646563656e7420736565640000000000604482015290519081900360640190fd5b50506029805461ff00191661010017905560258281556026828155635b85f010602781905584016028556024805434908101909155670de0b6b3a76400006008819055600f8190556014805460018181019092557fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec01805473ffffffffffffffffffffffffffffffffffffffff19908116735c035bb4cb7dacbfee076a5e61aa39a10da2e956908117909255601c80548085019091557f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2110180549091167384ecb387395a1be65e133c75ff9e5fcc6f756db39081179091557fab085f3fed808bc6252014db4906baf8b7d518a8749a668353f2e488a78cb687805460ff1990811685179091557fd28df923a82b00158763efdbc7043289a9545da959cb6464ef312815a4acb2d880549091169093179092557fc3ba487cf8e1f0c04027193eda19d86ba3701f8e12ac37491c5a2ab5614e3ebd8390557f80578f8ef1a6d9c44c82222b098504b77ca94b46f73b64a47d485dfa3993b765929092556103e87fef1423fcbd8638ab98c3741fc2cf9bc22ea9f940c83740b66ee61e8f4b1c9ec18190556000829052601f60209081527f8cbd9e175d55ee38c6ed532303566702bea4b443b00435ffd7c90b73378aaaf7829055600982905560109190915594549354604080519586529585015283850192909252608060608401819052601a908401527f61206e65772067616d6520776173206a7573742073657420757000000000000060a0840152925190917fcb3db69f7c604c52ba9ce463b556348e881b544cc44f55c3192f9d9360f9dedf919081900360c00190a150505050565b60105481565b60025481565b6014805482908110610d8257fe5b600091825260209091200154600160a060020a0316905081565b60295460ff1681565b600454600160a060020a031681565b60115481565b60135481565b60245481565b60176020526000908152604090205481565b600a5481565b60156020526000908152604090205460ff1681565b600c5481565b602954610100900460ff1681565b60065481565b60008060008060008060006017600089600160a060020a0316600160a060020a03168152602001908152602001600020541115610ead57600160a060020a038716600090815260176020526040902054600354610e8a91610e8091610e789190600101600a0a6126af565b6009546126e5565b600501600a6126e5565b9450610ea6610e9b600a54876126af565b600354600a0a6126e5565b9350610f1c565b600160a060020a0387166000908152601f60205260408120541115610f1c57600160a060020a0387166000908152601f6020526040902054600354610f0891610e8091610f009190600101600a0a6126af565b6010546126e5565b9250610f19610e9b601154856126af565b91505b50909101949350505050565b600b5481565b6007805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610fb45780601f10610f8957610100808354040283529160200191610fb4565b820191906000526020600020905b815481529060010190602001808311610f9757829003601f168201915b505050505081565b600054600160a060020a0316331461101e576040805160e560020a62461bcd02815260206004820152601560248201527f796f7520617265206e6f7420746865206f776e65720000000000000000000000604482015290519081900360640190fd5b6028546283d6000142101561107d576040805160e560020a62461bcd02815260206004820152601660248201527f746f6f206561726c7920746f2065786974207363616d00000000000000000000604482015290519081900360640190fd5b60295462010000900460ff161515600114801561109d575060295460ff16155b15156110f3576040805160e560020a62461bcd02815260206004820152601860248201527f7468652067616d65206973206e6f74207265736f6c7665640000000000000000604482015290519081900360640190fd5b60005460408051600160a060020a039092168252303160208301526060828201819052601a908301527f74686520636f6e7472616374206973206e6f7720636c6f7365640000000000006080830152517f25f726f199314faeb5028458c9b9b97f8aa473105155036aae95a3e393c3d6489181900360a00190a1600054600160a060020a0316ff5b3332146111c0576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b602854421161123f576040805160e560020a62461bcd02815260206004820152602a60248201527f796f752063616e206f6e6c792063616c6c20746869732069662074696d65206860448201527f6173206578706972656400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60295460ff6101009091041615156001146112ca576040805160e560020a62461bcd02815260206004820152602b60248201527f796f752063616e6e6f742063616c6c2074686973206265666f7265207468652060448201527f67616d6520737461727473000000000000000000000000000000000000000000606482015290519081900360840190fd5b60295462010000900460ff161561132b576040805160e560020a62461bcd02815260206004820152601b60248201527f796f752063616e206f6e6c792063616c6c2074686973206f6e63650000000000604482015290519081900360640190fd5b600f5460085411156113445761133f6126fc565b61136c565b600f5460085410156113585761133f61282c565b600f54600854141561136c5761136c612960565b6029805460ff1962ff0000199091166201000017169055565b6014545b90565b6000806113a76113a06024546002546126af565b60646126e5565b6024540392915050565b601e6020526000908152604090205481565b60085481565b601f6020526000908152604090205481565b303190565b600054600160a060020a031681565b60125481565b60166020526000908152604090205481565b33321461144c576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b60295462010000900460ff161561146257600080fd5b60295460ff61010090910416151560011461147c57600080fd5b60285442106114d5576040805160e560020a62461bcd02815260206004820152601660248201527f697420697320746f6f206c61746520746f20706c617900000000000000000000604482015290519081900360640190fd5b60275442101561152f576040805160e560020a62461bcd02815260206004820152601760248201527f697420697320746f6f206561726c7920746f20706c6179000000000000000000604482015290519081900360640190fd5b60248054349081019091556040805133815260208082019390935260608183018190528101929092527f612067656e65726f757320706572736f6e2066756e6465642074686520706f746080830152517fcf4b0765cda2c8471307628b7571da2d0de77a741fbe33a0a3426baf1f7f67299181900360a00190a1565b60035481565b600f5481565b6000803332146115ff576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b3360009081526017602052604081205411156117e0573360009081526017602052604090205460035461164091610e8091610e789190600101600a0a6126af565b336000908152601b60205260409020819055600a5461166391610e9b91906126af565b336000908152601860209081526040808320849055601990915290205461168a9190612a80565b336000908152601a6020526040812082905510156117db57336000908152601a60205260409020543031108015906116d35750600b54336000908152601a602052604090205411155b15156116db57fe5b336000818152601a602081815260408084208054600b805491909103905560188352818520546019845282862055929091528154918390555190945084156108fc0291859190818181858888f1935050505015801561173e573d6000803e3d6000fd5b5060408051338152600160208201528082018490526080606082018190526024908201527f612075736572206a757374207769746864726577207465616d206f6e6520736860a08201527f617265730000000000000000000000000000000000000000000000000000000060c082015290517fd3f9e5fafb3e0b113ded905c2ee0d2a3750365449219bcc18de7d0c892150e7c9181900360e00190a15b6119b9565b336000908152601f602052604081205411156119b957336000908152601f602052604090205460035461182191610e8091610f009190600101600a0a6126af565b33600090815260236020526040902081905560115461184491610e9b91906126af565b3360009081526020808052604080832084905560219091529020546118699190612a80565b33600090815260226020526040812082905510156119b957336000908152602260205260409020543031108015906118b257506012543360009081526022602052604090205411155b15156118ba57fe5b50336000818152602260208181526040808420805460128054919091039055828052818520546021845282862055929091528154918390555190929183156108fc02918491818181858888f1935050505015801561191c573d6000803e3d6000fd5b5060408051338152600260208201528082018390526080606082018190526024908201527f612075736572206a757374207769746864726577207465616d206f6e6520736860a08201527f617265730000000000000000000000000000000000000000000000000000000060c082015290517fd3f9e5fafb3e0b113ded905c2ee0d2a3750365449219bcc18de7d0c892150e7c9181900360e00190a15b5050565b60295460009081908190819081908190819062010000900460ff16156119e257600080fd5b60295460ff6101009091041615156001146119fc57600080fd5b6028544210611a55576040805160e560020a62461bcd02815260206004820152601660248201527f697420697320746f6f206c61746520746f20706c617900000000000000000000604482015290519081900360640190fd5b602754421015611aaf576040805160e560020a62461bcd02815260206004820152601760248201527f697420697320746f6f206561726c7920746f20706c6179000000000000000000604482015290519081900360640190fd5b333214611af4576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b60295460ff16158015611b0957506027544210155b8015611b16575060285442105b15611b29576029805460ff191660011790555b611b3233612a92565b151560011415611b455760019650611b5d565b611b4e33612add565b151560011415611b5d57600296505b866001148015611b6d5750601454155b80611b835750866002148015611b835750601c54155b15611b95576024805434019055611bc1565b611ba46113a0346005546126af565b60248054348390039081019091559096509450611bc18688612b20565b611bc9612b5b565b8660011415611d4957600c54341015611c52576040805160e560020a62461bcd02815260206004820152602860248201527f796f75206d75737420627579206174206c65617374206f6e65205465616d204f60448201527f6e65207368617265000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b3360009081526015602052604090205460ff161515611cd557336000818152601560205260408120805460ff191660019081179091556014805491820181559091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec01805473ffffffffffffffffffffffffffffffffffffffff191690911790555b3360009081526016602052604090208054349081019091556008805482019055611d0d90611d0690620186a06126e5565b60026126af565b600c8054820190819055909450611d259034906126e5565b33600090815260176020526040902080548201905560098054820190559250611ebe565b8660021415611ebe57601354341015611dd2576040805160e560020a62461bcd02815260206004820152602860248201527f796f75206d75737420627579206174206c65617374206f6e65205465616d205460448201527f776f207368617265000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152601d602052604090205460ff161515611e5557336000818152601d60205260408120805460ff19166001908117909155601c805491820181559091527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a21101805473ffffffffffffffffffffffffffffffffffffffff191690911790555b336000908152601e60205260409020805434908101909155600f805482019055611e8690611d0690620186a06126e5565b60138054820190819055909250611e9e9034906126e5565b336000908152601f60205260409020805482019055601080548201905590505b604080513381523460208201528082018990526080606082018190526017908201527f61206e657720627579206a7573742068617070656e656400000000000000000060a082015290517f5e77d806c40b3b553986e422d697c9c1639d466d631f62c4fea89e2e15510ae39181900360c00190a150505050505050565b600d5481565b6060600f546008541115611fe1576007805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611fd55780601f10611faa57610100808354040283529160200191611fd5565b820191906000526020600020905b815481529060010190602001808311611fb857829003601f168201915b50505050509050611389565b600f54600854101561204857600e805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611fd55780601f10611faa57610100808354040283529160200191611fd5565b600f546008541415611389575060408051808201909152600a81527f61207469653f20777466000000000000000000000000000000000000000000006020820152611389565b601d6020526000908152604090205460ff1681565b60008054600160a060020a03163314612106576040805160e560020a62461bcd02815260206004820152601560248201527f796f7520617265206e6f7420746865206f776e65720000000000000000000000604482015290519081900360640190fd5b600154600010612186576040805160e560020a62461bcd02815260206004820152602260248201527f796f75206d757374206861766520616e20617661696c61626c652062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154303110156121e1576040805160e560020a62461bcd02815260206004820152601660248201527f796f752063616e6e6f74207072696e74206d6f6e657900000000000000000000604482015290519081900360640190fd5b506001805460009182905581546040519192600160a060020a039091169183156108fc0291849190818181858888f19350505050158015612226573d6000803e3d6000fd5b5060005460408051600160a060020a0390921682526020820183905260608282018190526015908301527f74686520646576206a75737420776974686472657700000000000000000000006080830152517fdf8379729dc015ce4a0fe6dc41c7cc757741f28b67dabb83ec43bba5c18965129181900360a00190a150565b600e805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610fb45780601f10610f8957610100808354040283529160200191610fb4565b60055481565b60295462010000900460ff1681565b602854600090421061232857506000611389565b60295460ff16158015612344575060295462010000900460ff16155b80156123585750602954610100900460ff16155b156123695742602754039050611389565b42602854039050611389565b60015481565b4290565b60095481565b60265481565b60275481565b60255481565b60285481565b601c805482908110610d8257fe5b3332146123f0576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b60295462010000900460ff161561240657600080fd5b60295460ff61010090910416151560011461242057600080fd5b6028544210612479576040805160e560020a62461bcd02815260206004820152601660248201527f697420697320746f6f206c61746520746f20706c617900000000000000000000604482015290519081900360640190fd5b6027544210156124d3576040805160e560020a62461bcd02815260206004820152601760248201527f697420697320746f6f206561726c7920746f20706c6179000000000000000000604482015290519081900360640190fd5b6124db612bab565b60248054349081019091556040805133815260208101929092526060828201819052601e908301527f736f6d656f6e65206a75737420726564756365642074686520636c6f636b00006080830152517fcf4b0765cda2c8471307628b7571da2d0de77a741fbe33a0a3426baf1f7f67299181900360a00190a1565b601c546014540190565b6000806000806000806000806000601760008b600160a060020a0316600160a060020a0316815260200190815260200160002054111561260d57600160a060020a0389166000908152601760205260409020546003546125ce91610e8091610e789190600101600a0a6126af565b96506125df610e9b600a54896126af565b600160a060020a038a16600090815260196020526040902054909650612606908790612a80565b945061269b565b600160a060020a0389166000908152601f6020526040812054111561269b57600160a060020a0389166000908152601f602052604090205460035461266091610e8091610f009190600101600a0a6126af565b9350612671610e9b601154866126af565b600160a060020a038a16600090815260216020526040902054909350612698908490612a80565b91505b509092019695505050505050565b601c5490565b6000808315156126c257600091506126de565b508282028284828115156126d257fe5b04146126da57fe5b8091505b5092915050565b60008082848115156126f357fe5b04949350505050565b6000806127106113a06024546002546126af565b6001805482018155602454600a8054918490039182019055600b80548201905560408051838152908101829052608060208201818152600780546002610100828916150260001901909116049284018390529597509295507fadd50c0a29e907683af3fde4b66a36c4fa58d22668076b798f44dca0cccc7f729492869291606083019060a0840190869080156127e75780601f106127bc576101008083540402835291602001916127e7565b820191906000526020600020905b8154815290600101906020018083116127ca57829003601f168201915b5050928303905250600d81527f7465616d206f6e6520776f6e210000000000000000000000000000000000000060208201526040805191829003019350915050a15050565b6000806128406113a06024546002546126af565b6001805482018155602454601180549184900391820190556012805482019055604080516002808252918101839052608060208201818152600e80549687161561010002600019019096168490049183018290529597509295507fadd50c0a29e907683af3fde4b66a36c4fa58d22668076b798f44dca0cccc7f7294919392869290606083019060a08401908690801561291b5780601f106128f05761010080835404028352916020019161291b565b820191906000526020600020905b8154815290600101906020018083116128fe57829003601f168201915b5050928303905250600d81527f7465616d2074776f20776f6e210000000000000000000000000000000000000060208201526040805191829003019350915050a15050565b6000806129746113a06024546002546126af565b600180548201905560245490925082900390506129928160026126e5565b600a805490910190556129a68160026126e5565b600b805490910190556129ba8160026126e5565b6011805490910190556129ce8160026126e5565b60128054909101905560408051600081528082018390526080602082018190526004908201527f546965640000000000000000000000000000000000000000000000000000000060a082015260c060608201819052600b908201527f61207469653f212077746600000000000000000000000000000000000000000060e082015290517fadd50c0a29e907683af3fde4b66a36c4fa58d22668076b798f44dca0cccc7f72918190036101000190a15050565b600082821115612a8c57fe5b50900390565b600454600090612aaa90600160a060020a0316612c7c565b600160f860020a031916612abd83612c7c565b600160f860020a03191611612ad457506001612ad8565b5060005b919050565b600454600090612af590600160a060020a0316612c7c565b600160f860020a031916612b0883612c7c565b600160f860020a0319161115612ad457506001612ad8565b8060011415612b3e57600a805483019055600b8054830190556119b9565b80600214156119b957601180548301905560128054830190555050565b60008066038d7ea4c6800034106119b95766038d7ea4c680009150612b8034836126e5565b9050602654420160285482011115612b9f5760265442016028556119b9565b60288054820190555050565b60008066038d7ea4c6800034106119b95766038d7ea4c680009150612bd034836126e5565b6028549091508110612c52576040805160e560020a62461bcd02815260206004820152602860248201527f796f752073656e7420616e2061627375726420616d6f756e74212072656c617860448201527f20766974616c696b000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b4261012c0181602854031015612c6f5761012c42016028556119b9565b6028805482900390555050565b600080612c90612c8b84612c97565b612cc3565b9392505050565b604080517414000000000000000000000000000000000000000092909218601483015260348201905290565b600080805b6001811015612d1957610100820291508351811015612d11578381815181101515612cef57fe5b90602001015160f860020a900460f860020a0260f860020a900460ff16821791505b600101612cc8565b5060f860020a02929150505600796f752063616e6e6f7420757365206120636f6e747261637400000000000000a165627a7a72305820c736ea7a96b0bed6a2b60065ad7a7de79be34eafc47c0de1144813e92151b46f0029
Deployed Bytecode
0x6080604052600436106102915763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416628f8b3581146102965780630bf0998514610370578063177cfaa2146103805780631ae3a94a146103a75780631e77726b146103bc5780632032677f146103f057806323c6bc391461041957806333cbee231461042e57806341240314146104435780634ba2363a146104585780634d22b1301461046d578063569f76e11461048e5780635a1cf178146104a35780635d5b92b1146104c4578063631b3672146104d957806363299226146104ee5780636dbe2ebc146105035780636ec069f814610524578063737050901461053957806379cf3a7a146105c35780637c8af704146105d85780637c8e17e5146105ed57806380097a8e14610602578063858ece5b1461061757806385cdafa61461063857806388da58831461064d5780638b7afe2e1461066e5780638da5cb5b14610683578063929790371461069857806395b6abf6146106ad5780639c737e8f146106ce5780639d902fc0146106d65780639faf52ee146106eb578063a646f9ad14610700578063a6f2ae3a14610715578063aa99f4d01461071d578063aabe2fe314610732578063ac73a2ef14610747578063ad606c7214610768578063afb058ce1461077d578063b2e0243014610792578063b68cf49f146107a7578063c7e284b8146107bc578063cd9a1b63146107d1578063d18e81b3146107e6578063d489b83f146107fb578063d978545114610810578063dd4f8f7414610825578063de5e21df1461083a578063e40205d61461084f578063eee52d6d14610864578063f60436cd1461087c578063f60cdcf614610884578063fa0c76c514610899578063fe0dadd7146108ba575b600080fd5b3480156102a257600080fd5b506102ab6108cf565b604051808d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b61037e600435602435610945565b005b34801561038c57600080fd5b50610395610d68565b60408051918252519081900360200190f35b3480156103b357600080fd5b50610395610d6e565b3480156103c857600080fd5b506103d4600435610d74565b60408051600160a060020a039092168252519081900360200190f35b3480156103fc57600080fd5b50610405610d9c565b604080519115158252519081900360200190f35b34801561042557600080fd5b506103d4610da5565b34801561043a57600080fd5b50610395610db4565b34801561044f57600080fd5b50610395610dba565b34801561046457600080fd5b50610395610dc0565b34801561047957600080fd5b50610395600160a060020a0360043516610dc6565b34801561049a57600080fd5b50610395610dd8565b3480156104af57600080fd5b50610405600160a060020a0360043516610dde565b3480156104d057600080fd5b50610395610df3565b3480156104e557600080fd5b50610405610df9565b3480156104fa57600080fd5b50610395610e07565b34801561050f57600080fd5b50610395600160a060020a0360043516610e0d565b34801561053057600080fd5b50610395610f28565b34801561054557600080fd5b5061054e610f2e565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610588578181015183820152602001610570565b50505050905090810190601f1680156105b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cf57600080fd5b5061037e610fbc565b3480156105e457600080fd5b5061037e61117b565b3480156105f957600080fd5b50610395611385565b34801561060e57600080fd5b5061039561138c565b34801561062357600080fd5b50610395600160a060020a03600435166113b1565b34801561064457600080fd5b506103956113c3565b34801561065957600080fd5b50610395600160a060020a03600435166113c9565b34801561067a57600080fd5b506103956113db565b34801561068f57600080fd5b506103d46113e0565b3480156106a457600080fd5b506103956113ef565b3480156106b957600080fd5b50610395600160a060020a03600435166113f5565b61037e611407565b3480156106e257600080fd5b506103956115ab565b3480156106f757600080fd5b506103956115b1565b34801561070c57600080fd5b5061037e6115b7565b61037e6119bd565b34801561072957600080fd5b50610395611f3b565b34801561073e57600080fd5b5061054e611f41565b34801561075357600080fd5b50610405600160a060020a036004351661208e565b34801561077457600080fd5b5061037e6120a3565b34801561078957600080fd5b5061054e6122a4565b34801561079e57600080fd5b506103956122ff565b3480156107b357600080fd5b50610405612305565b3480156107c857600080fd5b50610395612314565b3480156107dd57600080fd5b50610395612375565b3480156107f257600080fd5b5061039561237b565b34801561080757600080fd5b5061039561237f565b34801561081c57600080fd5b50610395612385565b34801561083157600080fd5b5061039561238b565b34801561084657600080fd5b50610395612391565b34801561085b57600080fd5b50610395612397565b34801561087057600080fd5b506103d460043561239d565b61037e6123ab565b34801561089057600080fd5b50610395612556565b3480156108a557600080fd5b50610395600160a060020a0360043516612560565b3480156108c657600080fd5b506103956126a9565b60008060008060008060008060008060006060602454600854600f546108f3611385565b6108fb6126a9565b610903612556565b602554602654602754602854610917612314565b61091f611f41565b9b509b509b509b509b509b509b509b509b509b509b509b50909192939495969798999a9b565b600080548190600160a060020a031633146109aa576040805160e560020a62461bcd02815260206004820152601560248201527f796f7520617265206e6f7420746865206f776e65720000000000000000000000604482015290519081900360640190fd5b60295460ff1615610a05576040805160e560020a62461bcd02815260206004820181905260248201527f796f752063616e206f6e6c79207374617274207468652067616d65206f6e6365604482015290519081900360640190fd5b60295462010000900460ff1615610a8c576040805160e560020a62461bcd02815260206004820152602260248201527f796f752063616e6e6f74207265737461727420612066696e697368656420676160448201527f6d65000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b671bc16d674ec800003414610aeb576040805160e560020a62461bcd02815260206004820152601b60248201527f796f75206d7573742067697665206120646563656e7420736565640000000000604482015290519081900360640190fd5b50506029805461ff00191661010017905560258281556026828155635b85f010602781905584016028556024805434908101909155670de0b6b3a76400006008819055600f8190556014805460018181019092557fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec01805473ffffffffffffffffffffffffffffffffffffffff19908116735c035bb4cb7dacbfee076a5e61aa39a10da2e956908117909255601c80548085019091557f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2110180549091167384ecb387395a1be65e133c75ff9e5fcc6f756db39081179091557fab085f3fed808bc6252014db4906baf8b7d518a8749a668353f2e488a78cb687805460ff1990811685179091557fd28df923a82b00158763efdbc7043289a9545da959cb6464ef312815a4acb2d880549091169093179092557fc3ba487cf8e1f0c04027193eda19d86ba3701f8e12ac37491c5a2ab5614e3ebd8390557f80578f8ef1a6d9c44c82222b098504b77ca94b46f73b64a47d485dfa3993b765929092556103e87fef1423fcbd8638ab98c3741fc2cf9bc22ea9f940c83740b66ee61e8f4b1c9ec18190556000829052601f60209081527f8cbd9e175d55ee38c6ed532303566702bea4b443b00435ffd7c90b73378aaaf7829055600982905560109190915594549354604080519586529585015283850192909252608060608401819052601a908401527f61206e65772067616d6520776173206a7573742073657420757000000000000060a0840152925190917fcb3db69f7c604c52ba9ce463b556348e881b544cc44f55c3192f9d9360f9dedf919081900360c00190a150505050565b60105481565b60025481565b6014805482908110610d8257fe5b600091825260209091200154600160a060020a0316905081565b60295460ff1681565b600454600160a060020a031681565b60115481565b60135481565b60245481565b60176020526000908152604090205481565b600a5481565b60156020526000908152604090205460ff1681565b600c5481565b602954610100900460ff1681565b60065481565b60008060008060008060006017600089600160a060020a0316600160a060020a03168152602001908152602001600020541115610ead57600160a060020a038716600090815260176020526040902054600354610e8a91610e8091610e789190600101600a0a6126af565b6009546126e5565b600501600a6126e5565b9450610ea6610e9b600a54876126af565b600354600a0a6126e5565b9350610f1c565b600160a060020a0387166000908152601f60205260408120541115610f1c57600160a060020a0387166000908152601f6020526040902054600354610f0891610e8091610f009190600101600a0a6126af565b6010546126e5565b9250610f19610e9b601154856126af565b91505b50909101949350505050565b600b5481565b6007805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610fb45780601f10610f8957610100808354040283529160200191610fb4565b820191906000526020600020905b815481529060010190602001808311610f9757829003601f168201915b505050505081565b600054600160a060020a0316331461101e576040805160e560020a62461bcd02815260206004820152601560248201527f796f7520617265206e6f7420746865206f776e65720000000000000000000000604482015290519081900360640190fd5b6028546283d6000142101561107d576040805160e560020a62461bcd02815260206004820152601660248201527f746f6f206561726c7920746f2065786974207363616d00000000000000000000604482015290519081900360640190fd5b60295462010000900460ff161515600114801561109d575060295460ff16155b15156110f3576040805160e560020a62461bcd02815260206004820152601860248201527f7468652067616d65206973206e6f74207265736f6c7665640000000000000000604482015290519081900360640190fd5b60005460408051600160a060020a039092168252303160208301526060828201819052601a908301527f74686520636f6e7472616374206973206e6f7720636c6f7365640000000000006080830152517f25f726f199314faeb5028458c9b9b97f8aa473105155036aae95a3e393c3d6489181900360a00190a1600054600160a060020a0316ff5b3332146111c0576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b602854421161123f576040805160e560020a62461bcd02815260206004820152602a60248201527f796f752063616e206f6e6c792063616c6c20746869732069662074696d65206860448201527f6173206578706972656400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60295460ff6101009091041615156001146112ca576040805160e560020a62461bcd02815260206004820152602b60248201527f796f752063616e6e6f742063616c6c2074686973206265666f7265207468652060448201527f67616d6520737461727473000000000000000000000000000000000000000000606482015290519081900360840190fd5b60295462010000900460ff161561132b576040805160e560020a62461bcd02815260206004820152601b60248201527f796f752063616e206f6e6c792063616c6c2074686973206f6e63650000000000604482015290519081900360640190fd5b600f5460085411156113445761133f6126fc565b61136c565b600f5460085410156113585761133f61282c565b600f54600854141561136c5761136c612960565b6029805460ff1962ff0000199091166201000017169055565b6014545b90565b6000806113a76113a06024546002546126af565b60646126e5565b6024540392915050565b601e6020526000908152604090205481565b60085481565b601f6020526000908152604090205481565b303190565b600054600160a060020a031681565b60125481565b60166020526000908152604090205481565b33321461144c576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b60295462010000900460ff161561146257600080fd5b60295460ff61010090910416151560011461147c57600080fd5b60285442106114d5576040805160e560020a62461bcd02815260206004820152601660248201527f697420697320746f6f206c61746520746f20706c617900000000000000000000604482015290519081900360640190fd5b60275442101561152f576040805160e560020a62461bcd02815260206004820152601760248201527f697420697320746f6f206561726c7920746f20706c6179000000000000000000604482015290519081900360640190fd5b60248054349081019091556040805133815260208082019390935260608183018190528101929092527f612067656e65726f757320706572736f6e2066756e6465642074686520706f746080830152517fcf4b0765cda2c8471307628b7571da2d0de77a741fbe33a0a3426baf1f7f67299181900360a00190a1565b60035481565b600f5481565b6000803332146115ff576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b3360009081526017602052604081205411156117e0573360009081526017602052604090205460035461164091610e8091610e789190600101600a0a6126af565b336000908152601b60205260409020819055600a5461166391610e9b91906126af565b336000908152601860209081526040808320849055601990915290205461168a9190612a80565b336000908152601a6020526040812082905510156117db57336000908152601a60205260409020543031108015906116d35750600b54336000908152601a602052604090205411155b15156116db57fe5b336000818152601a602081815260408084208054600b805491909103905560188352818520546019845282862055929091528154918390555190945084156108fc0291859190818181858888f1935050505015801561173e573d6000803e3d6000fd5b5060408051338152600160208201528082018490526080606082018190526024908201527f612075736572206a757374207769746864726577207465616d206f6e6520736860a08201527f617265730000000000000000000000000000000000000000000000000000000060c082015290517fd3f9e5fafb3e0b113ded905c2ee0d2a3750365449219bcc18de7d0c892150e7c9181900360e00190a15b6119b9565b336000908152601f602052604081205411156119b957336000908152601f602052604090205460035461182191610e8091610f009190600101600a0a6126af565b33600090815260236020526040902081905560115461184491610e9b91906126af565b3360009081526020808052604080832084905560219091529020546118699190612a80565b33600090815260226020526040812082905510156119b957336000908152602260205260409020543031108015906118b257506012543360009081526022602052604090205411155b15156118ba57fe5b50336000818152602260208181526040808420805460128054919091039055828052818520546021845282862055929091528154918390555190929183156108fc02918491818181858888f1935050505015801561191c573d6000803e3d6000fd5b5060408051338152600260208201528082018390526080606082018190526024908201527f612075736572206a757374207769746864726577207465616d206f6e6520736860a08201527f617265730000000000000000000000000000000000000000000000000000000060c082015290517fd3f9e5fafb3e0b113ded905c2ee0d2a3750365449219bcc18de7d0c892150e7c9181900360e00190a15b5050565b60295460009081908190819081908190819062010000900460ff16156119e257600080fd5b60295460ff6101009091041615156001146119fc57600080fd5b6028544210611a55576040805160e560020a62461bcd02815260206004820152601660248201527f697420697320746f6f206c61746520746f20706c617900000000000000000000604482015290519081900360640190fd5b602754421015611aaf576040805160e560020a62461bcd02815260206004820152601760248201527f697420697320746f6f206561726c7920746f20706c6179000000000000000000604482015290519081900360640190fd5b333214611af4576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b60295460ff16158015611b0957506027544210155b8015611b16575060285442105b15611b29576029805460ff191660011790555b611b3233612a92565b151560011415611b455760019650611b5d565b611b4e33612add565b151560011415611b5d57600296505b866001148015611b6d5750601454155b80611b835750866002148015611b835750601c54155b15611b95576024805434019055611bc1565b611ba46113a0346005546126af565b60248054348390039081019091559096509450611bc18688612b20565b611bc9612b5b565b8660011415611d4957600c54341015611c52576040805160e560020a62461bcd02815260206004820152602860248201527f796f75206d75737420627579206174206c65617374206f6e65205465616d204f60448201527f6e65207368617265000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b3360009081526015602052604090205460ff161515611cd557336000818152601560205260408120805460ff191660019081179091556014805491820181559091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec01805473ffffffffffffffffffffffffffffffffffffffff191690911790555b3360009081526016602052604090208054349081019091556008805482019055611d0d90611d0690620186a06126e5565b60026126af565b600c8054820190819055909450611d259034906126e5565b33600090815260176020526040902080548201905560098054820190559250611ebe565b8660021415611ebe57601354341015611dd2576040805160e560020a62461bcd02815260206004820152602860248201527f796f75206d75737420627579206174206c65617374206f6e65205465616d205460448201527f776f207368617265000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152601d602052604090205460ff161515611e5557336000818152601d60205260408120805460ff19166001908117909155601c805491820181559091527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a21101805473ffffffffffffffffffffffffffffffffffffffff191690911790555b336000908152601e60205260409020805434908101909155600f805482019055611e8690611d0690620186a06126e5565b60138054820190819055909250611e9e9034906126e5565b336000908152601f60205260409020805482019055601080548201905590505b604080513381523460208201528082018990526080606082018190526017908201527f61206e657720627579206a7573742068617070656e656400000000000000000060a082015290517f5e77d806c40b3b553986e422d697c9c1639d466d631f62c4fea89e2e15510ae39181900360c00190a150505050505050565b600d5481565b6060600f546008541115611fe1576007805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611fd55780601f10611faa57610100808354040283529160200191611fd5565b820191906000526020600020905b815481529060010190602001808311611fb857829003601f168201915b50505050509050611389565b600f54600854101561204857600e805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611fd55780601f10611faa57610100808354040283529160200191611fd5565b600f546008541415611389575060408051808201909152600a81527f61207469653f20777466000000000000000000000000000000000000000000006020820152611389565b601d6020526000908152604090205460ff1681565b60008054600160a060020a03163314612106576040805160e560020a62461bcd02815260206004820152601560248201527f796f7520617265206e6f7420746865206f776e65720000000000000000000000604482015290519081900360640190fd5b600154600010612186576040805160e560020a62461bcd02815260206004820152602260248201527f796f75206d757374206861766520616e20617661696c61626c652062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154303110156121e1576040805160e560020a62461bcd02815260206004820152601660248201527f796f752063616e6e6f74207072696e74206d6f6e657900000000000000000000604482015290519081900360640190fd5b506001805460009182905581546040519192600160a060020a039091169183156108fc0291849190818181858888f19350505050158015612226573d6000803e3d6000fd5b5060005460408051600160a060020a0390921682526020820183905260608282018190526015908301527f74686520646576206a75737420776974686472657700000000000000000000006080830152517fdf8379729dc015ce4a0fe6dc41c7cc757741f28b67dabb83ec43bba5c18965129181900360a00190a150565b600e805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610fb45780601f10610f8957610100808354040283529160200191610fb4565b60055481565b60295462010000900460ff1681565b602854600090421061232857506000611389565b60295460ff16158015612344575060295462010000900460ff16155b80156123585750602954610100900460ff16155b156123695742602754039050611389565b42602854039050611389565b60015481565b4290565b60095481565b60265481565b60275481565b60255481565b60285481565b601c805482908110610d8257fe5b3332146123f0576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d27833981519152604482015290519081900360640190fd5b60295462010000900460ff161561240657600080fd5b60295460ff61010090910416151560011461242057600080fd5b6028544210612479576040805160e560020a62461bcd02815260206004820152601660248201527f697420697320746f6f206c61746520746f20706c617900000000000000000000604482015290519081900360640190fd5b6027544210156124d3576040805160e560020a62461bcd02815260206004820152601760248201527f697420697320746f6f206561726c7920746f20706c6179000000000000000000604482015290519081900360640190fd5b6124db612bab565b60248054349081019091556040805133815260208101929092526060828201819052601e908301527f736f6d656f6e65206a75737420726564756365642074686520636c6f636b00006080830152517fcf4b0765cda2c8471307628b7571da2d0de77a741fbe33a0a3426baf1f7f67299181900360a00190a1565b601c546014540190565b6000806000806000806000806000601760008b600160a060020a0316600160a060020a0316815260200190815260200160002054111561260d57600160a060020a0389166000908152601760205260409020546003546125ce91610e8091610e789190600101600a0a6126af565b96506125df610e9b600a54896126af565b600160a060020a038a16600090815260196020526040902054909650612606908790612a80565b945061269b565b600160a060020a0389166000908152601f6020526040812054111561269b57600160a060020a0389166000908152601f602052604090205460035461266091610e8091610f009190600101600a0a6126af565b9350612671610e9b601154866126af565b600160a060020a038a16600090815260216020526040902054909350612698908490612a80565b91505b509092019695505050505050565b601c5490565b6000808315156126c257600091506126de565b508282028284828115156126d257fe5b04146126da57fe5b8091505b5092915050565b60008082848115156126f357fe5b04949350505050565b6000806127106113a06024546002546126af565b6001805482018155602454600a8054918490039182019055600b80548201905560408051838152908101829052608060208201818152600780546002610100828916150260001901909116049284018390529597509295507fadd50c0a29e907683af3fde4b66a36c4fa58d22668076b798f44dca0cccc7f729492869291606083019060a0840190869080156127e75780601f106127bc576101008083540402835291602001916127e7565b820191906000526020600020905b8154815290600101906020018083116127ca57829003601f168201915b5050928303905250600d81527f7465616d206f6e6520776f6e210000000000000000000000000000000000000060208201526040805191829003019350915050a15050565b6000806128406113a06024546002546126af565b6001805482018155602454601180549184900391820190556012805482019055604080516002808252918101839052608060208201818152600e80549687161561010002600019019096168490049183018290529597509295507fadd50c0a29e907683af3fde4b66a36c4fa58d22668076b798f44dca0cccc7f7294919392869290606083019060a08401908690801561291b5780601f106128f05761010080835404028352916020019161291b565b820191906000526020600020905b8154815290600101906020018083116128fe57829003601f168201915b5050928303905250600d81527f7465616d2074776f20776f6e210000000000000000000000000000000000000060208201526040805191829003019350915050a15050565b6000806129746113a06024546002546126af565b600180548201905560245490925082900390506129928160026126e5565b600a805490910190556129a68160026126e5565b600b805490910190556129ba8160026126e5565b6011805490910190556129ce8160026126e5565b60128054909101905560408051600081528082018390526080602082018190526004908201527f546965640000000000000000000000000000000000000000000000000000000060a082015260c060608201819052600b908201527f61207469653f212077746600000000000000000000000000000000000000000060e082015290517fadd50c0a29e907683af3fde4b66a36c4fa58d22668076b798f44dca0cccc7f72918190036101000190a15050565b600082821115612a8c57fe5b50900390565b600454600090612aaa90600160a060020a0316612c7c565b600160f860020a031916612abd83612c7c565b600160f860020a03191611612ad457506001612ad8565b5060005b919050565b600454600090612af590600160a060020a0316612c7c565b600160f860020a031916612b0883612c7c565b600160f860020a0319161115612ad457506001612ad8565b8060011415612b3e57600a805483019055600b8054830190556119b9565b80600214156119b957601180548301905560128054830190555050565b60008066038d7ea4c6800034106119b95766038d7ea4c680009150612b8034836126e5565b9050602654420160285482011115612b9f5760265442016028556119b9565b60288054820190555050565b60008066038d7ea4c6800034106119b95766038d7ea4c680009150612bd034836126e5565b6028549091508110612c52576040805160e560020a62461bcd02815260206004820152602860248201527f796f752073656e7420616e2061627375726420616d6f756e74212072656c617860448201527f20766974616c696b000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b4261012c0181602854031015612c6f5761012c42016028556119b9565b6028805482900390555050565b600080612c90612c8b84612c97565b612cc3565b9392505050565b604080517414000000000000000000000000000000000000000092909218601483015260348201905290565b600080805b6001811015612d1957610100820291508351811015612d11578381815181101515612cef57fe5b90602001015160f860020a900460f860020a0260f860020a900460ff16821791505b600101612cc8565b5060f860020a02929150505600796f752063616e6e6f7420757365206120636f6e747261637400000000000000a165627a7a72305820c736ea7a96b0bed6a2b60065ad7a7de79be34eafc47c0de1144813e92151b46f0029
Swarm Source
bzzr://c736ea7a96b0bed6a2b60065ad7a7de79be34eafc47c0de1144813e92151b46f
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.