ETH Price: $2,603.39 (+0.12%)
Gas: 1 Gwei

Contract

0x907d94d59Ec0120D1FaEa16dAa717d2B969D013A
 

Overview

ETH Balance

0.186708710733337667 ETH

Eth Value

$486.07 (@ $2,603.39/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exit From Stakin...198988402024-05-18 19:13:1184 days ago1716059591IN
0x907d94d5...B969D013A
0 ETH0.000363014.11884457
Withdraw Dividen...198988382024-05-18 19:12:4784 days ago1716059567IN
0x907d94d5...B969D013A
0 ETH0.000143633.71947178
Withdraw Dividen...184832242023-11-02 8:30:11282 days ago1698913811IN
0x907d94d5...B969D013A
0 ETH0.000745319.29934071
Exit From Stakin...184535402023-10-29 4:43:35286 days ago1698554615IN
0x907d94d5...B969D013A
0 ETH0.000601548.4683817
Withdraw Dividen...184535362023-10-29 4:42:47286 days ago1698554567IN
0x907d94d5...B969D013A
0 ETH0.000338028.7530885
Withdraw Dividen...184188872023-10-24 8:19:59291 days ago1698135599IN
0x907d94d5...B969D013A
0 ETH0.0005206113.48116502
Withdraw Dividen...182895842023-10-06 6:10:11309 days ago1696572611IN
0x907d94d5...B969D013A
0 ETH0.000432357.75961457
Exit From Stakin...182632022023-10-02 13:39:23313 days ago1696253963IN
0x907d94d5...B969D013A
0 ETH0.0014926221.01289307
Withdraw Dividen...182631992023-10-02 13:38:47313 days ago1696253927IN
0x907d94d5...B969D013A
0 ETH0.0008371321.67741164
Withdraw Dividen...182615582023-10-02 8:09:35313 days ago1696234175IN
0x907d94d5...B969D013A
0 ETH0.000243768.37173048
Exit From Stakin...182615552023-10-02 8:08:59313 days ago1696234139IN
0x907d94d5...B969D013A
0 ETH0.000667588.58802643
Exit From Stakin...182404992023-09-29 9:32:23316 days ago1695979943IN
0x907d94d5...B969D013A
0 ETH0.000565527.27513725
Exit From Stakin...182404942023-09-29 9:31:23316 days ago1695979883IN
0x907d94d5...B969D013A
0 ETH0.000586747.54811362
Exit From Stakin...182404892023-09-29 9:30:11316 days ago1695979811IN
0x907d94d5...B969D013A
0 ETH0.000524426.74642453
Exit From Stakin...181708182023-09-19 15:21:47326 days ago1695136907IN
0x907d94d5...B969D013A
0 ETH0.0005797412.06741648
Exit From Stakin...181708142023-09-19 15:20:59326 days ago1695136859IN
0x907d94d5...B969D013A
0 ETH0.0009290611.95188391
Withdraw Dividen...181706222023-09-19 14:42:23326 days ago1695134543IN
0x907d94d5...B969D013A
0 ETH0.0005877520.18513113
Withdraw Dividen...181706132023-09-19 14:40:35326 days ago1695134435IN
0x907d94d5...B969D013A
0 ETH0.0005433118.65905648
Withdraw Dividen...181706122023-09-19 14:40:23326 days ago1695134423IN
0x907d94d5...B969D013A
0 ETH0.000733418.99127834
Exit From Stakin...181512832023-09-16 21:13:35329 days ago1694898815IN
0x907d94d5...B969D013A
0 ETH0.000695378.94551492
Exit From Stakin...181490392023-09-16 13:36:47329 days ago1694871407IN
0x907d94d5...B969D013A
0 ETH0.0008113711.42231574
Withdraw Dividen...181490362023-09-16 13:36:11329 days ago1694871371IN
0x907d94d5...B969D013A
0 ETH0.000437511.32903099
Exit From Stakin...181489782023-09-16 13:24:11329 days ago1694870651IN
0x907d94d5...B969D013A
0 ETH0.0027052611.15184873
Exit From Stakin...181439072023-09-15 20:14:23330 days ago1694808863IN
0x907d94d5...B969D013A
0 ETH0.0009846613.8618675
Withdraw Dividen...181439032023-09-15 20:13:35330 days ago1694808815IN
0x907d94d5...B969D013A
0 ETH0.000546414.1489705
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
198988382024-05-18 19:12:4784 days ago1716059567
0x907d94d5...B969D013A
0.00114026 ETH
192062882024-02-11 17:25:11181 days ago1707672311
0x907d94d5...B969D013A
0.00190486 ETH
186448722023-11-24 23:35:23259 days ago1700868923
0x907d94d5...B969D013A
0.00145642 ETH
185737052023-11-15 0:25:35269 days ago1700007935
0x907d94d5...B969D013A
0.00163491 ETH
184832242023-11-02 8:30:11282 days ago1698913811
0x907d94d5...B969D013A
0.0022763 ETH
184535362023-10-29 4:42:47286 days ago1698554567
0x907d94d5...B969D013A
0.0409892 ETH
184188872023-10-24 8:19:59291 days ago1698135599
0x907d94d5...B969D013A
0.00229518 ETH
184179452023-10-24 5:10:23291 days ago1698124223
0x907d94d5...B969D013A
0.00195644 ETH
184014622023-10-21 21:47:47294 days ago1697924867
0x907d94d5...B969D013A
0.00249324 ETH
182895842023-10-06 6:10:11309 days ago1696572611
0x907d94d5...B969D013A
0.01154032 ETH
182631992023-10-02 13:38:47313 days ago1696253927
0x907d94d5...B969D013A
0.01444798 ETH
182615552023-10-02 8:08:59313 days ago1696234139
0x907d94d5...B969D013A
0.00402966 ETH
182503132023-09-30 18:29:23315 days ago1696098563
0x907d94d5...B969D013A
0.00191761 ETH
182405382023-09-29 9:40:11316 days ago1695980411
0x907d94d5...B969D013A
0.00265082 ETH
182404992023-09-29 9:32:23316 days ago1695979943
0x907d94d5...B969D013A
0.01032701 ETH
182404942023-09-29 9:31:23316 days ago1695979883
0x907d94d5...B969D013A
0.01654385 ETH
182404892023-09-29 9:30:11316 days ago1695979811
0x907d94d5...B969D013A
0.00988895 ETH
182365672023-09-28 20:18:59317 days ago1695932339
0x907d94d5...B969D013A
0.00227182 ETH
181822842023-09-21 5:51:11324 days ago1695275471
0x907d94d5...B969D013A
0.0028666 ETH
181776722023-09-20 14:23:11325 days ago1695219791
0x907d94d5...B969D013A
0.004916 ETH
181708142023-09-19 15:20:59326 days ago1695136859
0x907d94d5...B969D013A
0.00263834 ETH
181706122023-09-19 14:40:23326 days ago1695134423
0x907d94d5...B969D013A
0.02638658 ETH
181512832023-09-16 21:13:35329 days ago1694898815
0x907d94d5...B969D013A
0.00184813 ETH
181508372023-09-16 19:42:23329 days ago1694893343
0x907d94d5...B969D013A
0.00504042 ETH
181490362023-09-16 13:36:11329 days ago1694871371
0x907d94d5...B969D013A
0.03391896 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WagerStaking

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

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

pragma solidity =0.8.21;
// SPDX-License-Identifier: MIT

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Router {
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
}

contract WagerStaking is Ownable {
    using SafeMath for uint256;

    mapping(address => bool) public staked;
    mapping(address => uint256) public tokenBalanceLedger_;
    mapping(address => uint256) public stakeStartTime;

    address public stakeTokenAddress = 0x63a60C5469379149757Cc3e58453202eBDB7e933;
    IERC20 public stakeToken;  

    uint256 public totalTokens = 0;

    uint256 public allEthHistoric = 0;

    uint256 public profitPerShare_;

    mapping(address => uint256) public payoutsTo_;

    uint256 constant internal magnitude = 2**64;

    constructor() {
        stakeToken = IERC20(stakeTokenAddress);
    }

    receive() external payable {
        profitPerShare_ +=  (msg.value * magnitude) / totalTokens;
        allEthHistoric += msg.value;
    }
    
    function deposit() public payable {
        profitPerShare_ +=  (msg.value * magnitude) / totalTokens;
        allEthHistoric += msg.value;
    }

    function stakeTokens(uint amount) public {

        stakeToken.transferFrom(msg.sender, address(this), amount);

        uint256 currentDivs = getDividends(msg.sender);

        tokenBalanceLedger_[msg.sender] += amount;
        staked[msg.sender] = true;

        totalTokens += amount;

        stakeStartTime[msg.sender] = block.timestamp;

        payoutsTo_[msg.sender] += (getDividends(msg.sender) - currentDivs);
    }

    function exitFromStakingPool() public {
        withdrawDividends();

        stakeToken.transfer(msg.sender, tokenBalanceLedger_[msg.sender]);

        totalTokens -= tokenBalanceLedger_[msg.sender];
        tokenBalanceLedger_[msg.sender] = 0;
        staked[msg.sender] = false;
        payoutsTo_[msg.sender] = 0;
    }

    function getDividends(address user) public view returns(uint256) {
        uint256 allDivs = (tokenBalanceLedger_[user] * profitPerShare_) / magnitude;

        uint256 profit = allDivs - payoutsTo_[user];

        return profit;
    }

    function getTokenBalance(address user) public view returns(uint256) {
        return tokenBalanceLedger_[user];
    }

    function withdrawDividends() public {
        uint256 myDivs = getDividends(msg.sender);

        payoutsTo_[msg.sender] += myDivs;
        payable(msg.sender).transfer(myDivs);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"allEthHistoric","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"exitFromStakingPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"profitPerShare_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakeStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"staked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenBalanceLedger_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040527363a60c5469379149757cc3e58453202ebdb7e93360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6006555f60075534801561006b575f80fd5b5061008861007d6100ee60201b60201c565b6100f560201b60201c565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101b6565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6112a6806101c35f395ff3fe60806040526004361061010c575f3560e01c8063715018a61161009457806398807d841161006357806398807d8414610393578063d0e30db0146103cf578063deb1a52b146103d9578063e1456cb414610403578063f2fde38b1461043f57610163565b8063715018a6146103015780637547c7a3146103175780637e1c0c091461033f5780638da5cb5b1461036957610163565b806347880b8f116100db57806347880b8f1461021f57806351ed6a30146102355780635c5a0a9d1461025f5780636985e6d81461029b578063710b318b146102d757610163565b80630106395f146101675780632e92abdd146101915780633aecd0e3146101a75780634634d81c146101e357610163565b366101635760065468010000000000000000346101299190610de0565b6101339190610e4e565b60085f8282546101439190610e7e565b925050819055503460075f82825461015b9190610e7e565b925050819055005b5f80fd5b348015610172575f80fd5b5061017b610467565b6040516101889190610ef0565b60405180910390f35b34801561019c575f80fd5b506101a561048c565b005b3480156101b2575f80fd5b506101cd60048036038101906101c89190610f37565b610532565b6040516101da9190610f71565b60405180910390f35b3480156101ee575f80fd5b5061020960048036038101906102049190610f37565b610578565b6040516102169190610f71565b60405180910390f35b34801561022a575f80fd5b50610233610631565b005b348015610240575f80fd5b50610249610842565b6040516102569190610fe5565b60405180910390f35b34801561026a575f80fd5b5061028560048036038101906102809190610f37565b610867565b6040516102929190610f71565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190610f37565b61087c565b6040516102ce9190610f71565b60405180910390f35b3480156102e2575f80fd5b506102eb610891565b6040516102f89190610f71565b60405180910390f35b34801561030c575f80fd5b50610315610897565b005b348015610322575f80fd5b5061033d60048036038101906103389190611028565b61091e565b005b34801561034a575f80fd5b50610353610b34565b6040516103609190610f71565b60405180910390f35b348015610374575f80fd5b5061037d610b3a565b60405161038a9190610ef0565b60405180910390f35b34801561039e575f80fd5b506103b960048036038101906103b49190610f37565b610b61565b6040516103c6919061106d565b60405180910390f35b6103d7610b7e565b005b3480156103e4575f80fd5b506103ed610bd1565b6040516103fa9190610f71565b60405180910390f35b34801561040e575f80fd5b5061042960048036038101906104249190610f37565b610bd7565b6040516104369190610f71565b60405180910390f35b34801561044a575f80fd5b5061046560048036038101906104609190610f37565b610bec565b005b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61049633610578565b90508060095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104e49190610e7e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561052e573d5f803e3d5ffd5b5050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f806801000000000000000060085460025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105cf9190610de0565b6105d99190610e4e565b90505f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826106259190611086565b90508092505050919050565b61063961048c565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040518363ffffffff1660e01b81526004016106d29291906110b9565b6020604051808303815f875af11580156106ee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610712919061110a565b5060025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460065f8282546107619190611086565b925050819055505f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052805f5260405f205f915090505481565b6003602052805f5260405f205f915090505481565b60085481565b61089f610ce2565b73ffffffffffffffffffffffffffffffffffffffff166108bd610b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a9061118f565b60405180910390fd5b61091c5f610ce9565b565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161097c939291906111ad565b6020604051808303815f875af1158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc919061110a565b505f6109c733610578565b90508160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a159190610e7e565b925050819055506001805f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508160065f828254610a819190610e7e565b925050819055504260035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080610ad433610578565b610ade9190611086565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b299190610e7e565b925050819055505050565b60065481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001602052805f5260405f205f915054906101000a900460ff1681565b6006546801000000000000000034610b969190610de0565b610ba09190610e4e565b60085f828254610bb09190610e7e565b925050819055503460075f828254610bc89190610e7e565b92505081905550565b60075481565b6009602052805f5260405f205f915090505481565b610bf4610ce2565b73ffffffffffffffffffffffffffffffffffffffff16610c12610b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5f9061118f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90611252565b60405180910390fd5b610cdf81610ce9565b50565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610dea82610daa565b9150610df583610daa565b9250828202610e0381610daa565b91508282048414831517610e1a57610e19610db3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e5882610daa565b9150610e6383610daa565b925082610e7357610e72610e21565b5b828204905092915050565b5f610e8882610daa565b9150610e9383610daa565b9250828201905080821115610eab57610eaa610db3565b5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610eda82610eb1565b9050919050565b610eea81610ed0565b82525050565b5f602082019050610f035f830184610ee1565b92915050565b5f80fd5b610f1681610ed0565b8114610f20575f80fd5b50565b5f81359050610f3181610f0d565b92915050565b5f60208284031215610f4c57610f4b610f09565b5b5f610f5984828501610f23565b91505092915050565b610f6b81610daa565b82525050565b5f602082019050610f845f830184610f62565b92915050565b5f819050919050565b5f610fad610fa8610fa384610eb1565b610f8a565b610eb1565b9050919050565b5f610fbe82610f93565b9050919050565b5f610fcf82610fb4565b9050919050565b610fdf81610fc5565b82525050565b5f602082019050610ff85f830184610fd6565b92915050565b61100781610daa565b8114611011575f80fd5b50565b5f8135905061102281610ffe565b92915050565b5f6020828403121561103d5761103c610f09565b5b5f61104a84828501611014565b91505092915050565b5f8115159050919050565b61106781611053565b82525050565b5f6020820190506110805f83018461105e565b92915050565b5f61109082610daa565b915061109b83610daa565b92508282039050818111156110b3576110b2610db3565b5b92915050565b5f6040820190506110cc5f830185610ee1565b6110d96020830184610f62565b9392505050565b6110e981611053565b81146110f3575f80fd5b50565b5f81519050611104816110e0565b92915050565b5f6020828403121561111f5761111e610f09565b5b5f61112c848285016110f6565b91505092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611179602083611135565b915061118482611145565b602082019050919050565b5f6020820190508181035f8301526111a68161116d565b9050919050565b5f6060820190506111c05f830186610ee1565b6111cd6020830185610ee1565b6111da6040830184610f62565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61123c602683611135565b9150611247826111e2565b604082019050919050565b5f6020820190508181035f83015261126981611230565b905091905056fea2646970667358221220b59d5d17b168d2aa64ec38eb6548f67ea93b0ccd1d3288da9d8f2e4495ea5b4a64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061010c575f3560e01c8063715018a61161009457806398807d841161006357806398807d8414610393578063d0e30db0146103cf578063deb1a52b146103d9578063e1456cb414610403578063f2fde38b1461043f57610163565b8063715018a6146103015780637547c7a3146103175780637e1c0c091461033f5780638da5cb5b1461036957610163565b806347880b8f116100db57806347880b8f1461021f57806351ed6a30146102355780635c5a0a9d1461025f5780636985e6d81461029b578063710b318b146102d757610163565b80630106395f146101675780632e92abdd146101915780633aecd0e3146101a75780634634d81c146101e357610163565b366101635760065468010000000000000000346101299190610de0565b6101339190610e4e565b60085f8282546101439190610e7e565b925050819055503460075f82825461015b9190610e7e565b925050819055005b5f80fd5b348015610172575f80fd5b5061017b610467565b6040516101889190610ef0565b60405180910390f35b34801561019c575f80fd5b506101a561048c565b005b3480156101b2575f80fd5b506101cd60048036038101906101c89190610f37565b610532565b6040516101da9190610f71565b60405180910390f35b3480156101ee575f80fd5b5061020960048036038101906102049190610f37565b610578565b6040516102169190610f71565b60405180910390f35b34801561022a575f80fd5b50610233610631565b005b348015610240575f80fd5b50610249610842565b6040516102569190610fe5565b60405180910390f35b34801561026a575f80fd5b5061028560048036038101906102809190610f37565b610867565b6040516102929190610f71565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190610f37565b61087c565b6040516102ce9190610f71565b60405180910390f35b3480156102e2575f80fd5b506102eb610891565b6040516102f89190610f71565b60405180910390f35b34801561030c575f80fd5b50610315610897565b005b348015610322575f80fd5b5061033d60048036038101906103389190611028565b61091e565b005b34801561034a575f80fd5b50610353610b34565b6040516103609190610f71565b60405180910390f35b348015610374575f80fd5b5061037d610b3a565b60405161038a9190610ef0565b60405180910390f35b34801561039e575f80fd5b506103b960048036038101906103b49190610f37565b610b61565b6040516103c6919061106d565b60405180910390f35b6103d7610b7e565b005b3480156103e4575f80fd5b506103ed610bd1565b6040516103fa9190610f71565b60405180910390f35b34801561040e575f80fd5b5061042960048036038101906104249190610f37565b610bd7565b6040516104369190610f71565b60405180910390f35b34801561044a575f80fd5b5061046560048036038101906104609190610f37565b610bec565b005b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61049633610578565b90508060095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104e49190610e7e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561052e573d5f803e3d5ffd5b5050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f806801000000000000000060085460025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105cf9190610de0565b6105d99190610e4e565b90505f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826106259190611086565b90508092505050919050565b61063961048c565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040518363ffffffff1660e01b81526004016106d29291906110b9565b6020604051808303815f875af11580156106ee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610712919061110a565b5060025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460065f8282546107619190611086565b925050819055505f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052805f5260405f205f915090505481565b6003602052805f5260405f205f915090505481565b60085481565b61089f610ce2565b73ffffffffffffffffffffffffffffffffffffffff166108bd610b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a9061118f565b60405180910390fd5b61091c5f610ce9565b565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161097c939291906111ad565b6020604051808303815f875af1158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc919061110a565b505f6109c733610578565b90508160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a159190610e7e565b925050819055506001805f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508160065f828254610a819190610e7e565b925050819055504260035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080610ad433610578565b610ade9190611086565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b299190610e7e565b925050819055505050565b60065481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001602052805f5260405f205f915054906101000a900460ff1681565b6006546801000000000000000034610b969190610de0565b610ba09190610e4e565b60085f828254610bb09190610e7e565b925050819055503460075f828254610bc89190610e7e565b92505081905550565b60075481565b6009602052805f5260405f205f915090505481565b610bf4610ce2565b73ffffffffffffffffffffffffffffffffffffffff16610c12610b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5f9061118f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90611252565b60405180910390fd5b610cdf81610ce9565b50565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610dea82610daa565b9150610df583610daa565b9250828202610e0381610daa565b91508282048414831517610e1a57610e19610db3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e5882610daa565b9150610e6383610daa565b925082610e7357610e72610e21565b5b828204905092915050565b5f610e8882610daa565b9150610e9383610daa565b9250828201905080821115610eab57610eaa610db3565b5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610eda82610eb1565b9050919050565b610eea81610ed0565b82525050565b5f602082019050610f035f830184610ee1565b92915050565b5f80fd5b610f1681610ed0565b8114610f20575f80fd5b50565b5f81359050610f3181610f0d565b92915050565b5f60208284031215610f4c57610f4b610f09565b5b5f610f5984828501610f23565b91505092915050565b610f6b81610daa565b82525050565b5f602082019050610f845f830184610f62565b92915050565b5f819050919050565b5f610fad610fa8610fa384610eb1565b610f8a565b610eb1565b9050919050565b5f610fbe82610f93565b9050919050565b5f610fcf82610fb4565b9050919050565b610fdf81610fc5565b82525050565b5f602082019050610ff85f830184610fd6565b92915050565b61100781610daa565b8114611011575f80fd5b50565b5f8135905061102281610ffe565b92915050565b5f6020828403121561103d5761103c610f09565b5b5f61104a84828501611014565b91505092915050565b5f8115159050919050565b61106781611053565b82525050565b5f6020820190506110805f83018461105e565b92915050565b5f61109082610daa565b915061109b83610daa565b92508282039050818111156110b3576110b2610db3565b5b92915050565b5f6040820190506110cc5f830185610ee1565b6110d96020830184610f62565b9392505050565b6110e981611053565b81146110f3575f80fd5b50565b5f81519050611104816110e0565b92915050565b5f6020828403121561111f5761111e610f09565b5b5f61112c848285016110f6565b91505092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611179602083611135565b915061118482611145565b602082019050919050565b5f6020820190508181035f8301526111a68161116d565b9050919050565b5f6060820190506111c05f830186610ee1565b6111cd6020830185610ee1565b6111da6040830184610f62565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61123c602683611135565b9150611247826111e2565b604082019050919050565b5f6020820190508181035f83015261126981611230565b905091905056fea2646970667358221220b59d5d17b168d2aa64ec38eb6548f67ea93b0ccd1d3288da9d8f2e4495ea5b4a64736f6c63430008150033

Deployed Bytecode Sourcemap

8879:2328:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9626:11;;9449:5;9601:9;:21;;;;:::i;:::-;9600:37;;;;:::i;:::-;9580:15;;:57;;;;;;;:::i;:::-;;;;;;;;9666:9;9648:14;;:27;;;;;;;:::i;:::-;;;;;;;;8879:2328;;;;9118:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11014:188;;;;;;;;;;;;;:::i;:::-;;10887:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10638:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10298:332;;;;;;;;;;;;;:::i;:::-;;9202:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8999:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9060:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9318:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7438:94;;;;;;;;;;;;;:::i;:::-;;9851:439;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9237:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7215:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8954:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9695:148;;;:::i;:::-;;9276:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9357:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7540:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9118:77;;;;;;;;;;;;;:::o;11014:188::-;11061:14;11078:24;11091:10;11078:12;:24::i;:::-;11061:41;;11141:6;11115:10;:22;11126:10;11115:22;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;11166:10;11158:28;;:36;11187:6;11158:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11050:152;11014:188::o;10887:119::-;10946:7;10973:19;:25;10993:4;10973:25;;;;;;;;;;;;;;;;10966:32;;10887:119;;;:::o;10638:241::-;10694:7;10714:15;9449:5;10761:15;;10733:19;:25;10753:4;10733:25;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;10732:57;;;;:::i;:::-;10714:75;;10802:14;10829:10;:16;10840:4;10829:16;;;;;;;;;;;;;;;;10819:7;:26;;;;:::i;:::-;10802:43;;10865:6;10858:13;;;;10638:241;;;:::o;10298:332::-;10347:19;:17;:19::i;:::-;10379:10;;;;;;;;;;;:19;;;10399:10;10411:19;:31;10431:10;10411:31;;;;;;;;;;;;;;;;10379:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10471:19;:31;10491:10;10471:31;;;;;;;;;;;;;;;;10456:11;;:46;;;;;;;:::i;:::-;;;;;;;;10547:1;10513:19;:31;10533:10;10513:31;;;;;;;;;;;;;;;:35;;;;10580:5;10559:6;:18;10566:10;10559:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10621:1;10596:10;:22;10607:10;10596:22;;;;;;;;;;;;;;;:26;;;;10298:332::o;9202:24::-;;;;;;;;;;;;;:::o;8999:54::-;;;;;;;;;;;;;;;;;:::o;9060:49::-;;;;;;;;;;;;;;;;;:::o;9318:30::-;;;;:::o;7438:94::-;7361:12;:10;:12::i;:::-;7350:23;;:7;:5;:7::i;:::-;:23;;;7342:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7503:21:::1;7521:1;7503:9;:21::i;:::-;7438:94::o:0;9851:439::-;9905:10;;;;;;;;;;;:23;;;9929:10;9949:4;9956:6;9905:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9976:19;9998:24;10011:10;9998:12;:24::i;:::-;9976:46;;10070:6;10035:19;:31;10055:10;10035:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;10108:4;10087:6;:18;10094:10;10087:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;10140:6;10125:11;;:21;;;;;;;:::i;:::-;;;;;;;;10188:15;10159:14;:26;10174:10;10159:26;;;;;;;;;;;;;;;:44;;;;10270:11;10243:24;10256:10;10243:12;:24::i;:::-;:38;;;;:::i;:::-;10216:10;:22;10227:10;10216:22;;;;;;;;;;;;;;;;:66;;;;;;;:::i;:::-;;;;;;;;9892:398;9851:439;:::o;9237:30::-;;;;:::o;7215:87::-;7261:7;7288:6;;;;;;;;;;;7281:13;;7215:87;:::o;8954:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;9695:148::-;9786:11;;9449:5;9761:9;:21;;;;:::i;:::-;9760:37;;;;:::i;:::-;9740:15;;:57;;;;;;;:::i;:::-;;;;;;;;9826:9;9808:14;;:27;;;;;;;:::i;:::-;;;;;;;;9695:148::o;9276:33::-;;;;:::o;9357:45::-;;;;;;;;;;;;;;;;;:::o;7540:192::-;7361:12;:10;:12::i;:::-;7350:23;;:7;:5;:7::i;:::-;:23;;;7342:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7649:1:::1;7629:22;;:8;:22;;::::0;7621:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7705:19;7715:8;7705:9;:19::i;:::-;7540:192:::0;:::o;6770:98::-;6823:7;6850:10;6843:17;;6770:98;:::o;7740:173::-;7796:16;7815:6;;;;;;;;;;;7796:25;;7841:8;7832:6;;:17;;;;;;;;;;;;;;;;;;7896:8;7865:40;;7886:8;7865:40;;;;;;;;;;;;7785:128;7740:173;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:180::-;138:77;135:1;128:88;235:4;232:1;225:15;259:4;256:1;249:15;276:410;316:7;339:20;357:1;339:20;:::i;:::-;334:25;;373:20;391:1;373:20;:::i;:::-;368:25;;428:1;425;421:9;450:30;468:11;450:30;:::i;:::-;439:41;;629:1;620:7;616:15;613:1;610:22;590:1;583:9;563:83;540:139;;659:18;;:::i;:::-;540:139;324:362;276:410;;;;:::o;692:180::-;740:77;737:1;730:88;837:4;834:1;827:15;861:4;858:1;851:15;878:185;918:1;935:20;953:1;935:20;:::i;:::-;930:25;;969:20;987:1;969:20;:::i;:::-;964:25;;1008:1;998:35;;1013:18;;:::i;:::-;998:35;1055:1;1052;1048:9;1043:14;;878:185;;;;:::o;1069:191::-;1109:3;1128:20;1146:1;1128:20;:::i;:::-;1123:25;;1162:20;1180:1;1162:20;:::i;:::-;1157:25;;1205:1;1202;1198:9;1191:16;;1226:3;1223:1;1220:10;1217:36;;;1233:18;;:::i;:::-;1217:36;1069:191;;;;:::o;1266:126::-;1303:7;1343:42;1336:5;1332:54;1321:65;;1266:126;;;:::o;1398:96::-;1435:7;1464:24;1482:5;1464:24;:::i;:::-;1453:35;;1398:96;;;:::o;1500:118::-;1587:24;1605:5;1587:24;:::i;:::-;1582:3;1575:37;1500:118;;:::o;1624:222::-;1717:4;1755:2;1744:9;1740:18;1732:26;;1768:71;1836:1;1825:9;1821:17;1812:6;1768:71;:::i;:::-;1624:222;;;;:::o;1933:117::-;2042:1;2039;2032:12;2179:122;2252:24;2270:5;2252:24;:::i;:::-;2245:5;2242:35;2232:63;;2291:1;2288;2281:12;2232:63;2179:122;:::o;2307:139::-;2353:5;2391:6;2378:20;2369:29;;2407:33;2434:5;2407:33;:::i;:::-;2307:139;;;;:::o;2452:329::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:53;2756:7;2747:6;2736:9;2732:22;2711:53;:::i;:::-;2701:63;;2657:117;2452:329;;;;:::o;2787:118::-;2874:24;2892:5;2874:24;:::i;:::-;2869:3;2862:37;2787:118;;:::o;2911:222::-;3004:4;3042:2;3031:9;3027:18;3019:26;;3055:71;3123:1;3112:9;3108:17;3099:6;3055:71;:::i;:::-;2911:222;;;;:::o;3139:60::-;3167:3;3188:5;3181:12;;3139:60;;;:::o;3205:142::-;3255:9;3288:53;3306:34;3315:24;3333:5;3315:24;:::i;:::-;3306:34;:::i;:::-;3288:53;:::i;:::-;3275:66;;3205:142;;;:::o;3353:126::-;3403:9;3436:37;3467:5;3436:37;:::i;:::-;3423:50;;3353:126;;;:::o;3485:140::-;3549:9;3582:37;3613:5;3582:37;:::i;:::-;3569:50;;3485:140;;;:::o;3631:159::-;3732:51;3777:5;3732:51;:::i;:::-;3727:3;3720:64;3631:159;;:::o;3796:250::-;3903:4;3941:2;3930:9;3926:18;3918:26;;3954:85;4036:1;4025:9;4021:17;4012:6;3954:85;:::i;:::-;3796:250;;;;:::o;4052:122::-;4125:24;4143:5;4125:24;:::i;:::-;4118:5;4115:35;4105:63;;4164:1;4161;4154:12;4105:63;4052:122;:::o;4180:139::-;4226:5;4264:6;4251:20;4242:29;;4280:33;4307:5;4280:33;:::i;:::-;4180:139;;;;:::o;4325:329::-;4384:6;4433:2;4421:9;4412:7;4408:23;4404:32;4401:119;;;4439:79;;:::i;:::-;4401:119;4559:1;4584:53;4629:7;4620:6;4609:9;4605:22;4584:53;:::i;:::-;4574:63;;4530:117;4325:329;;;;:::o;4660:90::-;4694:7;4737:5;4730:13;4723:21;4712:32;;4660:90;;;:::o;4756:109::-;4837:21;4852:5;4837:21;:::i;:::-;4832:3;4825:34;4756:109;;:::o;4871:210::-;4958:4;4996:2;4985:9;4981:18;4973:26;;5009:65;5071:1;5060:9;5056:17;5047:6;5009:65;:::i;:::-;4871:210;;;;:::o;5087:194::-;5127:4;5147:20;5165:1;5147:20;:::i;:::-;5142:25;;5181:20;5199:1;5181:20;:::i;:::-;5176:25;;5225:1;5222;5218:9;5210:17;;5249:1;5243:4;5240:11;5237:37;;;5254:18;;:::i;:::-;5237:37;5087:194;;;;:::o;5287:332::-;5408:4;5446:2;5435:9;5431:18;5423:26;;5459:71;5527:1;5516:9;5512:17;5503:6;5459:71;:::i;:::-;5540:72;5608:2;5597:9;5593:18;5584:6;5540:72;:::i;:::-;5287:332;;;;;:::o;5625:116::-;5695:21;5710:5;5695:21;:::i;:::-;5688:5;5685:32;5675:60;;5731:1;5728;5721:12;5675:60;5625:116;:::o;5747:137::-;5801:5;5832:6;5826:13;5817:22;;5848:30;5872:5;5848:30;:::i;:::-;5747:137;;;;:::o;5890:345::-;5957:6;6006:2;5994:9;5985:7;5981:23;5977:32;5974:119;;;6012:79;;:::i;:::-;5974:119;6132:1;6157:61;6210:7;6201:6;6190:9;6186:22;6157:61;:::i;:::-;6147:71;;6103:125;5890:345;;;;:::o;6241:169::-;6325:11;6359:6;6354:3;6347:19;6399:4;6394:3;6390:14;6375:29;;6241:169;;;;:::o;6416:182::-;6556:34;6552:1;6544:6;6540:14;6533:58;6416:182;:::o;6604:366::-;6746:3;6767:67;6831:2;6826:3;6767:67;:::i;:::-;6760:74;;6843:93;6932:3;6843:93;:::i;:::-;6961:2;6956:3;6952:12;6945:19;;6604:366;;;:::o;6976:419::-;7142:4;7180:2;7169:9;7165:18;7157:26;;7229:9;7223:4;7219:20;7215:1;7204:9;7200:17;7193:47;7257:131;7383:4;7257:131;:::i;:::-;7249:139;;6976:419;;;:::o;7401:442::-;7550:4;7588:2;7577:9;7573:18;7565:26;;7601:71;7669:1;7658:9;7654:17;7645:6;7601:71;:::i;:::-;7682:72;7750:2;7739:9;7735:18;7726:6;7682:72;:::i;:::-;7764;7832:2;7821:9;7817:18;7808:6;7764:72;:::i;:::-;7401:442;;;;;;:::o;7849:225::-;7989:34;7985:1;7977:6;7973:14;7966:58;8058:8;8053:2;8045:6;8041:15;8034:33;7849:225;:::o;8080:366::-;8222:3;8243:67;8307:2;8302:3;8243:67;:::i;:::-;8236:74;;8319:93;8408:3;8319:93;:::i;:::-;8437:2;8432:3;8428:12;8421:19;;8080:366;;;:::o;8452:419::-;8618:4;8656:2;8645:9;8641:18;8633:26;;8705:9;8699:4;8695:20;8691:1;8680:9;8676:17;8669:47;8733:131;8859:4;8733:131;:::i;:::-;8725:139;;8452:419;;;:::o

Swarm Source

ipfs://b59d5d17b168d2aa64ec38eb6548f67ea93b0ccd1d3288da9d8f2e4495ea5b4a

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.