ETH Price: $2,475.82 (-0.77%)

Contract

0x80Ec2ade913768A5D3d4c2E054d8343C306ca25F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Play184155752023-10-23 21:12:59491 days ago1698095579IN
0x80Ec2ade...C306ca25F
0 ETH0.0018451924.0109944
Play184155752023-10-23 21:12:59491 days ago1698095579IN
0x80Ec2ade...C306ca25F
0 ETH0.0032161724.0109944
Change Next Roun...184155352023-10-23 21:04:59491 days ago1698095099IN
0x80Ec2ade...C306ca25F
0 ETH0.0008128128.32218656
Play184155232023-10-23 21:02:35491 days ago1698094955IN
0x80Ec2ade...C306ca25F
0 ETH0.0036908127.55452273
Play184154732023-10-23 20:52:35491 days ago1698094355IN
0x80Ec2ade...C306ca25F
0 ETH0.0022849129.73296646
Play184154242023-10-23 20:42:47491 days ago1698093767IN
0x80Ec2ade...C306ca25F
0 ETH0.0026810834.88810569
Play184154212023-10-23 20:42:11491 days ago1698093731IN
0x80Ec2ade...C306ca25F
0 ETH0.0026481134.45906654
Play184153782023-10-23 20:33:35491 days ago1698093215IN
0x80Ec2ade...C306ca25F
0 ETH0.0030571439.78166307
Play184153562023-10-23 20:29:11491 days ago1698092951IN
0x80Ec2ade...C306ca25F
0 ETH0.0034092144.36307608
Play184153132023-10-23 20:20:35491 days ago1698092435IN
0x80Ec2ade...C306ca25F
0 ETH0.0027719836.07098844
Play184152642023-10-23 20:10:47491 days ago1698091847IN
0x80Ec2ade...C306ca25F
0 ETH0.0027975338.82871863
Play184152632023-10-23 20:10:35491 days ago1698091835IN
0x80Ec2ade...C306ca25F
0 ETH0.0027909136.31730004
Play184152152023-10-23 20:00:47491 days ago1698091247IN
0x80Ec2ade...C306ca25F
0 ETH0.0031195740.59413268
Play184151662023-10-23 19:50:59491 days ago1698090659IN
0x80Ec2ade...C306ca25F
0 ETH0.0032203841.90585243
Play184151292023-10-23 19:43:35491 days ago1698090215IN
0x80Ec2ade...C306ca25F
0 ETH0.0029577138.48786245
Play184151282023-10-23 19:43:23491 days ago1698090203IN
0x80Ec2ade...C306ca25F
0 ETH0.0027422738.04010565
Play184150792023-10-23 19:33:35491 days ago1698089615IN
0x80Ec2ade...C306ca25F
0 ETH0.0028514237.10480391
Play184150312023-10-23 19:23:59491 days ago1698089039IN
0x80Ec2ade...C306ca25F
0 ETH0.0023986431.21282901
Play184149982023-10-23 19:17:23491 days ago1698088643IN
0x80Ec2ade...C306ca25F
0 ETH0.0024634432.05602994
Play184149982023-10-23 19:17:23491 days ago1698088643IN
0x80Ec2ade...C306ca25F
0 ETH0.0024634432.05602994
Play184149512023-10-23 19:07:59491 days ago1698088079IN
0x80Ec2ade...C306ca25F
0 ETH0.0024285533.70744047
Play184149132023-10-23 19:00:11491 days ago1698087611IN
0x80Ec2ade...C306ca25F
0 ETH0.0021810228.38096012
Play184149012023-10-23 18:57:35491 days ago1698087455IN
0x80Ec2ade...C306ca25F
0 ETH0.0021649230.03130866
Play184148532023-10-23 18:47:47491 days ago1698086867IN
0x80Ec2ade...C306ca25F
0 ETH0.0018746926.02004269
Play184148142023-10-23 18:39:59491 days ago1698086399IN
0x80Ec2ade...C306ca25F
0 ETH0.0016187522.46773878
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BLACKHOLEGAME

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-10-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

interface IERC20 {
    function allowance(address owner, address spender) external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

contract BLACKHOLEGAME {
    struct Round {
        uint32 isOpen;
        uint32 additionalTime;
        uint32 startTime;
        address lastPlayer;
        uint256 entryTokens;
    }

    Round[] public Rounds;

    uint256 public entryTokens;
    uint256 public additionalTime;

    address public owner;

    IERC20 public blackholeToken;

    event NewEntry(uint256 indexed roundNumber, address indexed account);

    event RoundEnded(uint256 indexed roundNumber, address indexed account, uint256 totalPot);

    event RoundSkipped(address indexed account, uint256 totalPot);

    event NewRound(uint256 roundNumber);
    
    event BLACKHOLE();

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    constructor () {
        owner = msg.sender;

        Rounds.push(Round(0, 100, 0, address(0xdead), 100 * 10 ** 18));
    }

    function play() external {
        require(msg.sender == tx.origin, "No bots allowed");

        uint256 roundNumber = Rounds.length - 1;
        Round storage round = Rounds[roundNumber];

        require(round.isOpen == 1, "Game has not started yet!");

        if (round.startTime + round.additionalTime > block.timestamp) {
            try blackholeToken.transferFrom(msg.sender, address(this), round.entryTokens) {
                round.startTime = uint32(block.timestamp);
                round.lastPlayer = msg.sender;

                emit NewEntry(roundNumber, msg.sender);
            }
            catch {
                revert("Please approve the usage of BLACKHOLE to the game contract to play and check if you have enough tokens");
            }
        }
        else {
            uint256 gameBalance = blackholeToken.balanceOf(address(this));

            blackholeToken.transfer(round.lastPlayer, gameBalance * 50 / 100);
            blackholeToken.transfer(address(0xdead), gameBalance * 20 / 100);

            emit RoundEnded(roundNumber, round.lastPlayer, gameBalance);

            Rounds.push(Round(1, uint32(additionalTime), uint32(block.timestamp), msg.sender, entryTokens));

            emit NewRound(roundNumber + 1);

            if (round.startTime + round.additionalTime + additionalTime < block.timestamp) {
                /*
                    this is the case when 2x additionalTime has passed since the end of the first round
                    meaning that while there was no tx to renew the round, the next round time has actually already passed
                    so the passed round will be skipped but the participant will receive some reward
                */

                gameBalance = blackholeToken.balanceOf(address(this));

                blackholeToken.transfer(msg.sender, gameBalance * 5 / 100);

                emit RoundSkipped(msg.sender, gameBalance);
            }
        }
    }

    function startTheGame() external onlyOwner {
        require(Rounds[0].isOpen == 0);
        Rounds[0].isOpen = 1;

        require(additionalTime > 0 && entryTokens > 0);
        Rounds[0].additionalTime = uint32(additionalTime);
        Rounds[0].startTime = uint32(block.timestamp);
        Rounds[0].entryTokens = entryTokens;

        require(blackholeToken.balanceOf(address(this)) > 0);

        emit BLACKHOLE();
    }

    function setBlackholeAddress(address blackholeAddress) external onlyOwner {
        require(address(blackholeToken) == address(0));

        blackholeToken = IERC20(blackholeAddress);
    }

    function changeNextRoundAdditionalTime(uint32 newAdditionalTime) external onlyOwner {
        require(newAdditionalTime <= 1 hours);

        additionalTime = newAdditionalTime;
    }

    function changeNextRoundEntryTokens(uint256 newEntryTokens) external onlyOwner {
        require(newEntryTokens <= 100);

        // apply 18 decimals here
        entryTokens = newEntryTokens * 10 ** 18;
    }

    //////////////////////////////////////////////////////////////////////////////////////
    // view functions for dapp //
    //////////////////////////////////////////////////////////////////////////////////////

    function getData() external view returns(Round memory, uint256, uint256, uint256, uint256) {
        uint256 roundNumber = Rounds.length - 1;
        Round memory round = Rounds[roundNumber];

        uint256 endTime = round.startTime + round.additionalTime;
        uint256 remainingTime;
        if (endTime > block.timestamp) {
            remainingTime = endTime - block.timestamp;
        }
        else {
            remainingTime = 0;
        }

        return (round, roundNumber, remainingTime, block.timestamp, blackholeToken.balanceOf(address(this)));
    }

    function getDataForAccount(address account) external view returns(Round memory, uint256, uint256, uint256, uint256, uint256, uint256) {
        uint256 roundNumber = Rounds.length - 1;
        Round memory round = Rounds[roundNumber];

        uint256 endTime = round.startTime + round.additionalTime;
        uint256 remainingTime;
        if (endTime > block.timestamp) {
            remainingTime = endTime - block.timestamp;
        }
        else {
            remainingTime = 0;
        }

        uint256 balance = blackholeToken.balanceOf(account);
        uint256 allowance = blackholeToken.allowance(account, address(this));

        return (round, roundNumber, remainingTime, block.timestamp, blackholeToken.balanceOf(address(this)), balance, allowance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"BLACKHOLE","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundNumber","type":"uint256"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"NewEntry","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"roundNumber","type":"uint256"}],"name":"NewRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundNumber","type":"uint256"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalPot","type":"uint256"}],"name":"RoundEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalPot","type":"uint256"}],"name":"RoundSkipped","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"Rounds","outputs":[{"internalType":"uint32","name":"isOpen","type":"uint32"},{"internalType":"uint32","name":"additionalTime","type":"uint32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"address","name":"lastPlayer","type":"address"},{"internalType":"uint256","name":"entryTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"additionalTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blackholeToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"newAdditionalTime","type":"uint32"}],"name":"changeNextRoundAdditionalTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newEntryTokens","type":"uint256"}],"name":"changeNextRoundEntryTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"entryTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getData","outputs":[{"components":[{"internalType":"uint32","name":"isOpen","type":"uint32"},{"internalType":"uint32","name":"additionalTime","type":"uint32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"address","name":"lastPlayer","type":"address"},{"internalType":"uint256","name":"entryTokens","type":"uint256"}],"internalType":"struct BLACKHOLEGAME.Round","name":"","type":"tuple"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDataForAccount","outputs":[{"components":[{"internalType":"uint32","name":"isOpen","type":"uint32"},{"internalType":"uint32","name":"additionalTime","type":"uint32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"address","name":"lastPlayer","type":"address"},{"internalType":"uint256","name":"entryTokens","type":"uint256"}],"internalType":"struct BLACKHOLEGAME.Round","name":"","type":"tuple"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"play","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"blackholeAddress","type":"address"}],"name":"setBlackholeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTheGame","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50600380546001600160a01b031916331790556040805160a081018252600080825260646020830190815292820181815261dead6060840190815268056bc75e2d63100000608085019081528354600181018555938052935160029093027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563810180549651935192516001600160a01b03166c01000000000000000000000000026001600160601b0363ffffffff9485166801000000000000000002166001600160401b03958516640100000000026001600160401b0319909916969094169590951796909617929092161791909117909255517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56490910155611765806101386000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063d3ed319511610081578063df1199481161005b578063df1199481461020a578063e6f356b214610213578063ec10fa4d1461023957600080fd5b8063d3ed319514610181578063d5df9d2314610194578063d6ecd40b146101f357600080fd5b806366c7ef3a116100b257806366c7ef3a146101515780638da5cb5b1461015957806393e84cd91461017957600080fd5b806310e879f8146100d95780631d800eb8146100ee5780633bc5de3014610138575b600080fd5b6100ec6100e736600461146a565b61024c565b005b60045461010e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610140610296565b60405161012f959493929190611483565b6100ec610454565b60035461010e9073ffffffffffffffffffffffffffffffffffffffff1681565b6100ec61069c565b6100ec61018f366004611502565b610ff0565b6101a76101a236600461146a565b61107e565b6040805163ffffffff96871681529486166020860152929094169183019190915273ffffffffffffffffffffffffffffffffffffffff166060820152608081019190915260a00161012f565b6101fc60015481565b60405190815260200161012f565b6101fc60025481565b610226610221366004611502565b6110f6565b60405161012f979695949392919061153f565b6100ec6102473660046115ce565b611426565b60035473ffffffffffffffffffffffffffffffffffffffff16331461027057600080fd5b606481111561027e57600080fd5b61029081670de0b6b3a7640000611623565b60015550565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080600080600060016000805490506102db9190611640565b905060008082815481106102f1576102f1611653565b600091825260208083206040805160a0810182526002909402909101805463ffffffff8082168652640100000000820481169486018590526801000000000000000082041692850183905273ffffffffffffffffffffffffffffffffffffffff6c0100000000000000000000000090910416606085015260010154608084015291935061037d91611682565b63ffffffff1690506000428211156103a0576103994283611640565b90506103a4565b5060005b600480546040517f70a082310000000000000000000000000000000000000000000000000000000081523092810192909252849186918491429173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043f91906116a6565b98509850985098509850505050509091929394565b60035473ffffffffffffffffffffffffffffffffffffffff16331461047857600080fd5b6000808154811061048b5761048b611653565b600091825260209091206002909102015463ffffffff16156104ac57600080fd5b6001600080815481106104c1576104c1611653565b6000918252602090912060029182020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9390931692909217909155541580159061051657506000600154115b61051f57600080fd5b6002546000808154811061053557610535611653565b906000526020600020906002020160000160046101000a81548163ffffffff021916908363ffffffff160217905550426000808154811061057857610578611653565b906000526020600020906002020160000160086101000a81548163ffffffff021916908363ffffffff160217905550600154600080815481106105bd576105bd611653565b6000918252602082206002919091020160010191909155600480546040517f70a08231000000000000000000000000000000000000000000000000000000008152309281019290925273ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066791906116a6565b1161067157600080fd5b6040517f1cd3a4accaa97860709e56da4e1a08ee49094d92b4bf0d647fbd4412f850f97590600090a1565b33321461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f20626f747320616c6c6f776564000000000000000000000000000000000060448201526064015b60405180910390fd5b6000805461071a90600190611640565b9050600080828154811061073057610730611653565b60009182526020909120600290910201805490915063ffffffff166001146107b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f47616d6520686173206e6f7420737461727465642079657421000000000000006044820152606401610701565b805442906107de9063ffffffff640100000000820481169168010000000000000000900416611682565b63ffffffff1611156109f1576004805460018301546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523393810193909352306024840152604483015273ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303816000875af19250505080156108a5575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526108a2918101906116bf565b60015b61097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152606660248201527f506c6561736520617070726f766520746865207573616765206f6620424c414360448201527f4b484f4c4520746f207468652067616d6520636f6e747261637420746f20706c60648201527f617920616e6420636865636b20696620796f75206861766520656e6f7567682060848201527f746f6b656e73000000000000000000000000000000000000000000000000000060a482015260c401610701565b50805467ffffffffffffffff16680100000000000000004263ffffffff16026bffffffffffffffffffffffff1617336c01000000000000000000000000810291909117825560405183907f27aebf2d00625942763ea97201ae129dc93f4192bb1c8921078c49d9b17cbd2090600090a35050565b600480546040517f70a08231000000000000000000000000000000000000000000000000000000008152309281019290925260009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8991906116a6565b600454835491925073ffffffffffffffffffffffffffffffffffffffff9081169163a9059cbb916c01000000000000000000000000909104166064610acf856032611623565b610ad991906116e1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015610b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6d91906116bf565b5060045473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead6064610b9c856014611623565b610ba691906116e1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906116bf565b5081546040518281526c0100000000000000000000000090910473ffffffffffffffffffffffffffffffffffffffff169084907f131b90b0b17f70b8bf8a6ae2fe2b36c8f64bffde76602ce01ec0a7dc2e3ba57d9060200160405180910390a36040805160a08101825260018082526002805463ffffffff90811660208501908152428216958501958652336060860190815284546080870190815260008054808801825590805296517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639790950296870180549351985192519585167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090941693909317640100000000988516989098029790971767ffffffffffffffff166801000000000000000091909316026bffffffffffffffffffffffff16919091176c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff9093169290920291909117905591517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564909101557fa2b5357eea32aeb35142ba36b087f9fe674f34f8b57ce94d30e9f4f572195bcf90610dff90859061171c565b60405190815260200160405180910390a16002548254429190610e3e9063ffffffff640100000000820481169168010000000000000000900416611682565b63ffffffff16610e4e919061171c565b1015610feb57600480546040517f70a08231000000000000000000000000000000000000000000000000000000008152309281019290925273ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee791906116a6565b60045490915073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336064610f16856005611623565b610f2091906116e1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015610f90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb491906116bf565b5060405181815233907fb3ea694e58061c5e628bbbea1a5059baf1e498a73f736acb9fef2833ba633ebb9060200160405180910390a25b505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331461101457600080fd5b60045473ffffffffffffffffffffffffffffffffffffffff161561103757600080fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000818154811061108e57600080fd5b60009182526020909120600290910201805460019091015463ffffffff80831693506401000000008304811692680100000000000000008104909116916c0100000000000000000000000090910473ffffffffffffffffffffffffffffffffffffffff169085565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526000806000806000806000600160008054905061113e9190611640565b9050600080828154811061115457611154611653565b600091825260208083206040805160a0810182526002909402909101805463ffffffff8082168652640100000000820481169486018590526801000000000000000082041692850183905273ffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000009091041660608501526001015460808401529193506111e091611682565b63ffffffff169050600042821115611203576111fc4283611640565b9050611207565b5060005b600480546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8f811693820193909352600092909116906370a0823190602401602060405180830381865afa15801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a191906116a6565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e8f306040518363ffffffff1660e01b815260040161132492919073ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b602060405180830381865afa158015611341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136591906116a6565b600480546040517f70a082310000000000000000000000000000000000000000000000000000000081523092810192909252919250869188918691429173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa1580156113e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140591906116a6565b86869c509c509c509c509c509c509c50505050505050919395979092949650565b60035473ffffffffffffffffffffffffffffffffffffffff16331461144a57600080fd5b610e108163ffffffff16111561145f57600080fd5b63ffffffff16600255565b60006020828403121561147c57600080fd5b5035919050565b61012081016114df828863ffffffff8082511683528060208301511660208401528060408301511660408401525073ffffffffffffffffffffffffffffffffffffffff6060820151166060830152608081015160808301525050565b8560a08301528460c08301528360e0830152826101008301529695505050505050565b60006020828403121561151457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461153857600080fd5b9392505050565b610160810161159b828a63ffffffff8082511683528060208301511660208401528060408301511660408401525073ffffffffffffffffffffffffffffffffffffffff6060820151166060830152608081015160808301525050565b8760a08301528660c08301528560e083015284610100830152836101208301528261014083015298975050505050505050565b6000602082840312156115e057600080fd5b813563ffffffff8116811461153857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761163a5761163a6115f4565b92915050565b8181038181111561163a5761163a6115f4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b63ffffffff81811683821601908082111561169f5761169f6115f4565b5092915050565b6000602082840312156116b857600080fd5b5051919050565b6000602082840312156116d157600080fd5b8151801515811461153857600080fd5b600082611717577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8082018082111561163a5761163a6115f456fea26469706673582212205a9cd9c5a1e75ec29056da211874b2233d8a54a9ba2a300292fcb42a60c047ef64736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063d3ed319511610081578063df1199481161005b578063df1199481461020a578063e6f356b214610213578063ec10fa4d1461023957600080fd5b8063d3ed319514610181578063d5df9d2314610194578063d6ecd40b146101f357600080fd5b806366c7ef3a116100b257806366c7ef3a146101515780638da5cb5b1461015957806393e84cd91461017957600080fd5b806310e879f8146100d95780631d800eb8146100ee5780633bc5de3014610138575b600080fd5b6100ec6100e736600461146a565b61024c565b005b60045461010e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610140610296565b60405161012f959493929190611483565b6100ec610454565b60035461010e9073ffffffffffffffffffffffffffffffffffffffff1681565b6100ec61069c565b6100ec61018f366004611502565b610ff0565b6101a76101a236600461146a565b61107e565b6040805163ffffffff96871681529486166020860152929094169183019190915273ffffffffffffffffffffffffffffffffffffffff166060820152608081019190915260a00161012f565b6101fc60015481565b60405190815260200161012f565b6101fc60025481565b610226610221366004611502565b6110f6565b60405161012f979695949392919061153f565b6100ec6102473660046115ce565b611426565b60035473ffffffffffffffffffffffffffffffffffffffff16331461027057600080fd5b606481111561027e57600080fd5b61029081670de0b6b3a7640000611623565b60015550565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080600080600060016000805490506102db9190611640565b905060008082815481106102f1576102f1611653565b600091825260208083206040805160a0810182526002909402909101805463ffffffff8082168652640100000000820481169486018590526801000000000000000082041692850183905273ffffffffffffffffffffffffffffffffffffffff6c0100000000000000000000000090910416606085015260010154608084015291935061037d91611682565b63ffffffff1690506000428211156103a0576103994283611640565b90506103a4565b5060005b600480546040517f70a082310000000000000000000000000000000000000000000000000000000081523092810192909252849186918491429173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043f91906116a6565b98509850985098509850505050509091929394565b60035473ffffffffffffffffffffffffffffffffffffffff16331461047857600080fd5b6000808154811061048b5761048b611653565b600091825260209091206002909102015463ffffffff16156104ac57600080fd5b6001600080815481106104c1576104c1611653565b6000918252602090912060029182020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9390931692909217909155541580159061051657506000600154115b61051f57600080fd5b6002546000808154811061053557610535611653565b906000526020600020906002020160000160046101000a81548163ffffffff021916908363ffffffff160217905550426000808154811061057857610578611653565b906000526020600020906002020160000160086101000a81548163ffffffff021916908363ffffffff160217905550600154600080815481106105bd576105bd611653565b6000918252602082206002919091020160010191909155600480546040517f70a08231000000000000000000000000000000000000000000000000000000008152309281019290925273ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066791906116a6565b1161067157600080fd5b6040517f1cd3a4accaa97860709e56da4e1a08ee49094d92b4bf0d647fbd4412f850f97590600090a1565b33321461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f20626f747320616c6c6f776564000000000000000000000000000000000060448201526064015b60405180910390fd5b6000805461071a90600190611640565b9050600080828154811061073057610730611653565b60009182526020909120600290910201805490915063ffffffff166001146107b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f47616d6520686173206e6f7420737461727465642079657421000000000000006044820152606401610701565b805442906107de9063ffffffff640100000000820481169168010000000000000000900416611682565b63ffffffff1611156109f1576004805460018301546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523393810193909352306024840152604483015273ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303816000875af19250505080156108a5575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526108a2918101906116bf565b60015b61097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152606660248201527f506c6561736520617070726f766520746865207573616765206f6620424c414360448201527f4b484f4c4520746f207468652067616d6520636f6e747261637420746f20706c60648201527f617920616e6420636865636b20696620796f75206861766520656e6f7567682060848201527f746f6b656e73000000000000000000000000000000000000000000000000000060a482015260c401610701565b50805467ffffffffffffffff16680100000000000000004263ffffffff16026bffffffffffffffffffffffff1617336c01000000000000000000000000810291909117825560405183907f27aebf2d00625942763ea97201ae129dc93f4192bb1c8921078c49d9b17cbd2090600090a35050565b600480546040517f70a08231000000000000000000000000000000000000000000000000000000008152309281019290925260009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8991906116a6565b600454835491925073ffffffffffffffffffffffffffffffffffffffff9081169163a9059cbb916c01000000000000000000000000909104166064610acf856032611623565b610ad991906116e1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015610b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6d91906116bf565b5060045473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead6064610b9c856014611623565b610ba691906116e1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906116bf565b5081546040518281526c0100000000000000000000000090910473ffffffffffffffffffffffffffffffffffffffff169084907f131b90b0b17f70b8bf8a6ae2fe2b36c8f64bffde76602ce01ec0a7dc2e3ba57d9060200160405180910390a36040805160a08101825260018082526002805463ffffffff90811660208501908152428216958501958652336060860190815284546080870190815260008054808801825590805296517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639790950296870180549351985192519585167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090941693909317640100000000988516989098029790971767ffffffffffffffff166801000000000000000091909316026bffffffffffffffffffffffff16919091176c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff9093169290920291909117905591517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564909101557fa2b5357eea32aeb35142ba36b087f9fe674f34f8b57ce94d30e9f4f572195bcf90610dff90859061171c565b60405190815260200160405180910390a16002548254429190610e3e9063ffffffff640100000000820481169168010000000000000000900416611682565b63ffffffff16610e4e919061171c565b1015610feb57600480546040517f70a08231000000000000000000000000000000000000000000000000000000008152309281019290925273ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee791906116a6565b60045490915073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336064610f16856005611623565b610f2091906116e1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015610f90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb491906116bf565b5060405181815233907fb3ea694e58061c5e628bbbea1a5059baf1e498a73f736acb9fef2833ba633ebb9060200160405180910390a25b505050565b60035473ffffffffffffffffffffffffffffffffffffffff16331461101457600080fd5b60045473ffffffffffffffffffffffffffffffffffffffff161561103757600080fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000818154811061108e57600080fd5b60009182526020909120600290910201805460019091015463ffffffff80831693506401000000008304811692680100000000000000008104909116916c0100000000000000000000000090910473ffffffffffffffffffffffffffffffffffffffff169085565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526000806000806000806000600160008054905061113e9190611640565b9050600080828154811061115457611154611653565b600091825260208083206040805160a0810182526002909402909101805463ffffffff8082168652640100000000820481169486018590526801000000000000000082041692850183905273ffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000009091041660608501526001015460808401529193506111e091611682565b63ffffffff169050600042821115611203576111fc4283611640565b9050611207565b5060005b600480546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8f811693820193909352600092909116906370a0823190602401602060405180830381865afa15801561127d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a191906116a6565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e8f306040518363ffffffff1660e01b815260040161132492919073ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b602060405180830381865afa158015611341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136591906116a6565b600480546040517f70a082310000000000000000000000000000000000000000000000000000000081523092810192909252919250869188918691429173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa1580156113e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140591906116a6565b86869c509c509c509c509c509c509c50505050505050919395979092949650565b60035473ffffffffffffffffffffffffffffffffffffffff16331461144a57600080fd5b610e108163ffffffff16111561145f57600080fd5b63ffffffff16600255565b60006020828403121561147c57600080fd5b5035919050565b61012081016114df828863ffffffff8082511683528060208301511660208401528060408301511660408401525073ffffffffffffffffffffffffffffffffffffffff6060820151166060830152608081015160808301525050565b8560a08301528460c08301528360e0830152826101008301529695505050505050565b60006020828403121561151457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461153857600080fd5b9392505050565b610160810161159b828a63ffffffff8082511683528060208301511660208401528060408301511660408401525073ffffffffffffffffffffffffffffffffffffffff6060820151166060830152608081015160808301525050565b8760a08301528660c08301528560e083015284610100830152836101208301528261014083015298975050505050505050565b6000602082840312156115e057600080fd5b813563ffffffff8116811461153857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761163a5761163a6115f4565b92915050565b8181038181111561163a5761163a6115f4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b63ffffffff81811683821601908082111561169f5761169f6115f4565b5092915050565b6000602082840312156116b857600080fd5b5051919050565b6000602082840312156116d157600080fd5b8151801515811461153857600080fd5b600082611717577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8082018082111561163a5761163a6115f456fea26469706673582212205a9cd9c5a1e75ec29056da211874b2233d8a54a9ba2a300292fcb42a60c047ef64736f6c63430008130033

Deployed Bytecode Sourcemap

437:5576:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4188:215;;;;;;:::i;:::-;;:::i;:::-;;768:28;;;;;;;;;;;;388:42:1;376:55;;;358:74;;346:2;331:18;768:28:0;;;;;;;;4632:582;;;:::i;:::-;;;;;;;;;;;:::i;3346:438::-;;;:::i;739:20::-;;;;;;;;;1346:1992;;;:::i;3792:193::-;;;;;;:::i;:::-;;:::i;638:21::-;;;;;;:::i;:::-;;:::i;:::-;;;;2205:10:1;2242:15;;;2224:34;;2294:15;;;2289:2;2274:18;;2267:43;2346:15;;;;2326:18;;;2319:43;;;;2410:42;2398:55;2393:2;2378:18;;2371:83;2485:3;2470:19;;2463:35;;;;2182:3;2167:19;638:21:0;1942:562:1;668:26:0;;;;;;;;;2655:25:1;;;2643:2;2628:18;668:26:0;2509:177:1;701:29:0;;;;;;5222:788;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;3993:187::-;;;;;;:::i;:::-;;:::i;4188:215::-;1177:5;;;;1163:10;:19;1155:28;;;;;;4304:3:::1;4286:14;:21;;4278:30;;;::::0;::::1;;4370:25;:14:::0;4387:8:::1;4370:25;:::i;:::-;4356:11;:39:::0;-1:-1:-1;4188:215:0:o;4632:582::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4687:7:0;4696;4705;4714;4734:19;4772:1;4756:6;:13;;;;:17;;;;:::i;:::-;4734:39;;4784:18;4805:6;4812:11;4805:19;;;;;;;;:::i;:::-;;;;;;;;;4784:40;;;;;;;;4805:19;;;;;;;4784:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4855:38:0;;;:::i;:::-;4837:56;;;;4904:21;4950:15;4940:7;:25;4936:158;;;4998:25;5008:15;4998:7;:25;:::i;:::-;4982:41;;4936:158;;;-1:-1:-1;5081:1:0;4936:158;5166:14;;;:39;;;;;5199:4;5166:39;;;358:74:1;;;;5114:5:0;;5121:11;;5134:13;;5149:15;;5166:14;;;:24;;331:18:1;;5166:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5106:100;;;;;;;;;;;;;;4632:582;;;;;:::o;3346:438::-;1177:5;;;;1163:10;:19;1155:28;;;;;;3408:6:::1;3415:1:::0;3408:9:::1;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:16:::0;::::1;;:21:::0;3400:30:::1;;;::::0;::::1;;3460:1;3441:6;3448:1:::0;3441:9:::1;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:20:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;3482:14;:18;;;;:37:::1;;;3518:1;3504:11;;:15;3482:37;3474:46;;;::::0;::::1;;3565:14;;3531:6;3538:1:::0;3531:9:::1;;;;;;;;:::i;:::-;;;;;;;;;;;:24;;;:49;;;;;;;;;;;;;;;;;;3620:15;3591:6;3598:1:::0;3591:9:::1;;;;;;;;:::i;:::-;;;;;;;;;;;:19;;;:45;;;;;;;;;;;;;;;;;;3671:11;;3647:6;3654:1:::0;3647:9:::1;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;;:21;;:35:::0;;;;3703:14:::1;::::0;;:39:::1;::::0;;;;3736:4:::1;3703:39:::0;;::::1;358:74:1::0;;;;3703:14:0::1;;::::0;:24:::1;::::0;331:18:1;;3703:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;3695:52;;;::::0;::::1;;3765:11;::::0;::::1;::::0;;;::::1;3346:438::o:0;1346:1992::-;1390:10;1404:9;1390:23;1382:51;;;;;;;4898:2:1;1382:51:0;;;4880:21:1;4937:2;4917:18;;;4910:30;4976:17;4956:18;;;4949:45;5011:18;;1382:51:0;;;;;;;;;1446:19;1468:13;;:17;;1484:1;;1468:17;:::i;:::-;1446:39;;1496:19;1518:6;1525:11;1518:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;1558:12;;1518:19;;-1:-1:-1;1558:12:0;;;:17;1550:55;;;;;;;5242:2:1;1550:55:0;;;5224:21:1;5281:2;5261:18;;;5254:30;5320:27;5300:18;;;5293:55;5365:18;;1550:55:0;5040:349:1;1550:55:0;1640:20;;1663:15;;1622:38;;1640:20;;;;;;;1622:15;;;;:38;:::i;:::-;:56;;;1618:1713;;;1699:14;;;;1754:17;;;1699:73;;;;;1727:10;1699:73;;;5657:34:1;;;;1747:4:0;5707:18:1;;;5700:43;5759:18;;;5752:34;1699:14:0;;;:27;;5569:18:1;;1699:73:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;1699:73:0;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1695:428;;1995:112;;;;;6281:2:1;1995:112:0;;;6263:21:1;6320:3;6300:18;;;6293:31;6360:34;6340:18;;;6333:62;6431:34;6411:18;;;6404:62;6503:34;6482:19;;;6475:63;6575:8;6554:19;;;6547:37;6601:19;;1995:112:0;6079:547:1;1695:428:0;-1:-1:-1;1792:41:0;;1852:29;;1792:41;1817:15;1792:41;;;1852:29;;;1871:10;1852:29;;;;;;;;;1907:33;;1916:11;;1907:33;;-1:-1:-1;;1907:33:0;1371:1967;;1346:1992::o;1618:1713::-;2186:14;;;:39;;;;;2219:4;2186:39;;;358:74:1;;;;2164:19:0;;2186:14;;;;;:24;;331:18:1;;2186:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2242:14;;2266:16;;2164:61;;-1:-1:-1;2242:14:0;;;;;:23;;2266:16;;;;;2303:3;2284:16;2164:61;2298:2;2284:16;:::i;:::-;:22;;;;:::i;:::-;2242:65;;;;;;;;;;7114:42:1;7102:55;;;2242:65:0;;;7084:74:1;7174:18;;;7167:34;7057:18;;2242:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2322:14:0;;;;:23;2354:6;2382:3;2363:16;:11;2377:2;2363:16;:::i;:::-;:22;;;;:::i;:::-;2322:64;;;;;;;;;;7114:42:1;7102:55;;;2322:64:0;;;7084:74:1;7174:18;;;7167:34;7057:18;;2322:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2432:16:0;;2408:54;;2655:25:1;;;2432:16:0;;;;;;;2419:11;;2408:54;;2643:2:1;2628:18;2408:54:0;;;;;;;2491:82;;;;;;;;2497:1;2491:82;;;2507:14;;;2491:82;;;;;;;;;;2531:15;2491:82;;;;;;;;2549:10;2491:82;;;;;;2561:11;;2491:82;;;;;;-1:-1:-1;2479:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2491:82;2479:95;;;;;;;;;;;;;;;;;;;;2596:25;;2605:15;;:11;;:15;:::i;:::-;2596:25;;2655::1;;;2643:2;2628:18;2596:25:0;;;;;;;2683:14;;2660:20;;2700:15;;2683:14;2642:38;;2660:20;;;;;;;2642:15;;;;:38;:::i;:::-;:55;;;;;;:::i;:::-;:73;2638:682;;;3123:14;;;:39;;;;;3156:4;3123:39;;;358:74:1;;;;3123:14:0;;;:24;;331:18:1;;3123:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3183:14;;3109:53;;-1:-1:-1;3183:14:0;;:23;3207:10;3237:3;3219:15;3109:53;3233:1;3219:15;:::i;:::-;:21;;;;:::i;:::-;3183:58;;;;;;;;;;7114:42:1;7102:55;;;3183:58:0;;;7084:74:1;7174:18;;;7167:34;7057:18;;3183:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3267:37:0;;2655:25:1;;;3280:10:0;;3267:37;;2643:2:1;2628:18;3267:37:0;;;;;;;2638:682;2149:1182;1371:1967;;1346:1992::o;3792:193::-;1177:5;;;;1163:10;:19;1155:28;;;;;;3893:14:::1;::::0;3885:37:::1;3893:14;3885:37:::0;3877:46:::1;;;::::0;::::1;;3936:14;:41:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;3792:193::o;638:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;638:21:0;;;;;;;;;;;;;;;;;;;;;:::o;5222:788::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5302:7:0;5311;5320;5329;5338;5347;5367:19;5405:1;5389:6;:13;;;;:17;;;;:::i;:::-;5367:39;;5417:18;5438:6;5445:11;5438:19;;;;;;;;:::i;:::-;;;;;;;;;5417:40;;;;;;;;5438:19;;;;;;;5417:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5488:38:0;;;:::i;:::-;5470:56;;;;5537:21;5583:15;5573:7;:25;5569:158;;;5631:25;5641:15;5631:7;:25;:::i;:::-;5615:41;;5569:158;;;-1:-1:-1;5714:1:0;5569:158;5757:14;;;:33;;;;;:14;376:55:1;;;5757:33:0;;;358:74:1;;;;5739:15:0;;5757:14;;;;:24;;331:18:1;;5757:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5739:51;;5801:17;5821:14;;;;;;;;;;;:24;;;5846:7;5863:4;5821:48;;;;;;;;;;;;;;;7526:42:1;7595:15;;;7577:34;;7647:15;;7642:2;7627:18;;7620:43;7504:2;7489:18;;7342:327;5821:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5942:14;;;:39;;;;;5975:4;5942:39;;;358:74:1;;;;5801:68:0;;-1:-1:-1;5890:5:0;;5897:11;;5910:13;;5925:15;;5942:14;;;;;:24;;331:18:1;;5942:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5983:7;5992:9;5882:120;;;;;;;;;;;;;;;;;;;;5222:788;;;;;;;;;:::o;3993:187::-;1177:5;;;;1163:10;:19;1155:28;;;;;;4117:7:::1;4096:17;:28;;;;4088:37;;;::::0;::::1;;4138:34;;:14;:34:::0;3993:187::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;867:525::-;1155:3;1140:19;;1168:42;1144:9;1192:6;512:10;561:2;553:5;547:12;543:21;538:3;531:34;626:2;618:4;611:5;607:16;601:23;597:32;590:4;585:3;581:14;574:56;691:2;683:4;676:5;672:16;666:23;662:32;655:4;650:3;646:14;639:56;;756:42;748:4;741:5;737:16;731:23;727:72;720:4;715:3;711:14;704:96;849:4;842:5;838:16;832:23;825:4;820:3;816:14;809:47;443:419;;;1168:42;1247:6;1241:3;1230:9;1226:19;1219:35;1291:6;1285:3;1274:9;1270:19;1263:35;1335:6;1329:3;1318:9;1314:19;1307:35;1379:6;1373:3;1362:9;1358:19;1351:35;867:525;;;;;;;;:::o;1628:309::-;1687:6;1740:2;1728:9;1719:7;1715:23;1711:32;1708:52;;;1756:1;1753;1746:12;1708:52;1795:9;1782:23;1845:42;1838:5;1834:54;1827:5;1824:65;1814:93;;1903:1;1900;1893:12;1814:93;1926:5;1628:309;-1:-1:-1;;;1628:309:1:o;2691:669::-;3035:3;3020:19;;3048:42;3024:9;3072:6;512:10;561:2;553:5;547:12;543:21;538:3;531:34;626:2;618:4;611:5;607:16;601:23;597:32;590:4;585:3;581:14;574:56;691:2;683:4;676:5;672:16;666:23;662:32;655:4;650:3;646:14;639:56;;756:42;748:4;741:5;737:16;731:23;727:72;720:4;715:3;711:14;704:96;849:4;842:5;838:16;832:23;825:4;820:3;816:14;809:47;443:419;;;3048:42;3127:6;3121:3;3110:9;3106:19;3099:35;3171:6;3165:3;3154:9;3150:19;3143:35;3215:6;3209:3;3198:9;3194:19;3187:35;3259:6;3253:3;3242:9;3238:19;3231:35;3303:6;3297:3;3286:9;3282:19;3275:35;3347:6;3341:3;3330:9;3326:19;3319:35;2691:669;;;;;;;;;;:::o;3365:276::-;3423:6;3476:2;3464:9;3455:7;3451:23;3447:32;3444:52;;;3492:1;3489;3482:12;3444:52;3531:9;3518:23;3581:10;3574:5;3570:22;3563:5;3560:33;3550:61;;3607:1;3604;3597:12;3646:184;3698:77;3695:1;3688:88;3795:4;3792:1;3785:15;3819:4;3816:1;3809:15;3835:168;3908:9;;;3939;;3956:15;;;3950:22;;3936:37;3926:71;;3977:18;;:::i;:::-;3835:168;;;;:::o;4008:128::-;4075:9;;;4096:11;;;4093:37;;;4110:18;;:::i;4141:184::-;4193:77;4190:1;4183:88;4290:4;4287:1;4280:15;4314:4;4311:1;4304:15;4330:172;4397:10;4427;;;4439;;;4423:27;;4462:11;;;4459:37;;;4476:18;;:::i;:::-;4459:37;4330:172;;;;:::o;4507:184::-;4577:6;4630:2;4618:9;4609:7;4605:23;4601:32;4598:52;;;4646:1;4643;4636:12;4598:52;-1:-1:-1;4669:16:1;;4507:184;-1:-1:-1;4507:184:1:o;5797:277::-;5864:6;5917:2;5905:9;5896:7;5892:23;5888:32;5885:52;;;5933:1;5930;5923:12;5885:52;5965:9;5959:16;6018:5;6011:13;6004:21;5997:5;5994:32;5984:60;;6040:1;6037;6030:12;6631:274;6671:1;6697;6687:189;;6732:77;6729:1;6722:88;6833:4;6830:1;6823:15;6861:4;6858:1;6851:15;6687:189;-1:-1:-1;6890:9:1;;6631:274::o;7212:125::-;7277:9;;;7298:10;;;7295:36;;;7311:18;;:::i

Swarm Source

ipfs://5a9cd9c5a1e75ec29056da211874b2233d8a54a9ba2a300292fcb42a60c047ef

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.