ETH Price: $1,923.05 (+0.11%)
 

Overview

ETH Balance

0.002 ETH

Eth Value

$3.85 (@ $1,923.05/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Confirm Board Sc...60647062018-07-31 18:53:332769 days ago1533063213IN
0x688909b9...f8e44d598
0 ETH0.000101011
Confirm Board Sc...60647062018-07-31 18:53:332769 days ago1533063213IN
0x688909b9...f8e44d598
0 ETH0.000099141
Confirm Board Sc...60647062018-07-31 18:53:332769 days ago1533063213IN
0x688909b9...f8e44d598
0 ETH0.000093361
Confirm Board Sc...60647062018-07-31 18:53:332769 days ago1533063213IN
0x688909b9...f8e44d598
0 ETH0.00008541
Confirm Board Sc...60647062018-07-31 18:53:332769 days ago1533063213IN
0x688909b9...f8e44d598
0 ETH0.000083531
Confirm Board Sc...60646982018-07-31 18:52:162769 days ago1533063136IN
0x688909b9...f8e44d598
0 ETH0.000081861
Confirm Board Sc...60646802018-07-31 18:47:492769 days ago1533062869IN
0x688909b9...f8e44d598
0 ETH0.000079741
Confirm Board Sc...60646802018-07-31 18:47:492769 days ago1533062869IN
0x688909b9...f8e44d598
0 ETH0.000078071
Confirm Board Sc...60646802018-07-31 18:47:492769 days ago1533062869IN
0x688909b9...f8e44d598
0 ETH0.000076151
Confirm Board Sc...60646742018-07-31 18:46:142769 days ago1533062774IN
0x688909b9...f8e44d598
0 ETH0.000073961
Confirm Board Sc...60646502018-07-31 18:41:172769 days ago1533062477IN
0x688909b9...f8e44d598
0 ETH0.000072161
Confirm Board Sc...60646482018-07-31 18:41:012769 days ago1533062461IN
0x688909b9...f8e44d598
0 ETH0.00007031
Confirm Board Sc...60646452018-07-31 18:40:432769 days ago1533062443IN
0x688909b9...f8e44d598
0 ETH0.000068311
Confirm Board Sc...60646432018-07-31 18:40:202769 days ago1533062420IN
0x688909b9...f8e44d598
0 ETH0.000066261
Migration Set Pl...60646362018-07-31 18:38:212769 days ago1533062301IN
0x688909b9...f8e44d598
0 ETH0.000052971
Add Board Score60646112018-07-31 18:32:282769 days ago1533061948IN
0x688909b9...f8e44d598
0 ETH0.000671088
Add Board Score60646102018-07-31 18:32:152769 days ago1533061935IN
0x688909b9...f8e44d598
0 ETH0.000656188
Add Board Score60646092018-07-31 18:31:572769 days ago1533061917IN
0x688909b9...f8e44d598
0 ETH0.000609958
Add Board Score60646072018-07-31 18:31:052769 days ago1533061865IN
0x688909b9...f8e44d598
0 ETH0.00057768
Add Board Score60646072018-07-31 18:31:052769 days ago1533061865IN
0x688909b9...f8e44d598
0 ETH0.000546278
Add Board Score60646052018-07-31 18:30:512769 days ago1533061851IN
0x688909b9...f8e44d598
0 ETH0.000531378
Add Board Score60646032018-07-31 18:29:462769 days ago1533061786IN
0x688909b9...f8e44d598
0 ETH0.000562198
Add Board Score60646032018-07-31 18:29:462769 days ago1533061786IN
0x688909b9...f8e44d598
0 ETH0.000501088
Add Board Score60646022018-07-31 18:29:392769 days ago1533061779IN
0x688909b9...f8e44d598
0 ETH0.000518028
Add Board Score60646002018-07-31 18:29:012769 days ago1533061741IN
0x688909b9...f8e44d598
0 ETH0.000487728
View all transactions

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer59886982018-07-18 22:06:082781 days ago1531951568
0x688909b9...f8e44d598
0.0005 ETH
Transfer59886982018-07-18 22:06:082781 days ago1531951568
0x688909b9...f8e44d598
0.0005 ETH
Transfer59405342018-07-10 19:05:372790 days ago1531249537
0x688909b9...f8e44d598
0.0005 ETH
Transfer59405342018-07-10 19:05:372790 days ago1531249537
0x688909b9...f8e44d598
0.0005 ETH
Transfer59296582018-07-08 22:15:082791 days ago1531088108
0x688909b9...f8e44d598
0.0005 ETH
Transfer59296582018-07-08 22:15:082791 days ago1531088108
0x688909b9...f8e44d598
0.0005 ETH
Transfer59294772018-07-08 21:30:582791 days ago1531085458
0x688909b9...f8e44d598
0.0005 ETH
Transfer59294772018-07-08 21:30:582791 days ago1531085458
0x688909b9...f8e44d598
0.0005 ETH
Loading...
Loading
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:
BlockScores

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-07-08
*/

/// @title Store lederboards in the Blockchain
/// @author Marcel Scherello blockscores@scherello.de
/// @notice Create a custom leaderboard and start counting the scores
/// @dev All function calls are currently implement without side effects
/// @dev v1.1.0
contract BlockScores {
    struct Player {
        bytes32  playerName;
        address playerAddress;
        uint  score;
        uint  score_unconfirmed;
        uint   isActive;
    }
    struct Board {
        bytes32  boardName;
        string  boardDescription;
        uint   numPlayers;
        address boardOwner;
        mapping (uint => Player) players;
    }
    mapping (bytes32 => Board) boards;
    uint public numBoards;
    address owner = msg.sender;

    uint public balance;
    uint public boardCost = 1000000000000000;
    uint public playerCost = 1000000000000000;

    modifier isOwner {
        assert(owner == msg.sender);
        _;
    }

    /**
    Funding Functions
    */

    /// @notice withdraw all funds to contract owner
    /// @return true
    function withdraw() isOwner public returns(bool) {
        uint _amount = address(this).balance;
        emit Withdrawal(owner, _amount);
        owner.transfer(_amount);
        balance -= _amount;
        return true;
    }

    /// @notice change the costs for using the contract
    /// @param costBoard costs for a new board
    /// @param costPlayer costs for a new player
    /// @return true
    function setCosts (uint costBoard, uint costPlayer) isOwner public returns(bool) {
        boardCost = costBoard;
        playerCost = costPlayer;
        return true;
    }

    /// @notice split the revenue of a new player between boardOwner and contract owner
    /// @param boardOwner of the leaderboard
    /// @param _amount amount to be split
    /// @return true
    function split(address boardOwner, uint _amount) internal returns(bool) {
        emit Withdrawal(owner, _amount/2);
        owner.transfer(_amount/2);
        //emit Withdrawal(boardOwner, _amount/2);
        boardOwner.transfer(_amount/2);
        return true;
    }

    /// @notice Event for Withdrawal
    event Withdrawal(address indexed _from, uint _value);

    /**
    Board Functions
    */

    /// @notice Add a new leaderboard. Board hash will be created by name and creator
    /// @notice a funding is required to create a new leaderboard
    /// @param name The name of the leaderboard
    /// @param boardDescription A subtitle for the leaderboard
    /// @return The hash of the newly created leaderboard
    function addNewBoard(bytes32 name, string boardDescription) public payable returns(bytes32 boardHash){
        require(msg.value >= boardCost);
        balance += msg.value;
        boardHash = keccak256(abi.encodePacked(name, msg.sender));
        numBoards++;
        boards[boardHash] = Board(name, boardDescription, 0, msg.sender);
        emit newBoardCreated(boardHash);
    }

    /// @notice Simulate the creation of a leaderboard hash
    /// @param name The name of the leaderboard
    /// @param admin The address of the admin address
    /// @return The possible hash of the leaderboard
    function createBoardHash(bytes32 name, address admin) pure public returns (bytes32){
        return keccak256(abi.encodePacked(name, admin));
    }

    /// @notice Get the metadata of a leaderboard
    /// @param boardHash The hash of the leaderboard
    /// @return Leaderboard name, description and number of players
    function getBoardByHash(bytes32 boardHash) constant public returns(bytes32,string,uint){
        return (boards[boardHash].boardName, boards[boardHash].boardDescription, boards[boardHash].numPlayers);
    }

    /// @notice Overwrite leaderboard name and desctiption as owner only
    /// @param boardHash The hash of the leaderboard to be modified
    /// @param name The new name of the leaderboard
    /// @param boardDescription The new subtitle for the leaderboard
    /// @return true
    function changeBoardMetadata(bytes32 boardHash, bytes32 name, string boardDescription) public returns(bool) {
        require(boards[boardHash].boardOwner == msg.sender);
        boards[boardHash].boardName = name;
        boards[boardHash].boardDescription = boardDescription;
    }

    /// @notice event for newly created leaderboard
    event newBoardCreated(bytes32 boardHash);


    /**
    Player Functions
    */

    /// @notice Add a new player to an existing leaderboard
    /// @param boardHash The hash of the leaderboard
    /// @param playerName The name of the player
    /// @return Player ID
    function addPlayerToBoard(bytes32 boardHash, bytes32 playerName) public payable returns (bool) {
        require(msg.value >= playerCost);
        Board storage g = boards[boardHash];
        split (g.boardOwner, msg.value);
        uint newPlayerID = g.numPlayers++;
        g.players[newPlayerID] = Player(playerName, msg.sender,0,0,1);
        return true;
    }

    /// @notice Get player data by leaderboard hash and player id/index
    /// @param boardHash The hash of the leaderboard
    /// @param playerID Index number of the player
    /// @return Player name, confirmed score, unconfirmed score
    function getPlayerByBoard(bytes32 boardHash, uint8 playerID) constant public returns (bytes32, uint, uint){
        Player storage p = boards[boardHash].players[playerID];
        require(p.isActive == 1);
        return (p.playerName, p.score, p.score_unconfirmed);
    }

    /// @notice The leaderboard owner can remove a player
    /// @param boardHash The hash of the leaderboard
    /// @param playerName The name of the player to be removed
    /// @return true/false
    function removePlayerFromBoard(bytes32 boardHash, bytes32 playerName) public returns (bool){
        Board storage g = boards[boardHash];
        require(g.boardOwner == msg.sender);
        uint8 playerID = getPlayerId (boardHash, playerName, 0);
        require(playerID < 255 );
        g.players[playerID].isActive = 0;
        return true;
    }

    /// @notice Get the player id either by player Name or address
    /// @param boardHash The hash of the leaderboard
    /// @param playerName The name of the player
    /// @param playerAddress The player address
    /// @return ID or 999 in case of false
    function getPlayerId (bytes32 boardHash, bytes32 playerName, address playerAddress) constant internal returns (uint8) {
        Board storage g = boards[boardHash];
        for (uint8 i = 0; i <= g.numPlayers; i++) {
            if ((keccak256(abi.encodePacked(g.players[i].playerName)) == keccak256(abi.encodePacked(playerName)) || playerAddress == g.players[i].playerAddress) && g.players[i].isActive == 1) {
                return i;
                break;
            }
        }
        return 255;
    }

    /**
    Score Functions
    */

    /// @notice Add a unconfirmed score to leaderboard/player. Overwrites an existing unconfirmed score
    /// @param boardHash The hash of the leaderboard
    /// @param playerName The name of the player
    /// @param score Integer
    /// @return true/false
    function addBoardScore(bytes32 boardHash, bytes32 playerName, uint score) public returns (bool){
        uint8 playerID = getPlayerId (boardHash, playerName, 0);
        require(playerID < 255 );
        boards[boardHash].players[playerID].score_unconfirmed = score;
        return true;
    }

    /// @notice Confirm an unconfirmed score to leaderboard/player. Adds unconfirmed to existing score. Player can not confirm his own score
    /// @param boardHash The hash of the leaderboard
    /// @param playerName The name of the player who's score should be confirmed
    /// @return true/false
    function confirmBoardScore(bytes32 boardHash, bytes32 playerName) public returns (bool){
        uint8 playerID = getPlayerId (boardHash, playerName, 0);
        uint8 confirmerID = getPlayerId (boardHash, "", msg.sender);
        require(playerID < 255); // player needs to be active
        require(confirmerID < 255); // confirmer needs to be active
        require(boards[boardHash].players[playerID].playerAddress != msg.sender); //confirm only other players
        boards[boardHash].players[playerID].score += boards[boardHash].players[playerID].score_unconfirmed;
        boards[boardHash].players[playerID].score_unconfirmed = 0;
        return true;
    }

    /**
    Migration Functions
    */
    /// @notice Read board metadata for migration as contract owner only
    /// @param boardHash The hash of the leaderboard
    /// @return Bord metadata
    function migrationGetBoard(bytes32 boardHash) constant isOwner public returns(bytes32,string,uint,address) {
        return (boards[boardHash].boardName, boards[boardHash].boardDescription, boards[boardHash].numPlayers, boards[boardHash].boardOwner);
    }

    /// @notice Write board metadata for migration as contract owner only
    /// @param boardHash The hash of the leaderboard to be modified
    /// @param name The new name of the leaderboard
    /// @param boardDescription The new subtitle for the leaderboard
    /// @param boardOwner The address for the boardowner
    /// @return true
    function migrationSetBoard(bytes32 boardHash, bytes32 name, string boardDescription, uint8 numPlayers, address boardOwner) isOwner public returns(bool) {
        boards[boardHash].boardName = name;
        boards[boardHash].boardDescription = boardDescription;
        boards[boardHash].numPlayers = numPlayers;
        boards[boardHash].boardOwner = boardOwner;
        return true;
    }

    /// @notice Read player metadata for migration as contract owner
    /// @param boardHash The hash of the leaderboard
    /// @param playerID Index number of the player
    /// @return Player metadata
    function migrationGetPlayer(bytes32 boardHash, uint8 playerID) constant isOwner public returns (uint, bytes32, address, uint, uint, uint){
        Player storage p = boards[boardHash].players[playerID];
        return (playerID, p.playerName, p.playerAddress, p.score, p.score_unconfirmed, p.isActive);
    }

    /// @notice Write player metadata for migration as contract owner only
    /// @param boardHash The hash of the leaderboard
    /// @param playerID Player ID
    /// @param playerName Player name
    /// @param playerAddress Player address
    /// @param score Player score
    /// @param score_unconfirmed Player unconfirmed score
    /// @param isActive Player isActive
    /// @return true
    function migrationSetPlayer(bytes32 boardHash, uint playerID, bytes32 playerName, address playerAddress, uint score, uint score_unconfirmed, uint isActive) isOwner public returns (bool) {
        Board storage g = boards[boardHash];
        g.players[playerID] = Player(playerName, playerAddress, score, score_unconfirmed, isActive);
        return true;
    }

}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"playerID","type":"uint8"}],"name":"migrationGetPlayer","outputs":[{"name":"","type":"uint256"},{"name":"","type":"bytes32"},{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"boardCost","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"boardDescription","type":"string"}],"name":"changeBoardMetadata","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"playerName","type":"bytes32"}],"name":"removePlayerFromBoard","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"},{"name":"boardDescription","type":"string"}],"name":"addNewBoard","outputs":[{"name":"boardHash","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"playerName","type":"bytes32"},{"name":"score","type":"uint256"}],"name":"addBoardScore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"playerID","type":"uint8"}],"name":"getPlayerByBoard","outputs":[{"name":"","type":"bytes32"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"playerCost","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"boardHash","type":"bytes32"}],"name":"getBoardByHash","outputs":[{"name":"","type":"bytes32"},{"name":"","type":"string"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"boardHash","type":"bytes32"}],"name":"migrationGetBoard","outputs":[{"name":"","type":"bytes32"},{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numBoards","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"playerName","type":"bytes32"}],"name":"confirmBoardScore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"},{"name":"admin","type":"address"}],"name":"createBoardHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"boardDescription","type":"string"},{"name":"numPlayers","type":"uint8"},{"name":"boardOwner","type":"address"}],"name":"migrationSetBoard","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"costBoard","type":"uint256"},{"name":"costPlayer","type":"uint256"}],"name":"setCosts","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"playerID","type":"uint256"},{"name":"playerName","type":"bytes32"},{"name":"playerAddress","type":"address"},{"name":"score","type":"uint256"},{"name":"score_unconfirmed","type":"uint256"},{"name":"isActive","type":"uint256"}],"name":"migrationSetPlayer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"boardHash","type":"bytes32"},{"name":"playerName","type":"bytes32"}],"name":"addPlayerToBoard","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Withdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"boardHash","type":"bytes32"}],"name":"newBoardCreated","type":"event"}]

608060405233600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c6800060045566038d7ea4c6800060055534801561006757600080fd5b50611e8e806100776000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063075010731461010c5780632be4f3f5146101b557806331978b99146101e0578063326448291461027d5780633ccfd60b146102d457806351d24a3314610303578063571ec8d9146103895780636a914911146103ea578063718d763a1461045257806379e12f7e1461047d578063897d55cd1461053d57806394bf8862146106305780639c8bb5d01461065b578063a15bb363146106b2578063b69ef8a81461071f578063c6393e621461074a578063db58990714610814578063e07a267114610863578063e349c31314610902575b600080fd5b34801561011857600080fd5b506101486004803603810190808035600019169060200190929190803560ff16906020019092919050505061094c565b6040518087815260200186600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001828152602001965050505050505060405180910390f35b3480156101c157600080fd5b506101ca610a3a565b6040518082815260200191505060405180910390f35b3480156101ec57600080fd5b5061026360048036038101908080356000191690602001909291908035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610a40565b604051808215151515815260200191505060405180910390f35b34801561028957600080fd5b506102ba60048036038101908080356000191690602001909291908035600019169060200190929190505050610b18565b604051808215151515815260200191505060405180910390f35b3480156102e057600080fd5b506102e9610be4565b604051808215151515815260200191505060405180910390f35b61036b6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d4b565b60405180826000191660001916815260200191505060405180910390f35b34801561039557600080fd5b506103d06004803603810190808035600019169060200190929190803560001916906020019092919080359060200190929190505050610f6c565b604051808215151515815260200191505060405180910390f35b3480156103f657600080fd5b506104266004803603810190808035600019169060200190929190803560ff169060200190929190505050610fd4565b604051808460001916600019168152602001838152602001828152602001935050505060405180910390f35b34801561045e57600080fd5b5061046761103d565b6040518082815260200191505060405180910390f35b34801561048957600080fd5b506104ac6004803603810190808035600019169060200190929190505050611043565b60405180846000191660001916815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156105005780820151818401526020810190506104e5565b50505050905090810190601f16801561052d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561054957600080fd5b5061056c600480360381019080803560001916906020019092919050505061114b565b604051808560001916600019168152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156105f25780820151818401526020810190506105d7565b50505050905090810190601f16801561061f5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561063c57600080fd5b506106456112ed565b6040518082815260200191505060405180910390f35b34801561066757600080fd5b50610698600480360381019080803560001916906020019092919080356000191690602001909291905050506112f3565b604051808215151515815260200191505060405180910390f35b3480156106be57600080fd5b506107016004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611483565b60405180826000191660001916815260200191505060405180910390f35b34801561072b57600080fd5b5061073461155a565b6040518082815260200191505060405180910390f35b34801561075657600080fd5b506107fa60048036038101908080356000191690602001909291908035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611560565b604051808215151515815260200191505060405180910390f35b34801561082057600080fd5b5061084960048036038101908080359060200190929190803590602001909291905050506116a1565b604051808215151515815260200191505060405180910390f35b34801561086f57600080fd5b506108e86004803603810190808035600019169060200190929190803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611714565b604051808215151515815260200191505060405180910390f35b6109326004803603810190808035600019169060200190929190803560001916906020019092919050505061186b565b604051808215151515815260200191505060405180910390f35b60008060008060008060003373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156109b057fe5b6000808a6000191660001916815260200190815260200160002060040160008960ff16815260200190815260200160002090508781600001548260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360020154846003015485600401548560ff169550965096509650965096509650509295509295509295565b60045481565b60003373ffffffffffffffffffffffffffffffffffffffff16600080866000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ab957600080fd5b82600080866000191660001916815260200190815260200160002060000181600019169055508160008086600019166000191681526020019081526020016000206001019080519060200190610b10929190611d3d565b509392505050565b6000806000806000866000191660001916815260200190815260200160002091503373ffffffffffffffffffffffffffffffffffffffff168260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610b9757600080fd5b610ba3858560006119bf565b905060ff8160ff16101515610bb757600080fd5b60008260040160008360ff1681526020019081526020016000206004018190555060019250505092915050565b6000803373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4057fe5b3073ffffffffffffffffffffffffffffffffffffffff16319050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d32573d6000803e3d6000fd5b5080600360008282540392505081905550600191505090565b60006004543410151515610d5e57600080fd5b3460036000828254019250508190555082336040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040516020818303038152906040526040518082805190602001908083835b602083101515610e0e5780518252602082019150602081019050602083039250610de9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060016000815480929190600101919050555060806040519081016040528084600019168152602001838152602001600081526020013373ffffffffffffffffffffffffffffffffffffffff168152506000808360001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019080519060200190610ed2929190611dbd565b506040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050507fa99c026b61d000d543f01f7b0dfcbece6a97c5b83ba3a21a7567046a19896d878160405180826000191660001916815260200191505060405180910390a192915050565b600080610f7b858560006119bf565b905060ff8160ff16101515610f8f57600080fd5b82600080876000191660001916815260200190815260200160002060040160008360ff1681526020019081526020016000206003018190555060019150509392505050565b600080600080600080876000191660001916815260200190815260200160002060040160008660ff16815260200190815260200160002090506001816004015414151561102057600080fd5b806000015481600201548260030154935093509350509250925092565b60055481565b6000606060008060008560001916600019168152602001908152602001600020600001546000808660001916600019168152602001908152602001600020600101600080876000191660001916815260200190815260200160002060020154818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111375780601f1061110c57610100808354040283529160200191611137565b820191906000526020600020905b81548152906001019060200180831161111a57829003601f168201915b505050505091509250925092509193909250565b600060606000803373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111ab57fe5b6000808660001916600019168152602001908152602001600020600001546000808760001916600019168152602001908152602001600020600101600080886000191660001916815260200190815260200160002060020154600080896000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112d75780601f106112ac576101008083540402835291602001916112d7565b820191906000526020600020905b8154815290600101906020018083116112ba57829003601f168201915b5050505050925093509350935093509193509193565b60015481565b6000806000611304858560006119bf565b9150611312856000336119bf565b905060ff8260ff1610151561132657600080fd5b60ff8160ff1610151561133857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600080876000191660001916815260200190815260200160002060040160008460ff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156113c757600080fd5b600080866000191660001916815260200190815260200160002060040160008360ff16815260200190815260200160002060030154600080876000191660001916815260200190815260200160002060040160008460ff168152602001908152602001600020600201600082825401925050819055506000806000876000191660001916815260200190815260200160002060040160008460ff1681526020019081526020016000206003018190555060019250505092915050565b600082826040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156115255780518252602082019150602081019050602083039250611500565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60035481565b60003373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156115bb57fe5b84600080886000191660001916815260200190815260200160002060000181600019169055508360008088600019166000191681526020019081526020016000206001019080519060200190611612929190611d3d565b508260ff1660008088600019166000191681526020019081526020016000206002018190555081600080886000191660001916815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905095945050505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116fc57fe5b82600481905550816005819055506001905092915050565b6000803373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561177057fe5b6000808a60001916600019168152602001908152602001600020905060a060405190810160405280886000191681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001848152508160040160008a81526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030155608082015181600401559050506001915050979650505050505050565b6000806000600554341015151561188157600080fd5b600080866000191660001916815260200190815260200160002091506118cb8260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1634611bed565b5081600201600081548092919060010191905055905060a060405190810160405280856000191681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160018152508260040160008381526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015590505060019250505092915050565b600080600080600087600019166000191681526020019081526020016000209150600090505b81600201548160ff16111515611bdf57846040516020018082600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611a525780518252602082019150602081019050602083039250611a2d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019168260040160008360ff168152602001908152602001600020600001546040516020018082600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611afb5780518252602082019150602081019050602083039250611ad6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161480611b9e57508160040160008260ff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bc5575060018260040160008360ff16815260200190815260200160002060040154145b15611bd257809250611be4565b80806001019150506119e5565b60ff92505b50509392505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65600284811515611c5557fe5b046040518082815260200191505060405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600284811515611cb357fe5b049081150290604051600060405180830381858888f19350505050158015611cdf573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff166108fc600284811515611d0657fe5b049081150290604051600060405180830381858888f19350505050158015611d32573d6000803e3d6000fd5b506001905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611d7e57805160ff1916838001178555611dac565b82800160010185558215611dac579182015b82811115611dab578251825591602001919060010190611d90565b5b509050611db99190611e3d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611dfe57805160ff1916838001178555611e2c565b82800160010185558215611e2c579182015b82811115611e2b578251825591602001919060010190611e10565b5b509050611e399190611e3d565b5090565b611e5f91905b80821115611e5b576000816000905550600101611e43565b5090565b905600a165627a7a7230582099d2c8f31081b549e6351e62483c9160a65104183c036e0e994ebad0687714730029

Deployed Bytecode

0x608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063075010731461010c5780632be4f3f5146101b557806331978b99146101e0578063326448291461027d5780633ccfd60b146102d457806351d24a3314610303578063571ec8d9146103895780636a914911146103ea578063718d763a1461045257806379e12f7e1461047d578063897d55cd1461053d57806394bf8862146106305780639c8bb5d01461065b578063a15bb363146106b2578063b69ef8a81461071f578063c6393e621461074a578063db58990714610814578063e07a267114610863578063e349c31314610902575b600080fd5b34801561011857600080fd5b506101486004803603810190808035600019169060200190929190803560ff16906020019092919050505061094c565b6040518087815260200186600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001828152602001965050505050505060405180910390f35b3480156101c157600080fd5b506101ca610a3a565b6040518082815260200191505060405180910390f35b3480156101ec57600080fd5b5061026360048036038101908080356000191690602001909291908035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610a40565b604051808215151515815260200191505060405180910390f35b34801561028957600080fd5b506102ba60048036038101908080356000191690602001909291908035600019169060200190929190505050610b18565b604051808215151515815260200191505060405180910390f35b3480156102e057600080fd5b506102e9610be4565b604051808215151515815260200191505060405180910390f35b61036b6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d4b565b60405180826000191660001916815260200191505060405180910390f35b34801561039557600080fd5b506103d06004803603810190808035600019169060200190929190803560001916906020019092919080359060200190929190505050610f6c565b604051808215151515815260200191505060405180910390f35b3480156103f657600080fd5b506104266004803603810190808035600019169060200190929190803560ff169060200190929190505050610fd4565b604051808460001916600019168152602001838152602001828152602001935050505060405180910390f35b34801561045e57600080fd5b5061046761103d565b6040518082815260200191505060405180910390f35b34801561048957600080fd5b506104ac6004803603810190808035600019169060200190929190505050611043565b60405180846000191660001916815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156105005780820151818401526020810190506104e5565b50505050905090810190601f16801561052d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561054957600080fd5b5061056c600480360381019080803560001916906020019092919050505061114b565b604051808560001916600019168152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156105f25780820151818401526020810190506105d7565b50505050905090810190601f16801561061f5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561063c57600080fd5b506106456112ed565b6040518082815260200191505060405180910390f35b34801561066757600080fd5b50610698600480360381019080803560001916906020019092919080356000191690602001909291905050506112f3565b604051808215151515815260200191505060405180910390f35b3480156106be57600080fd5b506107016004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611483565b60405180826000191660001916815260200191505060405180910390f35b34801561072b57600080fd5b5061073461155a565b6040518082815260200191505060405180910390f35b34801561075657600080fd5b506107fa60048036038101908080356000191690602001909291908035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611560565b604051808215151515815260200191505060405180910390f35b34801561082057600080fd5b5061084960048036038101908080359060200190929190803590602001909291905050506116a1565b604051808215151515815260200191505060405180910390f35b34801561086f57600080fd5b506108e86004803603810190808035600019169060200190929190803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611714565b604051808215151515815260200191505060405180910390f35b6109326004803603810190808035600019169060200190929190803560001916906020019092919050505061186b565b604051808215151515815260200191505060405180910390f35b60008060008060008060003373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156109b057fe5b6000808a6000191660001916815260200190815260200160002060040160008960ff16815260200190815260200160002090508781600001548260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360020154846003015485600401548560ff169550965096509650965096509650509295509295509295565b60045481565b60003373ffffffffffffffffffffffffffffffffffffffff16600080866000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ab957600080fd5b82600080866000191660001916815260200190815260200160002060000181600019169055508160008086600019166000191681526020019081526020016000206001019080519060200190610b10929190611d3d565b509392505050565b6000806000806000866000191660001916815260200190815260200160002091503373ffffffffffffffffffffffffffffffffffffffff168260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610b9757600080fd5b610ba3858560006119bf565b905060ff8160ff16101515610bb757600080fd5b60008260040160008360ff1681526020019081526020016000206004018190555060019250505092915050565b6000803373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4057fe5b3073ffffffffffffffffffffffffffffffffffffffff16319050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d32573d6000803e3d6000fd5b5080600360008282540392505081905550600191505090565b60006004543410151515610d5e57600080fd5b3460036000828254019250508190555082336040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040516020818303038152906040526040518082805190602001908083835b602083101515610e0e5780518252602082019150602081019050602083039250610de9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060016000815480929190600101919050555060806040519081016040528084600019168152602001838152602001600081526020013373ffffffffffffffffffffffffffffffffffffffff168152506000808360001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019080519060200190610ed2929190611dbd565b506040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050507fa99c026b61d000d543f01f7b0dfcbece6a97c5b83ba3a21a7567046a19896d878160405180826000191660001916815260200191505060405180910390a192915050565b600080610f7b858560006119bf565b905060ff8160ff16101515610f8f57600080fd5b82600080876000191660001916815260200190815260200160002060040160008360ff1681526020019081526020016000206003018190555060019150509392505050565b600080600080600080876000191660001916815260200190815260200160002060040160008660ff16815260200190815260200160002090506001816004015414151561102057600080fd5b806000015481600201548260030154935093509350509250925092565b60055481565b6000606060008060008560001916600019168152602001908152602001600020600001546000808660001916600019168152602001908152602001600020600101600080876000191660001916815260200190815260200160002060020154818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111375780601f1061110c57610100808354040283529160200191611137565b820191906000526020600020905b81548152906001019060200180831161111a57829003601f168201915b505050505091509250925092509193909250565b600060606000803373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111ab57fe5b6000808660001916600019168152602001908152602001600020600001546000808760001916600019168152602001908152602001600020600101600080886000191660001916815260200190815260200160002060020154600080896000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112d75780601f106112ac576101008083540402835291602001916112d7565b820191906000526020600020905b8154815290600101906020018083116112ba57829003601f168201915b5050505050925093509350935093509193509193565b60015481565b6000806000611304858560006119bf565b9150611312856000336119bf565b905060ff8260ff1610151561132657600080fd5b60ff8160ff1610151561133857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600080876000191660001916815260200190815260200160002060040160008460ff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156113c757600080fd5b600080866000191660001916815260200190815260200160002060040160008360ff16815260200190815260200160002060030154600080876000191660001916815260200190815260200160002060040160008460ff168152602001908152602001600020600201600082825401925050819055506000806000876000191660001916815260200190815260200160002060040160008460ff1681526020019081526020016000206003018190555060019250505092915050565b600082826040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156115255780518252602082019150602081019050602083039250611500565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60035481565b60003373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156115bb57fe5b84600080886000191660001916815260200190815260200160002060000181600019169055508360008088600019166000191681526020019081526020016000206001019080519060200190611612929190611d3d565b508260ff1660008088600019166000191681526020019081526020016000206002018190555081600080886000191660001916815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905095945050505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116fc57fe5b82600481905550816005819055506001905092915050565b6000803373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561177057fe5b6000808a60001916600019168152602001908152602001600020905060a060405190810160405280886000191681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001848152508160040160008a81526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030155608082015181600401559050506001915050979650505050505050565b6000806000600554341015151561188157600080fd5b600080866000191660001916815260200190815260200160002091506118cb8260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1634611bed565b5081600201600081548092919060010191905055905060a060405190810160405280856000191681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160018152508260040160008381526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015590505060019250505092915050565b600080600080600087600019166000191681526020019081526020016000209150600090505b81600201548160ff16111515611bdf57846040516020018082600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611a525780518252602082019150602081019050602083039250611a2d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019168260040160008360ff168152602001908152602001600020600001546040516020018082600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515611afb5780518252602082019150602081019050602083039250611ad6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161480611b9e57508160040160008260ff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bc5575060018260040160008360ff16815260200190815260200160002060040154145b15611bd257809250611be4565b80806001019150506119e5565b60ff92505b50509392505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65600284811515611c5557fe5b046040518082815260200191505060405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600284811515611cb357fe5b049081150290604051600060405180830381858888f19350505050158015611cdf573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff166108fc600284811515611d0657fe5b049081150290604051600060405180830381858888f19350505050158015611d32573d6000803e3d6000fd5b506001905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611d7e57805160ff1916838001178555611dac565b82800160010185558215611dac579182015b82811115611dab578251825591602001919060010190611d90565b5b509050611db99190611e3d565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611dfe57805160ff1916838001178555611e2c565b82800160010185558215611e2c579182015b82811115611e2b578251825591602001919060010190611e10565b5b509050611e399190611e3d565b5090565b611e5f91905b80821115611e5b576000816000905550600101611e43565b5090565b905600a165627a7a7230582099d2c8f31081b549e6351e62483c9160a65104183c036e0e994ebad0687714730029

Swarm Source

bzzr://99d2c8f31081b549e6351e62483c9160a65104183c036e0e994ebad068771473

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.