ETH Price: $3,186.34 (+2.65%)

Contract

0x365EC7B439abCC8a3A2c4289F0868a4adCd996e9
 
Transaction Hash
Method
Block
From
To
Cash Out Car60631512018-07-31 12:41:262299 days ago1533040886IN
0x365EC7B4...adCd996e9
0 ETH0.000318728
Cash Out Car60631462018-07-31 12:40:012299 days ago1533040801IN
0x365EC7B4...adCd996e9
0 ETH0.000398410
Cash Out Car60631432018-07-31 12:39:102299 days ago1533040750IN
0x365EC7B4...adCd996e9
0 ETH0.000239046
Cash Out60290832018-07-25 19:04:462305 days ago1532545486IN
0x365EC7B4...adCd996e9
0 ETH0.000022841
Cash Out Car60245872018-07-25 0:35:292306 days ago1532478929IN
0x365EC7B4...adCd996e9
0 ETH0.000039841
Cash Out Car59823982018-07-17 20:04:022313 days ago1531857842IN
0x365EC7B4...adCd996e9
0 ETH0.000059761.5
Cash Out Car59823912018-07-17 20:02:372313 days ago1531857757IN
0x365EC7B4...adCd996e9
0 ETH0.000059761.5
Cash Out Car59823852018-07-17 20:01:272313 days ago1531857687IN
0x365EC7B4...adCd996e9
0 ETH0.000059761.5
Cash Out Car59823802018-07-17 19:59:592313 days ago1531857599IN
0x365EC7B4...adCd996e9
0 ETH0.000059761.5
Cash Out Car59823772018-07-17 19:59:362313 days ago1531857576IN
0x365EC7B4...adCd996e9
0 ETH0.000059761.5
Cash Out Car59823692018-07-17 19:58:132313 days ago1531857493IN
0x365EC7B4...adCd996e9
0 ETH0.000059761.5
Cash Out59473772018-07-11 23:01:572319 days ago1531350117IN
0x365EC7B4...adCd996e9
0 ETH0.000182748
Cash Out Car59473502018-07-11 22:55:542319 days ago1531349754IN
0x365EC7B4...adCd996e9
0 ETH0.000318728
Cash Out Car59472362018-07-11 22:29:432319 days ago1531348183IN
0x365EC7B4...adCd996e9
0 ETH0.0005470922
Cash Out Car59472352018-07-11 22:29:322319 days ago1531348172IN
0x365EC7B4...adCd996e9
0 ETH0.000318728
Cash Out57563182018-06-09 1:11:072352 days ago1528506667IN
0x365EC7B4...adCd996e9
0 ETH0.000124574
Cash Out Car57562972018-06-09 1:06:162352 days ago1528506376IN
0x365EC7B4...adCd996e9
0 ETH0.00015914
Cash Out Car56174562018-05-15 10:47:462377 days ago1526381266IN
0x365EC7B4...adCd996e9
0 ETH0.000198948
Cash Out Car56174552018-05-15 10:47:112377 days ago1526381231IN
0x365EC7B4...adCd996e9
0 ETH0.000318728
Cash Out Car56165822018-05-15 7:08:542377 days ago1526368134IN
0x365EC7B4...adCd996e9
0 ETH0.0002486810
Cash Out Car56165802018-05-15 7:08:352377 days ago1526368115IN
0x365EC7B4...adCd996e9
0 ETH0.0008366421
Cash Out Car56155752018-05-15 2:52:432377 days ago1526352763IN
0x365EC7B4...adCd996e9
0 ETH0.000278887
Cash Out55659202018-05-06 11:15:132386 days ago1525605313IN
0x365EC7B4...adCd996e9
0 ETH0.000155715
Cash Out55659172018-05-06 11:14:222386 days ago1525605262IN
0x365EC7B4...adCd996e9
0 ETH0.000045682
Cash Out55284782018-04-29 21:16:002392 days ago1525036560IN
0x365EC7B4...adCd996e9
0 ETH0.000045682
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
60631512018-07-31 12:41:262299 days ago1533040886
0x365EC7B4...adCd996e9
0.0032 ETH
60631462018-07-31 12:40:012299 days ago1533040801
0x365EC7B4...adCd996e9
0.0025 ETH
60631432018-07-31 12:39:102299 days ago1533040750
0x365EC7B4...adCd996e9
0.004 ETH
60290832018-07-25 19:04:462305 days ago1532545486
0x365EC7B4...adCd996e9
0.012 ETH
60245872018-07-25 0:35:292306 days ago1532478929
0x365EC7B4...adCd996e9
0.015 ETH
59823982018-07-17 20:04:022313 days ago1531857842
0x365EC7B4...adCd996e9
0.0001 ETH
59823912018-07-17 20:02:372313 days ago1531857757
0x365EC7B4...adCd996e9
0.0001 ETH
59823852018-07-17 20:01:272313 days ago1531857687
0x365EC7B4...adCd996e9
0.0001 ETH
59823802018-07-17 19:59:592313 days ago1531857599
0x365EC7B4...adCd996e9
0.0001 ETH
59823772018-07-17 19:59:362313 days ago1531857576
0x365EC7B4...adCd996e9
0.0001 ETH
59823692018-07-17 19:58:132313 days ago1531857493
0x365EC7B4...adCd996e9
0.0001 ETH
59473772018-07-11 23:01:572319 days ago1531350117
0x365EC7B4...adCd996e9
0.0225 ETH
59473502018-07-11 22:55:542319 days ago1531349754
0x365EC7B4...adCd996e9
0.01 ETH
59472352018-07-11 22:29:322319 days ago1531348172
0x365EC7B4...adCd996e9
0.031 ETH
57562972018-06-09 1:06:162352 days ago1528506376
0x365EC7B4...adCd996e9
0.0584 ETH
56174552018-05-15 10:47:112377 days ago1526381231
0x365EC7B4...adCd996e9
0.0255 ETH
56165802018-05-15 7:08:352377 days ago1526368115
0x365EC7B4...adCd996e9
0.0021 ETH
56155752018-05-15 2:52:432377 days ago1526352763
0x365EC7B4...adCd996e9
0.0008 ETH
55659172018-05-06 11:14:222386 days ago1525605262
0x365EC7B4...adCd996e9
0.0435 ETH
55284782018-04-29 21:16:002392 days ago1525036560
0x365EC7B4...adCd996e9
0.03 ETH
55280592018-04-29 19:33:002392 days ago1525030380
0x365EC7B4...adCd996e9
0.07 ETH
55012122018-04-25 4:12:022397 days ago1524629522
0x365EC7B4...adCd996e9
0.0001 ETH
55006852018-04-25 1:59:512397 days ago1524621591
0x365EC7B4...adCd996e9
0.0001 ETH
55004102018-04-25 0:53:592397 days ago1524617639
0x365EC7B4...adCd996e9
0.0001 ETH
55002622018-04-25 0:18:262397 days ago1524615506
0x365EC7B4...adCd996e9
0.0001 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtherRacingCore

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-01-03
*/

pragma solidity ^0.4.0;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public Master;


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() public {
        Master = msg.sender;
    }


    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyMaster() {
        require(msg.sender == Master);
        _;
    }


    /**
     * @dev Allows the current owner to transfer control of the contract to a newMaster.
     * @param newMaster The address to transfer ownership to.
     */
    function transferOwnership(address newMaster) public onlyMaster {
        if (newMaster != address(0)) {
            Master = newMaster;
        }
    }

}




/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;


    /**
     * @dev modifier to allow actions only when the contract IS paused
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev modifier to allow actions only when the contract IS NOT paused
     */
    modifier whenPaused {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyMaster whenNotPaused returns (bool) {
        paused = true;
        Pause();
        return true;
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyMaster whenPaused returns (bool) {
        paused = false;
        Unpause();
        return true;
    }
}

//
contract UpgradeInterface {

    function isUpgradeInterface() public pure returns (bool) {
        return true;
    }

    function tryUpgrade(uint32 carID, uint8 upgradeID) public returns (bool);

}

contract EtherRacingCore is Ownable, Pausable {

    uint64 _seed = 0;

    function random(uint64 upper) internal returns (uint64) {
        _seed = uint64(keccak256(keccak256(block.blockhash(block.number), _seed), now));
        return _seed % upper;
    }

    struct CarProduct {
        string name;
        uint32 basePR; // 44.4 * 100 => 4440
        uint32 baseTopSpeed; // 155mph * 100 => 15500
        uint32 baseAcceleration; // 2.70s * 100 => 270
        uint32 baseBraking; // 99ft * 100 => 9900
        uint32 baseGrip; // 1.20g * 100 => 120

        // variables for auction
        uint256 startPrice;
        uint256 currentPrice;

        uint256 earning;
        uint256 createdAt;

        //
        uint32 entityCounter;
        bool sale;
    }

    struct CarEntity {
        uint32 productID;
        address owner;
        address earner;
        bool selling;
        uint256 auctionID;

        // Each car has unique stats.
        uint32 level;
        uint32 exp;
        uint64 genes;
        uint8[8] upgrades;

        //
        uint32 lastCashoutIndex;
    }


    struct AuctionEntity {
        uint32 carID;
        uint256 startPrice;
        uint256 finishPrice;
        uint256 startTime;
        uint256 duration;
    }

    //
    uint32 public newCarID = 1;
    uint32 public newCarProductID = 1;
    uint256 public newAuctionID = 1;
    bool canInit = true;

    mapping(uint32 => CarEntity) cars;
    mapping(uint32 => CarProduct) carProducts;
    mapping(uint256 => AuctionEntity) auctions;
    mapping(address => uint256) balances;

    event EventCashOut (
        address indexed player,
        uint256 amount
    );

    event EventWinReward (
        address indexed player,
        uint256 amount
    );

    event EventUpgradeCar (
        address indexed player,
        uint32 carID,
        uint8 statID,
        uint8 upgradeLevel
    );

    event EventLevelUp (
        uint32 carID,
        uint32 level,
        uint32 exp
    );

    event EventTransfer (
        address indexed player,
        address indexed receiver,
        uint32 carID
    );

    event EventTransferAction (
        address indexed player,
        address indexed receiver,
        uint32 carID,
        uint8 actionType
    );

    event EventAuction (
        address indexed player,
        uint32 carID,
        uint256 startPrice,
        uint256 finishPrice,
        uint256 duration,
        uint256 createdAt
    );

    event EventCancelAuction (
        uint32 carID
    );

    event EventBid (
        address indexed player,
        uint32 carID
    );

    event EventProduct (
        uint32 productID,
        string name,
        uint32 basePR,
        uint32 baseTopSpeed,
        uint32 baseAcceleration,
        uint32 baseBraking,
        uint32 baseGrip,
        uint256 price,
        uint256 earning,
        uint256 createdAt
    );

    event EventProductEndSale (
        uint32 productID
    );

    event EventBuyCar (
        address indexed player,
        uint32 productID,
        uint32 carID
    );


    UpgradeInterface upgradeInterface;
    uint256 public constant upgradePrice = 50 finney;
    uint256 public constant ownerCut = 500;

    function setUpgradeAddress(address _address) external onlyMaster {
        UpgradeInterface c = UpgradeInterface(_address);
        require(c.isUpgradeInterface());

        // Set the new contract address
        upgradeInterface = c;
    }

    function EtherRacingCore() public {

        addCarProduct("ER-1", 830,  15500, 530, 11200, 90,  10 finney,   0.1 finney);
        addCarProduct("ER-2", 1910, 17100, 509, 10700, 95,  50 finney,   0.5 finney);
        addCarProduct("ER-3", 2820, 18300, 450, 10500, 100, 100 finney,  1 finney);
        addCarProduct("ER-4", 3020, 17700, 419, 10400, 99,  500 finney,  5 finney);
        addCarProduct("ER-5", 4440, 20500, 379, 10100, 99,  1000 finney, 10 finney);
        addCarProduct("ER-6", 4520, 22000, 350, 10400, 104, 1500 finney, 15 finney);
        addCarProduct("ER-7", 4560, 20500, 340, 10200, 104, 2000 finney, 20 finney);
        addCarProduct("ER-8", 6600, 21700, 290, 9100,  139, 2500 finney, 25 finney);
    }

    function CompleteInit() public onlyMaster {
        canInit = false;
    }

    function cashOut(uint256 _amount) public whenNotPaused {
        require(_amount >= 0);
        require(_amount == uint256(uint128(_amount)));
        require(this.balance >= _amount);
        require(balances[msg.sender] >= _amount);

        if (_amount == 0)
            _amount = balances[msg.sender];

        balances[msg.sender] -= _amount;

        if (!msg.sender.send(_amount))
            balances[msg.sender] += _amount;

        EventCashOut(msg.sender, _amount);
    }

    function cashOutCar(uint32 _carID) public whenNotPaused {
        require(_carID > 0 && _carID < newCarID);
        require(cars[_carID].owner == msg.sender);
        uint256 _amount = getCarEarning(_carID);
        require(this.balance >= _amount);
        require(_amount > 0);

        var car = cars[_carID];

        var lastCashoutIndex = car.lastCashoutIndex;
        var limitCashoutIndex = carProducts[car.productID].entityCounter;

        //
        cars[_carID].lastCashoutIndex = limitCashoutIndex;

        // if fail, revert.
        if (!car.owner.send(_amount))
            cars[_carID].lastCashoutIndex = lastCashoutIndex;

        EventCashOut(msg.sender, _amount);
    }

    function upgradeCar(uint32 _carID, uint8 _statID) public payable whenNotPaused {
        require(_carID > 0 && _carID < newCarID);
        require(cars[_carID].owner == msg.sender);
        require(_statID >= 0 && _statID < 8);
        require(cars[_statID].upgrades[_statID] < 20);
        require(msg.value >= upgradePrice);
        require(upgradeInterface != address(0));

        //
        if (upgradeInterface.tryUpgrade(_carID, _statID)) {
            cars[_carID].upgrades[_statID]++;
        }

        //
        balances[msg.sender] += msg.value - upgradePrice;
        balances[Master] += upgradePrice;

        EventUpgradeCar(msg.sender, _carID, _statID, cars[_carID].upgrades[_statID]);
    }

    function levelUpCar(uint32 _carID, uint32 _level, uint32 _exp) public onlyMaster {
        require(_carID > 0 && _carID < newCarID);

        cars[_carID].level = _level;
        cars[_carID].exp = _exp;

        EventLevelUp(_carID, _level, _exp);
    }

    function _transfer(uint32 _carID, address _receiver) public whenNotPaused {
        require(_carID > 0 && _carID < newCarID);
        require(cars[_carID].owner == msg.sender);
        require(msg.sender != _receiver);
        require(cars[_carID].selling == false);
        cars[_carID].owner = _receiver;
        cars[_carID].earner = _receiver;

        EventTransfer(msg.sender, _receiver, _carID);
    }

    function _transferAction(uint32 _carID, address _receiver, uint8 _ActionType) public whenNotPaused {
        require(_carID > 0 && _carID < newCarID);
        require(cars[_carID].owner == msg.sender);
        require(msg.sender != _receiver);
        require(cars[_carID].selling == false);
        cars[_carID].owner = _receiver;

        EventTransferAction(msg.sender, _receiver, _carID, _ActionType);
    }

    function addAuction(uint32 _carID, uint256 _startPrice, uint256 _finishPrice, uint256 _duration) public whenNotPaused {
        require(_carID > 0 && _carID < newCarID);
        require(cars[_carID].owner == msg.sender);
        require(cars[_carID].selling == false);
        require(_startPrice >= _finishPrice);
        require(_startPrice > 0 && _finishPrice >= 0);
        require(_duration > 0);
        require(_startPrice == uint256(uint128(_startPrice)));
        require(_finishPrice == uint256(uint128(_finishPrice)));

        auctions[newAuctionID] = AuctionEntity(_carID, _startPrice, _finishPrice, now, _duration);
        cars[_carID].selling = true;
        cars[_carID].auctionID = newAuctionID++;

        EventAuction(msg.sender, _carID, _startPrice, _finishPrice, _duration, now);
    }

    function bid(uint32 _carID) public payable whenNotPaused {
        require(_carID > 0 && _carID < newCarID);
        require(cars[_carID].selling == true);

        //
        uint256 currentPrice = getCarCurrentPriceAuction(_carID);
        require(currentPrice >= 0);
        require(msg.value >= currentPrice);

        //
        uint256 marketFee = currentPrice * ownerCut / 10000;
        balances[cars[_carID].owner] += currentPrice - marketFee;
        balances[Master] += marketFee;
        balances[msg.sender] += msg.value - currentPrice;

        //
        cars[_carID].owner = msg.sender;
        cars[_carID].selling = false;
        delete auctions[cars[_carID].auctionID];
        cars[_carID].auctionID = 0;

        //
        EventBid(msg.sender, _carID);
    }

    // Cancel auction
    function cancelAuction(uint32 _carID) public whenNotPaused {
        require(_carID > 0 && _carID < newCarID);
        require(cars[_carID].selling == true);
        require(cars[_carID].owner == msg.sender);
        // only owner can do this.
        cars[_carID].selling = false;
        delete auctions[cars[_carID].auctionID];
        cars[_carID].auctionID = 0;

        //
        EventCancelAuction(_carID);
    }

    function addCarProduct(string _name, uint32 pr,
        uint32 topSpeed, uint32 acceleration, uint32 braking, uint32 grip, uint256 _price, uint256 _earning) public onlyMaster {
        carProducts[newCarProductID++] = CarProduct(_name,
            pr, topSpeed, acceleration, braking, grip, _price, _price, _earning, now, 0, true);

        EventProduct(newCarProductID - 1, _name,
            pr, topSpeed, acceleration, braking, grip, _price, _earning, now);
    }

    // car sales are limited
    function endSaleCarProduct(uint32 _carProductID) public onlyMaster {
        require(_carProductID > 0 && _carProductID < newCarProductID);
        carProducts[_carProductID].sale = false;

        EventProductEndSale(_carProductID);
    }

    function addCarInit(address owner, uint32 _carProductID, uint32 level, uint32 exp, uint64 genes) public onlyMaster {
        require(canInit == true);
        require(_carProductID > 0 && _carProductID < newCarProductID);

        //
        carProducts[_carProductID].currentPrice += carProducts[_carProductID].earning;

        //
        cars[newCarID++] = CarEntity(_carProductID, owner, owner, false, 0,
            level, exp, genes,
            [0, 0, 0, 0, 0, 0, 0, 0], ++carProducts[_carProductID].entityCounter);

        //
        EventBuyCar(owner, _carProductID, newCarID - 1);
    }

    function buyCar(uint32 _carProductID) public payable {
        require(_carProductID > 0 && _carProductID < newCarProductID);
        require(carProducts[_carProductID].currentPrice > 0 && msg.value > 0);
        require(msg.value >= carProducts[_carProductID].currentPrice);
        require(carProducts[_carProductID].sale);

        //
        if (msg.value > carProducts[_carProductID].currentPrice)
            balances[msg.sender] += msg.value - carProducts[_carProductID].currentPrice;

        carProducts[_carProductID].currentPrice += carProducts[_carProductID].earning;

        //
        cars[newCarID++] = CarEntity(_carProductID, msg.sender, msg.sender, false, 0,
            1, 0, random(~uint64(0)),
            [0, 0, 0, 0, 0, 0, 0, 0], ++carProducts[_carProductID].entityCounter);

        // send balance to Master
        balances[Master] += carProducts[_carProductID].startPrice;

        //
        EventBuyCar(msg.sender, _carProductID, newCarID - 1);
    }

    function getCarProductName(uint32 _id) public constant returns (string) {
        return carProducts[_id].name;
    }

    function getCarProduct(uint32 _id) public constant returns (uint32[6]) {
        var carProduct = carProducts[_id];
        return [carProduct.basePR,
        carProduct.baseTopSpeed,
        carProduct.baseAcceleration,
        carProduct.baseBraking,
        carProduct.baseGrip,
        uint32(carProducts[_id].createdAt)];
    }

    function getCarDetails(uint32 _id) public constant returns (uint64[12]) {
        var car = cars[_id];
        return [uint64(car.productID),
        uint64(car.genes),
        uint64(car.upgrades[0]),
        uint64(car.upgrades[1]),
        uint64(car.upgrades[2]),
        uint64(car.upgrades[3]),
        uint64(car.upgrades[4]),
        uint64(car.upgrades[5]),
        uint64(car.upgrades[6]),
        uint64(car.upgrades[7]),
        uint64(car.level),
        uint64(car.exp)
        ];
    }

    function getCarOwner(uint32 _id) public constant returns (address) {
        return cars[_id].owner;
    }

    function getCarSelling(uint32 _id) public constant returns (bool) {
        return cars[_id].selling;
    }

    function getCarAuctionID(uint32 _id) public constant returns (uint256) {
        return cars[_id].auctionID;
    }

    function getCarEarning(uint32 _id) public constant returns (uint256) {
        var car = cars[_id];
        var carProduct = carProducts[car.productID];
        var limitCashoutIndex = carProduct.entityCounter;

        //
        return carProduct.earning *
            (limitCashoutIndex - car.lastCashoutIndex);
    }

    function getCarCount() public constant returns (uint32) {
        return newCarID-1;
    }

    function getCarCurrentPriceAuction(uint32 _id) public constant returns (uint256) {
        require(getCarSelling(_id));
        var car = cars[_id];
        var currentAuction = auctions[car.auctionID];
        uint256 currentPrice = currentAuction.startPrice
        - (((currentAuction.startPrice - currentAuction.finishPrice) / (currentAuction.duration)) * (now - currentAuction.startTime));
        if (currentPrice < currentAuction.finishPrice)
            currentPrice = currentAuction.finishPrice;
        return currentPrice;
    }

    function getCarProductCurrentPrice(uint32 _id) public constant returns (uint256) {
        return carProducts[_id].currentPrice;
    }

    function getCarProductEarning(uint32 _id) public constant returns (uint256) {
        return carProducts[_id].earning;
    }

    function getCarProductCount() public constant returns (uint32) {
        return newCarProductID-1;
    }

    function getPlayerBalance(address _player) public constant returns (uint256) {
        return balances[_player];
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_carProductID","type":"uint32"}],"name":"endSaleCarProduct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newCarID","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"CompleteInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarCurrentPriceAuction","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCarCount","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_carID","type":"uint32"}],"name":"cancelAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarSelling","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarAuctionID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_carID","type":"uint32"}],"name":"bid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarProductCurrentPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"cashOut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setUpgradeAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarProductName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newAuctionID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_carID","type":"uint32"},{"name":"_receiver","type":"address"}],"name":"_transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownerCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_carID","type":"uint32"},{"name":"_level","type":"uint32"},{"name":"_exp","type":"uint32"}],"name":"levelUpCar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"_carProductID","type":"uint32"},{"name":"level","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"genes","type":"uint64"}],"name":"addCarInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarDetails","outputs":[{"name":"","type":"uint64[12]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_carID","type":"uint32"},{"name":"_receiver","type":"address"},{"name":"_ActionType","type":"uint8"}],"name":"_transferAction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_carID","type":"uint32"}],"name":"cashOutCar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Master","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCarProductCount","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarProductEarning","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_carProductID","type":"uint32"}],"name":"buyCar","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarProduct","outputs":[{"name":"","type":"uint32[6]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_carID","type":"uint32"},{"name":"_startPrice","type":"uint256"},{"name":"_finishPrice","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"addAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_player","type":"address"}],"name":"getPlayerBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newCarProductID","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getCarEarning","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"pr","type":"uint32"},{"name":"topSpeed","type":"uint32"},{"name":"acceleration","type":"uint32"},{"name":"braking","type":"uint32"},{"name":"grip","type":"uint32"},{"name":"_price","type":"uint256"},{"name":"_earning","type":"uint256"}],"name":"addCarProduct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMaster","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_carID","type":"uint32"},{"name":"_statID","type":"uint8"}],"name":"upgradeCar","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EventCashOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EventWinReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"carID","type":"uint32"},{"indexed":false,"name":"statID","type":"uint8"},{"indexed":false,"name":"upgradeLevel","type":"uint8"}],"name":"EventUpgradeCar","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"carID","type":"uint32"},{"indexed":false,"name":"level","type":"uint32"},{"indexed":false,"name":"exp","type":"uint32"}],"name":"EventLevelUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"receiver","type":"address"},{"indexed":false,"name":"carID","type":"uint32"}],"name":"EventTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"receiver","type":"address"},{"indexed":false,"name":"carID","type":"uint32"},{"indexed":false,"name":"actionType","type":"uint8"}],"name":"EventTransferAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"carID","type":"uint32"},{"indexed":false,"name":"startPrice","type":"uint256"},{"indexed":false,"name":"finishPrice","type":"uint256"},{"indexed":false,"name":"duration","type":"uint256"},{"indexed":false,"name":"createdAt","type":"uint256"}],"name":"EventAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"carID","type":"uint32"}],"name":"EventCancelAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"carID","type":"uint32"}],"name":"EventBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"productID","type":"uint32"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"basePR","type":"uint32"},{"indexed":false,"name":"baseTopSpeed","type":"uint32"},{"indexed":false,"name":"baseAcceleration","type":"uint32"},{"indexed":false,"name":"baseBraking","type":"uint32"},{"indexed":false,"name":"baseGrip","type":"uint32"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"earning","type":"uint256"},{"indexed":false,"name":"createdAt","type":"uint256"}],"name":"EventProduct","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"productID","type":"uint32"}],"name":"EventProductEndSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"productID","type":"uint32"},{"indexed":false,"name":"carID","type":"uint32"}],"name":"EventBuyCar","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]

60606040526000805460a060020a60e860020a03191690556001805467ffffffff000000001963ffffffff1990911682171664010000000017815560028190556003805460ff1916909117905534156200005857600080fd5b60008054600160a060020a03191633600160a060020a0316179055620000dc60408051908101604052600481527f45522d3100000000000000000000000000000000000000000000000000000000602082015261033e613c8c610212612bc0605a662386f26fc10000655af3107a4000640100000000620021e3620003ce82021704565b6200014660408051908101604052600481527f45522d320000000000000000000000000000000000000000000000000000000060208201526107766142cc6101fd6129cc605f66b1a2bc2ec500006601c6bf52634000640100000000620021e3620003ce82021704565b620001b160408051908101604052600481527f45522d33000000000000000000000000000000000000000000000000000000006020820152610b0461477c6101c2612904606467016345785d8a000066038d7ea4c68000640100000000620021e3620003ce82021704565b6200021c60408051908101604052600481527f45522d34000000000000000000000000000000000000000000000000000000006020820152610bcc6145246101a36128a060636706f05b59d3b200006611c37937e08000640100000000620021e3620003ce82021704565b6200028760408051908101604052600481527f45522d3500000000000000000000000000000000000000000000000000000000602082015261115861501461017b6127746063670de0b6b3a7640000662386f26fc10000640100000000620021e3620003ce82021704565b620002f260408051908101604052600481527f45522d360000000000000000000000000000000000000000000000000000000060208201526111a86155f061015e6128a060686714d1120d7b16000066354a6ba7a18000640100000000620021e3620003ce82021704565b6200035d60408051908101604052600481527f45522d370000000000000000000000000000000000000000000000000000000060208201526111d06150146101546127d86068671bc16d674ec8000066470de4df820000640100000000620021e3620003ce82021704565b620003c860408051908101604052600481527f45522d380000000000000000000000000000000000000000000000000000000060208201526119c86154c461012261238c608b6722b1c8c1227a00006658d15e17628000640100000000620021e3620003ce82021704565b62000788565b60005433600160a060020a03908116911614620003ea57600080fd5b610180604051908101604090815289825263ffffffff808a16602080850191909152898216838501528882166060850152878216608085015286821660a085015260c0840186905260e084018690526101008401859052426101208501526000610140850181905260016101608601819052805464010000000080820486168084019096160267ffffffff000000001990911617905591825260059052208151819080516200049e929160200190620006e3565b50602082015160018201805463ffffffff191663ffffffff9290921691909117905560408201518160010160046101000a81548163ffffffff021916908363ffffffff16021790555060608201518160010160086101000a81548163ffffffff021916908363ffffffff160217905550608082015181600101600c6101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060c0820151816002015560e082015181600301556101008201518160040155610120820151816005015561014082015160068201805463ffffffff191663ffffffff929092169190911790556101608201518160060160046101000a81548160ff0219169083151502179055509050507fc5d8adcb4ab85f29b993fb052ff9e2e5e1f5820cf7f75947b87e2eaa63a4302960018060049054906101000a900463ffffffff160389898989898989894260405163ffffffff808c16825289811660408301528881166060830152878116608083015286811660a0830152851660c082015260e0810184905261010081018390526101208101829052610140602082018181529082018b818151815260200191508051906020019080838360005b83811015620006955780820151838201526020016200067b565b50505050905090810190601f168015620006c35780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390a15050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200072657805160ff191683800117855562000756565b8280016001018555821562000756579182015b828111156200075657825182559160200191906001019062000739565b506200076492915062000768565b5090565b6200078591905b808211156200076457600081556001016200076f565b90565b612aa480620007986000396000f3006060604052600436106101be5763ffffffff60e060020a60003504166310342d0281146101c3578063154d7944146101e15780631a1b8d081461020d5780631d2fd2671461022057806327436b591461024e57806327eac91414610261578063287ad39f1461027d578063344d1ef214610290578063361d292e146102c057806339c98a1b146102dc5780633f4ba83a1461031457806351ffcab314610327578063538fb98c146103385780635c7b79f5146103545780635c975abb1461036a57806366f9c99e1461037d57806379f015b21461039c578063834e476f1461042f57806383773de81461044257806383b5ff8b1461046a5780638456cb591461047d578063865ad6c214610490578063a5a01bc7146104b8578063ae94bbf1146104f9578063afe007b61461054e578063b2bec9791461057c578063b67f8b6d14610598578063c99c3c62146105ab578063c9f3d62e146105be578063cc50dacb146105da578063dde6e256146105eb578063df1cf29314610621578063e2734c9314610646578063e3ea649614610665578063e78ce8db14610678578063ea05cd0114610694578063f2fde38b14610718578063fd99c6a414610737575b600080fd5b34156101ce57600080fd5b6101df63ffffffff6004351661074e565b005b34156101ec57600080fd5b6101f4610800565b60405163ffffffff909116815260200160405180910390f35b341561021857600080fd5b6101df61080c565b341561022b57600080fd5b61023c63ffffffff60043516610833565b60405190815260200160405180910390f35b341561025957600080fd5b6101f46108cc565b341561026c57600080fd5b6101df63ffffffff600435166108dd565b341561028857600080fd5b61023c610a2a565b341561029b57600080fd5b6102ac63ffffffff60043516610a35565b604051901515815260200160405180910390f35b34156102cb57600080fd5b61023c63ffffffff60043516610a5a565b34156102e757600080fd5b6102f863ffffffff60043516610a75565b604051600160a060020a03909116815260200160405180910390f35b341561031f57600080fd5b6102ac610a9e565b6101df63ffffffff60043516610b14565b341561034357600080fd5b61023c63ffffffff60043516610cd7565b341561035f57600080fd5b6101df600435610cf2565b341561037557600080fd5b6102ac610e37565b341561038857600080fd5b6101df600160a060020a0360043516610e47565b34156103a757600080fd5b6103b863ffffffff60043516610f01565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103f45780820151838201526020016103dc565b50505050905090810190601f1680156104215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043a57600080fd5b61023c610fcb565b341561044d57600080fd5b6101df63ffffffff60043516600160a060020a0360243516610fd1565b341561047557600080fd5b61023c61114d565b341561048857600080fd5b6102ac611153565b341561049b57600080fd5b6101df63ffffffff600435811690602435811690604435166111ce565b34156104c357600080fd5b6101df600160a060020a036004351663ffffffff6024358116906044358116906064351667ffffffffffffffff608435166112b4565b341561050457600080fd5b61051563ffffffff60043516611606565b604051808261018080838360005b8381101561053b578082015183820152602001610523565b5050505090500191505060405180910390f35b341561055957600080fd5b6101df63ffffffff60043516600160a060020a036024351660ff604435166116fb565b341561058757600080fd5b6101df63ffffffff60043516611862565b34156105a357600080fd5b6102f8611a0b565b34156105b657600080fd5b6101f4611a1a565b34156105c957600080fd5b61023c63ffffffff60043516611a32565b6101df63ffffffff60043516611a4d565b34156105f657600080fd5b61060763ffffffff60043516611e73565b604051808260c08083836000815183820152602001610523565b341561062c57600080fd5b6101df63ffffffff60043516602435604435606435611f28565b341561065157600080fd5b61023c600160a060020a0360043516612170565b341561067057600080fd5b6101f461218b565b341561068357600080fd5b61023c63ffffffff6004351661219f565b341561069f57600080fd5b6101df60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505063ffffffff85358116956020810135821695506040810135821694506060810135821693506080810135909116915060a08101359060c001356121e3565b341561072357600080fd5b6101df600160a060020a03600435166124f2565b6101df63ffffffff6004351660ff60243516612548565b60005433600160a060020a0390811691161461076957600080fd5b60008163ffffffff16118015610792575060015463ffffffff6401000000009091048116908216105b151561079d57600080fd5b63ffffffff811660009081526005602052604090819020600601805464ff00000000191690557f4e81eec9e5a8ffb377da17119137895e40ef8372be94387b6c8d0addc289b5059082905163ffffffff909116815260200160405180910390a150565b60015463ffffffff1681565b60005433600160a060020a0390811691161461082757600080fd5b6003805460ff19169055565b60008060008061084285610a35565b151561084d57600080fd5b600460008663ffffffff1663ffffffff16815260200190815260200160002092506006600084600201548152602001908152602001600020915081600301544203826004015483600201548460010154038115156108a757fe5b0402826001015403905081600201548110156108c4575060028101545b949350505050565b60015463ffffffff16600019015b90565b60005460a060020a900460ff16156108f457600080fd5b60008163ffffffff16118015610915575060015463ffffffff908116908216105b151561092057600080fd5b63ffffffff8116600090815260046020526040902060019081015460a060020a900460ff1615151461095157600080fd5b63ffffffff811660009081526004602052604090205433600160a060020a03908116640100000000909204161461098757600080fd5b63ffffffff811660008181526004602081815260408084206001808201805460a060020a60ff021916905560029182018054875260068552838720805463ffffffff1916815591820187905591810186905560038101869055840185905594845291905291557fede778d225701457091011ec7fd143eddcc5852e0c761ba32d2073eff46a8ddf9082905163ffffffff909116815260200160405180910390a150565b66b1a2bc2ec5000081565b63ffffffff1660009081526004602052604090206001015460a060020a900460ff1690565b63ffffffff1660009081526004602052604090206002015490565b63ffffffff166000908152600460205260409020546401000000009004600160a060020a031690565b6000805433600160a060020a03908116911614610aba57600080fd5b60005460a060020a900460ff161515610ad257600080fd5b6000805460a060020a60ff02191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60008054819060a060020a900460ff1615610b2e57600080fd5b60008363ffffffff16118015610b4f575060015463ffffffff908116908416105b1515610b5a57600080fd5b63ffffffff8316600090815260046020526040902060019081015460a060020a900460ff16151514610b8b57600080fd5b610b9483610833565b91506000821015610ba457600080fd5b3482901015610bb257600080fd5b5063ffffffff82166000818152600460208181526040808420805464010000000090819004600160a060020a0390811687526007855283872080546127106101f48c0204808c03909101909155875482168852848820805482019055339091168088528488208054348c9003019055835477ffffffffffffffffffffffffffffffffffffffff0000000019169281029290921783556001808401805460a060020a60ff021916905560029384018054895260068752858920805463ffffffff1916815591820189905593810188905560038101889055860187905596865293909252929055907f1deb9b9e87e38e60f206470b570ed8c996291877f767127d53b0174c366988ab9085905163ffffffff909116815260200160405180910390a2505050565b63ffffffff1660009081526005602052604090206003015490565b60005460a060020a900460ff1615610d0957600080fd5b6000811015610d1757600080fd5b6fffffffffffffffffffffffffffffffff81168114610d3557600080fd5b600160a060020a0330163181901015610d4d57600080fd5b600160a060020a03331660009081526007602052604090205481901015610d7357600080fd5b801515610d955750600160a060020a0333166000908152600760205260409020545b600160a060020a033316600081815260076020526040908190208054849003905582156108fc0290839051600060405180830381858888f193505050501515610df757600160a060020a03331660009081526007602052604090208054820190555b33600160a060020a03167f9f5185b6b824ad17fcc1c1d1098e828613c62aa8f27fba237cbda8248272c3578260405190815260200160405180910390a250565b60005460a060020a900460ff1681565b6000805433600160a060020a03908116911614610e6357600080fd5b5080600160a060020a0381166353f24e336000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610eab57600080fd5b6102c65a03f11515610ebc57600080fd5b505050604051805190501515610ed157600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b610f096128de565b600560008363ffffffff1663ffffffff1681526020019081526020016000206000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fbf5780601f10610f9457610100808354040283529160200191610fbf565b820191906000526020600020905b815481529060010190602001808311610fa257829003601f168201915b50505050509050919050565b60025481565b60005460a060020a900460ff1615610fe857600080fd5b60008263ffffffff16118015611009575060015463ffffffff908116908316105b151561101457600080fd5b63ffffffff821660009081526004602052604090205433600160a060020a03908116640100000000909204161461104a57600080fd5b80600160a060020a031633600160a060020a03161415151561106b57600080fd5b63ffffffff821660009081526004602052604090206001015460a060020a900460ff161561109857600080fd5b63ffffffff8216600090815260046020526040908190208054600160a060020a03808516640100000000810277ffffffffffffffffffffffffffffffffffffffff00000000199093169290921783556001909201805473ffffffffffffffffffffffffffffffffffffffff1916821790559133909116907f113bb8db9c3f402e36400928c81a0e95afa1d1cb577216ecf25bfd7c8b4641f79085905163ffffffff909116815260200160405180910390a35050565b6101f481565b6000805433600160a060020a0390811691161461116f57600080fd5b60005460a060020a900460ff161561118657600080fd5b6000805460a060020a60ff02191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b60005433600160a060020a039081169116146111e957600080fd5b60008363ffffffff1611801561120a575060015463ffffffff908116908416105b151561121557600080fd5b63ffffffff83811660009081526004602052604090819020600301805463ffffffff19168584161767ffffffff00000000191664010000000093851693909302929092179091557fbf0d4f0379cd6499682d4265aff934f746177c2aba702074cb79ead1ac2d6f63908490849084905163ffffffff938416815291831660208301529091166040808301919091526060909101905180910390a1505050565b60005433600160a060020a039081169116146112cf57600080fd5b60035460ff1615156001146112e357600080fd5b60008463ffffffff1611801561130c575060015463ffffffff6401000000009091048116908516105b151561131757600080fd5b63ffffffff84166000908152600560205260409081902060048101546003909101805490910190556101409051908101604052808563ffffffff16815260200186600160a060020a0316815260200186600160a060020a03168152602001600015158152602001600081526020018463ffffffff1681526020018363ffffffff1681526020018267ffffffffffffffff168152602001610100604051908101604090815260008083526020808401829052828401829052606084018290526080840182905260a0840182905260c0840182905260e0840182905292845263ffffffff808a1682526005845282822060060180548083166001908101841663ffffffff199283168117909355968601919091528554808316808801909316911617909455928352600490915290208151815463ffffffff191663ffffffff9190911617815560208201518154600160a060020a03919091166401000000000277ffffffffffffffffffffffffffffffffffffffff0000000019909116178155604082015160018201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055606082015160018201805491151560a060020a0260a060020a60ff02199092169190911790556080820151816002015560a082015160038201805463ffffffff191663ffffffff9290921691909117905560c08201518160030160046101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061010082015161158690600483019060086128f0565b50610120820151600591909101805463ffffffff191663ffffffff928316179055600154600160a060020a03881692507f3861ee089c613213365afad4598e619fccbb551c4ee9a808b6841533f5bdb5f0918791166000190160405163ffffffff9283168152911660208201526040908101905180910390a25050505050565b61160e612983565b63ffffffff8216600090815260046020526040908190209061018090519081016040908152825463ffffffff9081168352600384015467ffffffffffffffff68010000000000000000820416602085015260049094015460ff80821693850193909352610100808204841660608601526201000082048416608086015263010000008204841660a0860152640100000000808304851660c0870152650100000000008304851660e087015266010000000000008304851691860191909152670100000000000000909104909216610120840152838116610140840152920490911661016082015292915050565b60005460a060020a900460ff161561171257600080fd5b60008363ffffffff16118015611733575060015463ffffffff908116908416105b151561173e57600080fd5b63ffffffff831660009081526004602052604090205433600160a060020a03908116640100000000909204161461177457600080fd5b81600160a060020a031633600160a060020a03161415151561179557600080fd5b63ffffffff831660009081526004602052604090206001015460a060020a900460ff16156117c257600080fd5b63ffffffff8316600090815260046020526040908190208054600160a060020a03808616640100000000810277ffffffffffffffffffffffffffffffffffffffff0000000019909316929092179092559133909116907ff77685804f81b41b8882a2b139a0e44bcabacefd99f6702aff10c4d0fa64c15a90869085905163ffffffff909216825260ff1660208201526040908101905180910390a3505050565b6000805481908190819060a060020a900460ff161561188057600080fd5b60008563ffffffff161180156118a1575060015463ffffffff908116908616105b15156118ac57600080fd5b63ffffffff851660009081526004602052604090205433600160a060020a0390811664010000000090920416146118e257600080fd5b6118eb8561219f565b9350600160a060020a033016318490101561190557600080fd5b6000841161191257600080fd5b50505063ffffffff8281166000818152600460208181526040808420600580820180548354808b16895292865284882060060154989097529490935294861663ffffffff19851681179093559394929092169290916401000000009004600160a060020a0316906108fc86150290869051600060405180830381858888f1935050505015156119c75763ffffffff8581166000908152600460205260409020600501805463ffffffff19169184169190911790555b33600160a060020a03167f9f5185b6b824ad17fcc1c1d1098e828613c62aa8f27fba237cbda8248272c3578560405190815260200160405180910390a25050505050565b600054600160a060020a031681565b600154640100000000900463ffffffff166000190190565b63ffffffff1660009081526005602052604090206004015490565b60008163ffffffff16118015611a76575060015463ffffffff6401000000009091048116908216105b1515611a8157600080fd5b63ffffffff8116600090815260056020526040812060030154118015611aa75750600034115b1515611ab257600080fd5b63ffffffff8116600090815260056020526040902060030154341015611ad757600080fd5b63ffffffff8116600090815260056020526040902060060154640100000000900460ff161515611b0657600080fd5b63ffffffff8116600090815260056020526040902060030154341115611b635763ffffffff811660009081526005602090815260408083206003015433600160a060020a0316845260079092529091208054349290920390910190555b63ffffffff81166000908152600560205260409081902060048101546003909101805490910190556101409051908101604090815263ffffffff83168252600160a060020a033316602083018190529082015260006060820181905260808201819052600160a083015260c082015260e08101611be16000196127f6565b67ffffffffffffffff168152602001610100604051908101604090815260008083526020808401829052828401829052606084018290526080840182905260a0840182905260c0840182905260e0840182905292845263ffffffff80871682526005845282822060060180548083166001908101841663ffffffff199283168117909355968601919091528554808316808801909316911617909455928352600490915290208151815463ffffffff191663ffffffff9190911617815560208201518154600160a060020a03919091166401000000000277ffffffffffffffffffffffffffffffffffffffff0000000019909116178155604082015160018201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055606082015160018201805491151560a060020a0260a060020a60ff02199092169190911790556080820151816002015560a082015160038201805463ffffffff191663ffffffff9290921691909117905560c08201518160030160046101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610100820151611dc990600483019060086128f0565b506101208201516005918201805463ffffffff191663ffffffff928316179055838116600090815260209283526040808220600201548254600160a060020a03908116845260079095529181902080549092019091556001543390931693507f3861ee089c613213365afad4598e619fccbb551c4ee9a808b6841533f5bdb5f09285921660001901905163ffffffff9283168152911660208201526040908101905180910390a250565b611e7b6129ac565b63ffffffff8216600090815260056020526040908190209060c090519081016040908152600183015463ffffffff8082168452640100000000820481166020808601919091526801000000000000000083048216848601526c010000000000000000000000008304821660608601527001000000000000000000000000000000009092048116608085015286811660009081526005928390529290922001541660a0820152915050919050565b60005460a060020a900460ff1615611f3f57600080fd5b60008463ffffffff16118015611f60575060015463ffffffff908116908516105b1515611f6b57600080fd5b63ffffffff841660009081526004602052604090205433600160a060020a039081166401000000009092041614611fa157600080fd5b63ffffffff841660009081526004602052604090206001015460a060020a900460ff1615611fce57600080fd5b81831015611fdb57600080fd5b600083118015611fec575060008210155b1515611ff757600080fd5b6000811161200457600080fd5b6fffffffffffffffffffffffffffffffff8316831461202257600080fd5b6fffffffffffffffffffffffffffffffff8216821461204057600080fd5b60a0604051908101604090815263ffffffff8616825260208083018690528183018590524260608401526080830184905260025460009081526006909152208151815463ffffffff191663ffffffff91909116178155602082015181600101556040820151816002015560608201518160030155608082015160049182015563ffffffff861660009081526020919091526040908190206001818101805460a060020a60ff02191660a060020a17905560028054918201815590910155600160a060020a03331691507ff6b924f817282ac2c02fb828bdc9a6c812e6c87369d31c4b7dbd286ea158ffe290869086908690869042905163ffffffff909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a250505050565b600160a060020a031660009081526007602052604090205490565b600154640100000000900463ffffffff1681565b63ffffffff90811660009081526004602081815260408084208054861685526005928390529320600681015491909301549290910154918316908316039091160290565b60005433600160a060020a039081169116146121fe57600080fd5b610180604051908101604090815289825263ffffffff808a16602080850191909152898216838501528882166060850152878216608085015286821660a085015260c0840186905260e084018690526101008401859052426101208501526000610140850181905260016101608601819052805464010000000080820486168084019096160267ffffffff000000001990911617905591825260059052208151819080516122b09291602001906129c6565b50602082015160018201805463ffffffff191663ffffffff9290921691909117905560408201518160010160046101000a81548163ffffffff021916908363ffffffff16021790555060608201518160010160086101000a81548163ffffffff021916908363ffffffff160217905550608082015181600101600c6101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060c0820151816002015560e082015181600301556101008201518160040155610120820151816005015561014082015160068201805463ffffffff191663ffffffff929092169190911790556101608201518160060160046101000a81548160ff0219169083151502179055509050507fc5d8adcb4ab85f29b993fb052ff9e2e5e1f5820cf7f75947b87e2eaa63a4302960018060049054906101000a900463ffffffff160389898989898989894260405163ffffffff808c16825289811660408301528881166060830152878116608083015286811660a0830152851660c082015260e0810184905261010081018390526101208101829052610140602082018181529082018b818151815260200191508051906020019080838360005b838110156124a557808201518382015260200161248d565b50505050905090810190601f1680156124d25780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390a15050505050505050565b60005433600160a060020a0390811691161461250d57600080fd5b600160a060020a03811615612545576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60005460a060020a900460ff161561255f57600080fd5b60008263ffffffff16118015612580575060015463ffffffff908116908316105b151561258b57600080fd5b63ffffffff821660009081526004602052604090205433600160a060020a0390811664010000000090920416146125c157600080fd5b60008160ff16101580156125d8575060088160ff16105b15156125e357600080fd5b60ff811660008181526004602081905260409091206014929101906008811061260857fe5b60208082049092015460ff929091066101000a9004161061262857600080fd5b66b1a2bc2ec5000034101561263c57600080fd5b600854600160a060020a0316151561265357600080fd5b600854600160a060020a031663246c01cd838360006040516020015260405163ffffffff84811660e060020a02825292909216600483015260ff166024820152604401602060405180830381600087803b15156126af57600080fd5b6102c65a03f115156126c057600080fd5b50505060405180519050156127235763ffffffff821660009081526004602081905260409091200160ff8216600881106126f657fe5b6020808204929092018054929091066101000a60ff81810219841693829004811660010116029190911790555b600160a060020a0333811660008181526007602090815260408083208054340166b1a2bc2ec4ffff1901905582549094168252838220805466b1a2bc2ec5000001905563ffffffff8616825260049081905292902090917f0849a1972cdd214e9e1225a29e519fea77e053de86eacfb9256a8dd8f128997a91859185910160ff8216600881106127af57fe5b602091828204019190069054906101000a900460ff1660405163ffffffff909316835260ff9182166020840152166040808301919091526060909101905180910390a25050565b600080544340907501000000000000000000000000000000000000000000900467ffffffffffffffff1660405191825267ffffffffffffffff167801000000000000000000000000000000000000000000000000026020820152602801604051809103902042604051918252602082015260409081019051908190039020600080547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff93841681029190911791829055848316929104168115156128d757fe5b0692915050565b60206040519081016040526000815290565b6001830191839082156129735791602002820160005b8382111561294457835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612906565b80156129715782816101000a81549060ff0219169055600101602081600001049283019260010302612944565b505b5061297f929150612a40565b5090565b610180604051908101604052600c815b6000815260001990910190602001816129935790505090565b60c060405190810160405260008152600560208201612993565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a0757805160ff1916838001178555612a34565b82800160010185558215612a34579182015b82811115612a34578251825591602001919060010190612a19565b5061297f929150612a5e565b6108da91905b8082111561297f57805460ff19168155600101612a46565b6108da91905b8082111561297f5760008155600101612a645600a165627a7a72305820cbff011e3862eb38b2c63d0ff96a43d23ebbe6ea4b562bb7702c7fdf359f973a0029

Deployed Bytecode

0x6060604052600436106101be5763ffffffff60e060020a60003504166310342d0281146101c3578063154d7944146101e15780631a1b8d081461020d5780631d2fd2671461022057806327436b591461024e57806327eac91414610261578063287ad39f1461027d578063344d1ef214610290578063361d292e146102c057806339c98a1b146102dc5780633f4ba83a1461031457806351ffcab314610327578063538fb98c146103385780635c7b79f5146103545780635c975abb1461036a57806366f9c99e1461037d57806379f015b21461039c578063834e476f1461042f57806383773de81461044257806383b5ff8b1461046a5780638456cb591461047d578063865ad6c214610490578063a5a01bc7146104b8578063ae94bbf1146104f9578063afe007b61461054e578063b2bec9791461057c578063b67f8b6d14610598578063c99c3c62146105ab578063c9f3d62e146105be578063cc50dacb146105da578063dde6e256146105eb578063df1cf29314610621578063e2734c9314610646578063e3ea649614610665578063e78ce8db14610678578063ea05cd0114610694578063f2fde38b14610718578063fd99c6a414610737575b600080fd5b34156101ce57600080fd5b6101df63ffffffff6004351661074e565b005b34156101ec57600080fd5b6101f4610800565b60405163ffffffff909116815260200160405180910390f35b341561021857600080fd5b6101df61080c565b341561022b57600080fd5b61023c63ffffffff60043516610833565b60405190815260200160405180910390f35b341561025957600080fd5b6101f46108cc565b341561026c57600080fd5b6101df63ffffffff600435166108dd565b341561028857600080fd5b61023c610a2a565b341561029b57600080fd5b6102ac63ffffffff60043516610a35565b604051901515815260200160405180910390f35b34156102cb57600080fd5b61023c63ffffffff60043516610a5a565b34156102e757600080fd5b6102f863ffffffff60043516610a75565b604051600160a060020a03909116815260200160405180910390f35b341561031f57600080fd5b6102ac610a9e565b6101df63ffffffff60043516610b14565b341561034357600080fd5b61023c63ffffffff60043516610cd7565b341561035f57600080fd5b6101df600435610cf2565b341561037557600080fd5b6102ac610e37565b341561038857600080fd5b6101df600160a060020a0360043516610e47565b34156103a757600080fd5b6103b863ffffffff60043516610f01565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103f45780820151838201526020016103dc565b50505050905090810190601f1680156104215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043a57600080fd5b61023c610fcb565b341561044d57600080fd5b6101df63ffffffff60043516600160a060020a0360243516610fd1565b341561047557600080fd5b61023c61114d565b341561048857600080fd5b6102ac611153565b341561049b57600080fd5b6101df63ffffffff600435811690602435811690604435166111ce565b34156104c357600080fd5b6101df600160a060020a036004351663ffffffff6024358116906044358116906064351667ffffffffffffffff608435166112b4565b341561050457600080fd5b61051563ffffffff60043516611606565b604051808261018080838360005b8381101561053b578082015183820152602001610523565b5050505090500191505060405180910390f35b341561055957600080fd5b6101df63ffffffff60043516600160a060020a036024351660ff604435166116fb565b341561058757600080fd5b6101df63ffffffff60043516611862565b34156105a357600080fd5b6102f8611a0b565b34156105b657600080fd5b6101f4611a1a565b34156105c957600080fd5b61023c63ffffffff60043516611a32565b6101df63ffffffff60043516611a4d565b34156105f657600080fd5b61060763ffffffff60043516611e73565b604051808260c08083836000815183820152602001610523565b341561062c57600080fd5b6101df63ffffffff60043516602435604435606435611f28565b341561065157600080fd5b61023c600160a060020a0360043516612170565b341561067057600080fd5b6101f461218b565b341561068357600080fd5b61023c63ffffffff6004351661219f565b341561069f57600080fd5b6101df60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505063ffffffff85358116956020810135821695506040810135821694506060810135821693506080810135909116915060a08101359060c001356121e3565b341561072357600080fd5b6101df600160a060020a03600435166124f2565b6101df63ffffffff6004351660ff60243516612548565b60005433600160a060020a0390811691161461076957600080fd5b60008163ffffffff16118015610792575060015463ffffffff6401000000009091048116908216105b151561079d57600080fd5b63ffffffff811660009081526005602052604090819020600601805464ff00000000191690557f4e81eec9e5a8ffb377da17119137895e40ef8372be94387b6c8d0addc289b5059082905163ffffffff909116815260200160405180910390a150565b60015463ffffffff1681565b60005433600160a060020a0390811691161461082757600080fd5b6003805460ff19169055565b60008060008061084285610a35565b151561084d57600080fd5b600460008663ffffffff1663ffffffff16815260200190815260200160002092506006600084600201548152602001908152602001600020915081600301544203826004015483600201548460010154038115156108a757fe5b0402826001015403905081600201548110156108c4575060028101545b949350505050565b60015463ffffffff16600019015b90565b60005460a060020a900460ff16156108f457600080fd5b60008163ffffffff16118015610915575060015463ffffffff908116908216105b151561092057600080fd5b63ffffffff8116600090815260046020526040902060019081015460a060020a900460ff1615151461095157600080fd5b63ffffffff811660009081526004602052604090205433600160a060020a03908116640100000000909204161461098757600080fd5b63ffffffff811660008181526004602081815260408084206001808201805460a060020a60ff021916905560029182018054875260068552838720805463ffffffff1916815591820187905591810186905560038101869055840185905594845291905291557fede778d225701457091011ec7fd143eddcc5852e0c761ba32d2073eff46a8ddf9082905163ffffffff909116815260200160405180910390a150565b66b1a2bc2ec5000081565b63ffffffff1660009081526004602052604090206001015460a060020a900460ff1690565b63ffffffff1660009081526004602052604090206002015490565b63ffffffff166000908152600460205260409020546401000000009004600160a060020a031690565b6000805433600160a060020a03908116911614610aba57600080fd5b60005460a060020a900460ff161515610ad257600080fd5b6000805460a060020a60ff02191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60008054819060a060020a900460ff1615610b2e57600080fd5b60008363ffffffff16118015610b4f575060015463ffffffff908116908416105b1515610b5a57600080fd5b63ffffffff8316600090815260046020526040902060019081015460a060020a900460ff16151514610b8b57600080fd5b610b9483610833565b91506000821015610ba457600080fd5b3482901015610bb257600080fd5b5063ffffffff82166000818152600460208181526040808420805464010000000090819004600160a060020a0390811687526007855283872080546127106101f48c0204808c03909101909155875482168852848820805482019055339091168088528488208054348c9003019055835477ffffffffffffffffffffffffffffffffffffffff0000000019169281029290921783556001808401805460a060020a60ff021916905560029384018054895260068752858920805463ffffffff1916815591820189905593810188905560038101889055860187905596865293909252929055907f1deb9b9e87e38e60f206470b570ed8c996291877f767127d53b0174c366988ab9085905163ffffffff909116815260200160405180910390a2505050565b63ffffffff1660009081526005602052604090206003015490565b60005460a060020a900460ff1615610d0957600080fd5b6000811015610d1757600080fd5b6fffffffffffffffffffffffffffffffff81168114610d3557600080fd5b600160a060020a0330163181901015610d4d57600080fd5b600160a060020a03331660009081526007602052604090205481901015610d7357600080fd5b801515610d955750600160a060020a0333166000908152600760205260409020545b600160a060020a033316600081815260076020526040908190208054849003905582156108fc0290839051600060405180830381858888f193505050501515610df757600160a060020a03331660009081526007602052604090208054820190555b33600160a060020a03167f9f5185b6b824ad17fcc1c1d1098e828613c62aa8f27fba237cbda8248272c3578260405190815260200160405180910390a250565b60005460a060020a900460ff1681565b6000805433600160a060020a03908116911614610e6357600080fd5b5080600160a060020a0381166353f24e336000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610eab57600080fd5b6102c65a03f11515610ebc57600080fd5b505050604051805190501515610ed157600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b610f096128de565b600560008363ffffffff1663ffffffff1681526020019081526020016000206000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fbf5780601f10610f9457610100808354040283529160200191610fbf565b820191906000526020600020905b815481529060010190602001808311610fa257829003601f168201915b50505050509050919050565b60025481565b60005460a060020a900460ff1615610fe857600080fd5b60008263ffffffff16118015611009575060015463ffffffff908116908316105b151561101457600080fd5b63ffffffff821660009081526004602052604090205433600160a060020a03908116640100000000909204161461104a57600080fd5b80600160a060020a031633600160a060020a03161415151561106b57600080fd5b63ffffffff821660009081526004602052604090206001015460a060020a900460ff161561109857600080fd5b63ffffffff8216600090815260046020526040908190208054600160a060020a03808516640100000000810277ffffffffffffffffffffffffffffffffffffffff00000000199093169290921783556001909201805473ffffffffffffffffffffffffffffffffffffffff1916821790559133909116907f113bb8db9c3f402e36400928c81a0e95afa1d1cb577216ecf25bfd7c8b4641f79085905163ffffffff909116815260200160405180910390a35050565b6101f481565b6000805433600160a060020a0390811691161461116f57600080fd5b60005460a060020a900460ff161561118657600080fd5b6000805460a060020a60ff02191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b60005433600160a060020a039081169116146111e957600080fd5b60008363ffffffff1611801561120a575060015463ffffffff908116908416105b151561121557600080fd5b63ffffffff83811660009081526004602052604090819020600301805463ffffffff19168584161767ffffffff00000000191664010000000093851693909302929092179091557fbf0d4f0379cd6499682d4265aff934f746177c2aba702074cb79ead1ac2d6f63908490849084905163ffffffff938416815291831660208301529091166040808301919091526060909101905180910390a1505050565b60005433600160a060020a039081169116146112cf57600080fd5b60035460ff1615156001146112e357600080fd5b60008463ffffffff1611801561130c575060015463ffffffff6401000000009091048116908516105b151561131757600080fd5b63ffffffff84166000908152600560205260409081902060048101546003909101805490910190556101409051908101604052808563ffffffff16815260200186600160a060020a0316815260200186600160a060020a03168152602001600015158152602001600081526020018463ffffffff1681526020018363ffffffff1681526020018267ffffffffffffffff168152602001610100604051908101604090815260008083526020808401829052828401829052606084018290526080840182905260a0840182905260c0840182905260e0840182905292845263ffffffff808a1682526005845282822060060180548083166001908101841663ffffffff199283168117909355968601919091528554808316808801909316911617909455928352600490915290208151815463ffffffff191663ffffffff9190911617815560208201518154600160a060020a03919091166401000000000277ffffffffffffffffffffffffffffffffffffffff0000000019909116178155604082015160018201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055606082015160018201805491151560a060020a0260a060020a60ff02199092169190911790556080820151816002015560a082015160038201805463ffffffff191663ffffffff9290921691909117905560c08201518160030160046101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061010082015161158690600483019060086128f0565b50610120820151600591909101805463ffffffff191663ffffffff928316179055600154600160a060020a03881692507f3861ee089c613213365afad4598e619fccbb551c4ee9a808b6841533f5bdb5f0918791166000190160405163ffffffff9283168152911660208201526040908101905180910390a25050505050565b61160e612983565b63ffffffff8216600090815260046020526040908190209061018090519081016040908152825463ffffffff9081168352600384015467ffffffffffffffff68010000000000000000820416602085015260049094015460ff80821693850193909352610100808204841660608601526201000082048416608086015263010000008204841660a0860152640100000000808304851660c0870152650100000000008304851660e087015266010000000000008304851691860191909152670100000000000000909104909216610120840152838116610140840152920490911661016082015292915050565b60005460a060020a900460ff161561171257600080fd5b60008363ffffffff16118015611733575060015463ffffffff908116908416105b151561173e57600080fd5b63ffffffff831660009081526004602052604090205433600160a060020a03908116640100000000909204161461177457600080fd5b81600160a060020a031633600160a060020a03161415151561179557600080fd5b63ffffffff831660009081526004602052604090206001015460a060020a900460ff16156117c257600080fd5b63ffffffff8316600090815260046020526040908190208054600160a060020a03808616640100000000810277ffffffffffffffffffffffffffffffffffffffff0000000019909316929092179092559133909116907ff77685804f81b41b8882a2b139a0e44bcabacefd99f6702aff10c4d0fa64c15a90869085905163ffffffff909216825260ff1660208201526040908101905180910390a3505050565b6000805481908190819060a060020a900460ff161561188057600080fd5b60008563ffffffff161180156118a1575060015463ffffffff908116908616105b15156118ac57600080fd5b63ffffffff851660009081526004602052604090205433600160a060020a0390811664010000000090920416146118e257600080fd5b6118eb8561219f565b9350600160a060020a033016318490101561190557600080fd5b6000841161191257600080fd5b50505063ffffffff8281166000818152600460208181526040808420600580820180548354808b16895292865284882060060154989097529490935294861663ffffffff19851681179093559394929092169290916401000000009004600160a060020a0316906108fc86150290869051600060405180830381858888f1935050505015156119c75763ffffffff8581166000908152600460205260409020600501805463ffffffff19169184169190911790555b33600160a060020a03167f9f5185b6b824ad17fcc1c1d1098e828613c62aa8f27fba237cbda8248272c3578560405190815260200160405180910390a25050505050565b600054600160a060020a031681565b600154640100000000900463ffffffff166000190190565b63ffffffff1660009081526005602052604090206004015490565b60008163ffffffff16118015611a76575060015463ffffffff6401000000009091048116908216105b1515611a8157600080fd5b63ffffffff8116600090815260056020526040812060030154118015611aa75750600034115b1515611ab257600080fd5b63ffffffff8116600090815260056020526040902060030154341015611ad757600080fd5b63ffffffff8116600090815260056020526040902060060154640100000000900460ff161515611b0657600080fd5b63ffffffff8116600090815260056020526040902060030154341115611b635763ffffffff811660009081526005602090815260408083206003015433600160a060020a0316845260079092529091208054349290920390910190555b63ffffffff81166000908152600560205260409081902060048101546003909101805490910190556101409051908101604090815263ffffffff83168252600160a060020a033316602083018190529082015260006060820181905260808201819052600160a083015260c082015260e08101611be16000196127f6565b67ffffffffffffffff168152602001610100604051908101604090815260008083526020808401829052828401829052606084018290526080840182905260a0840182905260c0840182905260e0840182905292845263ffffffff80871682526005845282822060060180548083166001908101841663ffffffff199283168117909355968601919091528554808316808801909316911617909455928352600490915290208151815463ffffffff191663ffffffff9190911617815560208201518154600160a060020a03919091166401000000000277ffffffffffffffffffffffffffffffffffffffff0000000019909116178155604082015160018201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055606082015160018201805491151560a060020a0260a060020a60ff02199092169190911790556080820151816002015560a082015160038201805463ffffffff191663ffffffff9290921691909117905560c08201518160030160046101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610100820151611dc990600483019060086128f0565b506101208201516005918201805463ffffffff191663ffffffff928316179055838116600090815260209283526040808220600201548254600160a060020a03908116845260079095529181902080549092019091556001543390931693507f3861ee089c613213365afad4598e619fccbb551c4ee9a808b6841533f5bdb5f09285921660001901905163ffffffff9283168152911660208201526040908101905180910390a250565b611e7b6129ac565b63ffffffff8216600090815260056020526040908190209060c090519081016040908152600183015463ffffffff8082168452640100000000820481166020808601919091526801000000000000000083048216848601526c010000000000000000000000008304821660608601527001000000000000000000000000000000009092048116608085015286811660009081526005928390529290922001541660a0820152915050919050565b60005460a060020a900460ff1615611f3f57600080fd5b60008463ffffffff16118015611f60575060015463ffffffff908116908516105b1515611f6b57600080fd5b63ffffffff841660009081526004602052604090205433600160a060020a039081166401000000009092041614611fa157600080fd5b63ffffffff841660009081526004602052604090206001015460a060020a900460ff1615611fce57600080fd5b81831015611fdb57600080fd5b600083118015611fec575060008210155b1515611ff757600080fd5b6000811161200457600080fd5b6fffffffffffffffffffffffffffffffff8316831461202257600080fd5b6fffffffffffffffffffffffffffffffff8216821461204057600080fd5b60a0604051908101604090815263ffffffff8616825260208083018690528183018590524260608401526080830184905260025460009081526006909152208151815463ffffffff191663ffffffff91909116178155602082015181600101556040820151816002015560608201518160030155608082015160049182015563ffffffff861660009081526020919091526040908190206001818101805460a060020a60ff02191660a060020a17905560028054918201815590910155600160a060020a03331691507ff6b924f817282ac2c02fb828bdc9a6c812e6c87369d31c4b7dbd286ea158ffe290869086908690869042905163ffffffff909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a250505050565b600160a060020a031660009081526007602052604090205490565b600154640100000000900463ffffffff1681565b63ffffffff90811660009081526004602081815260408084208054861685526005928390529320600681015491909301549290910154918316908316039091160290565b60005433600160a060020a039081169116146121fe57600080fd5b610180604051908101604090815289825263ffffffff808a16602080850191909152898216838501528882166060850152878216608085015286821660a085015260c0840186905260e084018690526101008401859052426101208501526000610140850181905260016101608601819052805464010000000080820486168084019096160267ffffffff000000001990911617905591825260059052208151819080516122b09291602001906129c6565b50602082015160018201805463ffffffff191663ffffffff9290921691909117905560408201518160010160046101000a81548163ffffffff021916908363ffffffff16021790555060608201518160010160086101000a81548163ffffffff021916908363ffffffff160217905550608082015181600101600c6101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060c0820151816002015560e082015181600301556101008201518160040155610120820151816005015561014082015160068201805463ffffffff191663ffffffff929092169190911790556101608201518160060160046101000a81548160ff0219169083151502179055509050507fc5d8adcb4ab85f29b993fb052ff9e2e5e1f5820cf7f75947b87e2eaa63a4302960018060049054906101000a900463ffffffff160389898989898989894260405163ffffffff808c16825289811660408301528881166060830152878116608083015286811660a0830152851660c082015260e0810184905261010081018390526101208101829052610140602082018181529082018b818151815260200191508051906020019080838360005b838110156124a557808201518382015260200161248d565b50505050905090810190601f1680156124d25780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390a15050505050505050565b60005433600160a060020a0390811691161461250d57600080fd5b600160a060020a03811615612545576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60005460a060020a900460ff161561255f57600080fd5b60008263ffffffff16118015612580575060015463ffffffff908116908316105b151561258b57600080fd5b63ffffffff821660009081526004602052604090205433600160a060020a0390811664010000000090920416146125c157600080fd5b60008160ff16101580156125d8575060088160ff16105b15156125e357600080fd5b60ff811660008181526004602081905260409091206014929101906008811061260857fe5b60208082049092015460ff929091066101000a9004161061262857600080fd5b66b1a2bc2ec5000034101561263c57600080fd5b600854600160a060020a0316151561265357600080fd5b600854600160a060020a031663246c01cd838360006040516020015260405163ffffffff84811660e060020a02825292909216600483015260ff166024820152604401602060405180830381600087803b15156126af57600080fd5b6102c65a03f115156126c057600080fd5b50505060405180519050156127235763ffffffff821660009081526004602081905260409091200160ff8216600881106126f657fe5b6020808204929092018054929091066101000a60ff81810219841693829004811660010116029190911790555b600160a060020a0333811660008181526007602090815260408083208054340166b1a2bc2ec4ffff1901905582549094168252838220805466b1a2bc2ec5000001905563ffffffff8616825260049081905292902090917f0849a1972cdd214e9e1225a29e519fea77e053de86eacfb9256a8dd8f128997a91859185910160ff8216600881106127af57fe5b602091828204019190069054906101000a900460ff1660405163ffffffff909316835260ff9182166020840152166040808301919091526060909101905180910390a25050565b600080544340907501000000000000000000000000000000000000000000900467ffffffffffffffff1660405191825267ffffffffffffffff167801000000000000000000000000000000000000000000000000026020820152602801604051809103902042604051918252602082015260409081019051908190039020600080547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff93841681029190911791829055848316929104168115156128d757fe5b0692915050565b60206040519081016040526000815290565b6001830191839082156129735791602002820160005b8382111561294457835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612906565b80156129715782816101000a81549060ff0219169055600101602081600001049283019260010302612944565b505b5061297f929150612a40565b5090565b610180604051908101604052600c815b6000815260001990910190602001816129935790505090565b60c060405190810160405260008152600560208201612993565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a0757805160ff1916838001178555612a34565b82800160010185558215612a34579182015b82811115612a34578251825591602001919060010190612a19565b5061297f929150612a5e565b6108da91905b8082111561297f57805460ff19168155600101612a46565b6108da91905b8082111561297f5760008155600101612a645600a165627a7a72305820cbff011e3862eb38b2c63d0ff96a43d23ebbe6ea4b562bb7702c7fdf359f973a0029

Swarm Source

bzzr://cbff011e3862eb38b2c63d0ff96a43d23ebbe6ea4b562bb7702c7fdf359f973a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.