ETH Price: $2,923.19 (-6.31%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Attack41443532017-08-11 12:24:053048 days ago1502454245IN
0x3f593a15...10E149ec6
0 ETH0.0061216421
Attack40756302017-07-26 9:26:353064 days ago1501061195IN
0x3f593a15...10E149ec6
0 ETH0.007106422.41654586
Attack40668192017-07-24 11:50:103066 days ago1500897010IN
0x3f593a15...10E149ec6
0 ETH0.003841720
Attack33331412017-03-11 16:11:303201 days ago1489248690IN
0x3f593a15...10E149ec6
0 ETH0.0080157220
Attack31685492017-02-12 7:50:233228 days ago1486885823IN
0x3f593a15...10E149ec6
0 ETH0.0051117420
Attack31607412017-02-11 0:50:403230 days ago1486774240IN
0x3f593a15...10E149ec6
0 ETH0.00706820
Attack31596762017-02-10 20:32:333230 days ago1486758753IN
0x3f593a15...10E149ec6
0 ETH0.0060352220
Attack31494612017-02-09 3:53:103232 days ago1486612390IN
0x3f593a15...10E149ec6
0 ETH0.0099660820
Attack31479992017-02-08 22:07:523232 days ago1486591672IN
0x3f593a15...10E149ec6
0 ETH0.0052230820
Attack30576102017-01-24 22:40:203247 days ago1485297620IN
0x3f593a15...10E149ec6
0 ETH0.0054117420
Attack30514522017-01-23 22:14:253248 days ago1485209665IN
0x3f593a15...10E149ec6
0 ETH0.0106704820
Attack30472262017-01-23 5:27:183249 days ago1485149238IN
0x3f593a15...10E149ec6
0 ETH0.008734220
Attack30460822017-01-23 0:55:383249 days ago1485132938IN
0x3f593a15...10E149ec6
0 ETH0.008585420
Attack30450152017-01-22 20:43:063249 days ago1485117786IN
0x3f593a15...10E149ec6
0 ETH0.008585420
Attack30435162017-01-22 14:43:333249 days ago1485096213IN
0x3f593a15...10E149ec6
0 ETH0.0063161716
Build City30235052017-01-19 7:24:293252 days ago1484810669IN
0x3f593a15...10E149ec6
0 ETH0.0164501820
Attack30057722017-01-16 9:03:543255 days ago1484557434IN
0x3f593a15...10E149ec6
0 ETH0.0062194416
Attack30016462017-01-15 16:42:543256 days ago1484498574IN
0x3f593a15...10E149ec6
0 ETH0.0062194416
Attack29887622017-01-13 13:40:433258 days ago1484314843IN
0x3f593a15...10E149ec6
0 ETH0.0068555417.36518185
Attack29847822017-01-12 22:06:093259 days ago1484258769IN
0x3f593a15...10E149ec6
0 ETH0.0063165916
Attack29756482017-01-11 9:49:393260 days ago1484128179IN
0x3f593a15...10E149ec6
0 ETH0.0075978420
Attack29744602017-01-11 5:20:503261 days ago1484112050IN
0x3f593a15...10E149ec6
0 ETH0.0058331220
Attack29723162017-01-10 20:47:263261 days ago1484081246IN
0x3f593a15...10E149ec6
0 ETH0.0039701622.15656951
Build City29721902017-01-10 20:14:193261 days ago1484079259IN
0x3f593a15...10E149ec6
0 ETH0.0202523620
Build City29721862017-01-10 20:13:283261 days ago1484079208IN
0x3f593a15...10E149ec6
0 ETH0.01920
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer24405302016-10-14 19:49:423349 days ago1476474582
0x3f593a15...10E149ec6
0 ETH
Transfer24405272016-10-14 19:49:163349 days ago1476474556
0x3f593a15...10E149ec6
0 ETH
Transfer24396002016-10-14 16:14:243349 days ago1476461664
0x3f593a15...10E149ec6
0 ETH
Transfer24395942016-10-14 16:13:533349 days ago1476461633
0x3f593a15...10E149ec6
0 ETH
Transfer24395922016-10-14 16:13:123349 days ago1476461592
0x3f593a15...10E149ec6
0 ETH
Transfer24391492016-10-14 14:29:043349 days ago1476455344
0x3f593a15...10E149ec6
0 ETH
Transfer24390742016-10-14 14:07:273349 days ago1476454047
0x3f593a15...10E149ec6
0 ETH
Transfer24389482016-10-14 13:30:493349 days ago1476451849
0x3f593a15...10E149ec6
0 ETH
Transfer24389362016-10-14 13:27:503349 days ago1476451670
0x3f593a15...10E149ec6
0 ETH
Transfer24388632016-10-14 13:10:533349 days ago1476450653
0x3f593a15...10E149ec6
0 ETH
Transfer24387242016-10-14 12:32:193349 days ago1476448339
0x3f593a15...10E149ec6
0 ETH
Transfer24385172016-10-14 11:39:213349 days ago1476445161
0x3f593a15...10E149ec6
0 ETH
Transfer24385072016-10-14 11:35:483349 days ago1476444948
0x3f593a15...10E149ec6
0 ETH
Transfer24384652016-10-14 11:24:343349 days ago1476444274
0x3f593a15...10E149ec6
0 ETH
Transfer24384592016-10-14 11:22:493349 days ago1476444169
0x3f593a15...10E149ec6
0 ETH
Transfer24384382016-10-14 11:18:023349 days ago1476443882
0x3f593a15...10E149ec6
0 ETH
Transfer24384352016-10-14 11:17:303349 days ago1476443850
0x3f593a15...10E149ec6
0 ETH
Transfer24384332016-10-14 11:17:033349 days ago1476443823
0x3f593a15...10E149ec6
0 ETH
Transfer24383882016-10-14 11:07:593349 days ago1476443279
0x3f593a15...10E149ec6
0 ETH
Transfer24383832016-10-14 11:06:363349 days ago1476443196
0x3f593a15...10E149ec6
0 ETH
Transfer24383322016-10-14 10:55:593349 days ago1476442559
0x3f593a15...10E149ec6
0 ETH
Transfer24383212016-10-14 10:53:393349 days ago1476442419
0x3f593a15...10E149ec6
0 ETH
Transfer24382872016-10-14 10:44:333349 days ago1476441873
0x3f593a15...10E149ec6
0 ETH
Transfer24382762016-10-14 10:42:093349 days ago1476441729
0x3f593a15...10E149ec6
0 ETH
Transfer24382642016-10-14 10:39:133349 days ago1476441553
0x3f593a15...10E149ec6
0 ETH
View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtherizationUtils2

Compiler Version
v0.3.5-nightly.2016.8.8+commit.c3ed550

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2016-09-16
*/

contract Etherization {
    
    // 1 eth starting price
    uint public START_PRICE = 1000000000000000000;
    // 0.8 eth city build price
    uint public CITY_PRICE = 800000000000000000;
    // 0.5 eth building build price
    uint public BUILDING_PRICE = 500000000000000000;
    // 0.2 eth unit build price
    uint public UNIT_PRICE = 200000000000000000;
    // 0.02 eth unit maintenance price
    uint public MAINT_PRICE = 20000000000000000;
    // 0.1 eth min withdraw amount to prevent spam
    uint public MIN_WTH = 100000000000000000;
    
    // minimum time to wait between moves in seconds
    uint public WAIT_TIME = 14400;
    uint MAP_ROWS = 34;
    uint MAP_COLS = 34;
    
    
    struct City {
        uint owner;
        string name;
        // 0 - quarry, 1 - farm, 2 - woodworks, 3 - metalworks, 4 -stables
        bool[5] buildings;
        // 1 - pikemen, 2 - swordsmen, 3 - horsemen
        uint[10] units; //maximum num of units per city 10
        uint[2] rowcol;
        int previousID;
        int nextID;
    }
    
    struct Player {
        // Player address
        address etherAddress;
        // Their name
        string name;
        // Their treasury balance
        uint treasury;
        // Their capitol
        uint capitol;
        // Number of cities the player has under control
        uint numCities;
        uint numUnits;
        // When was their last move (based on block.timestamp)
        uint lastTimestamp;
    }
    
    Player player;
    Player[] public players;
    uint public numPlayers = 0;
    
    mapping(address => uint) playerIDs;
    mapping(uint => uint) public playerMsgs;
    
    City city;
    City[] public cities;
    uint public numCities = 0;
    
    uint[] public quarryCities;
    uint[] public farmCities;
    uint[] public woodworksCities;
    uint[] public metalworksCities;
    uint[] public stablesCities;
    
    uint[34][34] public map;

    address wizardAddress;
    
    address utilsAddress;
    address utilsAddress2;
    
    // Sum of all players' balances
    uint public totalBalances = 0;

    // Used to ensure only the owner can do some things.
    modifier onlywizard { if (msg.sender == wizardAddress) _ }
    
    // Used to ensure only the utils contract can do some things.
    modifier onlyutils { if (msg.sender == utilsAddress || msg.sender == utilsAddress2) _ }



    // Sets up defaults.
    function Etherization() {
        wizardAddress = msg.sender;
    }

    function start(string playerName, string cityName, uint row, uint col, uint rowref, uint colref) {
        
        
        // If they paid too little, reject and refund their money.
        if (msg.value < START_PRICE) {
            //msg.sender.send(msg.value);
            //playerMsgs[msg.sender] = "Not enough ether sent to found a city and start playing. Sending back any eth sent...";
            return;
        }
        // If the player already exists
        if (playerIDs[msg.sender] > 0) {
            //msg.sender.send(msg.value);
            //playerMsgs[msg.sender] =  "You already founded an etherization. Lookup your player ID by calling getMyPlayerID(). Sending back any eth sent...";
            return;
        }
        
        player.etherAddress = msg.sender;
        player.name = playerName;
        player.treasury = msg.value;
        totalBalances += msg.value;
        player.capitol = numCities;
        player.numCities = 1;
        player.numUnits = 1;

        players.push(player);
        
        city.owner = numPlayers;
        city.name = cityName;
        // the first city in the game has a quarry and a farm by default
        if(numCities <= 0) {
            city.buildings[0] = true;
            quarryCities.push(0);
            city.buildings[1] = true;
            farmCities.push(0);
            city.rowcol[0] = 10;
            city.rowcol[1] = 10;
            map[10][10] = numPlayers+1;
        } else {
            city.buildings[0] = false;
            city.buildings[1] = false;
            if(row>33 || col>33 || rowref>33 || colref>33 || int(row)-int(rowref) > int(1) || int(row)-int(rowref) < int(-1) || int(col)-int(colref) > int(1) || int(col)-int(colref) < int(-1) || map[row][col]>0 || map[rowref][colref]<=0) {
                throw;
            }
            city.rowcol[0] = row;
            city.rowcol[1] = col;
            map[row][col] = numPlayers+1;
            
            players[numPlayers].treasury -= START_PRICE;
            // distribute build funds to production type building owners
            uint productionCut;
            uint i;
            productionCut = START_PRICE / quarryCities.length;
            for(i=0; i < quarryCities.length; i++) {
                players[cities[quarryCities[i]].owner].treasury += productionCut;
            }
        }
        city.units[0] = 1;  //pikemen guards a city by default
        city.previousID = -1;
        city.nextID = -1;
        
        cities.push(city);
        
        playerIDs[msg.sender] = numPlayers+1; //to distinguish it from the default 0
        numPlayers++;
        numCities++;
        
        playerMsgs[playerIDs[msg.sender]-1] = 1 + row*100 + col*10000;
        players[numPlayers-1].lastTimestamp = now;
    }
    
    function deposit() {
        players[playerIDs[msg.sender]-1].treasury += msg.value;
        totalBalances += msg.value;
    }
    
    function withdraw(uint amount) {
        if(int(playerIDs[msg.sender])-1 < 0) {
            throw;
        }
        uint playerID = playerIDs[msg.sender]-1;
        if(timePassed(playerID) < WAIT_TIME) {
            playerMsgs[playerIDs[msg.sender]-1] = 2;
            return;        
        }
        if(amount < players[playerID].treasury && amount > MIN_WTH) {
            players[playerID].treasury -= amount;
            totalBalances -= amount;
            players[playerID].etherAddress.send((amount*99)/100); //keep 1% as commission
        }
    }
    
    
    
    function getMyPlayerID() constant returns (int ID) {
        return int(playerIDs[msg.sender])-1;
    }
    
    function getMyMsg() constant returns (uint s) {
        return playerMsgs[playerIDs[msg.sender]-1];
    }
    
    function getCity(uint cityID) constant returns (uint owner, string cityName, bool[5] buildings, uint[10] units, uint[2] rowcol, int previousID, int nextID) {
        return (cities[cityID].owner, cities[cityID].name, cities[cityID].buildings, cities[cityID].units, cities[cityID].rowcol, cities[cityID].previousID, cities[cityID].nextID);
    }
    
    
    function timePassed(uint playerID) constant returns (uint tp) {
        return (now - players[playerID].lastTimestamp);
    }


    // Used only by the wizard to check his commission.
    function getCommission() onlywizard constant returns (uint com) {
        return this.balance-totalBalances;
    }

    // Used only by the wizard to collect his commission.
    function sweepCommission(uint amount) onlywizard {
        if(amount < this.balance-totalBalances) {
            wizardAddress.send(amount);
        }
    }
    
    
    
    function setUtils(address a) onlywizard {
        utilsAddress = a;
    }
    
    function setUtils2(address a) onlywizard {
        utilsAddress2 = a;
    }
    
    function getPlayerID(address sender) onlyutils constant returns (uint playerID) {
        if(int(playerIDs[sender])-1 < 0) {
            throw;
        }
        return playerIDs[sender]-1;
    }
    
    function getWwLength() constant returns (uint length) {
        return woodworksCities.length;
    }
    
    function getMwLength() constant returns (uint length) {
        return metalworksCities.length;
    }
    
    function getStLength() constant returns (uint length) {
        return stablesCities.length;
    }
    
    function getFmLength() constant returns (uint length) {
        return farmCities.length;
    }
    
    function getQrLength() constant returns (uint length) {
        return quarryCities.length;
    }
    
    
    function setMsg(address sender, uint s) onlyutils {
        playerMsgs[playerIDs[sender]-1] = s;
    }
    
    function setNumCities(uint nc) onlyutils {
        numCities = nc;
    }
    
    function setUnit(uint cityID, uint i, uint unitType) onlyutils {
        cities[cityID].units[i] = unitType;
    }
    
    function setOwner(uint cityID, uint owner) onlyutils {
        cities[cityID].owner = owner;
    }
    
    function setName(uint cityID, string name) onlyutils {
        cities[cityID].name = name;
    }
    
    function setPreviousID(uint cityID, int previousID) onlyutils {
        cities[cityID].previousID = previousID;
    }
    
    function setNextID(uint cityID, int nextID) onlyutils {
        cities[cityID].nextID = nextID;
    }
    
    function setRowcol(uint cityID, uint[2] rowcol) onlyutils {
        cities[cityID].rowcol = rowcol;
    }
    
    function setMap(uint row, uint col, uint ind) onlyutils {
        map[row][col] = ind;
    }
    
    function setCapitol(uint playerID, uint capitol) onlyutils {
        players[playerID].capitol = capitol;
    }

    function setNumUnits(uint playerID, uint numUnits) onlyutils {
        players[playerID].numUnits = numUnits;
    }
    
    function setNumCities(uint playerID, uint numCities) onlyutils {
        players[playerID].numCities = numCities;
    }
    
    function setTreasury(uint playerID, uint treasury) onlyutils {
        players[playerID].treasury = treasury;
    }
    
    function setLastTimestamp(uint playerID, uint timestamp) onlyutils {
        players[playerID].lastTimestamp = timestamp;
    }
    
    function setBuilding(uint cityID, uint buildingType) onlyutils {
        cities[cityID].buildings[buildingType] = true;
        if(buildingType == 0) {
            quarryCities.push(cityID);
        } else if(buildingType == 1) {
            farmCities.push(cityID);
        } else if(buildingType == 2) {
            woodworksCities.push(cityID);
        } else if(buildingType == 3) {
            metalworksCities.push(cityID);
        } else if(buildingType == 4) {
            stablesCities.push(cityID);
        }
    }
    
    function pushCity() onlyutils {
        city.buildings[0] = false;
        city.buildings[1] = false;
        cities.push(city);
    }

}





contract EtherizationUtils2 {
    
    uint playerID;
    uint ownerS;
    uint ownerT;
    uint numUnitsS;
    uint numCitiesS;
    uint treasuryS;
    uint numUnitsT;
    uint numCitiesT;
    uint treasuryT;
    uint j;
    uint bestType;
    uint bestTypeInd;
    uint ran;
    bool win;
    bool cityCaptured = false;
    
    Etherization public e;
    
    address wizardAddress;
    
    // Used to ensure only the owner can do some things.
    modifier onlywizard { if (msg.sender == wizardAddress) _ }
    
    
    function EtherizationUtils2() {
        wizardAddress = msg.sender;
    }
    
    function sete(address a) onlywizard {
        e = Etherization(a);
    }
    
    function attack(uint source, uint target, uint[] unitIndxs) {
        uint[2] memory sRowcol;
        uint[2] memory tRowcol;
        uint[10] memory unitsS;
        uint[10] memory unitsT;
        
        playerID = e.getPlayerID(msg.sender);
        
        if(e.timePassed(playerID) < e.WAIT_TIME()) {
            e.setMsg(msg.sender, 2);
            return;        
        }
        
        (ownerS,,,unitsS,sRowcol,,) = e.getCity(source);
        (ownerT,,,unitsT,tRowcol,,) = e.getCity(target);
        (,,treasuryS,,numCitiesS,numUnitsS,) = e.players(ownerS);
        (,,treasuryT,,numCitiesT,numUnitsT,) = e.players(ownerT);
        if(playerID != ownerS || playerID == ownerT || int(sRowcol[0])-int(tRowcol[0]) > int(1) || int(sRowcol[0])-int(tRowcol[0]) < int(-1) || int(sRowcol[1])-int(tRowcol[1]) > int(1) || int(sRowcol[1])-int(tRowcol[1]) < int(-1)) {
            e.setMsg(msg.sender, 17);
            return;
        }

        cityCaptured = false;
        for(uint i=0; i<unitIndxs.length; i++) {
            bestType = 0;
            win = false;
            ran = uint32(block.blockhash(block.number-1-i))/42949673; //random number between 0 and 100 (divide by MAX_UINT32/100)
            // if attacked by pikemen - try to find swordsmen or next best unit
            if(unitsS[unitIndxs[i]]==1) {
                bestType = 0;
                bestTypeInd = 0;
                for(j=0; j<unitsT.length; j++) {
                    if(unitsT[j] == 1 && bestType!=2) {
                        bestType = 1;
                        bestTypeInd = j;
                    } else if(unitsT[j] == 2) {
                        bestType = 2;
                        bestTypeInd = j;
                        break;
                    } else if(unitsT[j] == 3 && bestType!=2 && bestType!=1) {
                        bestType = 3;
                        bestTypeInd = j;
                    }
                }
                if(bestType==1) {
                    if(ran > 50) {
                        win = true;
                    }
                } else if(bestType==2) {
                    if(ran > 75) {
                        win = true;
                    }
                } else if(bestType==3) {
                    if(ran > 25) {
                        win = true;
                    }
                } else {
                    cityCaptured = true;
                    break;
                }
            }
            // if attacked by swordsmen - try to find horsemen or next best unit
            else if(unitsS[unitIndxs[i]]==2) {
                bestType = 0;
                bestTypeInd = 0;
                for(j=0; j<unitsT.length; j++) {
                    if(unitsT[j] == 2 && bestType!=3) {
                        bestType = 2;
                        bestTypeInd = j;
                    } else if(unitsT[j] == 3) {
                        bestType = 3;
                        bestTypeInd = j;
                        break;
                    } else if(unitsT[j] == 1 && bestType!=3 && bestType!=2) {
                        bestType = 1;
                        bestTypeInd = j;
                    }
                }
                if(bestType==1) {
                    if(ran > 25) {
                        win = true;
                    }
                } else if(bestType==2) {
                    if(ran > 50) {
                        win = true;
                    }
                } else if(bestType==3) {
                    if(ran > 75) {
                        win = true;
                    }
                } else {
                    cityCaptured = true;
                    break;
                }
            }
            // if attacked by horsemen - try to find pikemen or next best unit
            else if(unitsS[unitIndxs[i]]==3) {
                bestType = 0;
                bestTypeInd = 0;
                for(j=0; j<unitsT.length; j++) {
                    if(unitsT[j] == 3 && bestType!=1) {
                        bestType = 3;
                        bestTypeInd = j;
                    } else if(unitsT[j] == 1) {
                        bestType = 1;
                        bestTypeInd = j;
                        break;
                    } else if(unitsT[j] == 2 && bestType!=1 && bestType!=3) {
                        bestType = 2;
                        bestTypeInd = j;
                    }
                }
                if(bestType==1) {
                    if(ran > 75) {
                        win = true;
                    }
                } else if(bestType==2) {
                    if(ran > 25) {
                        win = true;
                    }
                } else if(bestType==3) {
                    if(ran > 50) {
                        win = true;
                    }
                } else {
                    cityCaptured = true;
                    break;
                }
            }
            // if attacked by no-unit do nothing
            else {
                continue;
            }
            
            if(cityCaptured) {
                break;
            }
            if(win) {
                unitsT[bestTypeInd] = 0; //kill defending unit
                e.setUnit(target, bestTypeInd, 0); //kill defending unit
                numUnitsT--;
                e.setNumUnits(ownerT, numUnitsT);
            } else {
                unitsS[unitIndxs[i]] = 0; //kill attacking unit
                e.setUnit(source, unitIndxs[i], 0); //kill attacking unit
                numUnitsS--;
                e.setNumUnits(playerID, numUnitsS);
            }
        }
        
        if(cityCaptured) {
            //march into the city
            j = 0;
            for(; i < unitIndxs.length; i++) {
                e.setUnit(target, j, unitsS[unitIndxs[i]]);
                e.setUnit(source, unitIndxs[i], 0);
                j++;
            }
            
            //plunder treasury fraction
            uint treasuryFraction = treasuryT/numCitiesT;
            e.setNumCities(ownerT, numCitiesT-1);
            e.setTreasury(ownerT, treasuryT-treasuryFraction);
            e.setTreasury(playerID, treasuryS+treasuryFraction);
            e.setNumCities(playerID, numCitiesS+1);
            
            int previousID;
            int nextID;
            uint capitol;
            //remove the link to the city in losing player's city chai
            (,,,,,,previousID,nextID) = e.getCity(target);
            if(previousID >= 0) {
                e.setNextID(uint(previousID), nextID);
                (,,,capitol,,,) = e.players(ownerT);
                if(capitol == target) {
                    e.setCapitol(capitol, uint(previousID));
                }
            }
            if(nextID >= 0) {
                e.setPreviousID(uint(nextID), previousID);
                if(capitol == target) {
                    e.setCapitol(capitol, uint(nextID));
                }
            }
            
            e.setOwner(target, ownerS);
            e.setMap(tRowcol[0], tRowcol[1], ownerS+1);
            
            (,,,,,,previousID,nextID) = e.getCity(source);
            //add the city to winning player's city chain
            e.setPreviousID(target, int(source));
            e.setNextID(target, nextID);
            if(nextID >= 0) {
                e.setPreviousID(uint(nextID), int(target));
            }
            e.setNextID(source, int(target));
            
            e.setMsg(msg.sender, 18 + tRowcol[0]*100 + tRowcol[1]*10000);
        } else {
            e.setMsg(msg.sender, 19 + tRowcol[0]*100 + tRowcol[1]*10000);
        }
        e.setLastTimestamp(playerID, now);
    }
    
    function buildCity(string cityName, uint[2] rowcol, uint[2] rowcolref) {
        playerID = e.getPlayerID(msg.sender);
        
        if(e.timePassed(playerID) < e.WAIT_TIME()) {
            e.setMsg(msg.sender, 2);
            return;        
        }
        
        uint treasury;
        uint numCities;
        uint numUnits;
        uint capitol;
        (,,treasury,capitol,numCities,numUnits,) = e.players(playerID);
        if(treasury < e.CITY_PRICE()) {
            e.setMsg(msg.sender, 6);
            return;
        }

        e.setTreasury(playerID, treasury-e.CITY_PRICE());
        
        if(rowcol[0]>33 || rowcol[1]>33 || rowcolref[0]>33 || rowcolref[1]>33 || int(rowcol[0])-int(rowcolref[0]) > int(1) || int(rowcol[0])-int(rowcolref[0]) < int(-1) || int(rowcol[1])-int(rowcolref[1]) > int(1) || int(rowcol[1])-int(rowcolref[1]) < int(-1) || e.map(rowcol[0],rowcol[1])>0 || e.map(rowcolref[0],rowcolref[1])<=0) {
            throw;
        }

        // distribute build funds to production type building owners
        uint productionCut;
        uint owner;
        int i;
        productionCut = e.CITY_PRICE() / e.getQrLength();
        for(i=0; uint(i) < e.getQrLength(); i++) {
            (owner,) = e.cities(e.quarryCities(uint(i)));
            (,,treasury,,,,) = e.players(owner);
            e.setTreasury(owner, treasury+productionCut);
        }
        
        e.setNumCities(playerID, numCities+1);
        e.setNumUnits(playerID, numUnits+1);

        e.pushCity();
        e.setOwner(e.numCities(), playerID);
        e.setName(e.numCities(), cityName);
        e.setUnit(e.numCities(), 0, 1);   //pikemen guards a city by default
        
        e.setRowcol(e.numCities(), rowcol);
        e.setMap(rowcol[0], rowcol[1], playerID+1);
        
        // if player has no cities currently
        if(numCities<1) {
            e.setCapitol(playerID, e.numCities());
            e.setPreviousID(e.numCities(), -1);
        } else {
            int nextID;
            i = int(capitol);
            (,nextID) = e.getCity(uint(i));
            for(; nextID >= 0 ;) {
                i = nextID;
                (,nextID) = e.getCity(uint(i));
            }
            e.setNextID(uint(i), int(e.numCities()));
            e.setPreviousID(e.numCities(), i);
        }
        e.setNextID(e.numCities(), -1);

        e.setNumCities(e.numCities()+1);
        
        e.setMsg(msg.sender, 20 + rowcol[0]*100 + rowcol[1]*10000);
        e.setLastTimestamp(playerID, now);
    }
    
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"a","type":"address"}],"name":"sete","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"source","type":"uint256"},{"name":"target","type":"uint256"},{"name":"unitIndxs","type":"uint256[]"}],"name":"attack","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"cityName","type":"string"},{"name":"rowcol","type":"uint256[2]"},{"name":"rowcolref","type":"uint256[2]"}],"name":"buildCity","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"e","outputs":[{"name":"","type":"address"}],"type":"function"},{"inputs":[],"type":"constructor"}]

60606040526000600d60016101000a81548160ff021916908302179055505b33600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055505b614422806100586000396000f360606040526000357c01000000000000000000000000000000000000000000000000000000009004806374331be71461005a578063a843c97f14610072578063b0ad38c4146100d7578063ffae15ba1461018957610058565b005b61007060048080359060200190919050506101c2565b005b6100d560048080359060200190919080359060200190919080359060200190820180359060200191919080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050909091905050610248565b005b6101876004808035906020019082018035906020019191908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505090909190806040019060028060200260405190810160405280929190826002602002808284378201915050505050909091908060400190600280602002604051908101604052809291908260026020028082843782019150505050509090919050506124c4565b005b61019660048050506143fc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102445780600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055505b5b50565b6040604051908101604052806002905b6000815260200190600190039081610258579050506040604051908101604052806002905b600081526020019060019003908161027d5790505061014060405190810160405280600a905b60008152602001906001900390816102a35790505061014060405190810160405280600a905b60008152602001906001900390816102c95790505060006000600060006000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e56556a933604051827c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1681526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150600060005081905550600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663388aef5c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfed9199600060005054604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150101561057857600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336002604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506124b6565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d71306518d604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939450909192935090505060016000829d50839b508491905055505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d71306518c604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939450909192935090505060026000829c50839a508491905055505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb600160005054604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f1156100025750505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200150909192939495509091929394509091925050600560006004600060036000869190505585919050558491905055505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb600260005054604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f11561000257505050604051805190602001805190602001805190602001805190602001805190602001805190602001805190602001509091929394955090919293945090919250506008600060076000600660008691905055859190505584919050555050506001600050546000600050541415806109245750600260005054600060005054145b8061095557506001886000600281101561000257909060200201518a60006002811015610002579090602002015103135b806109a557507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff886000600281101561000257909060200201518a60006002811015610002579090602002015103125b806109d657506001886001600281101561000257909060200201518a60016002811015610002579090602002015103135b80610a2657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff886001600281101561000257909060200201518a60016002811015610002579090602002015103125b15610ada57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336011604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506124b6565b6000600d60016101000a81548160ff02191690830217905550600094505b8951851015611563576000600a600050819055506000600d60006101000a81548160ff0219169083021790555063028f5c29856001430303406001900463ffffffff160463ffffffff16600c600050819055506001878b8781518110156100025790602001906020020151600a81101561000257909060200201511415610d8d576000600a600050819055506000600b6000508190555060006009600050819055505b8550600a6009600050541015610cb757600186600960005054600a8110156100025790906020020151148015610bd757506002600a6000505414155b15610bfb576001600a60005081905550600960005054600b60005081905550610c9d565b600286600960005054600a81101561000257909060200201511415610c3d576002600a60005081905550600960005054600b60005081905550610cb756610c9c565b600386600960005054600a8110156100025790906020020151148015610c6957506002600a6000505414155b8015610c7b57506001600a6000505414155b15610c9b576003600a60005081905550600960005054600b600050819055505b5b5b5b6009600081815054809291906001019190505550610b9b565b6001600a600050541415610cf2576032600c600050541115610ced576001600d60006101000a81548160ff021916908302179055505b610d88565b6002600a600050541415610d2d57604b600c600050541115610d28576001600d60006101000a81548160ff021916908302179055505b610d87565b6003600a600050541415610d68576019600c600050541115610d63576001600d60006101000a81548160ff021916908302179055505b610d86565b6001600d60016101000a81548160ff02191690830217905550611563565b5b5b611218565b6002878b8781518110156100025790602001906020020151600a81101561000257909060200201511415610fcf576000600a600050819055506000600b6000508190555060006009600050819055505b8550600a6009600050541015610ef957600286600960005054600a8110156100025790906020020151148015610e1957506003600a6000505414155b15610e3d576002600a60005081905550600960005054600b60005081905550610edf565b600386600960005054600a81101561000257909060200201511415610e7f576003600a60005081905550600960005054600b60005081905550610ef956610ede565b600186600960005054600a8110156100025790906020020151148015610eab57506003600a6000505414155b8015610ebd57506002600a6000505414155b15610edd576001600a60005081905550600960005054600b600050819055505b5b5b5b6009600081815054809291906001019190505550610ddd565b6001600a600050541415610f34576019600c600050541115610f2f576001600d60006101000a81548160ff021916908302179055505b610fca565b6002600a600050541415610f6f576032600c600050541115610f6a576001600d60006101000a81548160ff021916908302179055505b610fc9565b6003600a600050541415610faa57604b600c600050541115610fa5576001600d60006101000a81548160ff021916908302179055505b610fc8565b6001600d60016101000a81548160ff02191690830217905550611563565b5b5b611217565b6003878b8781518110156100025790602001906020020151600a81101561000257909060200201511415611211576000600a600050819055506000600b6000508190555060006009600050819055505b8550600a600960005054101561113b57600386600960005054600a811015610002579090602002015114801561105b57506001600a6000505414155b1561107f576003600a60005081905550600960005054600b60005081905550611121565b600186600960005054600a811015610002579090602002015114156110c1576001600a60005081905550600960005054600b6000508190555061113b56611120565b600286600960005054600a81101561000257909060200201511480156110ed57506001600a6000505414155b80156110ff57506003600a6000505414155b1561111f576002600a60005081905550600960005054600b600050819055505b5b5b5b600960008181505480929190600101919050555061101f565b6001600a60005054141561117657604b600c600050541115611171576001600d60006101000a81548160ff021916908302179055505b61120c565b6002600a6000505414156111b1576019600c6000505411156111ac576001600d60006101000a81548160ff021916908302179055505b61120b565b6003600a6000505414156111ec576032600c6000505411156111e7576001600d60006101000a81548160ff021916908302179055505b61120a565b6001600d60016101000a81548160ff02191690830217905550611563565b5b5b611216565b611556565b5b5b600d60019054906101000a900460ff161561123257611563565b600d60009054906101000a900460ff16156113c157600086600b60005054600a8110156100025790906020020190908181526020015050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a58c600b600050546000604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600660008181505480929190600190039190505550600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663755b5b75600260005054600660005054604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050611555565b6000878b8781518110156100025790602001906020020151600a8110156100025790906020020190908181526020015050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a58d8c88815181101561000257906020019060200201516000604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600360008181505480929190600190039190505550600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663755b5b75600060005054600360005054604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b5b8480600101955050610af8565b600d60019054906101000a900460ff16156123435760006009600050819055505b895185101561172457600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a58c6009600050548a8e8a81518110156100025790602001906020020151600a8110156100025790906020020151604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a58d8c88815181101561000257906020019060200201516000604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f1156100025750505060096000818150548092919060010191905055505b8480600101955050611584565b600760005054600860005054049350600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638173b813600260005054600160076000505403604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634dc43eaf6002600050548660086000505403604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634dc43eaf6000600050548660056000505401604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638173b813600060005054600160046000505401604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d71306518c604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939495509091929394509091929350909192509091508093508194505050600083121515611c9d57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f8484604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb600260005054604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f1156100025750505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200150909192939495509091929394509091929350909150905050809150508a811415611c9c57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638702735c8285604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b5b600082121515611dd757600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b688385604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050508a811415611dd657600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638702735c8284604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b5b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637acbfb658c600160005054604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373ffd969896000600281101561000257909060200201518a600160028110156100025790906020020151600160016000505401604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d71306518d604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939495509091929394509091929350909192509091508093508194505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b688c8e604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f8c84604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506000821215156121d257600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b68838d604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f8d8d604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336127108b6001600281101561000257909060200201510260648c6000600281101561000257909060200201510260120101604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f1156100025750505061241d565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336127108b6001600281101561000257909060200201510260648c6000600281101561000257909060200201510260130101604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166374f519db60006000505442604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b505050505050505050505050565b60006000600060006000600060006000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e56556a933604051827c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1681526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150600060005081905550600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663388aef5c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfed9199600060005054604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150101561276457600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336002604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506143ef565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb600060005054604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f11561000257505050604051805190602001805190602001805190602001805190602001805190602001805190602001805190602001509091929394955090919293945050809950819a50829850839b5050505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5cc916c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015088101561298357600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336006604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506143ef565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634dc43eaf600060005054600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5cc916c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001508b03604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f1156100025750505060218a6000600281101561000257909060200201511180612adc575060218a600160028110156100025790906020020151115b80612af95750602189600060028110156100025790906020020151115b80612b165750602189600160028110156100025790906020020151115b80612b4757506001896000600281101561000257909060200201518b60006002811015610002579090602002015103135b80612b9757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff896000600281101561000257909060200201518b60006002811015610002579090602002015103125b80612bc857506001896001600281101561000257909060200201518b60016002811015610002579090602002015103135b80612c1857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff896001600281101561000257909060200201518b60016002811015610002579090602002015103125b80612ce357506000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a90b91288c6000600281101561000257909060200201518d600160028110156100025790906020020151604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506020604051808303816000876161da5a03f1156100025750505060405180519060200150115b80612daf57506000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a90b91288b6000600281101561000257909060200201518c600160028110156100025790906020020151604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506020604051808303816000876161da5a03f115610002575050506040518051906020015011155b15612db957610002565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a28db13604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5cc916c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015004935083506000915081505b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a28db13604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015082101561322f57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a51b918600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe8e6a6385604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506080604051808303816000876161da5a03f115610002575050506040518051906020018051906020018051906020018051906020015090915090505080935050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb84604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f1156100025750505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200150909192939495509091929394509091925090915090505080985050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634dc43eaf84868b01604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b8180600101925050612edf565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638173b81360006000505460018a01604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663755b5b7560006000505460018901604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630eb495c2604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637acbfb65600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150600060005054604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe55932a600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001508d604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156136635780820380516001836020036101000a031916815260200191505b5093505050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a5600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015060006001604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630381cb3b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001508c604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001826002602002808383829060006004602084601f0104600f02600301f150905001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373ffd9698b6000600281101561000257909060200201518c600160028110156100025790906020020151600160006000505401604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f115610002575050506001871015613c1e57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638702735c600060005054600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b68600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050614024565b8491508150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d713065183604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939495509091929394509091929350909192509091509050809150505b600081121515613de5578091508150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d713065183604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939495509091929394509091929350909192509091509050809150505b613cfa565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f83600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b68600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015084604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638389f3536001600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015001604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336127108d6001600281101561000257909060200201510260648e6000600281101561000257909060200201510260140101604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166374f519db60006000505442604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b5050505050505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156

Deployed Bytecode

0x60606040526000357c01000000000000000000000000000000000000000000000000000000009004806374331be71461005a578063a843c97f14610072578063b0ad38c4146100d7578063ffae15ba1461018957610058565b005b61007060048080359060200190919050506101c2565b005b6100d560048080359060200190919080359060200190919080359060200190820180359060200191919080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050909091905050610248565b005b6101876004808035906020019082018035906020019191908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505090909190806040019060028060200260405190810160405280929190826002602002808284378201915050505050909091908060400190600280602002604051908101604052809291908260026020028082843782019150505050509090919050506124c4565b005b61019660048050506143fc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102445780600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055505b5b50565b6040604051908101604052806002905b6000815260200190600190039081610258579050506040604051908101604052806002905b600081526020019060019003908161027d5790505061014060405190810160405280600a905b60008152602001906001900390816102a35790505061014060405190810160405280600a905b60008152602001906001900390816102c95790505060006000600060006000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e56556a933604051827c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1681526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150600060005081905550600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663388aef5c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfed9199600060005054604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150101561057857600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336002604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506124b6565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d71306518d604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939450909192935090505060016000829d50839b508491905055505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d71306518c604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939450909192935090505060026000829c50839a508491905055505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb600160005054604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f1156100025750505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200150909192939495509091929394509091925050600560006004600060036000869190505585919050558491905055505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb600260005054604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f11561000257505050604051805190602001805190602001805190602001805190602001805190602001805190602001805190602001509091929394955090919293945090919250506008600060076000600660008691905055859190505584919050555050506001600050546000600050541415806109245750600260005054600060005054145b8061095557506001886000600281101561000257909060200201518a60006002811015610002579090602002015103135b806109a557507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff886000600281101561000257909060200201518a60006002811015610002579090602002015103125b806109d657506001886001600281101561000257909060200201518a60016002811015610002579090602002015103135b80610a2657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff886001600281101561000257909060200201518a60016002811015610002579090602002015103125b15610ada57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336011604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506124b6565b6000600d60016101000a81548160ff02191690830217905550600094505b8951851015611563576000600a600050819055506000600d60006101000a81548160ff0219169083021790555063028f5c29856001430303406001900463ffffffff160463ffffffff16600c600050819055506001878b8781518110156100025790602001906020020151600a81101561000257909060200201511415610d8d576000600a600050819055506000600b6000508190555060006009600050819055505b8550600a6009600050541015610cb757600186600960005054600a8110156100025790906020020151148015610bd757506002600a6000505414155b15610bfb576001600a60005081905550600960005054600b60005081905550610c9d565b600286600960005054600a81101561000257909060200201511415610c3d576002600a60005081905550600960005054600b60005081905550610cb756610c9c565b600386600960005054600a8110156100025790906020020151148015610c6957506002600a6000505414155b8015610c7b57506001600a6000505414155b15610c9b576003600a60005081905550600960005054600b600050819055505b5b5b5b6009600081815054809291906001019190505550610b9b565b6001600a600050541415610cf2576032600c600050541115610ced576001600d60006101000a81548160ff021916908302179055505b610d88565b6002600a600050541415610d2d57604b600c600050541115610d28576001600d60006101000a81548160ff021916908302179055505b610d87565b6003600a600050541415610d68576019600c600050541115610d63576001600d60006101000a81548160ff021916908302179055505b610d86565b6001600d60016101000a81548160ff02191690830217905550611563565b5b5b611218565b6002878b8781518110156100025790602001906020020151600a81101561000257909060200201511415610fcf576000600a600050819055506000600b6000508190555060006009600050819055505b8550600a6009600050541015610ef957600286600960005054600a8110156100025790906020020151148015610e1957506003600a6000505414155b15610e3d576002600a60005081905550600960005054600b60005081905550610edf565b600386600960005054600a81101561000257909060200201511415610e7f576003600a60005081905550600960005054600b60005081905550610ef956610ede565b600186600960005054600a8110156100025790906020020151148015610eab57506003600a6000505414155b8015610ebd57506002600a6000505414155b15610edd576001600a60005081905550600960005054600b600050819055505b5b5b5b6009600081815054809291906001019190505550610ddd565b6001600a600050541415610f34576019600c600050541115610f2f576001600d60006101000a81548160ff021916908302179055505b610fca565b6002600a600050541415610f6f576032600c600050541115610f6a576001600d60006101000a81548160ff021916908302179055505b610fc9565b6003600a600050541415610faa57604b600c600050541115610fa5576001600d60006101000a81548160ff021916908302179055505b610fc8565b6001600d60016101000a81548160ff02191690830217905550611563565b5b5b611217565b6003878b8781518110156100025790602001906020020151600a81101561000257909060200201511415611211576000600a600050819055506000600b6000508190555060006009600050819055505b8550600a600960005054101561113b57600386600960005054600a811015610002579090602002015114801561105b57506001600a6000505414155b1561107f576003600a60005081905550600960005054600b60005081905550611121565b600186600960005054600a811015610002579090602002015114156110c1576001600a60005081905550600960005054600b6000508190555061113b56611120565b600286600960005054600a81101561000257909060200201511480156110ed57506001600a6000505414155b80156110ff57506003600a6000505414155b1561111f576002600a60005081905550600960005054600b600050819055505b5b5b5b600960008181505480929190600101919050555061101f565b6001600a60005054141561117657604b600c600050541115611171576001600d60006101000a81548160ff021916908302179055505b61120c565b6002600a6000505414156111b1576019600c6000505411156111ac576001600d60006101000a81548160ff021916908302179055505b61120b565b6003600a6000505414156111ec576032600c6000505411156111e7576001600d60006101000a81548160ff021916908302179055505b61120a565b6001600d60016101000a81548160ff02191690830217905550611563565b5b5b611216565b611556565b5b5b600d60019054906101000a900460ff161561123257611563565b600d60009054906101000a900460ff16156113c157600086600b60005054600a8110156100025790906020020190908181526020015050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a58c600b600050546000604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600660008181505480929190600190039190505550600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663755b5b75600260005054600660005054604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050611555565b6000878b8781518110156100025790602001906020020151600a8110156100025790906020020190908181526020015050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a58d8c88815181101561000257906020019060200201516000604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600360008181505480929190600190039190505550600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663755b5b75600060005054600360005054604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b5b8480600101955050610af8565b600d60019054906101000a900460ff16156123435760006009600050819055505b895185101561172457600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a58c6009600050548a8e8a81518110156100025790602001906020020151600a8110156100025790906020020151604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a58d8c88815181101561000257906020019060200201516000604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f1156100025750505060096000818150548092919060010191905055505b8480600101955050611584565b600760005054600860005054049350600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638173b813600260005054600160076000505403604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634dc43eaf6002600050548660086000505403604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634dc43eaf6000600050548660056000505401604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638173b813600060005054600160046000505401604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d71306518c604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939495509091929394509091929350909192509091508093508194505050600083121515611c9d57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f8484604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb600260005054604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f1156100025750505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200150909192939495509091929394509091929350909150905050809150508a811415611c9c57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638702735c8285604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b5b600082121515611dd757600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b688385604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050508a811415611dd657600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638702735c8284604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b5b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637acbfb658c600160005054604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373ffd969896000600281101561000257909060200201518a600160028110156100025790906020020151600160016000505401604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d71306518d604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939495509091929394509091929350909192509091508093508194505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b688c8e604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f8c84604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506000821215156121d257600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b68838d604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f8d8d604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336127108b6001600281101561000257909060200201510260648c6000600281101561000257909060200201510260120101604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f1156100025750505061241d565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336127108b6001600281101561000257909060200201510260648c6000600281101561000257909060200201510260130101604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166374f519db60006000505442604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b505050505050505050505050565b60006000600060006000600060006000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e56556a933604051827c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1681526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150600060005081905550600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663388aef5c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cfed9199600060005054604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150101561276457600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336002604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506143ef565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb600060005054604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f11561000257505050604051805190602001805190602001805190602001805190602001805190602001805190602001805190602001509091929394955090919293945050809950819a50829850839b5050505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5cc916c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015088101561298357600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336006604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f115610002575050506143ef565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634dc43eaf600060005054600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5cc916c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001508b03604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f1156100025750505060218a6000600281101561000257909060200201511180612adc575060218a600160028110156100025790906020020151115b80612af95750602189600060028110156100025790906020020151115b80612b165750602189600160028110156100025790906020020151115b80612b4757506001896000600281101561000257909060200201518b60006002811015610002579090602002015103135b80612b9757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff896000600281101561000257909060200201518b60006002811015610002579090602002015103125b80612bc857506001896001600281101561000257909060200201518b60016002811015610002579090602002015103135b80612c1857507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff896001600281101561000257909060200201518b60016002811015610002579090602002015103125b80612ce357506000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a90b91288c6000600281101561000257909060200201518d600160028110156100025790906020020151604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506020604051808303816000876161da5a03f1156100025750505060405180519060200150115b80612daf57506000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a90b91288b6000600281101561000257909060200201518c600160028110156100025790906020020151604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506020604051808303816000876161da5a03f115610002575050506040518051906020015011155b15612db957610002565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a28db13604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b5cc916c604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015004935083506000915081505b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a28db13604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015082101561322f57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a51b918600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe8e6a6385604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506020604051808303816000876161da5a03f1156100025750505060405180519060200150604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506080604051808303816000876161da5a03f115610002575050506040518051906020018051906020018051906020018051906020015090915090505080935050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f71d96cb84604051827c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060e0604051808303816000876161da5a03f1156100025750505060405180519060200180519060200180519060200180519060200180519060200180519060200180519060200150909192939495509091929394509091925090915090505080985050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634dc43eaf84868b01604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b8180600101925050612edf565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638173b81360006000505460018a01604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663755b5b7560006000505460018901604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630eb495c2604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637acbfb65600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150600060005054604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe55932a600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001508d604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156136635780820380516001836020036101000a031916815260200191505b5093505050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468129a5600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015060006001604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630381cb3b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001508c604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001826002602002808383829060006004602084601f0104600f02600301f150905001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373ffd9698b6000600281101561000257909060200201518c600160028110156100025790906020020151600160006000505401604051847c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303816000876161da5a03f115610002575050506001871015613c1e57600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638702735c600060005054600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b68600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050614024565b8491508150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d713065183604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939495509091929394509091929350909192509091509050809150505b600081121515613de5578091508150600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d713065183604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506102a0604051808303816000876161da5a03f115610002575050506040518051906020018051906020018060a001806101400180604001805190602001805190602001604052909192939495509091929394509091929350909192509091509050809150505b613cfa565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f83600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f1156100025750505060405180519060200150604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f9f5b68600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015084604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d9102f600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f11561000257505050604051805190602001507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638389f3536001600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324b5c134604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015001604051827c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329de91db336127108d6001600281101561000257909060200201510260648e6000600281101561000257909060200201510260140101604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166374f519db60006000505442604051837c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303816000876161da5a03f115610002575050505b5050505050505050505050565b600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.