Base Sepolia Testnet

Contract

0x9E63ED2AcBe3E76E77774F74DB51E3C9ff383EfA
Source Code Source Code

Overview

ETH Balance

0 ETH

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount
Set Execution Ad...160708052024-10-02 22:58:18499 days ago1727909898IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000330.00097029
Set Min Concurre...160702142024-10-02 22:38:36499 days ago1727908716IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000320.00097027
Set Execution Ad...160697462024-10-02 22:23:00499 days ago1727907780IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000250.00097032
Set Execution Ad...160696682024-10-02 22:20:24499 days ago1727907624IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000290.00097031
Set Execution Ad...160694692024-10-02 22:13:46499 days ago1727907226IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000330.00097028
Set Min Concurre...160694552024-10-02 22:13:18499 days ago1727907198IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000340.00097028
Perform Games160694132024-10-02 22:11:54499 days ago1727907114IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000780.00097028
Set Execution Ad...160693692024-10-02 22:10:26499 days ago1727907026IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000340.00097028
Set Execution Ad...160692442024-10-02 22:06:16499 days ago1727906776IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000280.00097028
Set Execution Ad...160672762024-10-02 21:00:40499 days ago1727902840IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000260.00097029
Set Execution Ad...160664312024-10-02 20:32:30499 days ago1727901150IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000260.00097027
Perform Games160649632024-10-02 19:43:34499 days ago1727898214IN
0x9E63ED2A...9ff383EfA
0 ETH0.000082251.50000028
Set Execution Ad...160648242024-10-02 19:38:56499 days ago1727897936IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000410.00097029
Set Execution Ad...160644232024-10-02 19:25:34499 days ago1727897134IN
0x9E63ED2A...9ff383EfA
0 ETH0.00000030.0009703
Set Execution Ad...160632162024-10-02 18:45:20499 days ago1727894720IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000320.00076442
Set Execution Ad...160613272024-10-02 17:42:22499 days ago1727890942IN
0x9E63ED2A...9ff383EfA
0 ETH0.000000450.00097026
Set Execution Ad...160588522024-10-02 16:19:52499 days ago1727885992IN
0x9E63ED2A...9ff383EfA
0 ETH0.00000050.00097027
Set Execution Ad...160570552024-10-02 15:19:58499 days ago1727882398IN
0x9E63ED2A...9ff383EfA
0 ETH0.00000040.00097026
Perform Games160219732024-10-01 19:50:34500 days ago1727812234IN
0x9E63ED2A...9ff383EfA
0 ETH0.000979431.50000026
Perform Games160213662024-10-01 19:30:20500 days ago1727811020IN
0x9E63ED2A...9ff383EfA
0 ETH0.000474391.50000025
Perform Games160210642024-10-01 19:20:16500 days ago1727810416IN
0x9E63ED2A...9ff383EfA
0 ETH0.000742181.50000026
Perform Games160201772024-10-01 18:50:42500 days ago1727808642IN
0x9E63ED2A...9ff383EfA
0 ETH0.000197081.50000025
Perform Games160201742024-10-01 18:50:36500 days ago1727808636IN
0x9E63ED2A...9ff383EfA
0 ETH0.000510271.50000025
Perform Games160196152024-10-01 18:31:58500 days ago1727807518IN
0x9E63ED2A...9ff383EfA
0 ETH0.000493711.50000025
Perform Games159754632024-09-30 18:00:14501 days ago1727719214IN
0x9E63ED2A...9ff383EfA
0 ETH0.000914121.50000025
View all transactions

Parent Transaction Hash Block From To Amount
View All Internal Transactions

Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xBDbEe3b5...40BdB39d1
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Ace8Proxy

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

import "../interfaces/IGamesHub.sol";
import "../interfaces/IAceTheBrackets8.sol";
import "../interfaces/IAceTicket8.sol";

contract Ace8Proxy {
    /** EVENTS **/
    event GameCreated(uint256 gameIndex);
    event TimerStarted(uint256 gameIndex);
    event GameActivated(uint256 gameIndex);
    event GameAdvanced(uint256 gameIndex, uint8 round);
    event GameFinished(uint256 gameIndex); //, bytes32 result);
    event DaysToClaimPrizeChanged(uint8 daysToClaimPrize);
    event Paused(bool paused);
    event PriceFeedAdded(uint256 tokenIndex);
    event UpdatePerformed(uint256 lastTimeStamp);
    event GameReset(uint256 gameId);

    /** STRUCTS **/
    struct Round {
        uint256[8] tokens;
        uint256[8] pricesStart;
        uint256[8] pricesEnd;
        uint256 start;
        uint256 end;
    }

    struct Game {
        Round[3] rounds;
        uint256 start;
        uint256 end;
        uint8 currentRound;
        uint256 winner;
        uint256 finalPrice;
        bool activated;
    }

    /** VARIABLES **/
    IGamesHub public gamesHub;
    mapping(uint256 => address) private gameContract;
    uint256 private immutable lastGameId;
    address public executionAddress;

    /** MODIFIERS **/
    modifier onlyAdministrator() {
        require(gamesHub.checkRole(keccak256("ADMIN"), msg.sender), "ACEP-01");
        _;
    }

    modifier onlyExecutor() {
        require(msg.sender == executionAddress, "ACEP-02");
        _;
    }

    modifier gameOutOfIndex(uint256 gameIndex) {
        IAceTheBrackets8 _gameContract = IAceTheBrackets8(
            gamesHub.games(keccak256("BRACKETS"))
        );
        require(
            (gameIndex != 0) && (gameIndex <= _gameContract.totalGames()),
            "ACE-06"
        );
        _;
    }

    /**
     * @dev Constructor function
     * @param _gamesHubAddress Address of the games hub
     * @param _executorAddress Address of the executor
     */
    constructor(
        address _gamesHubAddress,
        address _executorAddress,
        uint256 _lastGameId
    ) {
        gamesHub = IGamesHub(_gamesHubAddress);
        executionAddress = _executorAddress;
        lastGameId = _lastGameId;
    }

    /** MUTATORS **/

    /**
     * @dev Function to set a contract to a specific game id
     * @param _gameId The ID of the game
     * @param _gameAddress The address of the game contract
     */
    function setGameContract(
        uint256 _gameId,
        address _gameAddress
    ) public onlyAdministrator {
        gameContract[_gameId] = _gameAddress;
    }

    /**
     * @dev Function to perform the update of the games
     * @param _dataNewGame Data for the new game
     */
    function performGames(
        bytes calldata _dataNewGame,
        bytes calldata _dataUpdate,
        uint256 _lastTimeStamp
    ) public onlyExecutor {
        IAceTheBrackets8 _gameContract = IAceTheBrackets8(
            gamesHub.games(keccak256("BRACKETS"))
        );
        if (_gameContract.paused()) return;
        uint256[] memory _activeGames = _gameContract.getActiveGames();

        if (_dataUpdate.length != 0) {
            (
                uint256[4] memory gameIds,
                bytes[4] memory _prices,
                bytes[4] memory _pricesWinners,
                bytes[4] memory _winners
            ) = abi.decode(
                    _dataUpdate,
                    (uint256[4], bytes[4], bytes[4], bytes[4])
                );

            for (uint8 i = 0; i < _activeGames.length; i++) {
                if (gameIds[i] == 0) continue;
                _gameContract.advanceGame(
                    gameIds[i],
                    _lastTimeStamp,
                    _prices[i],
                    _pricesWinners[i],
                    _winners[i]
                );
                uint8 _status = _gameContract.getGameStatus(gameIds[i]);
                if (_status == 0) emit TimerStarted(gameIds[i]);
                if (_status == 1) emit GameActivated(gameIds[i]);
                if (_status == 4) emit GameFinished(gameIds[i]);
                emit GameAdvanced(gameIds[i], _status == 0 ? 0 : _status - 1);
            }
        }

        if (
            _gameContract.getActiveGames().length <
            _gameContract.minActiveGames() &&
            _gameContract.createNewGames() &&
            _dataNewGame.length != 0
        ) {
            _gameContract = IAceTheBrackets8(
                gamesHub.games(keccak256("BRACKETS"))
            );
            _gameContract.createGame(_dataNewGame);
            uint256 _totalGames = _gameContract.totalGames();
            gameContract[_totalGames] = address(_gameContract);
            emit GameCreated(_totalGames);
        }
        emit UpdatePerformed(_lastTimeStamp);
    }

    /**
     * @dev Function to change the days to claim the prize
     * @param _daysToClaimPrize The new days to claim the prize
     */
    function changeDaysToClaimPrize(
        uint8 _daysToClaimPrize
    ) public onlyAdministrator {
        IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
            .changeDaysToClaimPrize(_daysToClaimPrize);
        emit DaysToClaimPrizeChanged(_daysToClaimPrize);
    }

    /**
     * @dev Function to pause / unpause the contract
     * @param _paused Boolean to pause or unpause the contract
     */
    function setPaused(bool _paused) external onlyAdministrator {
        IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS"))).setPaused(
            _paused
        );
        emit Paused(_paused);
    }

    /**
     * @dev Function to set the forwarder address
     * @param _executionAddress Address of the Chainlink forwarder
     */
    function setExecutionAddress(
        address _executionAddress
    ) external onlyAdministrator {
        executionAddress = _executionAddress;
    }

    /**
     * @dev Function to reset a game
     * @param _gameId The ID of the game to be reset
     */
    function resetGame(uint256 _gameId) external onlyAdministrator {
        IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS"))).resetGame(
            _gameId
        );
        emit GameReset(_gameId);
    }

    /**
     * @dev Function to determine if new games should be created
     * @param _active Boolean to activate or deactivate the contract
     */
    function setCreateNewGames(bool _active) public onlyAdministrator {
        IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
            .setCreateNewGames(_active);
    }

    /**
     * @dev Function to set the round duration
     * @param _roundDuration The new round duration
     */
    function setRoundDuration(uint256 _roundDuration) public onlyAdministrator {
        IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
            .setRoundDuration(_roundDuration);
    }

    /**
     * @dev Function to set the bet time in minutes
     * @param _betTime The new bet time
     */
    function setBetTime(uint256 _betTime) public onlyAdministrator {
        IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS"))).setBetTime(
            _betTime
        );
    }

    /**
     * @dev Function to set the minimum number of concurrent games
     * @param _minActiveGames The new minimum number of concurrent games
     */
    function setMinConcurrentGames(
        uint8 _minActiveGames
    ) public onlyAdministrator {
        IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
            .setMinConcurrentGames(_minActiveGames);
    }

    /** GETTERS **/

    /**
     * @dev Function to get the game final result
     * @param gameIndex The index of the game
     * @return brackets The array of token IDs
     */
    function getFinalResult(
        uint256 gameIndex
    ) public view gameOutOfIndex(gameIndex) returns (uint256[7] memory) {
        return
            IAceTheBrackets8(getGameContract(gameIndex)).getFinalResult(
                gameIndex
            );
    }

    /**
     * @dev Status of the game. 0 = inactive, 1 ~ 3 = actual round, 4 = finished
     * @param gameIndex The index of the game
     * @return status The status of the game
     */
    function getGameStatus(
        uint256 gameIndex
    ) public view gameOutOfIndex(gameIndex) returns (uint8 status) {
        return
            IAceTheBrackets8(getGameContract(gameIndex)).getGameStatus(
                gameIndex
            );
    }

    /**
     * @dev Function to get the data for a round of a game
     * @param gameIndex The index of the game
     * @param round The index of the round
     * @return roundData The data for the round
     */
    function getRoundFullData(
        uint256 gameIndex,
        uint8 round
    ) private view gameOutOfIndex(gameIndex) returns (bytes memory) {
        // Return: ABI-encoded string[8], uint256[8], uint256[8], uint256, uint256
        return
            IAceTheBrackets8(getGameContract(gameIndex)).getRoundFullData(
                gameIndex,
                round
            );
    }

    /**
     * @dev Function to get the data for a game
     * @param _gameId The index of the game
     * @return gameData The data for the game
     */
    function getGameFullData(
        uint256 _gameId
    ) public view gameOutOfIndex(_gameId) returns (bytes memory) {
        // Return: ABI-encoded bytes, bytes, bytes, string, uint256, uint8, uint256, uint256
        // CurrentRound 0-2: Rounds 1-3 / 3: Finished
        // Activated: 0: Inactive / 1: Active
        return
            IAceTheBrackets8(getGameContract(_gameId)).getGameFullData(_gameId);
    }

    /**
     * @dev Function to get the data for a round of a game
     * @param _gameId The index of the game
     * @param round The index of the round
     * @return tokens The array of token IDs
     * @return prices The array of prices
     */
    function getRoundData(
        uint256 _gameId,
        uint8 round
    )
        public
        view
        gameOutOfIndex(_gameId)
        returns (uint256[8] memory, uint256[8] memory, uint256[8] memory)
    {
        return
            IAceTheBrackets8(getGameContract(_gameId)).getRoundData(
                _gameId,
                round
            );
    }

    /**
     * @dev Function to get all active games indexes
     * @return activeGames The total number of active games
     */
    function getActiveGames() public view returns (uint256[] memory) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .getActiveGames();
    }

    /**
     * @dev Function to get the symbol of a token
     * @param tokenIndex The index of the token
     */
    function getTokenSymbol(
        uint256 tokenIndex
    ) public view returns (string memory) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .getTokenSymbol(tokenIndex);
    }

    /**
     * @dev Function to get the token index of a symbol
     * @param _symbol The symbol of the token
     */
    function getTokenId(string memory _symbol) public view returns (uint256) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS"))).getTokenId(
                _symbol
            );
    }

    /**
     * @dev Function to get the token index of an array of symbols
     * @param _symbols The array of symbols
     */
    function getTokensIds(
        bytes memory _symbols
    ) public view returns (uint256[8] memory) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .getTokensIds(_symbols);
    }

    /**
     * @dev Function to get the token symbol of an array of indexes
     * @param _tokens The array of token indexes
     */
    function getTokensSymbols(
        bytes memory _tokens
    ) public view returns (string[8] memory) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .getTokensSymbols(_tokens);
    }

    /**
     * @dev Function to get the active games actual coins symbols and prices
     * @return _activeGamesActualCoins The array of active games actual coins
     */
    function getActiveGamesActualCoins() public view returns (bytes[4] memory) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .getActiveGamesActualCoins();
    }

    /**
     * @dev Get the Game Finished Code from the Game ID
     * @param _gameId The Game ID
     * @return The Game Finished Code
     */
    function getGameFinishedCode(
        uint256 _gameId
    ) public view returns (bytes32) {
        return
            IAceTheBrackets8(getGameContract(_gameId)).getGameFinishedCode(
                _gameId
            );
    }

    /**
     * @dev Function to get the game contract address
     * @param _gameId The ID of the game
     * @return The address of the game contract
     */
    function getGameContract(uint256 _gameId) public view returns (address) {
        return
            (_gameId < lastGameId) || gameContract[_gameId] == address(0)
                ? gameContract[lastGameId]
                : gameContract[_gameId];
    }

    /** VARIABLES **/
    function MIN_ACTIVE_TOKENS() public view returns (uint8) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .MIN_ACTIVE_TOKENS();
    }

    function minActiveGames() public view returns (uint8) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .minActiveGames();
    }

    function totalGames() public view returns (uint256) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .totalGames();
    }

    function daysToClaimPrize() public view returns (uint8) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .daysToClaimPrize();
    }

    function paused() public view returns (bool) {
        return IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS"))).paused();
    }

    function createNewGames() public view returns (bool) {
        return
            IAceTheBrackets8(gamesHub.games(keccak256("BRACKETS")))
                .createNewGames();
    }
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IAceTheBrackets8 {
    function MIN_ACTIVE_TOKENS() external view returns (uint8);

    function minActiveGames() external view returns (uint8);

    function totalGames() external view returns (uint256);

    function daysToClaimPrize() external view returns (uint8);

    function paused() external view returns (bool);

    function createNewGames() external view returns (bool);

    function advanceGame(
        uint256 _lastTimeStamp,
        uint256 gameIndex,
        bytes memory _prices,
        bytes memory _pricesWinners,
        bytes memory _winners
    ) external;

    function createGame(
        bytes calldata _dataNewGame
    ) external;

    function setPaused(bool _paused) external;

    function resetGame(uint256 _gameId) external;

    function setCreateNewGames(bool _active) external;

    function setRoundDuration(uint256 _roundDuration) external;

    function setBetTime(uint256 _betTime) external;

    function setMinConcurrentGames(uint8 _minActiveGames) external;

    function changeDaysToClaimPrize(uint8 _daysToClaimPrize) external;

    function getGameStatus(
        uint256 gameIndex
    ) external view returns (uint8 status);

    function getRoundFullData(
        uint256 gameIndex,
        uint8 round
    ) external view returns (bytes memory);

    function getGameFullData(
        uint256 gameIndex
    ) external view returns (bytes memory);

    function getRoundData(
        uint256 gameIndex,
        uint8 round
    )
        external
        view
        returns (uint256[8] memory, uint256[8] memory, uint256[8] memory);

    function getActiveGames() external view returns (uint256[] memory);

    function getTokenSymbol(
        uint256 tokenIndex
    ) external view returns (string memory);

    function getTokenId(string memory _symbol) external view returns (uint256);

    function getTokensIds(
        bytes memory _symbols
    ) external view returns (uint256[8] memory);

    function getTokensSymbols(
        bytes memory _tokens
    ) external view returns (string[8] memory);

    function getActiveGamesActualCoins()
        external
        view
        returns (bytes[4] memory);

    function getGameFinishedCode(
        uint256 _gameId
    ) external view returns (bytes32);

    function getFinalResult(
        uint256 gameIndex
    ) external view returns (uint256[7] memory);
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IAceTicket8 {
    function getBetData(
        uint256 _tokenId
    ) external view returns (uint256[7] memory);

    function betValidator(
        uint256 _tokenId
    ) external view returns (uint8[7] memory);

    function getGameId(
        uint256 tokenIndex
    ) external view returns (uint256 gameId);

    function getTokenSymbols(
        uint256 _tokenId
    ) external view returns (string[7] memory);

    function setGamePot(uint256 _gameId, bytes32 betCode) external;

    function dismissGamePot(uint256 _gameId, bytes32 betCode) external;

    function amountPrizeClaimed(
        uint256 _tokenId
    ) external view returns (uint256 amountToClaim, uint256 amountClaimed);

    function betWinQty(uint256 _tokenId) external view returns (uint8);
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IGamesHub {
    // Events
    event GameContractSet(address _contract, bytes32 _role);
    event GameContractRemoved(address _contract, bytes32 _role);
    event SetAdminWallet(address _adminWallet);
    event ExecutedCall(bytes32 gameName, bytes data, bytes returnData);
    event PlayerRankingChanged(
        address player,
        bytes32 game,
        uint256 volumeIn,
        uint256 volumeOut,
        bool win,
        bool loss
    );
    event NonceIncremented(uint256 nonce);

    // Structs
    struct PlayerRanking {
        bytes32 game;
        uint256 volumeIn;
        uint256 volumeOut;
        uint256 wins;
        uint256 losses;
    }

    // Public Variables
    function games(bytes32) external view returns (address);

    function helpers(bytes32) external view returns (address);

    function adminWallet() external view returns (address);

    function playerRanking(
        address
    ) external view returns (bytes32, uint256, uint256, uint256, uint256);

    function nonce() external view returns (uint256);

    // Constants
    function ADMIN_ROLE() external pure returns (bytes32);

    function DEV_ROLE() external pure returns (bytes32);

    function GAME_CONTRACT() external pure returns (bytes32);

    function NFT_POOL() external pure returns (bytes32);

    function CREDIT_POOL() external pure returns (bytes32);

    // Modifiers
    function setGameContact(
        address _contract,
        bytes32 _name,
        bool _isHelper
    ) external;

    function removeGameContact(
        address _contract,
        bytes32 _name,
        bool _isHelper
    ) external;

    function executeCall(
        bytes32 gameName,
        bytes calldata data,
        bool isHelper,
        bool sendSender
    ) external returns (bytes memory);

    // View Functions
    function getCreditPool() external view returns (address);

    function getNFTPool() external view returns (address);

    function retrieveTimestamp() external view returns (uint256);

    function checkRole(
        bytes32 role,
        address account
    ) external view returns (bool);

    function changePlayerRanking(
        address player,
        bytes32 game,
        uint256 volumeIn,
        uint256 volumeOut,
        bool win,
        bool loss
    ) external;

    function incrementNonce() external;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_gamesHubAddress","type":"address"},{"internalType":"address","name":"_executorAddress","type":"address"},{"internalType":"uint256","name":"_lastGameId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"daysToClaimPrize","type":"uint8"}],"name":"DaysToClaimPrizeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"}],"name":"GameActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"round","type":"uint8"}],"name":"GameAdvanced","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"}],"name":"GameCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"}],"name":"GameFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameId","type":"uint256"}],"name":"GameReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenIndex","type":"uint256"}],"name":"PriceFeedAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"}],"name":"TimerStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"lastTimeStamp","type":"uint256"}],"name":"UpdatePerformed","type":"event"},{"inputs":[],"name":"MIN_ACTIVE_TOKENS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_daysToClaimPrize","type":"uint8"}],"name":"changeDaysToClaimPrize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createNewGames","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daysToClaimPrize","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"executionAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gamesHub","outputs":[{"internalType":"contract IGamesHub","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActiveGames","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActiveGamesActualCoins","outputs":[{"internalType":"bytes[4]","name":"","type":"bytes[4]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gameIndex","type":"uint256"}],"name":"getFinalResult","outputs":[{"internalType":"uint256[7]","name":"","type":"uint256[7]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gameId","type":"uint256"}],"name":"getGameContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gameId","type":"uint256"}],"name":"getGameFinishedCode","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gameId","type":"uint256"}],"name":"getGameFullData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gameIndex","type":"uint256"}],"name":"getGameStatus","outputs":[{"internalType":"uint8","name":"status","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gameId","type":"uint256"},{"internalType":"uint8","name":"round","type":"uint8"}],"name":"getRoundData","outputs":[{"internalType":"uint256[8]","name":"","type":"uint256[8]"},{"internalType":"uint256[8]","name":"","type":"uint256[8]"},{"internalType":"uint256[8]","name":"","type":"uint256[8]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"name":"getTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenIndex","type":"uint256"}],"name":"getTokenSymbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_symbols","type":"bytes"}],"name":"getTokensIds","outputs":[{"internalType":"uint256[8]","name":"","type":"uint256[8]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_tokens","type":"bytes"}],"name":"getTokensSymbols","outputs":[{"internalType":"string[8]","name":"","type":"string[8]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minActiveGames","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_dataNewGame","type":"bytes"},{"internalType":"bytes","name":"_dataUpdate","type":"bytes"},{"internalType":"uint256","name":"_lastTimeStamp","type":"uint256"}],"name":"performGames","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gameId","type":"uint256"}],"name":"resetGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_betTime","type":"uint256"}],"name":"setBetTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_active","type":"bool"}],"name":"setCreateNewGames","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_executionAddress","type":"address"}],"name":"setExecutionAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gameId","type":"uint256"},{"internalType":"address","name":"_gameAddress","type":"address"}],"name":"setGameContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_minActiveGames","type":"uint8"}],"name":"setMinConcurrentGames","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundDuration","type":"uint256"}],"name":"setRoundDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalGames","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

0x60a06040523480156200001157600080fd5b50604051620036e8380380620036e883398101604081905262000034916200008a565b600080546001600160a01b039485166001600160a01b0319918216179091556002805493909416921691909117909155608052620000cb565b80516001600160a01b03811681146200008557600080fd5b919050565b600080600060608486031215620000a057600080fd5b620000ab846200006d565b9250620000bb602085016200006d565b9150604084015190509250925092565b6080516135fa620000ee600039600081816114eb015261155101526135fa6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80635c975abb116101045780639807ac45116100a2578063d8e014d311610071578063d8e014d314610423578063e47ee60314610436578063e7b5e2e914610449578063e8fd00bc1461045157600080fd5b80639807ac45146103d5578063a706b553146103dd578063b3550b21146103fd578063d09eb4c21461041057600080fd5b806378adc790116100de57806378adc7901461036d5780637add7546146103805780637b78bd3f1461039357806381941112146103b357600080fd5b80635c975abb1461032f5780636fc0677e14610347578063709228961461035a57600080fd5b80631b76929c1161017c578063228d6c6f1161014b578063228d6c6f146102ee5780632c4e591b1461030157806336c92c3f146103095780634cf052d51461031c57600080fd5b80631b76929c1461029d5780631e7663bc146102b25780631f8d9ab0146102d3578063217829fd146102db57600080fd5b8063102533f7116101b8578063102533f71461024d5780631225e5861461026d57806316701eb81461028257806316c38b3c1461028a57600080fd5b80630bb3f52a146101df5780630cc50bd2146101fd5780630f1bf45414610228575b600080fd5b6101e7610471565b6040516101f49190612a81565b60405180910390f35b600054610210906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b61023b610236366004612ace565b61055d565b60405160ff90911681526020016101f4565b61026061025b366004612c04565b6106f2565b6040516101f49190612c61565b61028061027b366004612c82565b6107e7565b005b61023b610996565b610280610298366004612cad565b610a72565b6102a5610c18565b6040516101f49190612cca565b6102c56102c0366004612d0e565b610cf8565b6040519081526020016101f4565b61023b610ddf565b6102806102e9366004612cad565b610e97565b6102c56102fc366004612ace565b61100e565b6102c5611046565b610280610317366004612ace565b611122565b61028061032a366004612ace565b611265565b61033761140b565b60405190151581526020016101f4565b610210610355366004612ace565b6114e7565b610280610368366004612ace565b61158b565b600254610210906001600160a01b031681565b61028061038e366004612d9e565b6116ce565b6103a66103a1366004612ace565b611ed1565b6040516101f49190612e11565b6103c66103c1366004612e24565b611fbe565b6040516101f493929190612e54565b61023b61216d565b6103f06103eb366004612ace565b612225565b6040516101f49190612e7f565b61028061040b366004612ec5565b6123ae565b6103a661041e366004612ace565b612478565b610280610431366004612c82565b612603565b610280610444366004612eea565b61274a565b610337612808565b61046461045f366004612c04565b6128c0565b6040516101f49190612f07565b6104796129b2565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190612f49565b6001600160a01b0316630bb3f52a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610530573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105589190810190612fab565b905090565b60008054604051637abcfc4160e11b81526000805160206135858339815191526004820152839183916001600160a01b039091169063f579f88290602401602060405180830381865afa1580156105b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105dc9190612f49565b9050811580159061064e5750806001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064a9190613045565b8211155b6106735760405162461bcd60e51b815260040161066a9061305e565b60405180910390fd5b61067c846114e7565b6001600160a01b0316630f1bf454856040518263ffffffff1660e01b81526004016106a991815260200190565b602060405180830381865afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea919061307e565b949350505050565b6106fa6129d9565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107749190612f49565b6001600160a01b031663102533f7836040518263ffffffff1660e01b815260040161079f9190612e11565b61010060405180830381865afa1580156107bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e191906130ec565b92915050565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa158015610843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108679190613109565b6108835760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190612f49565b604051630912f2c360e11b815260ff831660048201526001600160a01b039190911690631225e58690602401600060405180830381600087803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505060405160ff841681527ffa4c7bc7569c039f713008e83cf63a137fc8fceb7a1b224f6902ff7ffb7280e0925060200190505b60405180910390a150565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190612f49565b6001600160a01b03166316701eb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610558919061307e565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa158015610ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af29190613109565b610b0e5760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b889190612f49565b6040516305b0e2cf60e21b815282151560048201526001600160a01b0391909116906316c38b3c90602401600060405180830381600087803b158015610bcd57600080fd5b505af1158015610be1573d6000803e3d6000fd5b505050507f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd28160405161098b911515815260200190565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526060916001600160a01b03169063f579f88290602401602060405180830381865afa158015610c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c939190612f49565b6001600160a01b0316631b76929c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105589190810190613147565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d739190612f49565b6001600160a01b0316631e7663bc836040518263ffffffff1660e01b8152600401610d9e9190612e11565b602060405180830381865afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e19190613045565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190612f49565b6001600160a01b0316631f8d9ab06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190613109565b610f335760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190612f49565b60405163217829fd60e01b815282151560048201526001600160a01b03919091169063217829fd906024015b600060405180830381600087803b158015610ff357600080fd5b505af1158015611007573d6000803e3d6000fd5b5050505050565b6000611019826114e7565b6001600160a01b031663228d6c6f836040518263ffffffff1660e01b8152600401610d9e91815260200190565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa15801561109d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c19190612f49565b6001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190613045565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa15801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190613109565b6111be5760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112389190612f49565b6001600160a01b03166336c92c3f826040518263ffffffff1660e01b8152600401610fd991815260200190565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa1580156112c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e59190613109565b6113015760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137b9190612f49565b6001600160a01b0316634cf052d5826040518263ffffffff1660e01b81526004016113a891815260200190565b600060405180830381600087803b1580156113c257600080fd5b505af11580156113d6573d6000803e3d6000fd5b505050507fde24ae18b2bda089720ca38332df93ab6195d7b5b3b0981ccae6b33e0a6c3f9b8160405161098b91815260200190565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114869190612f49565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190613109565b60007f000000000000000000000000000000000000000000000000000000000000000082108061152c57506000828152600160205260409020546001600160a01b0316155b61154d576000828152600160205260409020546001600160a01b03166107e1565b50507f00000000000000000000000000000000000000000000000000000000000000006000908152600160205260409020546001600160a01b031690565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa1580156115e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160b9190613109565b6116275760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa15801561167d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a19190612f49565b6001600160a01b03166370922896826040518263ffffffff1660e01b8152600401610fd991815260200190565b6002546001600160a01b031633146117125760405162461bcd60e51b815260206004820152600760248201526620a1a2a816981960c91b604482015260640161066a565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190612f49565b9050806001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f19190613109565b156117fc5750611007565b6000816001600160a01b0316631b76929c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561183c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118649190810190613147565b90508315611bae57600080808061187d888a018a613253565b935093509350935060005b85518160ff161015611ba857848160ff16600481106118a9576118a9613325565b602002015115611b9657866001600160a01b0316636e958733868360ff16600481106118d7576118d7613325565b60200201518a878560ff16600481106118f2576118f2613325565b6020020151878660ff166004811061190c5761190c613325565b6020020151878760ff166004811061192657611926613325565b60200201516040518663ffffffff1660e01b815260040161194b95949392919061333b565b600060405180830381600087803b15801561196557600080fd5b505af1158015611979573d6000803e3d6000fd5b505050506000876001600160a01b0316630f1bf454878460ff16600481106119a3576119a3613325565b60200201516040518263ffffffff1660e01b81526004016119c691815260200190565b602060405180830381865afa1580156119e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a07919061307e565b90508060ff16600003611a67577f90e4e1076e66d07aad698457e7a86b4425881ab1586d63c00ba753f88757e9a8868360ff1660048110611a4a57611a4a613325565b6020020151604051611a5e91815260200190565b60405180910390a15b8060ff16600103611ac5577fb2f76656a4d5058a44d6f5fd1ebed95b7ef72920bbecf069fe3973f82c24351f868360ff1660048110611aa857611aa8613325565b6020020151604051611abc91815260200190565b60405180910390a15b8060ff16600403611b23577f6543ec12c6e53f26532beb5289ef5732dcd77c2e9e9921ae42b695905f5e84c0868360ff1660048110611b0657611b06613325565b6020020151604051611b1a91815260200190565b60405180910390a15b7f20476186d321a206f67bc4ddb3fdbcbc7bfe6c607512bf210caca1346995586c868360ff1660048110611b5957611b59613325565b602002015160ff831615611b7757611b72600184613396565b611b7a565b60005b6040805192835260ff90911660208301520160405180910390a1505b80611ba0816133af565b915050611888565b50505050505b816001600160a01b03166316701eb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c10919061307e565b60ff16826001600160a01b0316631b76929c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611c51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c799190810190613147565b51108015611ce45750816001600160a01b031663e7b5e2e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce49190613109565b8015611cef57508515155b15611e9557600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6e9190612f49565b60405163556db4b560e01b81529092506001600160a01b0383169063556db4b590611d9f908a908a906004016133ce565b600060405180830381600087803b158015611db957600080fd5b505af1158015611dcd573d6000803e3d6000fd5b505050506000826001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e359190613045565b60008181526001602090815260409182902080546001600160a01b0319166001600160a01b03881617905590518281529192507fbd19c47e9925eb6f7be8bb1c13a841e0240aaeaf17f217e90022e9c8eb66877f910160405180910390a1505b6040518381527f818359e86632c98760f34403c3d1beb3f1e826f1f0ab875cf3f1bd871d4bab9b9060200160405180910390a150505050505050565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526060916001600160a01b03169063f579f88290602401602060405180830381865afa158015611f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4c9190612f49565b6001600160a01b0316637b78bd3f836040518263ffffffff1660e01b8152600401611f7991815260200190565b600060405180830381865afa158015611f96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e191908101906133fd565b611fc66129d9565b611fce6129d9565b611fd66129d9565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201528792916001600160a01b03169063f579f88290602401602060405180830381865afa15801561202e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120529190612f49565b905081158015906120c45750806001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c09190613045565b8211155b6120e05760405162461bcd60e51b815260040161066a9061305e565b6120e9876114e7565b6040516340ca088960e11b81526004810189905260ff881660248201526001600160a01b03919091169063819411129060440161030060405180830381865afa15801561213a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215e9190613431565b94509450945050509250925092565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156121c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e89190612f49565b6001600160a01b0316639807ac456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b61222d6129f8565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201528492916001600160a01b03169063f579f88290602401602060405180830381865afa158015612285573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a99190612f49565b9050811580159061231b5750806001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123179190613045565b8211155b6123375760405162461bcd60e51b815260040161066a9061305e565b612340846114e7565b6001600160a01b031663a706b553856040518263ffffffff1660e01b815260040161236d91815260200190565b60e060405180830381865afa15801561238a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea919061347a565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa15801561240a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242e9190613109565b61244a5760405162461bcd60e51b815260040161066a90613126565b60009182526001602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60008054604051637abcfc4160e11b81526000805160206135858339815191526004820152606092849290916001600160a01b039091169063f579f88290602401602060405180830381865afa1580156124d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fa9190612f49565b9050811580159061256c5750806001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612544573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125689190613045565b8211155b6125885760405162461bcd60e51b815260040161066a9061305e565b612591846114e7565b6001600160a01b031663d09eb4c2856040518263ffffffff1660e01b81526004016125be91815260200190565b600060405180830381865afa1580156125db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106ea91908101906133fd565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa15801561265f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126839190613109565b61269f5760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156126f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127199190612f49565b60405163d8e014d360e01b815260ff831660048201526001600160a01b03919091169063d8e014d390602401610fd9565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa1580156127a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ca9190613109565b6127e65760405162461bcd60e51b815260040161066a90613126565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa15801561285f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128839190612f49565b6001600160a01b031663e7b5e2e96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b6128c8612a16565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129429190612f49565b6001600160a01b031663e8fd00bc836040518263ffffffff1660e01b815260040161296d9190612e11565b600060405180830381865afa15801561298a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e191908101906134f7565b60405180608001604052806004905b60608152602001906001900390816129c15790505090565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b604080516101008101909152606081526007602082016129c1565b60005b83811015612a4c578181015183820152602001612a34565b50506000910152565b60008151808452612a6d816020860160208601612a31565b601f01601f19169290920160200192915050565b602080825260009060a0830183820185845b6004811015612ac257601f19878503018352612ab0848351612a55565b93509184019190840190600101612a93565b50919695505050505050565b600060208284031215612ae057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715612b1f57612b1f612ae7565b60405290565b60405161010081016001600160401b0381118282101715612b1f57612b1f612ae7565b604051601f8201601f191681016001600160401b0381118282101715612b7057612b70612ae7565b604052919050565b60006001600160401b03821115612b9157612b91612ae7565b50601f01601f191660200190565b6000612bb2612bad84612b78565b612b48565b9050828152838383011115612bc657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bee57600080fd5b612bfd83833560208501612b9f565b9392505050565b600060208284031215612c1657600080fd5b81356001600160401b03811115612c2c57600080fd5b6106ea84828501612bdd565b8060005b6008811015612c5b578151845260209384019390910190600101612c3c565b50505050565b61010081016107e18284612c38565b60ff81168114612c7f57600080fd5b50565b600060208284031215612c9457600080fd5b8135612bfd81612c70565b8015158114612c7f57600080fd5b600060208284031215612cbf57600080fd5b8135612bfd81612c9f565b6020808252825182820181905260009190848201906040850190845b81811015612d0257835183529284019291840191600101612ce6565b50909695505050505050565b600060208284031215612d2057600080fd5b81356001600160401b03811115612d3657600080fd5b8201601f81018413612d4757600080fd5b6106ea84823560208401612b9f565b60008083601f840112612d6857600080fd5b5081356001600160401b03811115612d7f57600080fd5b602083019150836020828501011115612d9757600080fd5b9250929050565b600080600080600060608688031215612db657600080fd5b85356001600160401b0380821115612dcd57600080fd5b612dd989838a01612d56565b90975095506020880135915080821115612df257600080fd5b50612dff88828901612d56565b96999598509660400135949350505050565b602081526000612bfd6020830184612a55565b60008060408385031215612e3757600080fd5b823591506020830135612e4981612c70565b809150509250929050565b6103008101612e638286612c38565b612e71610100830185612c38565b6106ea610200830184612c38565b60e08101818360005b6007811015612ea7578151835260209283019290910190600101612e88565b50505092915050565b6001600160a01b0381168114612c7f57600080fd5b60008060408385031215612ed857600080fd5b823591506020830135612e4981612eb0565b600060208284031215612efc57600080fd5b8135612bfd81612eb0565b6020808252600090610120830183820185845b6008811015612ac257601f19878503018352612f37848351612a55565b93509184019190840190600101612f1a565b600060208284031215612f5b57600080fd5b8151612bfd81612eb0565b600082601f830112612f7757600080fd5b8151612f85612bad82612b78565b818152846020838601011115612f9a57600080fd5b6106ea826020830160208701612a31565b60006020808385031215612fbe57600080fd5b82516001600160401b0380821115612fd557600080fd5b818501915085601f830112612fe957600080fd5b612ff1612afd565b80608084018881111561300357600080fd5b845b818110156130375780518581111561301d5760008081fd5b6130298b828901612f66565b855250928601928601613005565b509098975050505050505050565b60006020828403121561305757600080fd5b5051919050565b60208082526006908201526520a1a296981b60d11b604082015260600190565b60006020828403121561309057600080fd5b8151612bfd81612c70565b600082601f8301126130ac57600080fd5b6130b4612b25565b806101008401858111156130c757600080fd5b845b818110156130e15780518452602093840193016130c9565b509095945050505050565b600061010082840312156130ff57600080fd5b612bfd838361309b565b60006020828403121561311b57600080fd5b8151612bfd81612c9f565b602080825260079082015266414345502d303160c81b604082015260600190565b6000602080838503121561315a57600080fd5b82516001600160401b038082111561317157600080fd5b818501915085601f83011261318557600080fd5b81518181111561319757613197612ae7565b8060051b91506131a8848301612b48565b81815291830184019184810190888411156131c257600080fd5b938501935b838510156131e0578451825293850193908501906131c7565b98975050505050505050565b600082601f8301126131fd57600080fd5b613205612afd565b80608084018581111561321757600080fd5b845b818110156130e15780356001600160401b038111156132385760008081fd5b61324488828901612bdd565b85525060209384019301613219565b60008060008060e0858703121561326957600080fd5b85601f86011261327857600080fd5b613280612afd565b80608087018881111561329257600080fd5b875b818110156132ac578035845260209384019301613294565b509095503590506001600160401b03808211156132c857600080fd5b6132d4888389016131ec565b945060a08701359150808211156132ea57600080fd5b6132f6888389016131ec565b935060c087013591508082111561330c57600080fd5b50613319878288016131ec565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b85815284602082015260a06040820152600061335a60a0830186612a55565b828103606084015261336c8186612a55565b905082810360808401526131e08185612a55565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156107e1576107e1613380565b600060ff821660ff81036133c5576133c5613380565b60010192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561340f57600080fd5b81516001600160401b0381111561342557600080fd5b6106ea84828501612f66565b6000806000610300848603121561344757600080fd5b613451858561309b565b925061346185610100860161309b565b915061347185610200860161309b565b90509250925092565b600060e0828403121561348c57600080fd5b82601f83011261349b57600080fd5b60405160e081018181106001600160401b03821117156134bd576134bd612ae7565b6040528060e08401858111156134d257600080fd5b845b818110156134ec5780518352602092830192016134d4565b509195945050505050565b6000602080838503121561350a57600080fd5b82516001600160401b038082111561352157600080fd5b818501915085601f83011261353557600080fd5b61353d612b25565b8061010084018881111561355057600080fd5b845b818110156130375780518581111561356a5760008081fd5b6135768b828901612f66565b85525092860192860161355256feb342f0c06a87c0344c4103ecd363a20f717e269f0bdab2b6995290e78c6aa474df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42a2646970667358221220214f96a7fc5e4bbdee9399846961e553bc109a00a699aef939ccf94d1ee8e81e64736f6c6343000813003300000000000000000000000057a2982970afdb125ece09e3f673243d01329dbe00000000000000000000000056aa0f4fe40f7519f58bf242a493deccfb04bff5000000000000000000000000000000000000000000000000000000000000088f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80635c975abb116101045780639807ac45116100a2578063d8e014d311610071578063d8e014d314610423578063e47ee60314610436578063e7b5e2e914610449578063e8fd00bc1461045157600080fd5b80639807ac45146103d5578063a706b553146103dd578063b3550b21146103fd578063d09eb4c21461041057600080fd5b806378adc790116100de57806378adc7901461036d5780637add7546146103805780637b78bd3f1461039357806381941112146103b357600080fd5b80635c975abb1461032f5780636fc0677e14610347578063709228961461035a57600080fd5b80631b76929c1161017c578063228d6c6f1161014b578063228d6c6f146102ee5780632c4e591b1461030157806336c92c3f146103095780634cf052d51461031c57600080fd5b80631b76929c1461029d5780631e7663bc146102b25780631f8d9ab0146102d3578063217829fd146102db57600080fd5b8063102533f7116101b8578063102533f71461024d5780631225e5861461026d57806316701eb81461028257806316c38b3c1461028a57600080fd5b80630bb3f52a146101df5780630cc50bd2146101fd5780630f1bf45414610228575b600080fd5b6101e7610471565b6040516101f49190612a81565b60405180910390f35b600054610210906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b61023b610236366004612ace565b61055d565b60405160ff90911681526020016101f4565b61026061025b366004612c04565b6106f2565b6040516101f49190612c61565b61028061027b366004612c82565b6107e7565b005b61023b610996565b610280610298366004612cad565b610a72565b6102a5610c18565b6040516101f49190612cca565b6102c56102c0366004612d0e565b610cf8565b6040519081526020016101f4565b61023b610ddf565b6102806102e9366004612cad565b610e97565b6102c56102fc366004612ace565b61100e565b6102c5611046565b610280610317366004612ace565b611122565b61028061032a366004612ace565b611265565b61033761140b565b60405190151581526020016101f4565b610210610355366004612ace565b6114e7565b610280610368366004612ace565b61158b565b600254610210906001600160a01b031681565b61028061038e366004612d9e565b6116ce565b6103a66103a1366004612ace565b611ed1565b6040516101f49190612e11565b6103c66103c1366004612e24565b611fbe565b6040516101f493929190612e54565b61023b61216d565b6103f06103eb366004612ace565b612225565b6040516101f49190612e7f565b61028061040b366004612ec5565b6123ae565b6103a661041e366004612ace565b612478565b610280610431366004612c82565b612603565b610280610444366004612eea565b61274a565b610337612808565b61046461045f366004612c04565b6128c0565b6040516101f49190612f07565b6104796129b2565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190612f49565b6001600160a01b0316630bb3f52a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610530573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105589190810190612fab565b905090565b60008054604051637abcfc4160e11b81526000805160206135858339815191526004820152839183916001600160a01b039091169063f579f88290602401602060405180830381865afa1580156105b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105dc9190612f49565b9050811580159061064e5750806001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064a9190613045565b8211155b6106735760405162461bcd60e51b815260040161066a9061305e565b60405180910390fd5b61067c846114e7565b6001600160a01b0316630f1bf454856040518263ffffffff1660e01b81526004016106a991815260200190565b602060405180830381865afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea919061307e565b949350505050565b6106fa6129d9565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107749190612f49565b6001600160a01b031663102533f7836040518263ffffffff1660e01b815260040161079f9190612e11565b61010060405180830381865afa1580156107bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e191906130ec565b92915050565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa158015610843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108679190613109565b6108835760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190612f49565b604051630912f2c360e11b815260ff831660048201526001600160a01b039190911690631225e58690602401600060405180830381600087803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505060405160ff841681527ffa4c7bc7569c039f713008e83cf63a137fc8fceb7a1b224f6902ff7ffb7280e0925060200190505b60405180910390a150565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190612f49565b6001600160a01b03166316701eb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610558919061307e565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa158015610ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af29190613109565b610b0e5760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b889190612f49565b6040516305b0e2cf60e21b815282151560048201526001600160a01b0391909116906316c38b3c90602401600060405180830381600087803b158015610bcd57600080fd5b505af1158015610be1573d6000803e3d6000fd5b505050507f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd28160405161098b911515815260200190565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526060916001600160a01b03169063f579f88290602401602060405180830381865afa158015610c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c939190612f49565b6001600160a01b0316631b76929c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105589190810190613147565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d739190612f49565b6001600160a01b0316631e7663bc836040518263ffffffff1660e01b8152600401610d9e9190612e11565b602060405180830381865afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e19190613045565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a9190612f49565b6001600160a01b0316631f8d9ab06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190613109565b610f335760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190612f49565b60405163217829fd60e01b815282151560048201526001600160a01b03919091169063217829fd906024015b600060405180830381600087803b158015610ff357600080fd5b505af1158015611007573d6000803e3d6000fd5b5050505050565b6000611019826114e7565b6001600160a01b031663228d6c6f836040518263ffffffff1660e01b8152600401610d9e91815260200190565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa15801561109d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c19190612f49565b6001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190613045565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa15801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190613109565b6111be5760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112389190612f49565b6001600160a01b03166336c92c3f826040518263ffffffff1660e01b8152600401610fd991815260200190565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa1580156112c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e59190613109565b6113015760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137b9190612f49565b6001600160a01b0316634cf052d5826040518263ffffffff1660e01b81526004016113a891815260200190565b600060405180830381600087803b1580156113c257600080fd5b505af11580156113d6573d6000803e3d6000fd5b505050507fde24ae18b2bda089720ca38332df93ab6195d7b5b3b0981ccae6b33e0a6c3f9b8160405161098b91815260200190565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114869190612f49565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190613109565b60007f000000000000000000000000000000000000000000000000000000000000088f82108061152c57506000828152600160205260409020546001600160a01b0316155b61154d576000828152600160205260409020546001600160a01b03166107e1565b50507f000000000000000000000000000000000000000000000000000000000000088f6000908152600160205260409020546001600160a01b031690565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa1580156115e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160b9190613109565b6116275760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa15801561167d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a19190612f49565b6001600160a01b03166370922896826040518263ffffffff1660e01b8152600401610fd991815260200190565b6002546001600160a01b031633146117125760405162461bcd60e51b815260206004820152600760248201526620a1a2a816981960c91b604482015260640161066a565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190612f49565b9050806001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f19190613109565b156117fc5750611007565b6000816001600160a01b0316631b76929c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561183c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118649190810190613147565b90508315611bae57600080808061187d888a018a613253565b935093509350935060005b85518160ff161015611ba857848160ff16600481106118a9576118a9613325565b602002015115611b9657866001600160a01b0316636e958733868360ff16600481106118d7576118d7613325565b60200201518a878560ff16600481106118f2576118f2613325565b6020020151878660ff166004811061190c5761190c613325565b6020020151878760ff166004811061192657611926613325565b60200201516040518663ffffffff1660e01b815260040161194b95949392919061333b565b600060405180830381600087803b15801561196557600080fd5b505af1158015611979573d6000803e3d6000fd5b505050506000876001600160a01b0316630f1bf454878460ff16600481106119a3576119a3613325565b60200201516040518263ffffffff1660e01b81526004016119c691815260200190565b602060405180830381865afa1580156119e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a07919061307e565b90508060ff16600003611a67577f90e4e1076e66d07aad698457e7a86b4425881ab1586d63c00ba753f88757e9a8868360ff1660048110611a4a57611a4a613325565b6020020151604051611a5e91815260200190565b60405180910390a15b8060ff16600103611ac5577fb2f76656a4d5058a44d6f5fd1ebed95b7ef72920bbecf069fe3973f82c24351f868360ff1660048110611aa857611aa8613325565b6020020151604051611abc91815260200190565b60405180910390a15b8060ff16600403611b23577f6543ec12c6e53f26532beb5289ef5732dcd77c2e9e9921ae42b695905f5e84c0868360ff1660048110611b0657611b06613325565b6020020151604051611b1a91815260200190565b60405180910390a15b7f20476186d321a206f67bc4ddb3fdbcbc7bfe6c607512bf210caca1346995586c868360ff1660048110611b5957611b59613325565b602002015160ff831615611b7757611b72600184613396565b611b7a565b60005b6040805192835260ff90911660208301520160405180910390a1505b80611ba0816133af565b915050611888565b50505050505b816001600160a01b03166316701eb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c10919061307e565b60ff16826001600160a01b0316631b76929c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611c51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c799190810190613147565b51108015611ce45750816001600160a01b031663e7b5e2e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce49190613109565b8015611cef57508515155b15611e9557600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa158015611d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6e9190612f49565b60405163556db4b560e01b81529092506001600160a01b0383169063556db4b590611d9f908a908a906004016133ce565b600060405180830381600087803b158015611db957600080fd5b505af1158015611dcd573d6000803e3d6000fd5b505050506000826001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e359190613045565b60008181526001602090815260409182902080546001600160a01b0319166001600160a01b03881617905590518281529192507fbd19c47e9925eb6f7be8bb1c13a841e0240aaeaf17f217e90022e9c8eb66877f910160405180910390a1505b6040518381527f818359e86632c98760f34403c3d1beb3f1e826f1f0ab875cf3f1bd871d4bab9b9060200160405180910390a150505050505050565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526060916001600160a01b03169063f579f88290602401602060405180830381865afa158015611f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4c9190612f49565b6001600160a01b0316637b78bd3f836040518263ffffffff1660e01b8152600401611f7991815260200190565b600060405180830381865afa158015611f96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e191908101906133fd565b611fc66129d9565b611fce6129d9565b611fd66129d9565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201528792916001600160a01b03169063f579f88290602401602060405180830381865afa15801561202e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120529190612f49565b905081158015906120c45750806001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c09190613045565b8211155b6120e05760405162461bcd60e51b815260040161066a9061305e565b6120e9876114e7565b6040516340ca088960e11b81526004810189905260ff881660248201526001600160a01b03919091169063819411129060440161030060405180830381865afa15801561213a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215e9190613431565b94509450945050509250925092565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156121c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e89190612f49565b6001600160a01b0316639807ac456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b61222d6129f8565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201528492916001600160a01b03169063f579f88290602401602060405180830381865afa158015612285573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a99190612f49565b9050811580159061231b5750806001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123179190613045565b8211155b6123375760405162461bcd60e51b815260040161066a9061305e565b612340846114e7565b6001600160a01b031663a706b553856040518263ffffffff1660e01b815260040161236d91815260200190565b60e060405180830381865afa15801561238a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea919061347a565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa15801561240a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242e9190613109565b61244a5760405162461bcd60e51b815260040161066a90613126565b60009182526001602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b60008054604051637abcfc4160e11b81526000805160206135858339815191526004820152606092849290916001600160a01b039091169063f579f88290602401602060405180830381865afa1580156124d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fa9190612f49565b9050811580159061256c5750806001600160a01b0316632c4e591b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612544573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125689190613045565b8211155b6125885760405162461bcd60e51b815260040161066a9061305e565b612591846114e7565b6001600160a01b031663d09eb4c2856040518263ffffffff1660e01b81526004016125be91815260200190565b600060405180830381865afa1580156125db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106ea91908101906133fd565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa15801561265f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126839190613109565b61269f5760405162461bcd60e51b815260040161066a90613126565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa1580156126f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127199190612f49565b60405163d8e014d360e01b815260ff831660048201526001600160a01b03919091169063d8e014d390602401610fd9565b6000546040516312d9a6ad60e01b81526000805160206135a583398151915260048201523360248201526001600160a01b03909116906312d9a6ad90604401602060405180830381865afa1580156127a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ca9190613109565b6127e65760405162461bcd60e51b815260040161066a90613126565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa15801561285f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128839190612f49565b6001600160a01b031663e7b5e2e96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b6128c8612a16565b600054604051637abcfc4160e11b815260008051602061358583398151915260048201526001600160a01b039091169063f579f88290602401602060405180830381865afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129429190612f49565b6001600160a01b031663e8fd00bc836040518263ffffffff1660e01b815260040161296d9190612e11565b600060405180830381865afa15801561298a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e191908101906134f7565b60405180608001604052806004905b60608152602001906001900390816129c15790505090565b6040518061010001604052806008906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b604080516101008101909152606081526007602082016129c1565b60005b83811015612a4c578181015183820152602001612a34565b50506000910152565b60008151808452612a6d816020860160208601612a31565b601f01601f19169290920160200192915050565b602080825260009060a0830183820185845b6004811015612ac257601f19878503018352612ab0848351612a55565b93509184019190840190600101612a93565b50919695505050505050565b600060208284031215612ae057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715612b1f57612b1f612ae7565b60405290565b60405161010081016001600160401b0381118282101715612b1f57612b1f612ae7565b604051601f8201601f191681016001600160401b0381118282101715612b7057612b70612ae7565b604052919050565b60006001600160401b03821115612b9157612b91612ae7565b50601f01601f191660200190565b6000612bb2612bad84612b78565b612b48565b9050828152838383011115612bc657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bee57600080fd5b612bfd83833560208501612b9f565b9392505050565b600060208284031215612c1657600080fd5b81356001600160401b03811115612c2c57600080fd5b6106ea84828501612bdd565b8060005b6008811015612c5b578151845260209384019390910190600101612c3c565b50505050565b61010081016107e18284612c38565b60ff81168114612c7f57600080fd5b50565b600060208284031215612c9457600080fd5b8135612bfd81612c70565b8015158114612c7f57600080fd5b600060208284031215612cbf57600080fd5b8135612bfd81612c9f565b6020808252825182820181905260009190848201906040850190845b81811015612d0257835183529284019291840191600101612ce6565b50909695505050505050565b600060208284031215612d2057600080fd5b81356001600160401b03811115612d3657600080fd5b8201601f81018413612d4757600080fd5b6106ea84823560208401612b9f565b60008083601f840112612d6857600080fd5b5081356001600160401b03811115612d7f57600080fd5b602083019150836020828501011115612d9757600080fd5b9250929050565b600080600080600060608688031215612db657600080fd5b85356001600160401b0380821115612dcd57600080fd5b612dd989838a01612d56565b90975095506020880135915080821115612df257600080fd5b50612dff88828901612d56565b96999598509660400135949350505050565b602081526000612bfd6020830184612a55565b60008060408385031215612e3757600080fd5b823591506020830135612e4981612c70565b809150509250929050565b6103008101612e638286612c38565b612e71610100830185612c38565b6106ea610200830184612c38565b60e08101818360005b6007811015612ea7578151835260209283019290910190600101612e88565b50505092915050565b6001600160a01b0381168114612c7f57600080fd5b60008060408385031215612ed857600080fd5b823591506020830135612e4981612eb0565b600060208284031215612efc57600080fd5b8135612bfd81612eb0565b6020808252600090610120830183820185845b6008811015612ac257601f19878503018352612f37848351612a55565b93509184019190840190600101612f1a565b600060208284031215612f5b57600080fd5b8151612bfd81612eb0565b600082601f830112612f7757600080fd5b8151612f85612bad82612b78565b818152846020838601011115612f9a57600080fd5b6106ea826020830160208701612a31565b60006020808385031215612fbe57600080fd5b82516001600160401b0380821115612fd557600080fd5b818501915085601f830112612fe957600080fd5b612ff1612afd565b80608084018881111561300357600080fd5b845b818110156130375780518581111561301d5760008081fd5b6130298b828901612f66565b855250928601928601613005565b509098975050505050505050565b60006020828403121561305757600080fd5b5051919050565b60208082526006908201526520a1a296981b60d11b604082015260600190565b60006020828403121561309057600080fd5b8151612bfd81612c70565b600082601f8301126130ac57600080fd5b6130b4612b25565b806101008401858111156130c757600080fd5b845b818110156130e15780518452602093840193016130c9565b509095945050505050565b600061010082840312156130ff57600080fd5b612bfd838361309b565b60006020828403121561311b57600080fd5b8151612bfd81612c9f565b602080825260079082015266414345502d303160c81b604082015260600190565b6000602080838503121561315a57600080fd5b82516001600160401b038082111561317157600080fd5b818501915085601f83011261318557600080fd5b81518181111561319757613197612ae7565b8060051b91506131a8848301612b48565b81815291830184019184810190888411156131c257600080fd5b938501935b838510156131e0578451825293850193908501906131c7565b98975050505050505050565b600082601f8301126131fd57600080fd5b613205612afd565b80608084018581111561321757600080fd5b845b818110156130e15780356001600160401b038111156132385760008081fd5b61324488828901612bdd565b85525060209384019301613219565b60008060008060e0858703121561326957600080fd5b85601f86011261327857600080fd5b613280612afd565b80608087018881111561329257600080fd5b875b818110156132ac578035845260209384019301613294565b509095503590506001600160401b03808211156132c857600080fd5b6132d4888389016131ec565b945060a08701359150808211156132ea57600080fd5b6132f6888389016131ec565b935060c087013591508082111561330c57600080fd5b50613319878288016131ec565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b85815284602082015260a06040820152600061335a60a0830186612a55565b828103606084015261336c8186612a55565b905082810360808401526131e08185612a55565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156107e1576107e1613380565b600060ff821660ff81036133c5576133c5613380565b60010192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561340f57600080fd5b81516001600160401b0381111561342557600080fd5b6106ea84828501612f66565b6000806000610300848603121561344757600080fd5b613451858561309b565b925061346185610100860161309b565b915061347185610200860161309b565b90509250925092565b600060e0828403121561348c57600080fd5b82601f83011261349b57600080fd5b60405160e081018181106001600160401b03821117156134bd576134bd612ae7565b6040528060e08401858111156134d257600080fd5b845b818110156134ec5780518352602092830192016134d4565b509195945050505050565b6000602080838503121561350a57600080fd5b82516001600160401b038082111561352157600080fd5b818501915085601f83011261353557600080fd5b61353d612b25565b8061010084018881111561355057600080fd5b845b818110156130375780518581111561356a5760008081fd5b6135768b828901612f66565b85525092860192860161355256feb342f0c06a87c0344c4103ecd363a20f717e269f0bdab2b6995290e78c6aa474df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42a2646970667358221220214f96a7fc5e4bbdee9399846961e553bc109a00a699aef939ccf94d1ee8e81e64736f6c63430008130033

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
0x9E63ED2AcBe3E76E77774F74DB51E3C9ff383EfA
Loading...
Loading
Loading...
Loading
[ 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.