ETH Price: $2,819.36 (-9.54%)
 

Overview

ETH Balance

0.311823529411764707 ETH

Eth Value

$879.14 (@ $2,819.36/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Payout141126132022-01-31 8:35:301098 days ago1643618130IN
0xa51594Ba...EB4fC0394
0 ETH0.0030365371.25000944
Claim Payout140891082022-01-27 17:40:391102 days ago1643305239IN
0xa51594Ba...EB4fC0394
0 ETH0.01081177253.69034455
Claim Payout140414392022-01-20 8:53:281109 days ago1642668808IN
0xa51594Ba...EB4fC0394
0 ETH0.0079759483.88575695
Reveal140411402022-01-20 7:47:511109 days ago1642664871IN
0xa51594Ba...EB4fC0394
0 ETH0.0053918893.72470942
Reveal140406632022-01-20 5:55:571109 days ago1642658157IN
0xa51594Ba...EB4fC0394
0 ETH0.00652203113.26508633
Reveal140406532022-01-20 5:53:041109 days ago1642657984IN
0xa51594Ba...EB4fC0394
0 ETH0.0054488394.6274112
Reveal140405942022-01-20 5:41:121109 days ago1642657272IN
0xa51594Ba...EB4fC0394
0 ETH0.00710926123.57704357
Reveal140405422022-01-20 5:30:031109 days ago1642656603IN
0xa51594Ba...EB4fC0394
0 ETH0.0057514499.97470312
Reveal140159672022-01-16 10:25:161113 days ago1642328716IN
0xa51594Ba...EB4fC0394
0 ETH0.00701051121.74832298
Reveal140145602022-01-16 5:20:201113 days ago1642310420IN
0xa51594Ba...EB4fC0394
0 ETH0.00699067121.51564529
Reveal140143532022-01-16 4:27:501113 days ago1642307270IN
0xa51594Ba...EB4fC0394
0 ETH0.005117788.87684248
Reveal140098922022-01-15 12:01:301114 days ago1642248090IN
0xa51594Ba...EB4fC0394
0 ETH0.00619677107.71568601
Reveal140090252022-01-15 8:42:511114 days ago1642236171IN
0xa51594Ba...EB4fC0394
0 ETH0.00859685115.11286269
Reveal140089212022-01-15 8:17:441114 days ago1642234664IN
0xa51594Ba...EB4fC0394
0 ETH0.00905538121.33863576
Cast Hidden Vote140085592022-01-15 6:49:251114 days ago1642229365IN
0xa51594Ba...EB4fC0394
0.05 ETH0.00833795117.86256601
Cast Hidden Vote140083322022-01-15 5:58:281114 days ago1642226308IN
0xa51594Ba...EB4fC0394
0.05 ETH0.00845876119.57037872
Cast Hidden Vote140050162022-01-14 17:36:431115 days ago1642181803IN
0xa51594Ba...EB4fC0394
0.05 ETH0.01563342220.98902016
Cast Hidden Vote140036532022-01-14 12:36:501115 days ago1642163810IN
0xa51594Ba...EB4fC0394
0.01 ETH0.00719411101.69370978
Cast Hidden Vote140015272022-01-14 4:33:471115 days ago1642134827IN
0xa51594Ba...EB4fC0394
0.01 ETH0.01096471154.99359821
Cast Hidden Vote139852312022-01-11 16:09:191118 days ago1641917359IN
0xa51594Ba...EB4fC0394
0.02 ETH0.0168759238.59282543
Cast Hidden Vote139759882022-01-10 5:50:151119 days ago1641793815IN
0xa51594Ba...EB4fC0394
0.05 ETH0.0068158896.34716994
Cast Hidden Vote139740962022-01-09 22:45:521120 days ago1641768352IN
0xa51594Ba...EB4fC0394
0.02 ETH0.0116725164.99874062
Cast Hidden Vote139707022022-01-09 10:07:141120 days ago1641722834IN
0xa51594Ba...EB4fC0394
0.05 ETH0.01327401187.66901417
Cast Hidden Vote139705612022-01-09 9:31:181120 days ago1641720678IN
0xa51594Ba...EB4fC0394
0.03 ETH0.00744374105.22235425
Cast Hidden Vote139705582022-01-09 9:30:491120 days ago1641720649IN
0xa51594Ba...EB4fC0394
0.03 ETH0.00752459106.36528677
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
141126132022-01-31 8:35:301098 days ago1643618130
0xa51594Ba...EB4fC0394
0.05197058 ETH
140891082022-01-27 17:40:391102 days ago1643305239
0xa51594Ba...EB4fC0394
0.25985294 ETH
140414392022-01-20 8:53:281109 days ago1642668808
0xa51594Ba...EB4fC0394
0.25985294 ETH
140414392022-01-20 8:53:281109 days ago1642668808
0xa51594Ba...EB4fC0394
0.0465 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AvsBGame

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2022-01-06
*/

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.11;

/// @title AvsBGame
/// @notice A Liar's Game: Vote by putting ETH behind A or B ... the side with the least votes gets all the ETH
/// @author AvsB Team
/// @dev Built using a Commit-Reveal scheme
contract AvsBGame {
    /// ============ Types ============

    // Possible votes (and Hidden before votes are revealed)
    enum Choice {
        Hidden,
        A,
        B
    }

    // A cryptographic committment to a certain vote
    struct VoteCommit {
        bytes32 commitment;
        uint256 amount;
        Choice choice;
    }

    /// ============ Immutable storage ============

    uint256 public immutable voteDeadline = 1642233600; // Vote phase ends Jan 15, 2022
    uint256 public immutable revealDeadline = 1642665600; // Reveal phase ends Jan 20, 2022
    uint256 public immutable minVoteIncrement = 1e16; // 0.01 ETH
    uint256 public immutable maxVoteAmount = 1e18; // 1 ETH
    uint256 public immutable fee = 20; // 5% fee (1/20th), paid out at reveal
    address public immutable feeAddress =
        0x7B91649D893B2e4Feef78b6891dE383d5a8491eE;

    /// ============ Mutable storage ============

    // Tracks vote commitments
    mapping(address => VoteCommit) public votes;

    // Tracks revealed votes, updated every reveal
    // We need to track these because some votes may remain unrevealed
    uint256 public revealedA = 0;
    uint256 public revealedB = 0;

    // Stores total prize pool (only updated during payout phase)
    uint256 public prizePool = 0;

    /// ============ Events ============

    event Vote(address indexed player, uint256 amount);
    event Reveal(address indexed player, Choice choice);
    event Payout(address indexed player, uint256 amount);

    constructor() {}

    /// ============ Functions ============

    /// @notice Cast a vote without revealing the vote by posting a commitment
    /// @param commitment Commitment to A or B, by commit-reveal scheme
    function castHiddenVote(bytes32 commitment) external payable {
        // Ensure vote is placed before vote deadline
        require(
            block.timestamp <= voteDeadline,
            "Cannot vote past vote deadline."
        );

        // Ensure vote is greater than and a multiple of min vote increment
        require(
            (msg.value >= minVoteIncrement) &&
                (msg.value % minVoteIncrement == 0),
            "Vote value must be greater than and multiple of min vote amount."
        );

        // Ensure vote is less than max vote amount
        require(
            msg.value <= maxVoteAmount,
            "Vote value must be less than max vote amount."
        );

        // Ensure player has not voted before
        require(votes[msg.sender].amount == 0, "Cannot vote twice.");

        // Store the commitment for the commit-reveal scheme
        votes[msg.sender] = VoteCommit(commitment, msg.value, Choice.Hidden);

        // Emit Vote event
        emit Vote(msg.sender, msg.value);
    }

    /// @notice Reveal a vote that was previously commited to
    /// @param choice Choice that is being revealed by sender
    /// @param blindingFactor Salt used by the voter in their previous vote commitment
    function reveal(Choice choice, bytes32 blindingFactor) external {
        // Ensure reveal is before reveal deadline ("early" reveals during voting period are technically permitted)
        require(
            block.timestamp <= revealDeadline,
            "Cannot reveal past reveal deadline."
        );

        // Ensure reveal is either for choice A or B
        require(
            (choice == Choice.A) || (choice == Choice.B),
            "Invalid choice, must reveal A or B."
        );

        // Ensure sender has voted
        require(
            (votes[msg.sender].amount >= minVoteIncrement) &&
                (votes[msg.sender].amount <= maxVoteAmount),
            "Cannot reveal before voting."
        );

        // Ensure sender has not already revealed
        require(
            votes[msg.sender].choice == Choice.Hidden,
            "Cannot reveal more than once."
        );

        // Check hash and reveal if correct
        VoteCommit storage vote = votes[msg.sender];
        require(
            keccak256(abi.encodePacked(msg.sender, choice, blindingFactor)) ==
                vote.commitment,
            "Invalid reveal, hash does not match committment."
        );
        vote.choice = choice;

        // Update revealed vote counts
        if (choice == Choice.A) {
            revealedA += vote.amount;
        } else {
            revealedB += vote.amount;
        }

        // Emit reveal event
        emit Reveal(msg.sender, choice);
    }

    /// @notice Claim payout at game end
    function claimPayout() external {
        // Ensure reveal deadline has passed before claiming payout
        require(
            block.timestamp > revealDeadline,
            "Cannot claim payout before reveal deadline has passed."
        );

        // Ensure that sender has revealed a vote
        VoteCommit memory senderVote = votes[msg.sender];
        require(
            (senderVote.choice == Choice.A) || (senderVote.choice == Choice.B),
            "Cannot claim payout without revealed vote."
        );

        // Get winner
        // If first time being called, take founder fee and set prizePool
        // If a tie, winner is returned as Choice.Hidden
        Choice winner = getWinner();

        // Require that sender is winner to claim funds
        require(
            (senderVote.choice == winner) || (winner == Choice.Hidden),
            "Cannot claim payout since did not win game."
        );

        // Calc share of winnings
        uint256 denominator;
        if (winner == Choice.A) {
            denominator = revealedA;
        } else if (winner == Choice.B) {
            denominator = revealedB;
        } else {
            // Everybody wins
            require(winner == Choice.Hidden, "Invalid winner.");
            denominator = revealedA + revealedB;
        }
        uint256 winnings = (prizePool * senderVote.amount) / denominator;

        // Remove vote data to prevent double claim
        delete votes[msg.sender];

        // Transfer funds
        payable(msg.sender).transfer(winnings);

        // Emit payout event
        emit Payout(msg.sender, winnings);
    }

    /// @notice Returns winner, if first time pays founder's fee and sets prizePool
    function getWinner() private returns (Choice) {
        // Collect founder's fee if first time
        if (prizePool == 0) {
            collectFee();
            // Set prize pool to be remaining funds in the contract
            prizePool = address(this).balance;
        }

        // Choose winner
        // In case one side did not reveal any votes, the other side wins
        // One side must have revealed votes as required in claimPayout
        if (revealedA == 0) {
            return Choice.B;
        } else if (revealedB == 0) {
            return Choice.A;
        } else if (revealedA < revealedB) {
            return Choice.A;
        } else if (revealedB < revealedA) {
            return Choice.B;
        } else {
            // Tie
            return Choice.Hidden;
        }
    }

    /// @notice Collects the founder's fee, is only be called once
    function collectFee() private {
        // Collect fee
        uint256 feeAmount = address(this).balance / fee;
        payable(feeAddress).transfer(feeAmount);

        // Emit payout event
        emit Payout(feeAddress, feeAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"enum AvsBGame.Choice","name":"choice","type":"uint8"}],"name":"Reveal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Vote","type":"event"},{"inputs":[{"internalType":"bytes32","name":"commitment","type":"bytes32"}],"name":"castHiddenVote","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxVoteAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minVoteIncrement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prizePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum AvsBGame.Choice","name":"choice","type":"uint8"},{"internalType":"bytes32","name":"blindingFactor","type":"bytes32"}],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revealedA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revealedB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"votes","outputs":[{"internalType":"bytes32","name":"commitment","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum AvsBGame.Choice","name":"choice","type":"uint8"}],"stateMutability":"view","type":"function"}]

6101406040526361e27f006080908152506361e9168060a090815250662386f26fc1000060c090815250670de0b6b3a764000060e090815250601461010090815250737b91649d893b2e4feef78b6891de383d5a8491ee73ffffffffffffffffffffffffffffffffffffffff166101209073ffffffffffffffffffffffffffffffffffffffff168152506000600155600060025560006003553480156100a457600080fd5b5060805160a05160c05160e0516101005161012051611ce0610141600039600081816107430152818161103d01526110a401526000818161083a015261100f01526000818161044b015281816107df0152610da60152600081816103df0152818161079701528181610d0c0152610d390152600081816102e7015281816107bb015261085e0152600081816107730152610ca90152611ce06000f3fe6080604052600436106100c25760003560e01c8063b14b28a31161007f578063ddca3f4311610059578063ddca3f431461025c578063e88499a914610287578063e9f82d991461029e578063f6c881b7146102ba576100c2565b8063b14b28a3146101c7578063b4fe0715146101f2578063d8bff5a51461021d576100c2565b80633fc8ae06146100c757806341275358146100f057806344d1310c1461011b578063719ce73e1461014657806383ca5a5b146101715780639ce4fc091461019c575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611173565b6102e5565b005b3480156100fc57600080fd5b50610105610741565b60405161011291906111f4565b60405180910390f35b34801561012757600080fd5b50610130610765565b60405161013d9190611228565b60405180910390f35b34801561015257600080fd5b5061015b61076b565b6040516101689190611228565b60405180910390f35b34801561017d57600080fd5b50610186610771565b6040516101939190611228565b60405180910390f35b3480156101a857600080fd5b506101b1610795565b6040516101be9190611228565b60405180910390f35b3480156101d357600080fd5b506101dc6107b9565b6040516101e99190611228565b60405180910390f35b3480156101fe57600080fd5b506102076107dd565b6040516102149190611228565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f919061126f565b610801565b60405161025393929190611322565b60405180910390f35b34801561026857600080fd5b50610271610838565b60405161027e9190611228565b60405180910390f35b34801561029357600080fd5b5061029c61085c565b005b6102b860048036038101906102b39190611359565b610ca7565b005b3480156102c657600080fd5b506102cf610f8f565b6040516102dc9190611228565b60405180910390f35b7f0000000000000000000000000000000000000000000000000000000000000000421115610348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033f90611409565b60405180910390fd5b6001600281111561035c5761035b6112ab565b5b82600281111561036f5761036e6112ab565b5b148061039e5750600280811115610389576103886112ab565b5b82600281111561039c5761039b6112ab565b5b145b6103dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d49061149b565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154101580156104af57507f00000000000000000000000000000000000000000000000000000000000000006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411155b6104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e590611507565b60405180910390fd5b60006002811115610502576105016112ab565b5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff166002811115610563576105626112ab565b5b146105a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059a90611573565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001543384846040516020016105ff93929190611632565b6040516020818303038152906040528051906020012014610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c906116e1565b60405180910390fd5b828160020160006101000a81548160ff0219169083600281111561067c5761067b6112ab565b5b021790555060016002811115610695576106946112ab565b5b8360028111156106a8576106a76112ab565b5b14156106d0578060010154600160008282546106c49190611730565b925050819055506106ee565b8060010154600260008282546106e69190611730565b925050819055505b3373ffffffffffffffffffffffffffffffffffffffff167f79a7276ba83fef4fe13f88df855c8420d094de7d84d1d4a3bc10554a841bd80b846040516107349190611786565b60405180910390a2505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16905083565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000042116108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590611813565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff166002811115610942576109416112ab565b5b6002811115610954576109536112ab565b5b8152505090506001600281111561096e5761096d6112ab565b5b81604001516002811115610985576109846112ab565b5b14806109b8575060028081111561099f5761099e6112ab565b5b816040015160028111156109b6576109b56112ab565b5b145b6109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee906118a5565b60405180910390fd5b6000610a01610f95565b9050806002811115610a1657610a156112ab565b5b82604001516002811115610a2d57610a2c6112ab565b5b1480610a5d575060006002811115610a4857610a476112ab565b5b816002811115610a5b57610a5a6112ab565b5b145b610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9390611937565b60405180910390fd5b600060016002811115610ab257610ab16112ab565b5b826002811115610ac557610ac46112ab565b5b1415610ad5576001549050610b86565b600280811115610ae857610ae76112ab565b5b826002811115610afb57610afa6112ab565b5b1415610b0b576002549050610b85565b60006002811115610b1f57610b1e6112ab565b5b826002811115610b3257610b316112ab565b5b14610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b69906119a3565b60405180910390fd5b600254600154610b829190611730565b90505b5b6000818460200151600354610b9b91906119c3565b610ba59190611a4c565b90506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff021916905550503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c52573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a682604051610c999190611228565b60405180910390a250505050565b7f0000000000000000000000000000000000000000000000000000000000000000421115610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611ac9565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003410158015610d65575060007f000000000000000000000000000000000000000000000000000000000000000034610d639190611ae9565b145b610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90611b8c565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000341115610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90611c1e565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290611c8a565b60405180910390fd5b604051806060016040528082815260200134815260200160006002811115610eb657610eb56112ab565b5b8152506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836002811115610f3657610f356112ab565b5b02179055509050503373ffffffffffffffffffffffffffffffffffffffff167ff668ead05c744b9178e571d2edb452e72baf6529c8d72160e64e59b50d865bd034604051610f849190611228565b60405180910390a250565b60015481565b6000806003541415610fb157610fa961100b565b476003819055505b60006001541415610fc55760029050611008565b60006002541415610fd95760019050611008565b6002546001541015610fee5760019050611008565b60015460025410156110035760029050611008565b600090505b90565b60007f0000000000000000000000000000000000000000000000000000000000000000476110399190611a4c565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110a1573d6000803e3d6000fd5b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6826040516111089190611228565b60405180910390a250565b600080fd5b6003811061112557600080fd5b50565b60008135905061113781611118565b92915050565b6000819050919050565b6111508161113d565b811461115b57600080fd5b50565b60008135905061116d81611147565b92915050565b6000806040838503121561118a57611189611113565b5b600061119885828601611128565b92505060206111a98582860161115e565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111de826111b3565b9050919050565b6111ee816111d3565b82525050565b600060208201905061120960008301846111e5565b92915050565b6000819050919050565b6112228161120f565b82525050565b600060208201905061123d6000830184611219565b92915050565b61124c816111d3565b811461125757600080fd5b50565b60008135905061126981611243565b92915050565b60006020828403121561128557611284611113565b5b60006112938482850161125a565b91505092915050565b6112a58161113d565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106112eb576112ea6112ab565b5b50565b60008190506112fc826112da565b919050565b600061130c826112ee565b9050919050565b61131c81611301565b82525050565b6000606082019050611337600083018661129c565b6113446020830185611219565b6113516040830184611313565b949350505050565b60006020828403121561136f5761136e611113565b5b600061137d8482850161115e565b91505092915050565b600082825260208201905092915050565b7f43616e6e6f742072657665616c20706173742072657665616c20646561646c6960008201527f6e652e0000000000000000000000000000000000000000000000000000000000602082015250565b60006113f3602383611386565b91506113fe82611397565b604082019050919050565b60006020820190508181036000830152611422816113e6565b9050919050565b7f496e76616c69642063686f6963652c206d7573742072657665616c2041206f7260008201527f20422e0000000000000000000000000000000000000000000000000000000000602082015250565b6000611485602383611386565b915061149082611429565b604082019050919050565b600060208201905081810360008301526114b481611478565b9050919050565b7f43616e6e6f742072657665616c206265666f726520766f74696e672e00000000600082015250565b60006114f1601c83611386565b91506114fc826114bb565b602082019050919050565b60006020820190508181036000830152611520816114e4565b9050919050565b7f43616e6e6f742072657665616c206d6f7265207468616e206f6e63652e000000600082015250565b600061155d601d83611386565b915061156882611527565b602082019050919050565b6000602082019050818103600083015261158c81611550565b9050919050565b60008160601b9050919050565b60006115ab82611593565b9050919050565b60006115bd826115a0565b9050919050565b6115d56115d0826111d3565b6115b2565b82525050565b60008160f81b9050919050565b60006115f3826115db565b9050919050565b61160b61160682611301565b6115e8565b82525050565b6000819050919050565b61162c6116278261113d565b611611565b82525050565b600061163e82866115c4565b60148201915061164e82856115fa565b60018201915061165e828461161b565b602082019150819050949350505050565b7f496e76616c69642072657665616c2c206861736820646f6573206e6f74206d6160008201527f74636820636f6d6d6974746d656e742e00000000000000000000000000000000602082015250565b60006116cb603083611386565b91506116d68261166f565b604082019050919050565b600060208201905081810360008301526116fa816116be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061173b8261120f565b91506117468361120f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561177b5761177a611701565b5b828201905092915050565b600060208201905061179b6000830184611313565b92915050565b7f43616e6e6f7420636c61696d207061796f7574206265666f726520726576656160008201527f6c20646561646c696e6520686173207061737365642e00000000000000000000602082015250565b60006117fd603683611386565b9150611808826117a1565b604082019050919050565b6000602082019050818103600083015261182c816117f0565b9050919050565b7f43616e6e6f7420636c61696d207061796f757420776974686f7574207265766560008201527f616c656420766f74652e00000000000000000000000000000000000000000000602082015250565b600061188f602a83611386565b915061189a82611833565b604082019050919050565b600060208201905081810360008301526118be81611882565b9050919050565b7f43616e6e6f7420636c61696d207061796f75742073696e636520646964206e6f60008201527f742077696e2067616d652e000000000000000000000000000000000000000000602082015250565b6000611921602b83611386565b915061192c826118c5565b604082019050919050565b6000602082019050818103600083015261195081611914565b9050919050565b7f496e76616c69642077696e6e65722e0000000000000000000000000000000000600082015250565b600061198d600f83611386565b915061199882611957565b602082019050919050565b600060208201905081810360008301526119bc81611980565b9050919050565b60006119ce8261120f565b91506119d98361120f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a1257611a11611701565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611a578261120f565b9150611a628361120f565b925082611a7257611a71611a1d565b5b828204905092915050565b7f43616e6e6f7420766f7465207061737420766f746520646561646c696e652e00600082015250565b6000611ab3601f83611386565b9150611abe82611a7d565b602082019050919050565b60006020820190508181036000830152611ae281611aa6565b9050919050565b6000611af48261120f565b9150611aff8361120f565b925082611b0f57611b0e611a1d565b5b828206905092915050565b7f566f74652076616c7565206d7573742062652067726561746572207468616e2060008201527f616e64206d756c7469706c65206f66206d696e20766f746520616d6f756e742e602082015250565b6000611b76604083611386565b9150611b8182611b1a565b604082019050919050565b60006020820190508181036000830152611ba581611b69565b9050919050565b7f566f74652076616c7565206d757374206265206c657373207468616e206d617860008201527f20766f746520616d6f756e742e00000000000000000000000000000000000000602082015250565b6000611c08602d83611386565b9150611c1382611bac565b604082019050919050565b60006020820190508181036000830152611c3781611bfb565b9050919050565b7f43616e6e6f7420766f74652074776963652e0000000000000000000000000000600082015250565b6000611c74601283611386565b9150611c7f82611c3e565b602082019050919050565b60006020820190508181036000830152611ca381611c67565b905091905056fea26469706673582212201603be5c91d8db1e2441a3efb8891714c452f5854f5828bf1b076b430044da8864736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106100c25760003560e01c8063b14b28a31161007f578063ddca3f4311610059578063ddca3f431461025c578063e88499a914610287578063e9f82d991461029e578063f6c881b7146102ba576100c2565b8063b14b28a3146101c7578063b4fe0715146101f2578063d8bff5a51461021d576100c2565b80633fc8ae06146100c757806341275358146100f057806344d1310c1461011b578063719ce73e1461014657806383ca5a5b146101715780639ce4fc091461019c575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611173565b6102e5565b005b3480156100fc57600080fd5b50610105610741565b60405161011291906111f4565b60405180910390f35b34801561012757600080fd5b50610130610765565b60405161013d9190611228565b60405180910390f35b34801561015257600080fd5b5061015b61076b565b6040516101689190611228565b60405180910390f35b34801561017d57600080fd5b50610186610771565b6040516101939190611228565b60405180910390f35b3480156101a857600080fd5b506101b1610795565b6040516101be9190611228565b60405180910390f35b3480156101d357600080fd5b506101dc6107b9565b6040516101e99190611228565b60405180910390f35b3480156101fe57600080fd5b506102076107dd565b6040516102149190611228565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f919061126f565b610801565b60405161025393929190611322565b60405180910390f35b34801561026857600080fd5b50610271610838565b60405161027e9190611228565b60405180910390f35b34801561029357600080fd5b5061029c61085c565b005b6102b860048036038101906102b39190611359565b610ca7565b005b3480156102c657600080fd5b506102cf610f8f565b6040516102dc9190611228565b60405180910390f35b7f0000000000000000000000000000000000000000000000000000000061e91680421115610348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033f90611409565b60405180910390fd5b6001600281111561035c5761035b6112ab565b5b82600281111561036f5761036e6112ab565b5b148061039e5750600280811115610389576103886112ab565b5b82600281111561039c5761039b6112ab565b5b145b6103dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d49061149b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000002386f26fc100006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154101580156104af57507f0000000000000000000000000000000000000000000000000de0b6b3a76400006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411155b6104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e590611507565b60405180910390fd5b60006002811115610502576105016112ab565b5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff166002811115610563576105626112ab565b5b146105a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059a90611573565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001543384846040516020016105ff93929190611632565b6040516020818303038152906040528051906020012014610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c906116e1565b60405180910390fd5b828160020160006101000a81548160ff0219169083600281111561067c5761067b6112ab565b5b021790555060016002811115610695576106946112ab565b5b8360028111156106a8576106a76112ab565b5b14156106d0578060010154600160008282546106c49190611730565b925050819055506106ee565b8060010154600260008282546106e69190611730565b925050819055505b3373ffffffffffffffffffffffffffffffffffffffff167f79a7276ba83fef4fe13f88df855c8420d094de7d84d1d4a3bc10554a841bd80b846040516107349190611786565b60405180910390a2505050565b7f0000000000000000000000007b91649d893b2e4feef78b6891de383d5a8491ee81565b60025481565b60035481565b7f0000000000000000000000000000000000000000000000000000000061e27f0081565b7f000000000000000000000000000000000000000000000000002386f26fc1000081565b7f0000000000000000000000000000000000000000000000000000000061e9168081565b7f0000000000000000000000000000000000000000000000000de0b6b3a764000081565b60006020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16905083565b7f000000000000000000000000000000000000000000000000000000000000001481565b7f0000000000000000000000000000000000000000000000000000000061e9168042116108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590611813565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff166002811115610942576109416112ab565b5b6002811115610954576109536112ab565b5b8152505090506001600281111561096e5761096d6112ab565b5b81604001516002811115610985576109846112ab565b5b14806109b8575060028081111561099f5761099e6112ab565b5b816040015160028111156109b6576109b56112ab565b5b145b6109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee906118a5565b60405180910390fd5b6000610a01610f95565b9050806002811115610a1657610a156112ab565b5b82604001516002811115610a2d57610a2c6112ab565b5b1480610a5d575060006002811115610a4857610a476112ab565b5b816002811115610a5b57610a5a6112ab565b5b145b610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9390611937565b60405180910390fd5b600060016002811115610ab257610ab16112ab565b5b826002811115610ac557610ac46112ab565b5b1415610ad5576001549050610b86565b600280811115610ae857610ae76112ab565b5b826002811115610afb57610afa6112ab565b5b1415610b0b576002549050610b85565b60006002811115610b1f57610b1e6112ab565b5b826002811115610b3257610b316112ab565b5b14610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b69906119a3565b60405180910390fd5b600254600154610b829190611730565b90505b5b6000818460200151600354610b9b91906119c3565b610ba59190611a4c565b90506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff021916905550503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c52573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a682604051610c999190611228565b60405180910390a250505050565b7f0000000000000000000000000000000000000000000000000000000061e27f00421115610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611ac9565b60405180910390fd5b7f000000000000000000000000000000000000000000000000002386f26fc100003410158015610d65575060007f000000000000000000000000000000000000000000000000002386f26fc1000034610d639190611ae9565b145b610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90611b8c565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000de0b6b3a7640000341115610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90611c1e565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290611c8a565b60405180910390fd5b604051806060016040528082815260200134815260200160006002811115610eb657610eb56112ab565b5b8152506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836002811115610f3657610f356112ab565b5b02179055509050503373ffffffffffffffffffffffffffffffffffffffff167ff668ead05c744b9178e571d2edb452e72baf6529c8d72160e64e59b50d865bd034604051610f849190611228565b60405180910390a250565b60015481565b6000806003541415610fb157610fa961100b565b476003819055505b60006001541415610fc55760029050611008565b60006002541415610fd95760019050611008565b6002546001541015610fee5760019050611008565b60015460025410156110035760029050611008565b600090505b90565b60007f0000000000000000000000000000000000000000000000000000000000000014476110399190611a4c565b90507f0000000000000000000000007b91649d893b2e4feef78b6891de383d5a8491ee73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110a1573d6000803e3d6000fd5b507f0000000000000000000000007b91649d893b2e4feef78b6891de383d5a8491ee73ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6826040516111089190611228565b60405180910390a250565b600080fd5b6003811061112557600080fd5b50565b60008135905061113781611118565b92915050565b6000819050919050565b6111508161113d565b811461115b57600080fd5b50565b60008135905061116d81611147565b92915050565b6000806040838503121561118a57611189611113565b5b600061119885828601611128565b92505060206111a98582860161115e565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111de826111b3565b9050919050565b6111ee816111d3565b82525050565b600060208201905061120960008301846111e5565b92915050565b6000819050919050565b6112228161120f565b82525050565b600060208201905061123d6000830184611219565b92915050565b61124c816111d3565b811461125757600080fd5b50565b60008135905061126981611243565b92915050565b60006020828403121561128557611284611113565b5b60006112938482850161125a565b91505092915050565b6112a58161113d565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106112eb576112ea6112ab565b5b50565b60008190506112fc826112da565b919050565b600061130c826112ee565b9050919050565b61131c81611301565b82525050565b6000606082019050611337600083018661129c565b6113446020830185611219565b6113516040830184611313565b949350505050565b60006020828403121561136f5761136e611113565b5b600061137d8482850161115e565b91505092915050565b600082825260208201905092915050565b7f43616e6e6f742072657665616c20706173742072657665616c20646561646c6960008201527f6e652e0000000000000000000000000000000000000000000000000000000000602082015250565b60006113f3602383611386565b91506113fe82611397565b604082019050919050565b60006020820190508181036000830152611422816113e6565b9050919050565b7f496e76616c69642063686f6963652c206d7573742072657665616c2041206f7260008201527f20422e0000000000000000000000000000000000000000000000000000000000602082015250565b6000611485602383611386565b915061149082611429565b604082019050919050565b600060208201905081810360008301526114b481611478565b9050919050565b7f43616e6e6f742072657665616c206265666f726520766f74696e672e00000000600082015250565b60006114f1601c83611386565b91506114fc826114bb565b602082019050919050565b60006020820190508181036000830152611520816114e4565b9050919050565b7f43616e6e6f742072657665616c206d6f7265207468616e206f6e63652e000000600082015250565b600061155d601d83611386565b915061156882611527565b602082019050919050565b6000602082019050818103600083015261158c81611550565b9050919050565b60008160601b9050919050565b60006115ab82611593565b9050919050565b60006115bd826115a0565b9050919050565b6115d56115d0826111d3565b6115b2565b82525050565b60008160f81b9050919050565b60006115f3826115db565b9050919050565b61160b61160682611301565b6115e8565b82525050565b6000819050919050565b61162c6116278261113d565b611611565b82525050565b600061163e82866115c4565b60148201915061164e82856115fa565b60018201915061165e828461161b565b602082019150819050949350505050565b7f496e76616c69642072657665616c2c206861736820646f6573206e6f74206d6160008201527f74636820636f6d6d6974746d656e742e00000000000000000000000000000000602082015250565b60006116cb603083611386565b91506116d68261166f565b604082019050919050565b600060208201905081810360008301526116fa816116be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061173b8261120f565b91506117468361120f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561177b5761177a611701565b5b828201905092915050565b600060208201905061179b6000830184611313565b92915050565b7f43616e6e6f7420636c61696d207061796f7574206265666f726520726576656160008201527f6c20646561646c696e6520686173207061737365642e00000000000000000000602082015250565b60006117fd603683611386565b9150611808826117a1565b604082019050919050565b6000602082019050818103600083015261182c816117f0565b9050919050565b7f43616e6e6f7420636c61696d207061796f757420776974686f7574207265766560008201527f616c656420766f74652e00000000000000000000000000000000000000000000602082015250565b600061188f602a83611386565b915061189a82611833565b604082019050919050565b600060208201905081810360008301526118be81611882565b9050919050565b7f43616e6e6f7420636c61696d207061796f75742073696e636520646964206e6f60008201527f742077696e2067616d652e000000000000000000000000000000000000000000602082015250565b6000611921602b83611386565b915061192c826118c5565b604082019050919050565b6000602082019050818103600083015261195081611914565b9050919050565b7f496e76616c69642077696e6e65722e0000000000000000000000000000000000600082015250565b600061198d600f83611386565b915061199882611957565b602082019050919050565b600060208201905081810360008301526119bc81611980565b9050919050565b60006119ce8261120f565b91506119d98361120f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a1257611a11611701565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611a578261120f565b9150611a628361120f565b925082611a7257611a71611a1d565b5b828204905092915050565b7f43616e6e6f7420766f7465207061737420766f746520646561646c696e652e00600082015250565b6000611ab3601f83611386565b9150611abe82611a7d565b602082019050919050565b60006020820190508181036000830152611ae281611aa6565b9050919050565b6000611af48261120f565b9150611aff8361120f565b925082611b0f57611b0e611a1d565b5b828206905092915050565b7f566f74652076616c7565206d7573742062652067726561746572207468616e2060008201527f616e64206d756c7469706c65206f66206d696e20766f746520616d6f756e742e602082015250565b6000611b76604083611386565b9150611b8182611b1a565b604082019050919050565b60006020820190508181036000830152611ba581611b69565b9050919050565b7f566f74652076616c7565206d757374206265206c657373207468616e206d617860008201527f20766f746520616d6f756e742e00000000000000000000000000000000000000602082015250565b6000611c08602d83611386565b9150611c1382611bac565b604082019050919050565b60006020820190508181036000830152611c3781611bfb565b9050919050565b7f43616e6e6f7420766f74652074776963652e0000000000000000000000000000600082015250565b6000611c74601283611386565b9150611c7f82611c3e565b602082019050919050565b60006020820190508181036000830152611ca381611c67565b905091905056fea26469706673582212201603be5c91d8db1e2441a3efb8891714c452f5854f5828bf1b076b430044da8864736f6c634300080b0033

Deployed Bytecode Sourcemap

273:7568:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3343:1533;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1081:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1475:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1579;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;692:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;874:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;781:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;941:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1264:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;1002:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4926:1669;;;;;;;;;;;;;:::i;:::-;;2060:1061;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1440:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3343:1533;3576:14;3557:15;:33;;3535:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;3753:8;3743:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;3742:44;;;;3777:8;3767:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;3742:44;3720:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;3949:16;3921:5;:17;3927:10;3921:17;;;;;;;;;;;;;;;:24;;;:44;;3920:110;;;;;4016:13;3988:5;:17;3994:10;3988:17;;;;;;;;;;;;;;;:24;;;:41;;3920:110;3898:188;;;;;;;;;;;;:::i;:::-;;;;;;;;;4200:13;4172:41;;;;;;;;:::i;:::-;;:5;:17;4178:10;4172:17;;;;;;;;;;;;;;;:24;;;;;;;;;;;;:41;;;;;;;;:::i;:::-;;;4150:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;4328:23;4354:5;:17;4360:10;4354:17;;;;;;;;;;;;;;;4328:43;;4488:4;:15;;;4431:10;4443:6;4451:14;4414:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4404:63;;;;;;:99;4382:197;;;;;;;;;;;;:::i;:::-;;;;;;;;;4604:6;4590:4;:11;;;:20;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4677:8;4667:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;4663:132;;;4715:4;:11;;;4702:9;;:24;;;;;;;:::i;:::-;;;;;;;;4663:132;;;4772:4;:11;;;4759:9;;:24;;;;;;;:::i;:::-;;;;;;;;4663:132;4849:10;4842:26;;;4861:6;4842:26;;;;;;:::i;:::-;;;;;;;;3407:1469;3343:1533;;:::o;1081:89::-;;;:::o;1475:28::-;;;;:::o;1579:::-;;;;:::o;692:50::-;;;:::o;874:48::-;;;:::o;781:52::-;;;:::o;941:45::-;;;:::o;1264:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1002:33::-;;;:::o;4926:1669::-;5078:14;5060:15;:32;5038:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;5238:28;5269:5;:17;5275:10;5269:17;;;;;;;;;;;;;;;5238:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;5341:8;5320:29;;;;;;;;:::i;:::-;;:10;:17;;;:29;;;;;;;;:::i;:::-;;;5319:66;;;;5376:8;5355:29;;;;;;;;:::i;:::-;;:10;:17;;;:29;;;;;;;;:::i;:::-;;;5319:66;5297:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;5624:13;5640:11;:9;:11::i;:::-;5624:27;;5765:6;5744:27;;;;;;;;:::i;:::-;;:10;:17;;;:27;;;;;;;;:::i;:::-;;;5743:58;;;;5787:13;5777:23;;;;;;;;:::i;:::-;;:6;:23;;;;;;;;:::i;:::-;;;5743:58;5721:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;5920:19;5964:8;5954:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;5950:319;;;6003:9;;5989:23;;5950:319;;;6044:8;6034:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;6030:239;;;6083:9;;6069:23;;6030:239;;;6174:13;6164:23;;;;;;;;:::i;:::-;;:6;:23;;;;;;;;:::i;:::-;;;6156:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6248:9;;6236;;:21;;;;:::i;:::-;6222:35;;6030:239;5950:319;6279:16;6332:11;6311:10;:17;;;6299:9;;:29;;;;:::i;:::-;6298:45;;;;:::i;:::-;6279:64;;6416:5;:17;6422:10;6416:17;;;;;;;;;;;;;;;;6409:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6481:10;6473:28;;:38;6502:8;6473:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6566:10;6559:28;;;6578:8;6559:28;;;;;;:::i;:::-;;;;;;;;4958:1637;;;;4926:1669::o;2060:1061::-;2228:12;2209:15;:31;;2187:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;2425:16;2412:9;:29;;2411:87;;;;;2496:1;2476:16;2464:9;:28;;;;:::i;:::-;:33;2411:87;2389:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;2691:13;2678:9;:26;;2656:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;2873:1;2845:5;:17;2851:10;2845:17;;;;;;;;;;;;;;;:24;;;:29;2837:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2992:48;;;;;;;;3003:10;2992:48;;;;3015:9;2992:48;;;;3026:13;2992:48;;;;;;;;:::i;:::-;;;;;2972:5;:17;2978:10;2972:17;;;;;;;;;;;;;;;:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3091:10;3086:27;;;3103:9;3086:27;;;;;;:::i;:::-;;;;;;;;2060:1061;:::o;1440:28::-;;;;:::o;6688:827::-;6726:6;6810:1;6797:9;;:14;6793:176;;;6828:12;:10;:12::i;:::-;6936:21;6924:9;:33;;;;6793:176;7172:1;7159:9;;:14;7155:353;;;7197:8;7190:15;;;;7155:353;7240:1;7227:9;;:14;7223:285;;;7265:8;7258:15;;;;7223:285;7307:9;;7295;;:21;7291:217;;;7340:8;7333:15;;;;7291:217;7382:9;;7370;;:21;7366:142;;;7415:8;7408:15;;;;7366:142;7483:13;7476:20;;6688:827;;:::o;7591:247::-;7656:17;7700:3;7676:21;:27;;;;:::i;:::-;7656:47;;7722:10;7714:28;;:39;7743:9;7714:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7808:10;7801:29;;;7820:9;7801:29;;;;;;:::i;:::-;;;;;;;;7621:217;7591:247::o;88:117:1:-;197:1;194;187:12;334:107;415:1;408:5;405:12;395:40;;431:1;428;421:12;395:40;334:107;:::o;447:155::-;501:5;539:6;526:20;517:29;;555:41;590:5;555:41;:::i;:::-;447:155;;;;:::o;608:77::-;645:7;674:5;663:16;;608:77;;;:::o;691:122::-;764:24;782:5;764:24;:::i;:::-;757:5;754:35;744:63;;803:1;800;793:12;744:63;691:122;:::o;819:139::-;865:5;903:6;890:20;881:29;;919:33;946:5;919:33;:::i;:::-;819:139;;;;:::o;964:490::-;1040:6;1048;1097:2;1085:9;1076:7;1072:23;1068:32;1065:119;;;1103:79;;:::i;:::-;1065:119;1223:1;1248:61;1301:7;1292:6;1281:9;1277:22;1248:61;:::i;:::-;1238:71;;1194:125;1358:2;1384:53;1429:7;1420:6;1409:9;1405:22;1384:53;:::i;:::-;1374:63;;1329:118;964:490;;;;;:::o;1460:126::-;1497:7;1537:42;1530:5;1526:54;1515:65;;1460:126;;;:::o;1592:96::-;1629:7;1658:24;1676:5;1658:24;:::i;:::-;1647:35;;1592:96;;;:::o;1694:118::-;1781:24;1799:5;1781:24;:::i;:::-;1776:3;1769:37;1694:118;;:::o;1818:222::-;1911:4;1949:2;1938:9;1934:18;1926:26;;1962:71;2030:1;2019:9;2015:17;2006:6;1962:71;:::i;:::-;1818:222;;;;:::o;2046:77::-;2083:7;2112:5;2101:16;;2046:77;;;:::o;2129:118::-;2216:24;2234:5;2216:24;:::i;:::-;2211:3;2204:37;2129:118;;:::o;2253:222::-;2346:4;2384:2;2373:9;2369:18;2361:26;;2397:71;2465:1;2454:9;2450:17;2441:6;2397:71;:::i;:::-;2253:222;;;;:::o;2481:122::-;2554:24;2572:5;2554:24;:::i;:::-;2547:5;2544:35;2534:63;;2593:1;2590;2583:12;2534:63;2481:122;:::o;2609:139::-;2655:5;2693:6;2680:20;2671:29;;2709:33;2736:5;2709:33;:::i;:::-;2609:139;;;;:::o;2754:329::-;2813:6;2862:2;2850:9;2841:7;2837:23;2833:32;2830:119;;;2868:79;;:::i;:::-;2830:119;2988:1;3013:53;3058:7;3049:6;3038:9;3034:22;3013:53;:::i;:::-;3003:63;;2959:117;2754:329;;;;:::o;3089:118::-;3176:24;3194:5;3176:24;:::i;:::-;3171:3;3164:37;3089:118;;:::o;3213:180::-;3261:77;3258:1;3251:88;3358:4;3355:1;3348:15;3382:4;3379:1;3372:15;3399:113;3480:1;3473:5;3470:12;3460:46;;3486:18;;:::i;:::-;3460:46;3399:113;:::o;3518:127::-;3563:7;3592:5;3581:16;;3598:41;3633:5;3598:41;:::i;:::-;3518:127;;;:::o;3651:::-;3707:9;3740:32;3766:5;3740:32;:::i;:::-;3727:45;;3651:127;;;:::o;3784:143::-;3877:43;3914:5;3877:43;:::i;:::-;3872:3;3865:56;3784:143;;:::o;3933:454::-;4088:4;4126:2;4115:9;4111:18;4103:26;;4139:71;4207:1;4196:9;4192:17;4183:6;4139:71;:::i;:::-;4220:72;4288:2;4277:9;4273:18;4264:6;4220:72;:::i;:::-;4302:78;4376:2;4365:9;4361:18;4352:6;4302:78;:::i;:::-;3933:454;;;;;;:::o;4393:329::-;4452:6;4501:2;4489:9;4480:7;4476:23;4472:32;4469:119;;;4507:79;;:::i;:::-;4469:119;4627:1;4652:53;4697:7;4688:6;4677:9;4673:22;4652:53;:::i;:::-;4642:63;;4598:117;4393:329;;;;:::o;4728:169::-;4812:11;4846:6;4841:3;4834:19;4886:4;4881:3;4877:14;4862:29;;4728:169;;;;:::o;4903:222::-;5043:34;5039:1;5031:6;5027:14;5020:58;5112:5;5107:2;5099:6;5095:15;5088:30;4903:222;:::o;5131:366::-;5273:3;5294:67;5358:2;5353:3;5294:67;:::i;:::-;5287:74;;5370:93;5459:3;5370:93;:::i;:::-;5488:2;5483:3;5479:12;5472:19;;5131:366;;;:::o;5503:419::-;5669:4;5707:2;5696:9;5692:18;5684:26;;5756:9;5750:4;5746:20;5742:1;5731:9;5727:17;5720:47;5784:131;5910:4;5784:131;:::i;:::-;5776:139;;5503:419;;;:::o;5928:222::-;6068:34;6064:1;6056:6;6052:14;6045:58;6137:5;6132:2;6124:6;6120:15;6113:30;5928:222;:::o;6156:366::-;6298:3;6319:67;6383:2;6378:3;6319:67;:::i;:::-;6312:74;;6395:93;6484:3;6395:93;:::i;:::-;6513:2;6508:3;6504:12;6497:19;;6156:366;;;:::o;6528:419::-;6694:4;6732:2;6721:9;6717:18;6709:26;;6781:9;6775:4;6771:20;6767:1;6756:9;6752:17;6745:47;6809:131;6935:4;6809:131;:::i;:::-;6801:139;;6528:419;;;:::o;6953:178::-;7093:30;7089:1;7081:6;7077:14;7070:54;6953:178;:::o;7137:366::-;7279:3;7300:67;7364:2;7359:3;7300:67;:::i;:::-;7293:74;;7376:93;7465:3;7376:93;:::i;:::-;7494:2;7489:3;7485:12;7478:19;;7137:366;;;:::o;7509:419::-;7675:4;7713:2;7702:9;7698:18;7690:26;;7762:9;7756:4;7752:20;7748:1;7737:9;7733:17;7726:47;7790:131;7916:4;7790:131;:::i;:::-;7782:139;;7509:419;;;:::o;7934:179::-;8074:31;8070:1;8062:6;8058:14;8051:55;7934:179;:::o;8119:366::-;8261:3;8282:67;8346:2;8341:3;8282:67;:::i;:::-;8275:74;;8358:93;8447:3;8358:93;:::i;:::-;8476:2;8471:3;8467:12;8460:19;;8119:366;;;:::o;8491:419::-;8657:4;8695:2;8684:9;8680:18;8672:26;;8744:9;8738:4;8734:20;8730:1;8719:9;8715:17;8708:47;8772:131;8898:4;8772:131;:::i;:::-;8764:139;;8491:419;;;:::o;8916:94::-;8949:8;8997:5;8993:2;8989:14;8968:35;;8916:94;;;:::o;9016:::-;9055:7;9084:20;9098:5;9084:20;:::i;:::-;9073:31;;9016:94;;;:::o;9116:100::-;9155:7;9184:26;9204:5;9184:26;:::i;:::-;9173:37;;9116:100;;;:::o;9222:157::-;9327:45;9347:24;9365:5;9347:24;:::i;:::-;9327:45;:::i;:::-;9322:3;9315:58;9222:157;;:::o;9385:96::-;9419:8;9468:5;9463:3;9459:15;9438:36;;9385:96;;;:::o;9487:93::-;9524:7;9553:21;9568:5;9553:21;:::i;:::-;9542:32;;9487:93;;;:::o;9586:180::-;9697:62;9715:43;9752:5;9715:43;:::i;:::-;9697:62;:::i;:::-;9692:3;9685:75;9586:180;;:::o;9772:79::-;9811:7;9840:5;9829:16;;9772:79;;;:::o;9857:157::-;9962:45;9982:24;10000:5;9982:24;:::i;:::-;9962:45;:::i;:::-;9957:3;9950:58;9857:157;;:::o;10020:549::-;10194:3;10209:75;10280:3;10271:6;10209:75;:::i;:::-;10309:2;10304:3;10300:12;10293:19;;10322:81;10399:3;10390:6;10322:81;:::i;:::-;10428:1;10423:3;10419:11;10412:18;;10440:75;10511:3;10502:6;10440:75;:::i;:::-;10540:2;10535:3;10531:12;10524:19;;10560:3;10553:10;;10020:549;;;;;;:::o;10575:235::-;10715:34;10711:1;10703:6;10699:14;10692:58;10784:18;10779:2;10771:6;10767:15;10760:43;10575:235;:::o;10816:366::-;10958:3;10979:67;11043:2;11038:3;10979:67;:::i;:::-;10972:74;;11055:93;11144:3;11055:93;:::i;:::-;11173:2;11168:3;11164:12;11157:19;;10816:366;;;:::o;11188:419::-;11354:4;11392:2;11381:9;11377:18;11369:26;;11441:9;11435:4;11431:20;11427:1;11416:9;11412:17;11405:47;11469:131;11595:4;11469:131;:::i;:::-;11461:139;;11188:419;;;:::o;11613:180::-;11661:77;11658:1;11651:88;11758:4;11755:1;11748:15;11782:4;11779:1;11772:15;11799:305;11839:3;11858:20;11876:1;11858:20;:::i;:::-;11853:25;;11892:20;11910:1;11892:20;:::i;:::-;11887:25;;12046:1;11978:66;11974:74;11971:1;11968:81;11965:107;;;12052:18;;:::i;:::-;11965:107;12096:1;12093;12089:9;12082:16;;11799:305;;;;:::o;12110:234::-;12209:4;12247:2;12236:9;12232:18;12224:26;;12260:77;12334:1;12323:9;12319:17;12310:6;12260:77;:::i;:::-;12110:234;;;;:::o;12350:241::-;12490:34;12486:1;12478:6;12474:14;12467:58;12559:24;12554:2;12546:6;12542:15;12535:49;12350:241;:::o;12597:366::-;12739:3;12760:67;12824:2;12819:3;12760:67;:::i;:::-;12753:74;;12836:93;12925:3;12836:93;:::i;:::-;12954:2;12949:3;12945:12;12938:19;;12597:366;;;:::o;12969:419::-;13135:4;13173:2;13162:9;13158:18;13150:26;;13222:9;13216:4;13212:20;13208:1;13197:9;13193:17;13186:47;13250:131;13376:4;13250:131;:::i;:::-;13242:139;;12969:419;;;:::o;13394:229::-;13534:34;13530:1;13522:6;13518:14;13511:58;13603:12;13598:2;13590:6;13586:15;13579:37;13394:229;:::o;13629:366::-;13771:3;13792:67;13856:2;13851:3;13792:67;:::i;:::-;13785:74;;13868:93;13957:3;13868:93;:::i;:::-;13986:2;13981:3;13977:12;13970:19;;13629:366;;;:::o;14001:419::-;14167:4;14205:2;14194:9;14190:18;14182:26;;14254:9;14248:4;14244:20;14240:1;14229:9;14225:17;14218:47;14282:131;14408:4;14282:131;:::i;:::-;14274:139;;14001:419;;;:::o;14426:230::-;14566:34;14562:1;14554:6;14550:14;14543:58;14635:13;14630:2;14622:6;14618:15;14611:38;14426:230;:::o;14662:366::-;14804:3;14825:67;14889:2;14884:3;14825:67;:::i;:::-;14818:74;;14901:93;14990:3;14901:93;:::i;:::-;15019:2;15014:3;15010:12;15003:19;;14662:366;;;:::o;15034:419::-;15200:4;15238:2;15227:9;15223:18;15215:26;;15287:9;15281:4;15277:20;15273:1;15262:9;15258:17;15251:47;15315:131;15441:4;15315:131;:::i;:::-;15307:139;;15034:419;;;:::o;15459:165::-;15599:17;15595:1;15587:6;15583:14;15576:41;15459:165;:::o;15630:366::-;15772:3;15793:67;15857:2;15852:3;15793:67;:::i;:::-;15786:74;;15869:93;15958:3;15869:93;:::i;:::-;15987:2;15982:3;15978:12;15971:19;;15630:366;;;:::o;16002:419::-;16168:4;16206:2;16195:9;16191:18;16183:26;;16255:9;16249:4;16245:20;16241:1;16230:9;16226:17;16219:47;16283:131;16409:4;16283:131;:::i;:::-;16275:139;;16002:419;;;:::o;16427:348::-;16467:7;16490:20;16508:1;16490:20;:::i;:::-;16485:25;;16524:20;16542:1;16524:20;:::i;:::-;16519:25;;16712:1;16644:66;16640:74;16637:1;16634:81;16629:1;16622:9;16615:17;16611:105;16608:131;;;16719:18;;:::i;:::-;16608:131;16767:1;16764;16760:9;16749:20;;16427:348;;;;:::o;16781:180::-;16829:77;16826:1;16819:88;16926:4;16923:1;16916:15;16950:4;16947:1;16940:15;16967:185;17007:1;17024:20;17042:1;17024:20;:::i;:::-;17019:25;;17058:20;17076:1;17058:20;:::i;:::-;17053:25;;17097:1;17087:35;;17102:18;;:::i;:::-;17087:35;17144:1;17141;17137:9;17132:14;;16967:185;;;;:::o;17158:181::-;17298:33;17294:1;17286:6;17282:14;17275:57;17158:181;:::o;17345:366::-;17487:3;17508:67;17572:2;17567:3;17508:67;:::i;:::-;17501:74;;17584:93;17673:3;17584:93;:::i;:::-;17702:2;17697:3;17693:12;17686:19;;17345:366;;;:::o;17717:419::-;17883:4;17921:2;17910:9;17906:18;17898:26;;17970:9;17964:4;17960:20;17956:1;17945:9;17941:17;17934:47;17998:131;18124:4;17998:131;:::i;:::-;17990:139;;17717:419;;;:::o;18142:176::-;18174:1;18191:20;18209:1;18191:20;:::i;:::-;18186:25;;18225:20;18243:1;18225:20;:::i;:::-;18220:25;;18264:1;18254:35;;18269:18;;:::i;:::-;18254:35;18310:1;18307;18303:9;18298:14;;18142:176;;;;:::o;18324:251::-;18464:34;18460:1;18452:6;18448:14;18441:58;18533:34;18528:2;18520:6;18516:15;18509:59;18324:251;:::o;18581:366::-;18723:3;18744:67;18808:2;18803:3;18744:67;:::i;:::-;18737:74;;18820:93;18909:3;18820:93;:::i;:::-;18938:2;18933:3;18929:12;18922:19;;18581:366;;;:::o;18953:419::-;19119:4;19157:2;19146:9;19142:18;19134:26;;19206:9;19200:4;19196:20;19192:1;19181:9;19177:17;19170:47;19234:131;19360:4;19234:131;:::i;:::-;19226:139;;18953:419;;;:::o;19378:232::-;19518:34;19514:1;19506:6;19502:14;19495:58;19587:15;19582:2;19574:6;19570:15;19563:40;19378:232;:::o;19616:366::-;19758:3;19779:67;19843:2;19838:3;19779:67;:::i;:::-;19772:74;;19855:93;19944:3;19855:93;:::i;:::-;19973:2;19968:3;19964:12;19957:19;;19616:366;;;:::o;19988:419::-;20154:4;20192:2;20181:9;20177:18;20169:26;;20241:9;20235:4;20231:20;20227:1;20216:9;20212:17;20205:47;20269:131;20395:4;20269:131;:::i;:::-;20261:139;;19988:419;;;:::o;20413:168::-;20553:20;20549:1;20541:6;20537:14;20530:44;20413:168;:::o;20587:366::-;20729:3;20750:67;20814:2;20809:3;20750:67;:::i;:::-;20743:74;;20826:93;20915:3;20826:93;:::i;:::-;20944:2;20939:3;20935:12;20928:19;;20587:366;;;:::o;20959:419::-;21125:4;21163:2;21152:9;21148:18;21140:26;;21212:9;21206:4;21202:20;21198:1;21187:9;21183:17;21176:47;21240:131;21366:4;21240:131;:::i;:::-;21232:139;;20959:419;;;:::o

Swarm Source

ipfs://1603be5c91d8db1e2441a3efb8891714c452f5854f5828bf1b076b430044da88

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.