ETH Price: $2,125.97 (-3.87%)

Contract

0x8945F0F56384c4Bb6B727D6E6B9e2cE323DF6756
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Capital130664402021-08-21 4:08:171294 days ago1629518897IN
0x8945F0F5...323DF6756
0 ETH0.0010412418.00000145
Withdraw Capital130662892021-08-21 3:38:081294 days ago1629517088IN
0x8945F0F5...323DF6756
0 ETH0.0021734629.00000145
Withdraw Capital130654152021-08-21 0:20:381294 days ago1629505238IN
0x8945F0F5...323DF6756
0 ETH0.0016334229.00000145
Withdraw Capital130638552021-08-20 18:55:431295 days ago1629485743IN
0x8945F0F5...323DF6756
0 ETH0.0020985128.00000145
Withdraw Capital130626882021-08-20 14:35:401295 days ago1629470140IN
0x8945F0F5...323DF6756
0 ETH0.0033551258.00000145
Withdraw Capital130626302021-08-20 14:19:521295 days ago1629469192IN
0x8945F0F5...323DF6756
0 ETH0.0024732533.00000145
Withdraw Capital130625442021-08-20 14:03:021295 days ago1629468182IN
0x8945F0F5...323DF6756
0 ETH0.0023682440.93987071
Withdraw Capital130625382021-08-20 14:01:551295 days ago1629468115IN
0x8945F0F5...323DF6756
0 ETH0.0032227243
Withdraw Capital130625182021-08-20 13:57:581295 days ago1629467878IN
0x8945F0F5...323DF6756
0 ETH0.002834549.00000145
Withdraw Capital130624792021-08-20 13:48:311295 days ago1629467311IN
0x8945F0F5...323DF6756
0 ETH0.0026609646.00000145
Withdraw Capital130624292021-08-20 13:35:541295 days ago1629466554IN
0x8945F0F5...323DF6756
0 ETH0.0020246435.00000145
Withdraw Capital130624212021-08-20 13:34:291295 days ago1629466469IN
0x8945F0F5...323DF6756
0 ETH0.0021403337.00000145
Withdraw Capital130624092021-08-20 13:32:071295 days ago1629466327IN
0x8945F0F5...323DF6756
0 ETH0.0026031145.00000145
Withdraw Capital130623862021-08-20 13:26:511295 days ago1629466011IN
0x8945F0F5...323DF6756
0 ETH0.0024295742.00000145
Withdraw Capital130623742021-08-20 13:24:161295 days ago1629465856IN
0x8945F0F5...323DF6756
0 ETH0.0022560339.00000145
Withdraw Capital130623332021-08-20 13:14:201295 days ago1629465260IN
0x8945F0F5...323DF6756
0 ETH0.0026231435.00000145
Withdraw Capital130623212021-08-20 13:12:161295 days ago1629465136IN
0x8945F0F5...323DF6756
0 ETH0.0024295742.00000145
Withdraw Capital130622682021-08-20 12:57:461295 days ago1629464266IN
0x8945F0F5...323DF6756
0 ETH0.0017932531.00000145
Withdraw Capital130622582021-08-20 12:55:521295 days ago1629464152IN
0x8945F0F5...323DF6756
0 ETH0.002398332.00000145
Withdraw Capital130622582021-08-20 12:55:521295 days ago1629464152IN
0x8945F0F5...323DF6756
0 ETH0.0024732533.00000145
Withdraw Capital130622402021-08-20 12:52:351295 days ago1629463955IN
0x8945F0F5...323DF6756
0 ETH0.0021403337.00000145
Withdraw Capital130622092021-08-20 12:45:181295 days ago1629463518IN
0x8945F0F5...323DF6756
0 ETH0.0020246435.00000145
Withdraw Capital130621802021-08-20 12:39:171295 days ago1629463157IN
0x8945F0F5...323DF6756
0 ETH0.0018898132.66928119
Withdraw Capital130621632021-08-20 12:35:121295 days ago1629462912IN
0x8945F0F5...323DF6756
0 ETH0.0019089533.00000145
Withdraw Capital130620972021-08-20 12:20:401295 days ago1629462040IN
0x8945F0F5...323DF6756
0 ETH0.0019089533.00000145
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-130622762021-08-20 12:59:211295 days ago1629464361
0x8945F0F5...323DF6756
0.00964897 ETH
-130622762021-08-20 12:59:211295 days ago1629464361
0x8945F0F5...323DF6756
0.00964897 ETH
-130615752021-08-20 10:23:571295 days ago1629455037
0x8945F0F5...323DF6756
0.08171184 ETH
-130615752021-08-20 10:23:571295 days ago1629455037
0x8945F0F5...323DF6756
0.08171184 ETH
-130614072021-08-20 9:45:321295 days ago1629452732
0x8945F0F5...323DF6756
0.00748544 ETH
-130614072021-08-20 9:45:321295 days ago1629452732
0x8945F0F5...323DF6756
0.00748544 ETH
-130613382021-08-20 9:32:381295 days ago1629451958
0x8945F0F5...323DF6756
0.0208722 ETH
-130613382021-08-20 9:32:381295 days ago1629451958
0x8945F0F5...323DF6756
0.0208722 ETH
-130612632021-08-20 9:16:591295 days ago1629451019
0x8945F0F5...323DF6756
0.20564116 ETH
-130612632021-08-20 9:16:591295 days ago1629451019
0x8945F0F5...323DF6756
0.20564116 ETH
-130612522021-08-20 9:14:561295 days ago1629450896
0x8945F0F5...323DF6756
0.02424123 ETH
-130612522021-08-20 9:14:561295 days ago1629450896
0x8945F0F5...323DF6756
0.02424123 ETH
-130403832021-08-17 3:45:221298 days ago1629171922
0x8945F0F5...323DF6756
0.00013781 ETH
-130403832021-08-17 3:45:221298 days ago1629171922
0x8945F0F5...323DF6756
0.00013781 ETH
-130170202021-08-13 13:16:121302 days ago1628860572
0x8945F0F5...323DF6756
0.01728543 ETH
-130170202021-08-13 13:16:121302 days ago1628860572
0x8945F0F5...323DF6756
0.01728543 ETH
-130147232021-08-13 4:46:451302 days ago1628830005
0x8945F0F5...323DF6756
0.18102413 ETH
-130147232021-08-13 4:46:451302 days ago1628830005
0x8945F0F5...323DF6756
0.18102413 ETH
-130146252021-08-13 4:24:531302 days ago1628828693
0x8945F0F5...323DF6756
0.02231933 ETH
-130146252021-08-13 4:24:531302 days ago1628828693
0x8945F0F5...323DF6756
0.02231933 ETH
-130105292021-08-12 13:07:521303 days ago1628773672
0x8945F0F5...323DF6756
0.18102413 ETH
-130105292021-08-12 13:07:521303 days ago1628773672
0x8945F0F5...323DF6756
0.18102413 ETH
-130100232021-08-12 11:13:291303 days ago1628766809
0x8945F0F5...323DF6756
0.05760432 ETH
-130100232021-08-12 11:13:291303 days ago1628766809
0x8945F0F5...323DF6756
0.05760432 ETH
-130092722021-08-12 8:34:141303 days ago1628757254
0x8945F0F5...323DF6756
0.15740889 ETH
View All Internal Transactions
Loading...
Loading

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

Contract Name:
MiningPool

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-13
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address, address) external;
    
    function setFeeOwner(address _feeOwner) external;
}

library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        
        
        
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        
        require(b > 0, errorMessage);
        uint256 c = a / b;
        

        return c;
    }

    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Context {
    
    
    constructor () { }
    

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; 
        return msg.data;
    }
}

contract Ownable is Context {
    
    address private _owner;

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

    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    
    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }

    
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function nonces(address account) external view returns (uint256);

    function approve(address spender, uint value) external returns (bool);
    function permit(address holder, address spender, uint256 nonce, uint256 expiry, uint256 amount, uint8 v, bytes32 r, bytes32 s) external;
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

interface IUniswapFactory {
    function getPair(address token0,address token1) external returns(address);
}

interface IWETH {
    function deposit() external payable;
    function transfer(address to, uint value) external returns (bool);
    function withdraw(uint) external;
    function balanceOf(address owner) external view returns (uint);
}


contract MiningPool is Ownable {
    
    constructor(IERC20 _token, IUniswapFactory _factory, uint256 chainId_, IWETH _weth ) {
        // tokens[0] = tokenAddress;
        // tokens[1] = wethAddress;
        token = _token;
        factory = _factory;
        weth = _weth;
        ANCHOR = duration(0,block.timestamp).mul(ONE_DAY);
        
        DOMAIN_SEPARATOR = keccak256(abi.encode(
            keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
            keccak256("MiningPool"),
            keccak256(bytes(version)),
            chainId_,
            address(this)
        ));
    }
    
    receive() external payable {
        assert(msg.sender == address(weth)); // only accept ETH via fallback from the WETH contract
    }

    using SafeMath for uint256;
  
    struct User {
        uint256 id;
        uint256 investment;
        uint256 freezeTime;
    }
    
    string  public constant version  = "1";
    
    // --- EIP712 niceties ---
    bytes32 public DOMAIN_SEPARATOR;
    // bytes32 public constant PERMIT_TYPEHASH = keccak256("Lock(address holder,address locker,uint256 nonce,uint256 expiry,bool allowed)");
    bytes32 public constant PERMIT_TYPEHASH = 0x21cd9aa44f4218d88de398865e90b6302b1c68dbeecba1ed08e507cb29ef9d6f;

    uint256 constant internal ONE_DAY = 1 days;
    
    uint256 public ANCHOR;
    
    IERC20 public token;
    
    IWETH public weth;
    
    //address[2] tokens;
    IUniswapV2Pair public pair;
    
    IUniswapFactory public factory;
    
    uint256 public stakeAmount;
    
    mapping(address=>User) public users;
    //Index of the user
    mapping(uint256=>address) public indexs;
    
    mapping(address => uint256[2]) public deposits;
    
    mapping (address => uint) public _nonces;
    
    uint256 public userCounter;
    
    event Stake(address indexed userAddress,uint256 amount);
    
    event WithdrawCapital(address indexed userAddress,uint256 amount);
    
    event Deposit(address indexed userAddress,uint256[2]);
    
    event Allot(address indexed userAddress,uint256,uint256);
    
    event Lock(address indexed userAddress,uint256 amount);
    
    function setPair(address tokenA,address tokenB) public onlyOwner returns(address pairAddress){
        pairAddress = factory.getPair(tokenA,tokenB);
        //require(pairAddress!=address(0),"Invalid trade pair");
        pair = IUniswapV2Pair(pairAddress);
    }
    
    function deposit(uint256[2] memory amounts) public returns(bool){
        (address[2] memory tokens,) = balanceOf(address(this));
        for(uint8 i = 0;i<amounts.length;i++){
            if(amounts[i]>0) TransferHelper.safeTransferFrom(tokens[i],msg.sender,address(this),amounts[i]);
            deposits[msg.sender][i] += amounts[i];
        }
        emit Deposit(msg.sender,amounts);
        
        return true;
    }
    
    function allot(address userAddress,uint256[2] memory amounts) public returns(bool){
        (address[2] memory tokens,) = balanceOf(address(this));
        
        if(amounts[0]>0) _transfer(tokens[0],userAddress,amounts[0]);
        if(amounts[1]>0) _transfer(tokens[1],userAddress,amounts[1]);
      
        for(uint8 i = 0;i<amounts.length;i++){
            require(deposits[msg.sender][i]>=amounts[i],"not sufficient funds");
            deposits[msg.sender][i]-=amounts[i];
        }
        
        emit Allot(userAddress,amounts[0],amounts[1]);
        return true;
    }
    
    
    function _transfer(address _token,address userAddress,uint256 amount) internal  {
        if(_token==address(weth)) {
            weth.withdraw(amount);
            TransferHelper.safeTransferETH(userAddress, amount);
        }else{
            TransferHelper.safeTransfer(_token,userAddress,amount);
        }
        
    }

    
    function stake(uint256 amount) public {
        
        require(address(pair)!=address(0),"Invalid trade pair");
        require(amount>0,"Amount of error");
        //token.permit(msg.sender,address(this),nonce,expiry,amount,v,r,s);
        TransferHelper.safeTransferFrom(address(token),msg.sender,address(this),amount);
        
        User storage user = findUser(msg.sender);
        
        user.investment+= amount;
        stakeAmount+=amount;
        
        emit Stake(msg.sender,stakeAmount);
    }
    
    function lock(address holder, address locker, uint256 nonce, uint256 expiry,
                    bool allowed, uint8 v, bytes32 r, bytes32 s) public
    {
        bytes32 digest =
            keccak256(abi.encodePacked(
                "\x19\x01",
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH,
                                     holder,
                                     locker,
                                     nonce,
                                     expiry,
                                     allowed))
        ));

        require(holder != address(0), "invalid-address-0");
        require(holder == ecrecover(digest, v, r, s), "invalid-permit");
        require(expiry == 0 || block.timestamp <= expiry, "permit-expired");
        require(nonce == _nonces[holder]++, "invalid-nonce");
        
        users[holder].freezeTime = block.timestamp;
        
        emit Lock(holder,users[holder].investment);
    }
    
    
    function withdrawCapital() public {
      
        User storage user = users[msg.sender];
        if(user.freezeTime!=0){
            require(duration(user.freezeTime)!=duration(),"not allowed now");
        }
        
        uint256 amount = user.investment;
        
        require(amount>0,"not stake");
        
        TransferHelper.safeTransfer(address(token),msg.sender,amount);
        user.investment = 0;
        user.freezeTime = 0;
        stakeAmount = stakeAmount.sub(amount);

        emit WithdrawCapital(msg.sender,stakeAmount);
    }
    
    
    function findUser(address userAddress) internal returns(User storage user) {
        User storage udata = users[msg.sender];
        if(udata.id==0){
            userCounter++;
            udata.id = userCounter;
            indexs[userCounter] = userAddress;
        }
        return udata;
    }
    
    function lockStatus(address userAddress) public view returns(bool){
        uint256 freezeTime = users[userAddress].freezeTime;
        return freezeTime==0?false:duration(freezeTime) == duration();
    }
    
    function balanceOf(address userAddress) public view returns (address[2] memory tokens,uint256[2] memory balances){
        
        tokens[0] = pair.token0();
        tokens[1] = pair.token1();
        
        balances[0] = IERC20(tokens[0]).balanceOf(userAddress);
        balances[1] = IERC20(tokens[1]).balanceOf(userAddress);
        
        return (tokens,balances);
    }
    
    function totalSupply() public view returns (uint256){
        return token.totalSupply();
    }
    
    function duration() public view returns(uint256){
        return duration(block.timestamp);
    }

    function duration(uint256 endTime) internal view returns(uint256){
        return duration(ANCHOR,endTime);
    }
    
    function duration(uint256 startTime,uint256 endTime) internal pure returns(uint256){
        if(endTime<startTime){
            return 0;
        }else{
            return endTime.sub(startTime).div(ONE_DAY);
        }
    }
}


// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
    }

    function safeTransfer(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }

    function safeTransferFrom(address token, address from, address to, uint value) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
    }

    function safeTransferETH(address to, uint value) internal {
        (bool success,) = to.call{value:value}(new bytes(0));
        require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"contract IUniswapFactory","name":"_factory","type":"address"},{"internalType":"uint256","name":"chainId_","type":"uint256"},{"internalType":"contract IWETH","name":"_weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Allot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256[2]","name":"","type":"uint256[2]"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawCapital","type":"event"},{"inputs":[],"name":"ANCHOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256[2]","name":"amounts","type":"uint256[2]"}],"name":"allot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"address[2]","name":"tokens","type":"address[2]"},{"internalType":"uint256[2]","name":"balances","type":"uint256[2]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[2]","name":"amounts","type":"uint256[2]"}],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"deposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"indexs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"locker","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"allowed","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"lockStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"setPair","outputs":[{"internalType":"address","name":"pairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","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":"userCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"investment","type":"uint256"},{"internalType":"uint256","name":"freezeTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawCapital","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063b9844d8d1161008a578063f020d11811610064578063f020d118146109ef578063f0c37a5914610a97578063f2fde38b14610ac2578063fc0c546a14610b1357610219565b8063b9844d8d146108da578063c45a01551461093f578063d6d681771461098057610219565b806395c5c5e3116100c657806395c5c5e314610750578063a694fc3a146107eb578063a87430ba14610826578063a8aa1b311461089957610219565b8063715018a6146106cb5780638da5cb5b146106e25780638f32d59b1461072357610219565b806330adf81f1161015957806354fd4d501161013357806354fd4d501461052957806360c7dc47146105b95780636ff43706146105e457806370a082311461060f57610219565b806330adf81f146104925780633644e515146104bd5780633fc8cef3146104e857610219565b806315497d2c1161019557806315497d2c1461033657806317727a001461039d57806318160ddd146103b457806322f28b49146103df57610219565b80630fb5a6b41461021e578063101d457914610249578063143ad356146102ae57610219565b3661021957600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021757fe5b005b600080fd5b34801561022a57600080fd5b50610233610b54565b6040518082815260200191505060405180910390f35b34801561025557600080fd5b506102826004803603602081101561026c57600080fd5b8101908080359060200190929190505050610b64565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102ba57600080fd5b5061031e600480360360408110156102d157600080fd5b8101908080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f8201169050808301925050505050509192919290505050610b97565b60405180821515815260200191505060405180910390f35b34801561034257600080fd5b506103856004803603602081101561035957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d01565b60405180821515815260200191505060405180910390f35b3480156103a957600080fd5b506103b2610d73565b005b3480156103c057600080fd5b506103c9610f7b565b6040518082815260200191505060405180910390f35b3480156103eb57600080fd5b50610490600480360361010081101561040357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803515159060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050611025565b005b34801561049e57600080fd5b506104a76114ed565b6040518082815260200191505060405180910390f35b3480156104c957600080fd5b506104d2611514565b6040518082815260200191505060405180910390f35b3480156104f457600080fd5b506104fd61151a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053557600080fd5b5061053e611540565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057e578082015181840152602081019050610563565b50505050905090810190601f1680156105ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105c557600080fd5b506105ce611579565b6040518082815260200191505060405180910390f35b3480156105f057600080fd5b506105f961157f565b6040518082815260200191505060405180910390f35b34801561061b57600080fd5b5061065e6004803603602081101561063257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611585565b6040518083600260200280838360005b8381101561068957808201518184015260208101905061066e565b5050505090500182600260200280838360005b838110156106b757808201518184015260208101905061069c565b505050509050019250505060405180910390f35b3480156106d757600080fd5b506106e06118fa565b005b3480156106ee57600080fd5b506106f7611a32565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072f57600080fd5b50610738611a5b565b60405180821515815260200191505060405180910390f35b34801561075c57600080fd5b506107bf6004803603604081101561077357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ab9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f757600080fd5b506108246004803603602081101561080e57600080fd5b8101908080359060200190929190505050611c62565b005b34801561083257600080fd5b506108756004803603602081101561084957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4e565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156108a557600080fd5b506108ae611e78565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108e657600080fd5b50610929600480360360208110156108fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e9e565b6040518082815260200191505060405180910390f35b34801561094b57600080fd5b50610954611eb6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561098c57600080fd5b506109d9600480360360408110156109a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611edc565b6040518082815260200191505060405180910390f35b3480156109fb57600080fd5b50610a7f60048036036060811015610a1257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f8201169050808301925050505050509192919290505050611f04565b60405180821515815260200191505060405180910390f35b348015610aa357600080fd5b50610aac612189565b6040518082815260200191505060405180910390f35b348015610ace57600080fd5b50610b1160048036036020811015610ae557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061218f565b005b348015610b1f57600080fd5b50610b28612215565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000610b5f42612355565b905090565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610ba330611585565b50905060005b60028160ff161015610c80576000848260ff1660028110610bc657fe5b60200201511115610c0457610c03828260ff1660028110610be357fe5b60200201513330878560ff1660028110610bf957fe5b602002015161236a565b5b838160ff1660028110610c1357fe5b6020020151600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260ff1660028110610c6557fe5b01600082825401925050819055508080600101915050610ba9565b503373ffffffffffffffffffffffffffffffffffffffff167f81cc83752411cb6586c3b31511a1bf6f737652853ffc35f651ba6b812c961399846040518082600260200280838360005b83811015610ce5578082015181840152602081019050610cca565b5050505090500191505060405180910390a26001915050919050565b600080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154905060008114610d6857610d59610b54565b610d6282612355565b14610d6b565b60005b915050919050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015414610e4c57610dca610b54565b610dd78260020154612355565b1415610e4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f7420616c6c6f776564206e6f77000000000000000000000000000000000081525060200191505060405180910390fd5b5b60008160010154905060008111610ecb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374616b65000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610ef8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338361254e565b6000826001018190555060008260020181905550610f21816007546122c190919063ffffffff16565b6007819055503373ffffffffffffffffffffffffffffffffffffffff167f3cb38f529468694fde7182fa11a664974b1c24236d529f5605149d682e2cf6566007546040518082815260200191505060405180910390a25050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe557600080fd5b505afa158015610ff9573d6000803e3d6000fd5b505050506040513d602081101561100f57600080fd5b8101908080519060200190929190505050905090565b60006001547f21cd9aa44f4218d88de398865e90b6302b1c68dbeecba1ed08e507cb29ef9d6f60001b8a8a8a8a8a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001821515815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614156111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f696e76616c69642d616464726573732d3000000000000000000000000000000081525060200191505060405180910390fd5b60018185858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561121e573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c69642d7065726d697400000000000000000000000000000000000081525060200191505060405180910390fd5b60008614806112d75750854211155b611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7065726d69742d6578706972656400000000000000000000000000000000000081525060200191505060405180910390fd5b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055871461140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f696e76616c69642d6e6f6e63650000000000000000000000000000000000000081525060200191505060405180910390fd5b42600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055508873ffffffffffffffffffffffffffffffffffffffff167f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505050505050505050565b7f21cd9aa44f4218d88de398865e90b6302b1c68dbeecba1ed08e507cb29ef9d6f60001b81565b60015481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60075481565b60025481565b61158d612d73565b611595612d95565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156115fd57600080fd5b505afa158015611611573d6000803e3d6000fd5b505050506040513d602081101561162757600080fd5b81019080805190602001909291905050508260006002811061164557fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156116e457600080fd5b505afa1580156116f8573d6000803e3d6000fd5b505050506040513d602081101561170e57600080fd5b81019080805190602001909291905050508260016002811061172c57fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160006002811061177057fe5b602002015173ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117db57600080fd5b505afa1580156117ef573d6000803e3d6000fd5b505050506040513d602081101561180557600080fd5b81019080805190602001909291905050508160006002811061182357fe5b6020020181815250508160016002811061183957fe5b602002015173ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156118a457600080fd5b505afa1580156118b8573d6000803e3d6000fd5b505050506040513d60208110156118ce57600080fd5b8101908080519060200190929190505050816001600281106118ec57fe5b602002018181525050915091565b611902611a5b565b611974576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a9d612730565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6000611ac3611a5b565b611b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390584846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015611bde57600080fd5b505af1158015611bf2573d6000803e3d6000fd5b505050506040513d6020811015611c0857600080fd5b8101908080519060200190929190505050905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c69642074726164652070616972000000000000000000000000000081525060200191505060405180910390fd5b60008111611d9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f416d6f756e74206f66206572726f72000000000000000000000000000000000081525060200191505060405180910390fd5b611dcb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633308461236a565b6000611dd633612738565b9050818160010160008282540192505081905550816007600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a6007546040518082815260200191505060405180910390a25050565b60086020528060005260406000206000915090508060000154908060010154908060020154905083565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915090505481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528160005260406000208160028110611ef857600080fd5b01600091509150505481565b600080611f1030611585565b509050600083600060028110611f2257fe5b60200201511115611f5b57611f5a81600060028110611f3d57fe5b60200201518585600060028110611f5057fe5b6020020151612804565b5b600083600160028110611f6a57fe5b60200201511115611fa357611fa281600160028110611f8557fe5b60200201518585600160028110611f9857fe5b6020020151612804565b5b60005b60028160ff16101561210557838160ff1660028110611fc157fe5b6020020151600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260ff166002811061201357fe5b01541015612089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6e6f742073756666696369656e742066756e647300000000000000000000000081525060200191505060405180910390fd5b838160ff166002811061209857fe5b6020020151600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260ff16600281106120ea57fe5b01600082825403925050819055508080600101915050611fa6565b508373ffffffffffffffffffffffffffffffffffffffff167f4a1e112438f12d617d971a4446770d73935b4138bfa36f7dbf3aa4692f79159a8460006002811061214b57fe5b60200201518560016002811061215d57fe5b6020020151604051808381526020018281526020019250505060405180910390a2600191505092915050565b600c5481565b612197611a5b565b612209576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61221281612907565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083141561224e57600090506122bb565b600082840290508284828161225f57fe5b04146122b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dde6021913960400191505060405180910390fd5b809150505b92915050565b600061230383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a4a565b905092915050565b600061234d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b0a565b905092915050565b600061236360025483612bd0565b9050919050565b6000808573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061244a5780518252602082019150602081019050602083039250612427565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146124ac576040519150601f19603f3d011682016040523d82523d6000602084013e6124b1565b606091505b50915091508180156124f157506000815114806124f057508080602001905160208110156124de57600080fd5b81019080805190602001909291905050505b5b612546576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612e226024913960400191505060405180910390fd5b505050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061261057805182526020820191506020810190506020830392506125ed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612672576040519150601f19603f3d011682016040523d82523d6000602084013e612677565b606091505b50915091508180156126b757506000815114806126b657508080602001905160208110156126a457600080fd5b81019080805190602001909291905050505b5b612729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e7366657248656c7065723a205452414e534645525f4641494c45440081525060200191505060405180910390fd5b5050505050565b600033905090565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015414156127fb57600c60008154809291906001019190505550600c5481600001819055508260096000600c54815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80915050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128f657600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156128cf57600080fd5b505af11580156128e3573d6000803e3d6000fd5b505050506128f18282612c14565b612902565b61290183838361254e565b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561298d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612db86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290612af7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612abc578082015181840152602081019050612aa1565b50505050905090810190601f168015612ae95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612bb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b7b578082015181840152602081019050612b60565b50505050905090810190601f168015612ba85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612bc257fe5b049050809150509392505050565b600082821015612be35760009050612c0e565b612c0b62015180612bfd85856122c190919063ffffffff16565b61230b90919063ffffffff16565b90505b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff81118015612c4657600080fd5b506040519080825280601f01601f191660200182016040528015612c795781602001600182028036833780820191505090505b506040518082805190602001908083835b60208310612cad5780518252602082019150602081019050602083039250612c8a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612d0f576040519150601f19603f3d011682016040523d82523d6000602084013e612d14565b606091505b5050905080612d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612dff6023913960400191505060405180910390fd5b505050565b6040518060400160405280600290602082028036833780820191505090505090565b604051806040016040528060029060208202803683378082019150509050509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657248656c7065723a204554485f5452414e534645525f4641494c45445472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a2646970667358221220cd399b02fceefc8d2acdb4af3cf79c68012f37b4046fd0172d6414a63b60051064736f6c63430007060033

Deployed Bytecode Sourcemap

6998:7597:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7737:4;;;;;;;;;;;7715:27;;:10;:27;;;7708:35;;;;6998:7597;;;;;14128:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8707:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9537:433;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13400:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12494:571;;;;;;;;;;;;;:::i;:::-;;14019:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11479:997;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8225:108;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8045:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8463:17;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7962:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8601:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8397:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13619:388;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5096:140;;;;;;;;;;;;;:::i;:::-;;4775:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4988:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9258:267;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10941:526;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8640:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8519:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8818:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8558:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8759:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9982:594;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8871:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5250:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8431:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14128:99;14168:7;14194:25;14203:15;14194:8;:25::i;:::-;14187:32;;14128:99;:::o;8707:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;9537:433::-;9596:4;9613:24;9642;9660:4;9642:9;:24::i;:::-;9612:54;;;9681:7;9677:211;9695:14;9693:1;:16;;;9677:211;;;9743:1;9732:7;9740:1;9732:10;;;;;;;;;;;;;:12;9729:95;;;9746:78;9778:6;9785:1;9778:9;;;;;;;;;;;;;9788:10;9807:4;9813:7;9821:1;9813:10;;;;;;;;;;;;;9746:31;:78::i;:::-;9729:95;9866:7;9874:1;9866:10;;;;;;;;;;;;;9839:8;:20;9848:10;9839:20;;;;;;;;;;;;;;;9860:1;9839:23;;;;;;;;;;;:37;;;;;;;;;;;9710:3;;;;;;;9677:211;;;;9911:10;9903:27;;;9922:7;9903:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9958:4;9951:11;;;9537:433;;;:::o;13400:207::-;13461:4;13477:18;13498:5;:18;13504:11;13498:18;;;;;;;;;;;;;;;:29;;;13477:50;;13557:1;13545:10;:13;:54;;13589:10;:8;:10::i;:::-;13565:20;13574:10;13565:8;:20::i;:::-;:34;13545:54;;;13559:5;13545:54;13538:61;;;13400:207;;;:::o;12494:571::-;12547:17;12567:5;:17;12573:10;12567:17;;;;;;;;;;;;;;;12547:37;;12615:1;12598:4;:15;;;:18;12595:113;;12667:10;:8;:10::i;:::-;12640:25;12649:4;:15;;;12640:8;:25::i;:::-;:37;;12632:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12595:113;12728:14;12745:4;:15;;;12728:32;;12796:1;12789:6;:8;12781:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12831:61;12867:5;;;;;;;;;;;12874:10;12885:6;12831:27;:61::i;:::-;12921:1;12903:4;:15;;:19;;;;12951:1;12933:4;:15;;:19;;;;12977:23;12993:6;12977:11;;:15;;:23;;;;:::i;:::-;12963:11;:37;;;;13034:10;13018:39;;;13045:11;;13018:39;;;;;;;;;;;;;;;;;;12494:571;;:::o;14019:97::-;14063:7;14089:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14082:26;;14019:97;:::o;11479:997::-;11645:14;11749:16;;8267:66;11805:15;;11860:6;11906;11952:5;11997:6;12043:7;11794:257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11784:268;;;;;;11685:378;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11675:389;;;;;;11645:419;;12103:1;12085:20;;:6;:20;;;;12077:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12156:26;12166:6;12174:1;12177;12180;12156:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12146:36;;:6;:36;;;12138:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12230:1;12220:6;:11;:40;;;;12254:6;12235:15;:25;;12220:40;12212:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12307:7;:15;12315:6;12307:15;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;12298:5;:26;12290:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12390:15;12363:5;:13;12369:6;12363:13;;;;;;;;;;;;;;;:24;;:42;;;;12436:6;12431:37;;;12443:5;:13;12449:6;12443:13;;;;;;;;;;;;;;;:24;;;12431:37;;;;;;;;;;;;;;;;;;11479:997;;;;;;;;;:::o;8225:108::-;8267:66;8225:108;;;:::o;8045:31::-;;;;:::o;8463:17::-;;;;;;;;;;;;;:::o;7962:38::-;;;;;;;;;;;;;;;;;;;:::o;8601:26::-;;;;:::o;8397:21::-;;;;:::o;13619:388::-;13680:24;;:::i;:::-;13705:26;;:::i;:::-;13765:4;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13753:6;13760:1;13753:9;;;;;;;;;;:25;;;;;;;;;;;13801:4;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13789:6;13796:1;13789:9;;;;;;;;;;:25;;;;;;;;;;;13856:6;13863:1;13856:9;;;;;;;;;;;13849:27;;;13877:11;13849:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13835:8;13844:1;13835:11;;;;;;;;;;:54;;;;;13921:6;13928:1;13921:9;;;;;;;;;;;13914:27;;;13942:11;13914:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13900:8;13909:1;13900:11;;;;;;;;;;:54;;;;;13619:388;;;:::o;5096:140::-;4908:9;:7;:9::i;:::-;4900:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5195:1:::1;5158:40;;5179:6;::::0;::::1;;;;;;;;5158:40;;;;;;;;;;;;5226:1;5209:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5096:140::o:0;4775:79::-;4813:7;4840:6;;;;;;;;;;;4833:13;;4775:79;:::o;4988:94::-;5028:4;5068:6;;;;;;;;;;;5052:22;;:12;:10;:12::i;:::-;:22;;;5045:29;;4988:94;:::o;9258:267::-;9331:19;4908:9;:7;:9::i;:::-;4900:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9376:7:::1;;;;;;;;;;;:15;;;9392:6;9399;9376:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;9362:44;;9505:11;9483:4;;:34;;;;;;;;;;;;;;;;;;9258:267:::0;;;;:::o;10941:526::-;11031:1;11008:25;;11016:4;;;;;;;;;;;11008:25;;;;11000:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11081:1;11074:6;:8;11066:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11189:79;11229:5;;;;;;;;;;;11236:10;11255:4;11261:6;11189:31;:79::i;:::-;11289:17;11309:20;11318:10;11309:8;:20::i;:::-;11289:40;;11368:6;11350:4;:15;;;:24;;;;;;;;;;;11398:6;11385:11;;:19;;;;;;;;;;;11436:10;11430:29;;;11447:11;;11430:29;;;;;;;;;;;;;;;;;;10941:526;;:::o;8640:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8519:26::-;;;;;;;;;;;;;:::o;8818:40::-;;;;;;;;;;;;;;;;;:::o;8558:30::-;;;;;;;;;;;;;:::o;8759:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9982:594::-;10059:4;10076:24;10105;10123:4;10105:9;:24::i;:::-;10075:54;;;10164:1;10153:7;10161:1;10153:10;;;;;;;;;;;:12;10150:60;;;10167:43;10177:6;10184:1;10177:9;;;;;;;;;;;10187:11;10199:7;10207:1;10199:10;;;;;;;;;;;10167:9;:43::i;:::-;10150:60;10235:1;10224:7;10232:1;10224:10;;;;;;;;;;;:12;10221:60;;;10238:43;10248:6;10255:1;10248:9;;;;;;;;;;;10258:11;10270:7;10278:1;10270:10;;;;;;;;;;;10238:9;:43::i;:::-;10221:60;10304:7;10300:181;10318:14;10316:1;:16;;;10300:181;;;10385:7;10393:1;10385:10;;;;;;;;;;;;;10360:8;:20;10369:10;10360:20;;;;;;;;;;;;;;;10381:1;10360:23;;;;;;;;;;;:35;;10352:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10459:7;10467:1;10459:10;;;;;;;;;;;;;10434:8;:20;10443:10;10434:20;;;;;;;;;;;;;;;10455:1;10434:23;;;;;;;;;;;:35;;;;;;;;;;;10333:3;;;;;;;10300:181;;;;10512:11;10506:40;;;10524:7;10532:1;10524:10;;;;;;;;;;;10535:7;10543:1;10535:10;;;;;;;;;;;10506:40;;;;;;;;;;;;;;;;;;;;;;;;10564:4;10557:11;;;9982:594;;;;:::o;8871:26::-;;;;:::o;5250:109::-;4908:9;:7;:9::i;:::-;4900:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5323:28:::1;5342:8;5323:18;:28::i;:::-;5250:109:::0;:::o;8431:19::-;;;;;;;;;;;;;:::o;3167:280::-;3225:7;3284:1;3279;:6;3275:47;;;3309:1;3302:8;;;;3275:47;3334:9;3350:1;3346;:5;3334:17;;3379:1;3374;3370;:5;;;;;;:10;3362:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3438:1;3431:8;;;3167:280;;;;;:::o;2811:136::-;2869:7;2896:43;2900:1;2903;2896:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2889:50;;2811:136;;;;:::o;3461:132::-;3519:7;3546:39;3550:1;3553;3546:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3539:46;;3461:132;;;;:::o;14235:115::-;14292:7;14318:24;14327:6;;14334:7;14318:8;:24::i;:::-;14311:31;;14235:115;;;:::o;15478:402::-;15657:12;15671:17;15692:5;:10;;15726;15738:4;15744:2;15748:5;15703:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15692:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15656:99;;;;15774:7;:57;;;;;15801:1;15786:4;:11;:16;:44;;;;15817:4;15806:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15786:44;15774:57;15766:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15478:402;;;;;;:::o;15109:361::-;15258:12;15272:17;15293:5;:10;;15327;15339:2;15343:5;15304:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15293:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15257:93;;;;15369:7;:57;;;;;15396:1;15381:4;:11;:16;:44;;;;15412:4;15401:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15381:44;15369:57;15361:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15109:361;;;;;:::o;4217:98::-;4262:15;4297:10;4290:17;;4217:98;:::o;13083:305::-;13139:17;13169:18;13190:5;:17;13196:10;13190:17;;;;;;;;;;;;;;;13169:38;;13231:1;13221:5;:8;;;:11;13218:140;;;13248:11;;:13;;;;;;;;;;;;;13287:11;;13276:5;:8;;:22;;;;13335:11;13313:6;:19;13320:11;;13313:19;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13218:140;13375:5;13368:12;;;13083:305;;;:::o;10594:333::-;10704:4;;;;;;;;;;;10688:21;;:6;:21;;;10685:225;;;10726:4;;;;;;;;;;;:13;;;10740:6;10726:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10762:51;10793:11;10806:6;10762:30;:51::i;:::-;10685:225;;;10844:54;10872:6;10879:11;10891:6;10844:27;:54::i;:::-;10685:225;10594:333;;;:::o;5373:229::-;5467:1;5447:22;;:8;:22;;;;5439:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5557:8;5528:38;;5549:6;;;;;;;;;;5528:38;;;;;;;;;;;;5586:8;5577:6;;:17;;;;;;;;;;;;;;;;;;5373:229;:::o;2961:192::-;3047:7;3080:1;3075;:6;;3083:12;3067:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3107:9;3123:1;3119;:5;3107:17;;3144:1;3137:8;;;2961:192;;;;;:::o;3607:211::-;3693:7;3735:1;3731;:5;3738:12;3723:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3762:9;3778:1;3774;:5;;;;;;3762:17;;3809:1;3802:8;;;3607:211;;;;;:::o;14362:230::-;14437:7;14467:9;14459:7;:17;14456:129;;;14499:1;14492:8;;;;14456:129;14538:35;8378:6;14538:22;14550:9;14538:7;:11;;:22;;;;:::i;:::-;:26;;:35;;;;:::i;:::-;14531:42;;14362:230;;;;;:::o;15888:195::-;15958:12;15975:2;:7;;15989:5;16006:1;15996:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15975:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15957:52;;;16028:7;16020:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15888:195;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://cd399b02fceefc8d2acdb4af3cf79c68012f37b4046fd0172d6414a63b600510

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.