ETH Price: $2,360.67 (+0.84%)

Contract

0x900dab790465dedEB9c7a056C8B6CBf423d49405
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
WITHDRAW195448222024-03-30 5:52:47166 days ago1711777967IN
0x900dab79...423d49405
0 ETH0.0004107517.27399146
CLAIMREWARD195253312024-03-27 11:21:11169 days ago1711538471IN
0x900dab79...423d49405
0 ETH0.0007595229.74896394
CLAIMREWARD195253192024-03-27 11:18:47169 days ago1711538327IN
0x900dab79...423d49405
0 ETH0.0006862626.87974103
CLAIMREWARD194937372024-03-23 0:29:35173 days ago1711153775IN
0x900dab79...423d49405
0 ETH0.0004691818.37721391
CLAIMREWARD194916122024-03-22 17:19:59174 days ago1711127999IN
0x900dab79...423d49405
0 ETH0.0006761826.48499256
CLAIMREWARD194893052024-03-22 9:34:35174 days ago1711100075IN
0x900dab79...423d49405
0 ETH0.000638124.99350161
CLAIMREWARD194620202024-03-18 13:37:47178 days ago1710769067IN
0x900dab79...423d49405
0 ETH0.001425355.8263684
CLAIMREWARD193639062024-03-04 19:31:23192 days ago1709580683IN
0x900dab79...423d49405
0 ETH0.00345262135.23279935
CLAIMREWARD193622052024-03-04 13:50:11192 days ago1709560211IN
0x900dab79...423d49405
0 ETH0.001605173.60172865
CLAIMREWARD193599092024-03-04 6:08:23192 days ago1709532503IN
0x900dab79...423d49405
0 ETH0.0014989658.71159187
CLAIMREWARD193591852024-03-04 3:42:59192 days ago1709523779IN
0x900dab79...423d49405
0 ETH0.0013059851.15273752
CLAIMREWARD193548692024-03-03 13:13:35193 days ago1709471615IN
0x900dab79...423d49405
0 ETH0.0012061547.242875
CLAIMREWARD193536532024-03-03 9:09:23193 days ago1709456963IN
0x900dab79...423d49405
0 ETH0.0011427644.75970407
CLAIMREWARD193431832024-03-01 22:02:11194 days ago1709330531IN
0x900dab79...423d49405
0 ETH0.0013080651.23434486
CLAIMREWARD193421522024-03-01 18:35:23195 days ago1709318123IN
0x900dab79...423d49405
0 ETH0.0015936162.41886258
CLAIMREWARD193404532024-03-01 12:54:23195 days ago1709297663IN
0x900dab79...423d49405
0 ETH0.0012765550
CLAIMREWARD193400482024-03-01 11:32:23195 days ago1709292743IN
0x900dab79...423d49405
0 ETH0.0011607745.46538932
CLAIMREWARD193385892024-03-01 6:39:35195 days ago1709275175IN
0x900dab79...423d49405
0 ETH0.0011309744.29795912
CLAIMREWARD193385832024-03-01 6:38:23195 days ago1709275103IN
0x900dab79...423d49405
0 ETH0.0011820346.2980665
CLAIMREWARD193385642024-03-01 6:34:35195 days ago1709274875IN
0x900dab79...423d49405
0 ETH0.0011820346.2980665
CLAIMREWARD193385612024-03-01 6:33:59195 days ago1709274839IN
0x900dab79...423d49405
0 ETH0.0013358452.32249911
CLAIMREWARD193385532024-03-01 6:32:23195 days ago1709274743IN
0x900dab79...423d49405
0 ETH0.0011547345.22877283
CLAIMREWARD193354362024-02-29 20:04:59195 days ago1709237099IN
0x900dab79...423d49405
0 ETH0.0016144763.23593566
CLAIMREWARD193353732024-02-29 19:52:23195 days ago1709236343IN
0x900dab79...423d49405
0 ETH0.0016443564.40626955
CLAIMREWARD193314562024-02-29 6:41:59196 days ago1709188919IN
0x900dab79...423d49405
0 ETH0.001446256.64516042
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PabloStake

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-22
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.7.4;


library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @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 sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @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) {
        // 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 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
    
    function ceil(uint a, uint m) internal pure returns (uint r) {
        return (a + m - 1) / m * m;
    }
}

// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address payable public owner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() {
        owner = msg.sender;
    }

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

    function transferOwnership(address payable _newOwner) public onlyOwner {
        require(_newOwner != address(0), "ERC20: sending to the zero address");
        owner = _newOwner;
        emit OwnershipTransferred(msg.sender, _newOwner);
    }
}

// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// ----------------------------------------------------------------------------
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address tokenOwner) external view returns (uint256 balance);
    function allowance(address tokenOwner, address spender) external view returns (uint256 remaining);
    function transfer(address to, uint256 tokens) external returns (bool success);
    function approve(address spender, uint256 tokens) external returns (bool success);
    function transferFrom(address from, address to, uint256 tokens) external returns (bool success);
    function burnTokens(uint256 _amount) external;
    event Transfer(address indexed from, address indexed to, uint256 tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint256 tokens);
}

// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and assisted
// token transfers
// ----------------------------------------------------------------------------
contract PabloStake is Owned {
    using SafeMath for uint256;
    
    address public Pablo = 0x89DBFD81c99cAd2C6cb2C374A5622dD1135eFAaF;
    modifier onlyToken {
        require(msg.sender == Pablo);
        _;
    }

    uint256 public totalStakes = 0;
    uint256 unstakingFee = 0; // 0% 
    uint256 public totalDividends = 0;
    uint256 private scaledRemainder = 0;
    uint256 private scaling = uint256(10) ** 12;
    uint public round = 1;
     
   bool public breaker = false; //  unlocked
    mapping(address => uint256) public farmTime;
    address[] public farmers;
    uint256 public profitGenerated = 0;
    struct USER{
        uint256 stakedTokens;
        uint256 lastDividends;
        uint256 fromTotalDividend;
        uint round;
        uint256 remainder;
        bool initialized;
    }
    
    address[] internal stakeholders;
    mapping(address => USER) stakers;
    mapping (uint => uint256) public payouts;                   // keeps record of each payout
    
    event STAKED(address staker, uint256 tokens, uint256 time);
    event EARNED(address staker, uint256 tokens);
    event UNSTAKED(address staker, uint256 tokens, uint256 time);
    event PAYOUT(uint256 round, uint256 tokens, address sender);
    event CLAIMEDREWARD(address staker, uint256 reward);
    event WithdrawalLockDurationSet(uint256 value, address sender);

    function setPABLO(address _token) external onlyOwner {
        require(_token != address(0), "ERC20: Setting Zero Address");
        Pablo = _token;
    }

    function unlockTime(address _staker) public view returns(uint256){
        return farmTime[_staker]+30 days;
    }
    function setBreaker(bool _breaker) external onlyOwner {
        breaker = _breaker;
    }

    function getFarmersLength() public view returns (uint256) {
        return farmers.length;
    }

    
    function isStakeholder(address _address)
       public
       view
       returns(bool)
   {
       
       if(stakers[_address].initialized) return true;
       else return false;
   }
   
   function addStakeholder(address _stakeholder)
       internal
   {
       (bool _isStakeholder) = isStakeholder(_stakeholder);
       if(!_isStakeholder) {
           stakers[_stakeholder].initialized = true;
            farmers.push(_stakeholder);
       }

       farmTime[_stakeholder] =  block.timestamp;
   }
   

    // ------------------------------------------------------------------------
    // Token holders can stake their tokens using this function
    // @param tokens number of tokens to stake
    // ------------------------------------------------------------------------
    function STAKE(uint256 tokens) external {
        require(IERC20(Pablo).transferFrom(msg.sender, address(this), tokens), "Tokens cannot be transferred from user account");
        
            uint256 owing = pendingReward(msg.sender);
            stakers[msg.sender].remainder += owing;
            
            stakers[msg.sender].stakedTokens = tokens.add(stakers[msg.sender].stakedTokens);
            stakers[msg.sender].lastDividends = owing;
            stakers[msg.sender].fromTotalDividend= totalDividends;
            stakers[msg.sender].round =  round;
            
            totalStakes = totalStakes.add(tokens);
            addStakeholder(msg.sender);
            
            emit STAKED(msg.sender, tokens, block.timestamp);
        
    }
    
    // ------------------------------------------------------------------------
    // Owners can send the funds to be distributed to stakers using this function
    // @param tokens number of tokens to distribute
    // ------------------------------------------------------------------------
    function ADDFUNDS(uint256 tokens) external {
        
        require(IERC20(Pablo).transferFrom(msg.sender, address(this), tokens), "Tokens cannot be transferred from funder account");
        profitGenerated = profitGenerated.add(tokens);
        _addPayout(tokens);
    }

    // ------------------------------------------------------------------------
    // Owners can send the funds to be distributed to stakers using this function
    // @param tokens number of tokens to distribute
    // ------------------------------------------------------------------------
    function ADDFUNDSby(uint256 tokens) external onlyToken{
        profitGenerated = profitGenerated.add(tokens);
        _addPayout(tokens);
    }
    
    // ------------------------------------------------------------------------
    // Private function to register payouts
    // ------------------------------------------------------------------------
    function _addPayout(uint256 tokens) private{
        // divide the funds among the currently staked tokens
        // scale the deposit and add the previous remainder
        uint256 available = (tokens.mul(scaling)).add(scaledRemainder); 
        uint256 dividendPerToken = available.div(totalStakes);
        scaledRemainder = available.mod(totalStakes);
        
        totalDividends = totalDividends.add(dividendPerToken);
        payouts[round] = payouts[round - 1].add(dividendPerToken);
        
        emit PAYOUT(round, tokens, msg.sender);
        round++;
    }
    
    // ------------------------------------------------------------------------
    // Stakers can claim their pending rewards using this function
    // ------------------------------------------------------------------------
    function CLAIMREWARD() public {
        
        if(totalDividends > stakers[msg.sender].fromTotalDividend){
            uint256 owing = pendingReward(msg.sender);
        
            owing = owing.add(stakers[msg.sender].remainder);
            stakers[msg.sender].remainder = 0;
        
            IERC20(Pablo).approve(address(this), owing);            
            require(IERC20(Pablo).transferFrom(address(this), msg.sender,owing), "ERROR: error in sending reward from contract");
        
            emit CLAIMEDREWARD(msg.sender, owing);
        
            stakers[msg.sender].lastDividends = owing; // unscaled
            stakers[msg.sender].round = round; // update the round
            stakers[msg.sender].fromTotalDividend = totalDividends; // scaled
        }
    }
    
    // ------------------------------------------------------------------------
    // Get the pending rewards of the staker
    // @param _staker the address of the staker
    // ------------------------------------------------------------------------    
    function pendingReward(address staker) private returns (uint256) {
        require(staker != address(0), "ERC20: sending to the zero address");
        
        uint stakersRound = stakers[staker].round;
        uint256 amount =  ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)).div(scaling);
        stakers[staker].remainder += ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)) % scaling ;
        return amount;
    }
    
    function getPendingReward(address staker) public view returns(uint256 _pendingReward) {
        require(staker != address(0), "ERC20: sending to the zero address");
         uint stakersRound = stakers[staker].round;
         
        uint256 amount =  ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)).div(scaling);
        amount += ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)) % scaling ;
        return (amount.add(stakers[staker].remainder));
    }
    
    // ------------------------------------------------------------------------
    // Stakers can un stake the staked tokens using this function
    // @param tokens the number of tokens to withdraw
    // ------------------------------------------------------------------------
    function WITHDRAW(uint256 tokens) external {
        require(breaker == false, "Admin Restricted WITHDRAW");
        require(stakers[msg.sender].stakedTokens >= tokens && tokens > 0, "Invalid token amount to withdraw");
        
        if(unlockTime(msg.sender) >= block.timestamp){
            unstakingFee = 500; //50%
        }
        uint256 _unstakingFee = (onePercent(tokens).mul(unstakingFee)).div(10);
        
        uint256 owing = pendingReward(msg.sender);
        stakers[msg.sender].remainder += owing;
                
        
        stakers[msg.sender].stakedTokens = stakers[msg.sender].stakedTokens.sub(tokens);
        stakers[msg.sender].lastDividends = owing;
        stakers[msg.sender].fromTotalDividend= totalDividends;
        stakers[msg.sender].round =  round;
        
        totalStakes = totalStakes.sub(tokens);
        
        if(_unstakingFee > 0){
            require(IERC20(Pablo).transfer(owner, (_unstakingFee)), "Error in sending tokens");
        }
        require(IERC20(Pablo).transfer(msg.sender, tokens.sub(_unstakingFee)), "Error in un-staking tokens");

        if(stakers[msg.sender].stakedTokens == 0){
            farmTime[msg.sender] =  0;
        }

        emit UNSTAKED(msg.sender, tokens.sub(_unstakingFee), block.timestamp);
    }
    
    // ------------------------------------------------------------------------
    // Private function to calculate 1% percentage
    // ------------------------------------------------------------------------
    function onePercent(uint256 _tokens) private pure returns (uint256){
        uint256 roundValue = _tokens.ceil(100);
        uint onePercentofTokens = roundValue.mul(100).div(100 * 10**uint(2));
        return onePercentofTokens;
    }
    
    // ------------------------------------------------------------------------
    // Get the number of tokens staked by a staker
    // @param _staker the address of the staker
    // ------------------------------------------------------------------------
    function StakedPabloTokens(address staker) public view returns(uint256 stakedPablo){
        require(staker != address(0), "ERC20: sending to the zero address");
        return stakers[staker].stakedTokens;
    }

    function saveEmergencyTokens(address tokenAddress) external onlyOwner {
        IERC20 token = IERC20(tokenAddress);
        uint256 tokenBalance = token.balanceOf(address(this));
        token.transfer(owner, tokenBalance);
    }

    // Function to withdraw ETH sent to the contract by mistake
    function saveETH() external onlyOwner {
        payable(owner).transfer(address(this).balance);
    }

    // Fallback function to receive ETH
    receive() external payable {}


}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"CLAIMEDREWARD","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"EARNED","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"PAYOUT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"STAKED","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"UNSTAKED","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"WithdrawalLockDurationSet","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ADDFUNDS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ADDFUNDSby","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"CLAIMREWARD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Pablo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"STAKE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"StakedPabloTokens","outputs":[{"internalType":"uint256","name":"stakedPablo","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"WITHDRAW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"breaker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"farmTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"farmers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFarmersLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"getPendingReward","outputs":[{"internalType":"uint256","name":"_pendingReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isStakeholder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"profitGenerated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"round","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saveETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"saveEmergencyTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_breaker","type":"bool"}],"name":"setBreaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setPABLO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"unlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319167389dbfd81c99cad2c6cb2c374a5622dd1135efaaf1781556000600281905560038190556004819055600581905564e8d4a510006006556007919091556008805460ff19169055600b5534801561006857600080fd5b50600080546001600160a01b031916331790556119518061008a6000396000f3fe60806040526004361061016a5760003560e01c806376b467b7116100d1578063bf9befb11161008a578063e7572fe911610064578063e7572fe9146104a7578063ef037b90146104bc578063f055862d146104ef578063f2fde38b1461051957610171565b8063bf9befb114610435578063c3f344a81461044a578063ca84d5911461047d57610171565b806376b467b714610353578063896f1a95146103865780638afdd6691461039b5780638da5cb5b146103e1578063997664d7146103f6578063b53d6c241461040b57610171565b80634baf782e116101235780634baf782e146102645780634df9d6ba146102795780634e11e06f146102ac5780634f6c8f8e146102df5780635c0aeb0e146102f45780636b9703111461032057610171565b80630f41e0d214610176578063146ca5311461019f57806329652e86146101c65780632c75bcda146101f05780633b88eccf1461021c5780634af0b4eb1461024f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61054c565b604080519115158252519081900360200190f35b3480156101ab57600080fd5b506101b4610555565b60408051918252519081900360200190f35b3480156101d257600080fd5b506101b4600480360360208110156101e957600080fd5b503561055b565b3480156101fc57600080fd5b5061021a6004803603602081101561021357600080fd5b503561056d565b005b34801561022857600080fd5b5061021a6004803603602081101561023f57600080fd5b50356001600160a01b031661091d565b34801561025b57600080fd5b506101b46109b1565b34801561027057600080fd5b5061021a6109b7565b34801561028557600080fd5b506101b46004803603602081101561029c57600080fd5b50356001600160a01b0316610bbe565b3480156102b857600080fd5b5061021a600480360360208110156102cf57600080fd5b50356001600160a01b0316610cd7565b3480156102eb57600080fd5b506101b4610df1565b34801561030057600080fd5b5061021a6004803603602081101561031757600080fd5b50351515610df7565b34801561032c57600080fd5b506101b46004803603602081101561034357600080fd5b50356001600160a01b0316610e21565b34801561035f57600080fd5b506101b46004803603602081101561037657600080fd5b50356001600160a01b0316610e84565b34801561039257600080fd5b5061021a610ea4565b3480156103a757600080fd5b506103c5600480360360208110156103be57600080fd5b5035610ef8565b604080516001600160a01b039092168252519081900360200190f35b3480156103ed57600080fd5b506103c5610f22565b34801561040257600080fd5b506101b4610f31565b34801561041757600080fd5b5061021a6004803603602081101561042e57600080fd5b5035610f37565b34801561044157600080fd5b506101b4611011565b34801561045657600080fd5b506101b46004803603602081101561046d57600080fd5b50356001600160a01b0316611017565b34801561048957600080fd5b5061021a600480360360208110156104a057600080fd5b5035611029565b3480156104b357600080fd5b506103c56111a8565b3480156104c857600080fd5b5061018b600480360360208110156104df57600080fd5b50356001600160a01b03166111b7565b3480156104fb57600080fd5b5061021a6004803603602081101561051257600080fd5b50356111eb565b34801561052557600080fd5b5061021a6004803603602081101561053c57600080fd5b50356001600160a01b0316611202565b60085460ff1681565b60075481565b600e6020526000908152604090205481565b60085460ff16156105c5576040805162461bcd60e51b815260206004820152601960248201527f41646d696e205265737472696374656420574954484452415700000000000000604482015290519081900360640190fd5b336000908152600d602052604090205481118015906105e45750600081115b610635576040805162461bcd60e51b815260206004820181905260248201527f496e76616c696420746f6b656e20616d6f756e7420746f207769746864726177604482015290519081900360640190fd5b4261063f33610e84565b1061064b576101f46003555b600061066d600a610667600354610661866112a9565b906112c8565b9061132a565b9050600061067a3361136c565b336000908152600d6020526040902060048101805483019055549091506106a1908461147a565b336000908152600d6020526040902090815560018101829055600454600280830191909155600754600390920191909155546106dd908461147a565b60025581156107c057600154600080546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018790529051919093169263a9059cbb9260448083019360209390929083900390910190829087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b505050506040513d602081101561076d57600080fd5b50516107c0576040805162461bcd60e51b815260206004820152601760248201527f4572726f7220696e2073656e64696e6720746f6b656e73000000000000000000604482015290519081900360640190fd5b6001546001600160a01b031663a9059cbb336107dc868661147a565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b505050506040513d602081101561084c57600080fd5b505161089f576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e20756e2d7374616b696e6720746f6b656e73000000000000604482015290519081900360640190fd5b336000908152600d60205260409020546108c457336000908152600960205260408120555b7faeb913af138cc126643912346d844a49a83761eb58fcfc9e571fc99e1b3d9fa2336108f0858561147a565b604080516001600160a01b03909316835260208301919091524282820152519081900360600190a1505050565b6000546001600160a01b0316331461093457600080fd5b6001600160a01b03811661098f576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a2053657474696e67205a65726f20416464726573730000000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600b5481565b336000908152600d60205260409020600201546004541115610bbc5760006109de3361136c565b336000908152600d60205260409020600401549091506109ff9082906114bc565b336000908152600d602090815260408083206004908101849055600154825163095ea7b360e01b815230928101929092526024820186905291519495506001600160a01b039091169363095ea7b393604480840194938390030190829087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b5050600154604080516323b872dd60e01b81523060048201523360248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610af157600080fd5b505af1158015610b05573d6000803e3d6000fd5b505050506040513d6020811015610b1b57600080fd5b5051610b585760405162461bcd60e51b815260040180806020018281038252602c81526020018061184f602c913960400191505060405180910390fd5b604080513381526020810183905281517f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e929181900390910190a1336000908152600d60205260409020600181019190915560075460038201556004546002909101555b565b60006001600160a01b038216610c055760405162461bcd60e51b815260040180806020018281038252602281526020018061187b6022913960400191505060405180910390fd5b6001600160a01b0382166000908152600d602090815260408083206003810154600654915460001982018652600e90945291842054600454929493610c529361066792610661919061147a565b6006546001600160a01b0386166000908152600d602090815260408083205460001988018452600e909252909120546004549394509192610c9792610661919061147a565b81610c9e57fe5b6001600160a01b0386166000908152600d60205260409020600401549190069190910190610ccd9082906114bc565b925050505b919050565b6000546001600160a01b03163314610cee57600080fd5b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015610d3957600080fd5b505afa158015610d4d573d6000803e3d6000fd5b505050506040513d6020811015610d6357600080fd5b5051600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b158015610dc057600080fd5b505af1158015610dd4573d6000803e3d6000fd5b505050506040513d6020811015610dea57600080fd5b5050505050565b600a5490565b6000546001600160a01b03163314610e0e57600080fd5b6008805460ff1916911515919091179055565b60006001600160a01b038216610e685760405162461bcd60e51b815260040180806020018281038252602281526020018061187b6022913960400191505060405180910390fd5b506001600160a01b03166000908152600d602052604090205490565b6001600160a01b031660009081526009602052604090205462278d000190565b6000546001600160a01b03163314610ebb57600080fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610ef5573d6000803e3d6000fd5b50565b600a8181548110610f0857600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031681565b60045481565b600154604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610f9157600080fd5b505af1158015610fa5573d6000803e3d6000fd5b505050506040513d6020811015610fbb57600080fd5b5051610ff85760405162461bcd60e51b81526004018080602001828103825260308152602001806118ec6030913960400191505060405180910390fd5b600b5461100590826114bc565b600b55610ef581611516565b60025481565b60096020526000908152604090205481565b600154604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561108357600080fd5b505af1158015611097573d6000803e3d6000fd5b505050506040513d60208110156110ad57600080fd5b50516110ea5760405162461bcd60e51b815260040180806020018281038252602e8152602001806118be602e913960400191505060405180910390fd5b60006110f53361136c565b336000908152600d60205260409020600481018054830190555490915061111d9083906114bc565b336000908152600d60205260409020908155600181018290556004546002808301919091556007546003909201919091555461115990836114bc565b60025561116533611601565b6040805133815260208101849052428183015290517f99b6f4b247a06a3dbcda8d2244b818e254005608c2455221a00383939a119e7c9181900360600190a15050565b6001546001600160a01b031681565b6001600160a01b0381166000908152600d602052604081206005015460ff16156111e357506001610cd2565b506000610cd2565b6001546001600160a01b03163314610ff857600080fd5b6000546001600160a01b0316331461121957600080fd5b6001600160a01b03811661125e5760405162461bcd60e51b815260040180806020018281038252602281526020018061187b6022913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000806112b7836064611699565b90506000610ccd6127106106678460645b6000826112d757506000611324565b828202828482816112e457fe5b04146113215760405162461bcd60e51b815260040180806020018281038252602181526020018061189d6021913960400191505060405180910390fd5b90505b92915050565b600061132183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116b3565b60006001600160a01b0382166113b35760405162461bcd60e51b815260040180806020018281038252602281526020018061187b6022913960400191505060405180910390fd5b6001600160a01b0382166000908152600d602090815260408083206003810154600654915460001982018652600e909452918420546004549294936114009361066792610661919061147a565b6006546001600160a01b0386166000908152600d602090815260408083205460001988018452600e90925290912054600454939450919261144592610661919061147a565b8161144c57fe5b6001600160a01b03959095166000908152600d60205260409020600401805491909506019093555090919050565b600061132183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611755565b600082820183811015611321576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611539600554611533600654856112c890919063ffffffff16565b906114bc565b905060006115526002548361132a90919063ffffffff16565b9050611569600254836117af90919063ffffffff16565b60055560045461157990826114bc565b600455600754600019016000908152600e602052604090205461159c90826114bc565b600780546000908152600e602090815260409182902093909355905481519081529182018590523382820152517fddf8c05dcee82ec75482e095e6c06768c848d5a7df7147686033433d141328b69181900360600190a1505060078054600101905550565b600061160c826111b7565b90508061167c576001600160a01b0382166000818152600d60205260408120600501805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b03191690911790555b506001600160a01b03166000908152600960205260409020429055565b60008182600184860103816116aa57fe5b04029392505050565b6000818361173f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117045781810151838201526020016116ec565b50505050905090810190601f1680156117315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161174b57fe5b0495945050505050565b600081848411156117a75760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156117045781810151838201526020016116ec565b505050900390565b600061132183836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506000818361183b5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156117045781810151838201526020016116ec565b5082848161184557fe5b0694935050505056fe4552524f523a206572726f7220696e2073656e64696e67207265776172642066726f6d20636f6e747261637445524332303a2073656e64696e6720746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2075736572206163636f756e74546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2066756e646572206163636f756e74a2646970667358221220c90dda625bf365bab74d942eeeb7ba19fbacb02e427fa5452c8936243d19f24564736f6c63430007040033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806376b467b7116100d1578063bf9befb11161008a578063e7572fe911610064578063e7572fe9146104a7578063ef037b90146104bc578063f055862d146104ef578063f2fde38b1461051957610171565b8063bf9befb114610435578063c3f344a81461044a578063ca84d5911461047d57610171565b806376b467b714610353578063896f1a95146103865780638afdd6691461039b5780638da5cb5b146103e1578063997664d7146103f6578063b53d6c241461040b57610171565b80634baf782e116101235780634baf782e146102645780634df9d6ba146102795780634e11e06f146102ac5780634f6c8f8e146102df5780635c0aeb0e146102f45780636b9703111461032057610171565b80630f41e0d214610176578063146ca5311461019f57806329652e86146101c65780632c75bcda146101f05780633b88eccf1461021c5780634af0b4eb1461024f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61054c565b604080519115158252519081900360200190f35b3480156101ab57600080fd5b506101b4610555565b60408051918252519081900360200190f35b3480156101d257600080fd5b506101b4600480360360208110156101e957600080fd5b503561055b565b3480156101fc57600080fd5b5061021a6004803603602081101561021357600080fd5b503561056d565b005b34801561022857600080fd5b5061021a6004803603602081101561023f57600080fd5b50356001600160a01b031661091d565b34801561025b57600080fd5b506101b46109b1565b34801561027057600080fd5b5061021a6109b7565b34801561028557600080fd5b506101b46004803603602081101561029c57600080fd5b50356001600160a01b0316610bbe565b3480156102b857600080fd5b5061021a600480360360208110156102cf57600080fd5b50356001600160a01b0316610cd7565b3480156102eb57600080fd5b506101b4610df1565b34801561030057600080fd5b5061021a6004803603602081101561031757600080fd5b50351515610df7565b34801561032c57600080fd5b506101b46004803603602081101561034357600080fd5b50356001600160a01b0316610e21565b34801561035f57600080fd5b506101b46004803603602081101561037657600080fd5b50356001600160a01b0316610e84565b34801561039257600080fd5b5061021a610ea4565b3480156103a757600080fd5b506103c5600480360360208110156103be57600080fd5b5035610ef8565b604080516001600160a01b039092168252519081900360200190f35b3480156103ed57600080fd5b506103c5610f22565b34801561040257600080fd5b506101b4610f31565b34801561041757600080fd5b5061021a6004803603602081101561042e57600080fd5b5035610f37565b34801561044157600080fd5b506101b4611011565b34801561045657600080fd5b506101b46004803603602081101561046d57600080fd5b50356001600160a01b0316611017565b34801561048957600080fd5b5061021a600480360360208110156104a057600080fd5b5035611029565b3480156104b357600080fd5b506103c56111a8565b3480156104c857600080fd5b5061018b600480360360208110156104df57600080fd5b50356001600160a01b03166111b7565b3480156104fb57600080fd5b5061021a6004803603602081101561051257600080fd5b50356111eb565b34801561052557600080fd5b5061021a6004803603602081101561053c57600080fd5b50356001600160a01b0316611202565b60085460ff1681565b60075481565b600e6020526000908152604090205481565b60085460ff16156105c5576040805162461bcd60e51b815260206004820152601960248201527f41646d696e205265737472696374656420574954484452415700000000000000604482015290519081900360640190fd5b336000908152600d602052604090205481118015906105e45750600081115b610635576040805162461bcd60e51b815260206004820181905260248201527f496e76616c696420746f6b656e20616d6f756e7420746f207769746864726177604482015290519081900360640190fd5b4261063f33610e84565b1061064b576101f46003555b600061066d600a610667600354610661866112a9565b906112c8565b9061132a565b9050600061067a3361136c565b336000908152600d6020526040902060048101805483019055549091506106a1908461147a565b336000908152600d6020526040902090815560018101829055600454600280830191909155600754600390920191909155546106dd908461147a565b60025581156107c057600154600080546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018790529051919093169263a9059cbb9260448083019360209390929083900390910190829087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b505050506040513d602081101561076d57600080fd5b50516107c0576040805162461bcd60e51b815260206004820152601760248201527f4572726f7220696e2073656e64696e6720746f6b656e73000000000000000000604482015290519081900360640190fd5b6001546001600160a01b031663a9059cbb336107dc868661147a565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b505050506040513d602081101561084c57600080fd5b505161089f576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e20756e2d7374616b696e6720746f6b656e73000000000000604482015290519081900360640190fd5b336000908152600d60205260409020546108c457336000908152600960205260408120555b7faeb913af138cc126643912346d844a49a83761eb58fcfc9e571fc99e1b3d9fa2336108f0858561147a565b604080516001600160a01b03909316835260208301919091524282820152519081900360600190a1505050565b6000546001600160a01b0316331461093457600080fd5b6001600160a01b03811661098f576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a2053657474696e67205a65726f20416464726573730000000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600b5481565b336000908152600d60205260409020600201546004541115610bbc5760006109de3361136c565b336000908152600d60205260409020600401549091506109ff9082906114bc565b336000908152600d602090815260408083206004908101849055600154825163095ea7b360e01b815230928101929092526024820186905291519495506001600160a01b039091169363095ea7b393604480840194938390030190829087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b5050600154604080516323b872dd60e01b81523060048201523360248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610af157600080fd5b505af1158015610b05573d6000803e3d6000fd5b505050506040513d6020811015610b1b57600080fd5b5051610b585760405162461bcd60e51b815260040180806020018281038252602c81526020018061184f602c913960400191505060405180910390fd5b604080513381526020810183905281517f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e929181900390910190a1336000908152600d60205260409020600181019190915560075460038201556004546002909101555b565b60006001600160a01b038216610c055760405162461bcd60e51b815260040180806020018281038252602281526020018061187b6022913960400191505060405180910390fd5b6001600160a01b0382166000908152600d602090815260408083206003810154600654915460001982018652600e90945291842054600454929493610c529361066792610661919061147a565b6006546001600160a01b0386166000908152600d602090815260408083205460001988018452600e909252909120546004549394509192610c9792610661919061147a565b81610c9e57fe5b6001600160a01b0386166000908152600d60205260409020600401549190069190910190610ccd9082906114bc565b925050505b919050565b6000546001600160a01b03163314610cee57600080fd5b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015610d3957600080fd5b505afa158015610d4d573d6000803e3d6000fd5b505050506040513d6020811015610d6357600080fd5b5051600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b158015610dc057600080fd5b505af1158015610dd4573d6000803e3d6000fd5b505050506040513d6020811015610dea57600080fd5b5050505050565b600a5490565b6000546001600160a01b03163314610e0e57600080fd5b6008805460ff1916911515919091179055565b60006001600160a01b038216610e685760405162461bcd60e51b815260040180806020018281038252602281526020018061187b6022913960400191505060405180910390fd5b506001600160a01b03166000908152600d602052604090205490565b6001600160a01b031660009081526009602052604090205462278d000190565b6000546001600160a01b03163314610ebb57600080fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610ef5573d6000803e3d6000fd5b50565b600a8181548110610f0857600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031681565b60045481565b600154604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610f9157600080fd5b505af1158015610fa5573d6000803e3d6000fd5b505050506040513d6020811015610fbb57600080fd5b5051610ff85760405162461bcd60e51b81526004018080602001828103825260308152602001806118ec6030913960400191505060405180910390fd5b600b5461100590826114bc565b600b55610ef581611516565b60025481565b60096020526000908152604090205481565b600154604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561108357600080fd5b505af1158015611097573d6000803e3d6000fd5b505050506040513d60208110156110ad57600080fd5b50516110ea5760405162461bcd60e51b815260040180806020018281038252602e8152602001806118be602e913960400191505060405180910390fd5b60006110f53361136c565b336000908152600d60205260409020600481018054830190555490915061111d9083906114bc565b336000908152600d60205260409020908155600181018290556004546002808301919091556007546003909201919091555461115990836114bc565b60025561116533611601565b6040805133815260208101849052428183015290517f99b6f4b247a06a3dbcda8d2244b818e254005608c2455221a00383939a119e7c9181900360600190a15050565b6001546001600160a01b031681565b6001600160a01b0381166000908152600d602052604081206005015460ff16156111e357506001610cd2565b506000610cd2565b6001546001600160a01b03163314610ff857600080fd5b6000546001600160a01b0316331461121957600080fd5b6001600160a01b03811661125e5760405162461bcd60e51b815260040180806020018281038252602281526020018061187b6022913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000806112b7836064611699565b90506000610ccd6127106106678460645b6000826112d757506000611324565b828202828482816112e457fe5b04146113215760405162461bcd60e51b815260040180806020018281038252602181526020018061189d6021913960400191505060405180910390fd5b90505b92915050565b600061132183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116b3565b60006001600160a01b0382166113b35760405162461bcd60e51b815260040180806020018281038252602281526020018061187b6022913960400191505060405180910390fd5b6001600160a01b0382166000908152600d602090815260408083206003810154600654915460001982018652600e909452918420546004549294936114009361066792610661919061147a565b6006546001600160a01b0386166000908152600d602090815260408083205460001988018452600e90925290912054600454939450919261144592610661919061147a565b8161144c57fe5b6001600160a01b03959095166000908152600d60205260409020600401805491909506019093555090919050565b600061132183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611755565b600082820183811015611321576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611539600554611533600654856112c890919063ffffffff16565b906114bc565b905060006115526002548361132a90919063ffffffff16565b9050611569600254836117af90919063ffffffff16565b60055560045461157990826114bc565b600455600754600019016000908152600e602052604090205461159c90826114bc565b600780546000908152600e602090815260409182902093909355905481519081529182018590523382820152517fddf8c05dcee82ec75482e095e6c06768c848d5a7df7147686033433d141328b69181900360600190a1505060078054600101905550565b600061160c826111b7565b90508061167c576001600160a01b0382166000818152600d60205260408120600501805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b03191690911790555b506001600160a01b03166000908152600960205260409020429055565b60008182600184860103816116aa57fe5b04029392505050565b6000818361173f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117045781810151838201526020016116ec565b50505050905090810190601f1680156117315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161174b57fe5b0495945050505050565b600081848411156117a75760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156117045781810151838201526020016116ec565b505050900390565b600061132183836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506000818361183b5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156117045781810151838201526020016116ec565b5082848161184557fe5b0694935050505056fe4552524f523a206572726f7220696e2073656e64696e67207265776172642066726f6d20636f6e747261637445524332303a2073656e64696e6720746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2075736572206163636f756e74546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2066756e646572206163636f756e74a2646970667358221220c90dda625bf365bab74d942eeeb7ba19fbacb02e427fa5452c8936243d19f24564736f6c63430007040033

Deployed Bytecode Sourcemap

6855:10773:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7329:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;7295:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7781:40;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7781:40:0;;:::i;14849:1321::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14849:1321:0;;:::i;:::-;;8261:157;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8261:157:0;-1:-1:-1;;;;;8261:157:0;;:::i;7457:34::-;;;;;;;;;;;;;:::i;12436:803::-;;;;;;;;;;;;;:::i;14020:533::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14020:533:0;-1:-1:-1;;;;;14020:533:0;;:::i;17133:234::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17133:234:0;-1:-1:-1;;;;;17133:234:0;;:::i;8647:98::-;;;;;;;;;;;;;:::i;8548:91::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8548:91:0;;;;:::i;16910:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16910:215:0;-1:-1:-1;;;;;16910:215:0;;:::i;8426:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8426:116:0;-1:-1:-1;;;;;8426:116:0;;:::i;17440:103::-;;;;;;;;;;;;;:::i;7426:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7426:24:0;;:::i;:::-;;;;-1:-1:-1;;;;;7426:24:0;;;;;;;;;;;;;;5112:28;;;;;;;;;;;;;:::i;7163:33::-;;;;;;;;;;;;;:::i;10656:279::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10656:279:0;;:::i;7088:30::-;;;;;;;;;;;;;:::i;7376:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7376:43:0;-1:-1:-1;;;;;7376:43:0;;:::i;9573:773::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9573:773:0;;:::i;6930:65::-;;;;;;;;;;;;;:::i;8759:193::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8759:193:0;-1:-1:-1;;;;;8759:193:0;;:::i;11241:147::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11241:147:0;;:::i;5373:247::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5373:247:0;-1:-1:-1;;;;;5373:247:0;;:::i;7329:27::-;;;;;;:::o;7295:21::-;;;;:::o;7781:40::-;;;;;;;;;;;;;:::o;14849:1321::-;14911:7;;;;:16;14903:54;;;;;-1:-1:-1;;;14903:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14984:10;14976:19;;;;:7;:19;;;;;:32;:42;-1:-1:-1;14976:42:0;;;:56;;;15031:1;15022:6;:10;14976:56;14968:101;;;;;-1:-1:-1;;;14968:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15119:15;15093:22;15104:10;15093;:22::i;:::-;:41;15090:96;;15165:3;15150:12;:18;15090:96;15196:21;15220:46;15263:2;15221:36;15244:12;;15221:18;15232:6;15221:10;:18::i;:::-;:22;;:36::i;:::-;15220:42;;:46::i;:::-;15196:70;;15287:13;15303:25;15317:10;15303:13;:25::i;:::-;15347:10;15339:19;;;;:7;:19;;;;;:29;;;:38;;;;;;15451:32;15287:41;;-1:-1:-1;15451:44:0;;15488:6;15451:36;:44::i;:::-;15424:10;15416:19;;;;:7;:19;;;;;:79;;;15506:33;;;:41;;;15597:14;;15558:37;;;;:53;;;;15651:5;;15622:25;;;;:34;;;;15691:11;:23;;15707:6;15691:15;:23::i;:::-;15677:11;:37;15738:17;;15735:130;;15786:5;;;15802;;15779:46;;;-1:-1:-1;;;15779:46:0;;-1:-1:-1;;;;;15802:5:0;;;15779:46;;;;;;;;;;;;15786:5;;;;;15779:22;;:46;;;;;;;;;;;;;;;;;;;15786:5;15779:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15779:46:0;15771:82;;;;;-1:-1:-1;;;15771:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15890:5;;-1:-1:-1;;;;;15890:5:0;15883:22;15906:10;15918:25;:6;15929:13;15918:10;:25::i;:::-;15883:61;;;;;;;;;;;;;-1:-1:-1;;;;;15883:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15883:61:0;15875:100;;;;;-1:-1:-1;;;15875:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15999:10;15991:19;;;;:7;:19;;;;;:32;15988:93;;16053:10;16068:1;16044:20;;;:8;:20;;;;;:25;15988:93;16098:64;16107:10;16119:25;:6;16130:13;16119:10;:25::i;:::-;16098:64;;;-1:-1:-1;;;;;16098:64:0;;;;;;;;;;;;16146:15;16098:64;;;;;;;;;;;;;14849:1321;;;:::o;8261:157::-;5339:5;;-1:-1:-1;;;;;5339:5:0;5325:10;:19;5317:28;;;;;;-1:-1:-1;;;;;8333:20:0;::::1;8325:60;;;::::0;;-1:-1:-1;;;8325:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8396:5;:14:::0;;-1:-1:-1;;;;;;8396:14:0::1;-1:-1:-1::0;;;;;8396:14:0;;;::::1;::::0;;;::::1;::::0;;8261:157::o;7457:34::-;;;;:::o;12436:803::-;12515:10;12507:19;;;;:7;:19;;;;;:37;;;12490:14;;:54;12487:745;;;12560:13;12576:25;12590:10;12576:13;:25::i;:::-;12652:10;12644:19;;;;:7;:19;;;;;:29;;;12560:41;;-1:-1:-1;12634:40:0;;12560:41;;12634:9;:40::i;:::-;12697:10;12721:1;12689:19;;;:7;:19;;;;;;;;:29;;;;:33;;;12754:5;;12747:43;;-1:-1:-1;;;12747:43:0;;12777:4;12747:43;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12754:5:0;;;;12747:21;;:43;;;;;12689:19;12747:43;;;;;;;12754:5;12747:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12832:5:0;;12825:59;;;-1:-1:-1;;;12825:59:0;;12860:4;12825:59;;;;12867:10;12825:59;;;;;;;;;;;;-1:-1:-1;;;;;12832:5:0;;;;12825:26;;:59;;;;;12747:43;;12825:59;;;;;;;;12832:5;;12825:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12825:59:0;12817:116;;;;-1:-1:-1;;;12817:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12963:32;;;12977:10;12963:32;;;;;;;;;;;;;;;;;;;;;13028:10;13020:19;;;;:7;:19;;;;;:33;;;:41;;;;13116:5;;13088:25;;;:33;13196:14;;13156:37;;;;:54;12487:745;12436:803::o;14020:533::-;14082:22;-1:-1:-1;;;;;14125:20:0;;14117:67;;;;-1:-1:-1;;;14117:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14216:15:0;;14196:17;14216:15;;;:7;:15;;;;;;;;:21;;;;14365:7;;14330:28;;-1:-1:-1;;14306:16:0;;14298:25;;:7;:25;;;;;;;14279:14;;14216:21;;14196:17;14277:96;;14278:81;;14279:45;;:14;:18;:45::i;14277:96::-;14480:7;;-1:-1:-1;;;;;14447:15:0;;;;;;:7;:15;;;;;;;;:28;-1:-1:-1;;14423:16:0;;14415:25;;:7;:25;;;;;;;14396:14;;14259:114;;-1:-1:-1;14480:7:0;;14395:81;;14396:45;;:14;:18;:45::i;14395:81::-;14394:93;;;;;-1:-1:-1;;;;;14518:15:0;;;;;;:7;:15;;;;;:25;;;14394:93;;;14384:103;;;;;14507:37;;14384:103;;14507:10;:37::i;:::-;14499:46;;;;14020:533;;;;:::o;17133:234::-;5339:5;;-1:-1:-1;;;;;5339:5:0;5325:10;:19;5317:28;;;;;;17283:30:::1;::::0;;-1:-1:-1;;;17283:30:0;;17307:4:::1;17283:30;::::0;::::1;::::0;;;17236:12;;17214::::1;::::0;-1:-1:-1;;;;;17283:15:0;::::1;::::0;::::1;::::0;:30;;;;;::::1;::::0;;;;;;;;:15;:30;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17283:30:0;17339:5:::1;::::0;;17324:35:::1;::::0;;-1:-1:-1;;;17324:35:0;;-1:-1:-1;;;;;17339:5:0;;::::1;17324:35;::::0;::::1;::::0;;;;;;;;;17283:30;;-1:-1:-1;17324:14:0;;::::1;::::0;::::1;::::0;:35;;;;;17283:30:::1;::::0;17324:35;;;;;;;;;;;:14;:35;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;;17133:234:0:o;8647:98::-;8723:7;:14;8647:98;:::o;8548:91::-;5339:5;;-1:-1:-1;;;;;5339:5:0;5325:10;:19;5317:28;;;;;;8613:7:::1;:18:::0;;-1:-1:-1;;8613:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8548:91::o;16910:215::-;16973:19;-1:-1:-1;;;;;17012:20:0;;17004:67;;;;-1:-1:-1;;;17004:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17089:15:0;;;;;:7;:15;;;;;:28;;16910:215::o;8426:116::-;-1:-1:-1;;;;;8509:17:0;8483:7;8509:17;;;:8;:17;;;;;;8527:7;8509:25;;8426:116::o;17440:103::-;5339:5;;-1:-1:-1;;;;;5339:5:0;5325:10;:19;5317:28;;;;;;17497:5:::1;::::0;;17489:46:::1;::::0;-1:-1:-1;;;;;17497:5:0;;::::1;::::0;17513:21:::1;17489:46:::0;::::1;;;::::0;17513:21;;17489:46;17497:5;17489:46;17513:21;17497:5;17489:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17440:103::o:0;7426:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7426:24:0;;-1:-1:-1;7426:24:0;:::o;5112:28::-;;;-1:-1:-1;;;;;5112:28:0;;:::o;7163:33::-;;;;:::o;10656:279::-;10735:5;;10728:61;;;-1:-1:-1;;;10728:61:0;;10755:10;10728:61;;;;10775:4;10728:61;;;;;;;;;;;;-1:-1:-1;;;;;10735:5:0;;;;10728:26;;:61;;;;;;;;;;;;;;;10735:5;;10728:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10728:61:0;10720:122;;;;-1:-1:-1;;;10720:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10871:15;;:27;;10891:6;10871:19;:27::i;:::-;10853:15;:45;10909:18;10920:6;10909:10;:18::i;7088:30::-;;;;:::o;7376:43::-;;;;;;;;;;;;;:::o;9573:773::-;9639:5;;9632:61;;;-1:-1:-1;;;9632:61:0;;9659:10;9632:61;;;;9679:4;9632:61;;;;;;;;;;;;-1:-1:-1;;;;;9639:5:0;;;;9632:26;;:61;;;;;;;;;;;;;;;9639:5;;9632:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9632:61:0;9624:120;;;;-1:-1:-1;;;9624:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9769:13;9785:25;9799:10;9785:13;:25::i;:::-;9833:10;9825:19;;;;:7;:19;;;;;:29;;;:38;;;;;;9938:32;9769:41;;-1:-1:-1;9927:44:0;;:6;;:10;:44::i;:::-;9900:10;9892:19;;;;:7;:19;;;;;:79;;;9986:33;;;:41;;;10081:14;;10042:37;;;;:53;;;;10139:5;;10110:25;;;;:34;;;;10187:11;:23;;10203:6;10187:15;:23::i;:::-;10173:11;:37;10225:26;10240:10;10225:14;:26::i;:::-;10285:43;;;10292:10;10285:43;;;;;;;;10312:15;10285:43;;;;;;;;;;;;;;;9573:773;;:::o;6930:65::-;;;-1:-1:-1;;;;;6930:65:0;;:::o;8759:193::-;-1:-1:-1;;;;;8876:17:0;;8844:4;8876:17;;;:7;:17;;;;;:29;;;;;8873:72;;;-1:-1:-1;8914:4:0;8907:11;;8873:72;-1:-1:-1;8940:5:0;8933:12;;11241:147;7054:5;;-1:-1:-1;;;;;7054:5:0;7040:10;:19;7032:28;;;;;5373:247;5339:5;;-1:-1:-1;;;;;5339:5:0;5325:10;:19;5317:28;;;;;;-1:-1:-1;;;;;5463:23:0;::::1;5455:70;;;;-1:-1:-1::0;;;5455:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5536:5;:17:::0;;-1:-1:-1;;;;;;5536:17:0::1;-1:-1:-1::0;;;;;5536:17:0;::::1;::::0;;::::1;::::0;;5569:43:::1;::::0;5536:17;;5590:10:::1;::::0;5569:43:::1;::::0;5536:5;5569:43:::1;5373:247:::0;:::o;16396:239::-;16455:7;;16495:17;:7;16508:3;16495:12;:17::i;:::-;16474:38;-1:-1:-1;16523:23:0;16549:42;16573:17;16549:19;16474:38;16579:11;1685:471;1743:7;1988:6;1984:47;;-1:-1:-1;2018:1:0;2011:8;;1984:47;2055:5;;;2059:1;2055;:5;:1;2079:5;;;;;:10;2071:56;;;;-1:-1:-1;;;2071:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2147:1;-1:-1:-1;1685:471:0;;;;;:::o;2632:132::-;2690:7;2717:39;2721:1;2724;2717:39;;;;;;;;;;;;;;;;;:3;:39::i;13512:496::-;13568:7;-1:-1:-1;;;;;13596:20:0;;13588:67;;;;-1:-1:-1;;;13588:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13696:15:0;;13676:17;13696:15;;;:7;:15;;;;;;;;:21;;;;13834:7;;13799:28;;-1:-1:-1;;13775:16:0;;13767:25;;:7;:25;;;;;;;13748:14;;13696:21;;13676:17;13746:96;;13747:81;;13748:45;;:14;:18;:45::i;13746:96::-;13968:7;;-1:-1:-1;;;;;13935:15:0;;;;;;:7;:15;;;;;;;;:28;-1:-1:-1;;13911:16:0;;13903:25;;:7;:25;;;;;;;13884:14;;13728:114;;-1:-1:-1;13968:7:0;;13883:81;;13884:45;;:14;:18;:45::i;13883:81::-;13882:93;;;;;-1:-1:-1;;;;;13853:15:0;;;;;;;;:7;:15;;;;;:25;;:122;;13882:93;;;;13853:122;;;;-1:-1:-1;13994:6:0;;13512:496;-1:-1:-1;13512:496:0:o;795:136::-;853:7;880:43;884:1;887;880:43;;;;;;;;;;;;;;;;;:3;:43::i;331:181::-;389:7;421:5;;;445:6;;;;437:46;;;;;-1:-1:-1;;;437:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11607:587;11785:17;11805:42;11831:15;;11806:19;11817:7;;11806:6;:10;;:19;;;;:::i;:::-;11805:25;;:42::i;:::-;11785:62;;11859:24;11886:26;11900:11;;11886:9;:13;;:26;;;;:::i;:::-;11859:53;;11941:26;11955:11;;11941:9;:13;;:26;;;;:::i;:::-;11923:15;:44;12005:14;;:36;;12024:16;12005:18;:36::i;:::-;11988:14;:53;12077:5;;-1:-1:-1;;12077:9:0;12069:18;;;;:7;:18;;;;;;:40;;12092:16;12069:22;:40::i;:::-;12060:5;;;12052:14;;;;:7;:14;;;;;;;;;:57;;;;12142:5;;12135:33;;;;;;;;;;;12157:10;12135:33;;;;;;;;;;;;;;-1:-1:-1;;12179:5:0;:7;;;;;;-1:-1:-1;11607:587:0:o;8962:323::-;9040:19;9063:27;9077:12;9063:13;:27::i;:::-;9039:51;;9104:14;9100:126;;-1:-1:-1;;;;;9134:21:0;;;;;;:7;:21;;;;;:33;;:40;;-1:-1:-1;;9134:40:0;9170:4;9134:40;;;;;;9189:7;:26;;;;;;;;;;;;;;-1:-1:-1;;;;;;9189:26:0;;;;;;9100:126;-1:-1:-1;;;;;;9237:22:0;;;;;:8;:22;;;;;9263:15;9237:41;;8962:323::o;4796:106::-;4849:6;4893:1;4889;4884;4880;4876;:5;:9;4875:15;;;;;;:19;;4796:106;-1:-1:-1;;;4796:106:0:o;3260:278::-;3346:7;3381:12;3374:5;3366:28;;;;-1:-1:-1;;;3366:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3405:9;3421:1;3417;:5;;;;;;;3260:278;-1:-1:-1;;;;;3260:278:0:o;1234:192::-;1320:7;1356:12;1348:6;;;;1340:29;;;;-1:-1:-1;;;1340:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1392:5:0;;;1234:192::o;4003:130::-;4061:7;4088:37;4092:1;4095;4088:37;;;;;;;;;;;;;;;;;4704:7;4740:12;4732:6;4724:29;;;;-1:-1:-1;;;4724:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4775:1;4771;:5;;;;;;;4618:166;-1:-1:-1;;;;4618:166:0:o

Swarm Source

ipfs://c90dda625bf365bab74d942eeeb7ba19fbacb02e427fa5452c8936243d19f245

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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