Contract 0x4AB95DbC6b9a5a6CCC12c4411e00Aaa0462efd00 1

 

Contract Overview

Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x22e7d6f33dc9a3857f08d656708bbd83c602afafe4d4254fa0735a3d196a914aGet Reward117850592022-05-11 10:40:52687 days 2 hrs ago0xe036c19dcd6eb24f94ef99348ea0bc6869d4696b IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000220127407 ETH0.527247486
0x97db41f01b809bbb013483420be28b829bb6cbd89c8a6524244953fe7743f7a0Withdraw109585452022-05-01 7:26:00697 days 5 hrs ago0x5450a98bd84b8e0708a2a3d55e6c048f15977cd1 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000847063329 ETH1.914795331
0x178afb131c904ca36deea751891e7ec9c9ada97019d2a894059bfc6c7465585dGet Reward99617822022-04-17 10:21:19711 days 2 hrs ago0x5450a98bd84b8e0708a2a3d55e6c048f15977cd1 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000133606546 ETH0.318605421
0xe975ff0fe85e9dac83947aa4a16d2ffc40928f498b59410fadc8525e148bdd28Get Reward93711362022-04-06 1:51:17722 days 11 hrs ago0xff3b4233205b02d3e7af680f43699831969bf22c IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.00032894506 ETH0.785309772
0x906edcf18f82a68f80013425351aa9e8ebb5ccc3d6a9967850448c22e5537d9cWithdraw93711322022-04-06 1:50:52722 days 11 hrs ago0xff3b4233205b02d3e7af680f43699831969bf22c IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.00038525177 ETH0.785309772
0x72c25804e5f737049be0e8c20e9d423d119e7aa3bacd8893968e9cd339a6fa15Get Reward93589142022-04-05 20:15:25722 days 16 hrs ago0xd88e9d71ea4feab866cd33a69177b9729cf403de IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000325437622 ETH0.779489444
0x4dfe50297bcd398e3cd26307a1b88481dba4f12afe3c4a3eb5a41109b251f165Get Reward43688312022-01-05 10:06:19813 days 2 hrs ago0xe036c19dcd6eb24f94ef99348ea0bc6869d4696b IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000876609413 ETH1.037691266
0x5f4b14eabe5e4e2c803fb7b3437df55a3cd91edfdc3a11b4b2489321066c1806Withdraw37623612021-12-11 18:20:55837 days 18 hrs ago0x1fd40f3ee706cd497644e1edfb0f8ff8f7d1662c IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000591754935 ETH0.675546324
0xffc6465328acb14da92abb084a444fa08e316ca86516ce25e5c1c472ee0eb664Get Reward37623512021-12-11 18:20:55837 days 18 hrs ago0x1fd40f3ee706cd497644e1edfb0f8ff8f7d1662c IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000439154425 ETH0.675546324
0x98ded49665405ddd4adcdc3cecaf831182bc96be10b8e2579281c072c76aacadWithdraw37206232021-12-10 6:54:24839 days 5 hrs ago0xed08e8d72d35428b28390b7334ebe7f9f7a64822 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000656841559 ETH0.752226083
0x2b4f7e131b6e790ee962c3fbac368556a0899cee51d507fea8580127fc4139cbGet Reward37206162021-12-10 6:53:09839 days 6 hrs ago0xed08e8d72d35428b28390b7334ebe7f9f7a64822 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000640531793 ETH0.752226083
0xaf92590c2c56181808911a2b4419bd3fdef05b96e877bf3325de9cfc4f5831f6Withdraw35332932021-12-03 12:46:25846 days 7 mins ago0x7f5730d68ef0a5fa99150610deff08a29d9b5339 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000888080248 ETH1.01756895
0xad047d80a0ea15c55f522db1105c808bf3c92351c4b371f0ba044f734f453f2cGet Reward35332892021-12-03 12:46:25846 days 7 mins ago0x7f5730d68ef0a5fa99150610deff08a29d9b5339 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000861769985 ETH1.01756895
0xed938263b8ad3eaac03dd5b5d4bda821be636d3daa0d8bd5a5fd57dce9fe1c6eGet Reward34920042021-12-01 16:18:58847 days 20 hrs ago0x1fd40f3ee706cd497644e1edfb0f8ff8f7d1662c IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000778818957 ETH1.198048461
0x84cace0057e2cefcd9c45606e7540edd836a738471aca43dd7ac3cbbf3e35132Withdraw34533602021-11-30 7:14:03849 days 5 hrs ago0xcf57a3b1c076838116731fde404492d9d168747a IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000769252117 ETH1.148295164
0x48d1a6eb872464b831cff0925cab37caaba82ce89eb3686b8238f41f35b5dd91Get Reward34533572021-11-30 7:13:22849 days 5 hrs ago0xcf57a3b1c076838116731fde404492d9d168747a IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000745917611 ETH1.148295164
0xd5af21096ddd5a173387f69fe83f812027348f6d5b0e593f2fdff1d42f4141ccGet Reward34492442021-11-30 3:42:28849 days 9 hrs ago0xed08e8d72d35428b28390b7334ebe7f9f7a64822 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000967579044 ETH1.136302995
0x6ea8b472206d96746ec4a93e2d7c53de8104a86fbbae75ef4dccc5880cacf1c0Get Reward33401322021-11-26 3:12:59853 days 9 hrs ago0xed08e8d72d35428b28390b7334ebe7f9f7a64822 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.00094526674 ETH1.111901922
0x6db3e3755808c53aeb38164e495bee7516fd54d640968272129515e7c130de7dStake32916742021-11-24 8:02:21855 days 4 hrs ago0xe036c19dcd6eb24f94ef99348ea0bc6869d4696b IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000752328179 ETH1.1202795
0xce7113c8dd6c5e62cb2206198f5234b5c25493a4e3c4f9e33f334d57e93c7d69Get Reward32915832021-11-24 7:58:04855 days 4 hrs ago0xe036c19dcd6eb24f94ef99348ea0bc6869d4696b IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000951863402 ETH1.1202795
0x259cefb581083952c4cc04a7b64a49d51e058d199694d95a372dd1afb1c5da1bGet Reward32469202021-11-22 17:47:55856 days 19 hrs ago0x1fd40f3ee706cd497644e1edfb0f8ff8f7d1662c IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000733018576 ETH1.12520562
0x87db69ae79dbe0aba4814f248b0917183370a256e6b0a0af7c0808a5c9247958Get Reward32330762021-11-22 7:34:04857 days 5 hrs ago0xdb7b6aa8240f527c35fd8e8c5e3a9efc7359341d IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000741194583 ETH1.140964629
0xded59038a2bb4a777e9c21d7adbc84f4f17ff3f787fc00afd15b006b7d448dc7Get Reward32007472021-11-21 5:09:20858 days 7 hrs ago0xed08e8d72d35428b28390b7334ebe7f9f7a64822 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000899693471 ETH1.056579709
0xb81c3393fa328c0a60f607bb1a5d24356290530610539b518ecb6452066b76d9Get Reward30963162021-11-17 3:55:25862 days 8 hrs ago0xed08e8d72d35428b28390b7334ebe7f9f7a64822 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.001181992308 ETH1.388105093
0x9dd2428e36a7f933cf4428d926a6ccef5ba9968dde50c76f1b1de3f677b080cbGet Reward30558112021-11-15 11:17:04864 days 1 hr ago0x7f5730d68ef0a5fa99150610deff08a29d9b5339 IN  0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd000 ETH0.000970663618 ETH1.144284808
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x22e7d6f33dc9a3857f08d656708bbd83c602afafe4d4254fa0735a3d196a914a117850592022-05-11 10:40:52687 days 2 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x97db41f01b809bbb013483420be28b829bb6cbd89c8a6524244953fe7743f7a0109585452022-05-01 7:26:00697 days 5 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0xe32cbb88e35aefe43d447f0635a84be214120d0c0 ETH
0x178afb131c904ca36deea751891e7ec9c9ada97019d2a894059bfc6c7465585d99617822022-04-17 10:21:19711 days 2 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0xe975ff0fe85e9dac83947aa4a16d2ffc40928f498b59410fadc8525e148bdd2893711362022-04-06 1:51:17722 days 11 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x906edcf18f82a68f80013425351aa9e8ebb5ccc3d6a9967850448c22e5537d9c93711322022-04-06 1:50:52722 days 11 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0xe32cbb88e35aefe43d447f0635a84be214120d0c0 ETH
0x72c25804e5f737049be0e8c20e9d423d119e7aa3bacd8893968e9cd339a6fa1593589142022-04-05 20:15:25722 days 16 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x4dfe50297bcd398e3cd26307a1b88481dba4f12afe3c4a3eb5a41109b251f16543688312022-01-05 10:06:19813 days 2 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x5f4b14eabe5e4e2c803fb7b3437df55a3cd91edfdc3a11b4b2489321066c180637623612021-12-11 18:20:55837 days 18 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0xe32cbb88e35aefe43d447f0635a84be214120d0c0 ETH
0xffc6465328acb14da92abb084a444fa08e316ca86516ce25e5c1c472ee0eb66437623512021-12-11 18:20:55837 days 18 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x98ded49665405ddd4adcdc3cecaf831182bc96be10b8e2579281c072c76aacad37206232021-12-10 6:54:24839 days 5 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0xe32cbb88e35aefe43d447f0635a84be214120d0c0 ETH
0x2b4f7e131b6e790ee962c3fbac368556a0899cee51d507fea8580127fc4139cb37206162021-12-10 6:53:09839 days 6 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0xaf92590c2c56181808911a2b4419bd3fdef05b96e877bf3325de9cfc4f5831f635332932021-12-03 12:46:25846 days 7 mins ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0xe32cbb88e35aefe43d447f0635a84be214120d0c0 ETH
0xad047d80a0ea15c55f522db1105c808bf3c92351c4b371f0ba044f734f453f2c35332892021-12-03 12:46:25846 days 7 mins ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0xed938263b8ad3eaac03dd5b5d4bda821be636d3daa0d8bd5a5fd57dce9fe1c6e34920042021-12-01 16:18:58847 days 20 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x84cace0057e2cefcd9c45606e7540edd836a738471aca43dd7ac3cbbf3e3513234533602021-11-30 7:14:03849 days 5 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0xe32cbb88e35aefe43d447f0635a84be214120d0c0 ETH
0x48d1a6eb872464b831cff0925cab37caaba82ce89eb3686b8238f41f35b5dd9134533572021-11-30 7:13:22849 days 5 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0xd5af21096ddd5a173387f69fe83f812027348f6d5b0e593f2fdff1d42f4141cc34492442021-11-30 3:42:28849 days 9 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x6ea8b472206d96746ec4a93e2d7c53de8104a86fbbae75ef4dccc5880cacf1c033401322021-11-26 3:12:59853 days 9 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x6db3e3755808c53aeb38164e495bee7516fd54d640968272129515e7c130de7d32916742021-11-24 8:02:21855 days 4 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0xe32cbb88e35aefe43d447f0635a84be214120d0c0 ETH
0xce7113c8dd6c5e62cb2206198f5234b5c25493a4e3c4f9e33f334d57e93c7d6932915832021-11-24 7:58:04855 days 4 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x259cefb581083952c4cc04a7b64a49d51e058d199694d95a372dd1afb1c5da1b32469202021-11-22 17:47:55856 days 19 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x87db69ae79dbe0aba4814f248b0917183370a256e6b0a0af7c0808a5c924795832330762021-11-22 7:34:04857 days 5 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0xded59038a2bb4a777e9c21d7adbc84f4f17ff3f787fc00afd15b006b7d448dc732007472021-11-21 5:09:20858 days 7 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0xb81c3393fa328c0a60f607bb1a5d24356290530610539b518ecb6452066b76d930963162021-11-17 3:55:25862 days 8 hrs ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
0x9dd2428e36a7f933cf4428d926a6ccef5ba9968dde50c76f1b1de3f677b080cb30558112021-11-15 11:17:04864 days 1 hr ago 0x4ab95dbc6b9a5a6ccc12c4411e00aaa0462efd00 0x1e32b546aa6befabca3c6956060849b71acae1d80 ETH
[ Download CSV Export 
Loading

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

Contract Name:
TifRewards

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Arbiscan.io on 2021-09-13
*/

//SPDX-License-Identifier: MIT

// File: @openzeppelin/contracts/ownership/Ownable.sol

pragma solidity ^0.8.7;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
 
contract Ownable {
    address public owner;

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

    constructor() {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`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 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract StakedTokenWrapper {
    uint256 public totalSupply;
    address public feeAddress;
    uint256 public depositFee;

    mapping(address => uint256) private _balances;
    IERC20 public stakedToken;
    
    event Staked(address indexed user, uint256 amount, uint256 depositFee);
    event Withdrawn(address indexed user, uint256 amount);

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    string constant _transferErrorMessage = "staked token transfer failed";
    
    function stakeFor(address forWhom, uint128 amount) public payable virtual {
        IERC20 st = stakedToken;
        if(st == IERC20(address(0))) { //eth
            unchecked {
                uint256 feeAmt = msg.value * depositFee / 10000;
                require(msg.value > feeAmt, "underflow exception");
                uint256 depositedAmt = msg.value - feeAmt;
                totalSupply += depositedAmt;
                _balances[forWhom] += depositedAmt;
                if (feeAmt > 0) {
                    (bool success, ) = feeAddress.call{value: feeAmt}("");
                    require(success, "eth transfer failed");
                }
            }
        }
        else {
            require(msg.value == 0, "non-zero eth");
            require(amount > 0, "Cannot stake 0");
            require(st.transferFrom(msg.sender, address(this), amount), _transferErrorMessage);
            unchecked { 
                uint256 feeAmt = amount * depositFee / 10000;
                require(amount > feeAmt, "underflow exception");
                uint256 depositedAmt = amount - feeAmt;
                totalSupply += depositedAmt;
                _balances[forWhom] += depositedAmt;
                if (feeAmt > 0) {
                    st.transfer(feeAddress, feeAmt);
                }
            }
        }
        emit Staked(forWhom, amount, depositFee);
    }

    function withdraw(uint128 amount) public virtual {
        require(amount <= _balances[msg.sender], "withdraw: balance is lower");
        unchecked {
            _balances[msg.sender] -= amount;
            totalSupply = totalSupply-amount;
        }
        IERC20 st = stakedToken;
        if(st == IERC20(address(0))) { //eth
            (bool success, ) = msg.sender.call{value: amount}("");
            require(success, "eth transfer failure");
        }
        else {
            require(stakedToken.transfer(msg.sender, amount), _transferErrorMessage);
        }
        emit Withdrawn(msg.sender, amount);
    }
}

contract TifRewards is StakedTokenWrapper, Ownable {
    IERC20 public rewardToken;
    uint256 public rewardRate;
    uint64 public periodFinish;
    uint64 public lastUpdateTime;
    uint128 public rewardPerTokenStored;
    struct UserRewards {
        uint128 userRewardPerTokenPaid;
        uint128 rewards;
    }
    mapping(address => UserRewards) public userRewards;

    event RewardAdded(uint256 reward);
    event RewardPaid(address indexed user, uint256 reward);

    constructor(IERC20 _rewardToken, IERC20 _stakedToken, address _feeAddress, uint256 _depositFee) {
        rewardToken = _rewardToken;
        stakedToken = _stakedToken;
        feeAddress = _feeAddress;
        depositFee = _depositFee;
    }

    modifier updateReward(address account) {
        uint128 _rewardPerTokenStored = rewardPerToken();
        lastUpdateTime = lastTimeRewardApplicable();
        rewardPerTokenStored = _rewardPerTokenStored;
        userRewards[account].rewards = earned(account);
        userRewards[account].userRewardPerTokenPaid = _rewardPerTokenStored;
        _;
    }

    function lastTimeRewardApplicable() public view returns (uint64) {
        uint64 blockTimestamp = uint64(block.timestamp);
        return blockTimestamp < periodFinish ? blockTimestamp : periodFinish;
    }

    function rewardPerToken() public view returns (uint128) {
        uint256 totalStakedSupply = totalSupply;
        if (totalStakedSupply == 0) {
            return rewardPerTokenStored;
        }
        unchecked {
            uint256 rewardDuration = lastTimeRewardApplicable()-lastUpdateTime;
            return uint128(rewardPerTokenStored + rewardDuration*rewardRate*1e18/totalStakedSupply);
        }
    }

    function earned(address account) public view returns (uint128) {
        unchecked { 
            return uint128(balanceOf(account)*(rewardPerToken()-userRewards[account].userRewardPerTokenPaid)/1e18 + userRewards[account].rewards);
        }
    }

    function stake(uint128 amount) external payable {
        stakeFor(msg.sender, amount);
    }

    function stakeFor(address forWhom, uint128 amount) public payable override updateReward(forWhom) {
        super.stakeFor(forWhom, amount);
    }

    function withdraw(uint128 amount) public override updateReward(msg.sender) {
        super.withdraw(amount);
    }

    function exit() external {
        getReward();
        withdraw(uint128(balanceOf(msg.sender)));
    }

    function getReward() public updateReward(msg.sender) {
        uint256 reward = earned(msg.sender);
        if (reward > 0) {
            userRewards[msg.sender].rewards = 0;
            require(rewardToken.transfer(msg.sender, reward), "reward transfer failed");
            emit RewardPaid(msg.sender, reward);
        }
    }

    function setRewardParams(uint128 reward, uint64 duration) external onlyOwner {
        unchecked {
            require(reward > 0);
            rewardPerTokenStored = rewardPerToken();
            uint64 blockTimestamp = uint64(block.timestamp);
            uint256 maxRewardSupply = rewardToken.balanceOf(address(this));
            if(rewardToken == stakedToken)
                maxRewardSupply -= totalSupply;
            uint256 leftover = 0;
            if (blockTimestamp >= periodFinish) {
                rewardRate = reward/duration;
            } else {
                uint256 remaining = periodFinish-blockTimestamp;
                leftover = remaining*rewardRate;
                rewardRate = (reward+leftover)/duration;
            } 
            require(reward+leftover <= maxRewardSupply, "not enough tokens");
            lastUpdateTime = blockTimestamp;
            periodFinish = blockTimestamp+duration;
            emit RewardAdded(reward);
        }
    }

    function withdrawReward() external onlyOwner {
        uint256 rewardSupply = rewardToken.balanceOf(address(this));
        //ensure funds staked by users can't be transferred out
        if(rewardToken == stakedToken)
                rewardSupply -= totalSupply;
        require(rewardToken.transfer(msg.sender, rewardSupply));
        rewardRate = 0;
        periodFinish = uint64(block.timestamp);
    }

    function setFeeAddress(address _feeAddress) external onlyOwner {
        feeAddress = _feeAddress;
    }

    function setFeePercent(uint256 _depositFee) external onlyOwner {
        require(_depositFee <= 5000, "deposit fee must be smaller than 50%");
        depositFee = _depositFee;
    }
}

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_rewardToken","type":"address"},{"internalType":"contract IERC20","name":"_stakedToken","type":"address"},{"internalType":"address","name":"_feeAddress","type":"address"},{"internalType":"uint256","name":"_depositFee","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"depositFee","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_depositFee","type":"uint256"}],"name":"setFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"reward","type":"uint128"},{"internalType":"uint64","name":"duration","type":"uint64"}],"name":"setRewardParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"stake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"forWhom","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"stakeFor","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"stakedToken","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":[{"internalType":"address","name":"","type":"address"}],"name":"userRewards","outputs":[{"internalType":"uint128","name":"userRewardPerTokenPaid","type":"uint128"},{"internalType":"uint128","name":"rewards","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawReward","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x6080604052600436106101805760003560e01c80638705fcd4116100d1578063cc7a262e1161008a578063e9fad8ee11610064578063e9fad8ee14610498578063ebe2b12b146104ad578063f2fde38b146104cd578063f7c618c1146104ed57600080fd5b8063cc7a262e1461043c578063cd3daf9d1461045c578063df136d651461047157600080fd5b80638705fcd41461038d57806388fe2be8146103ad57806389ee4bde146103c05780638da5cb5b146103e0578063c885bc5814610400578063c8f33c911461041557600080fd5b806367a527931161013e578063715018a611610118578063715018a6146103155780637b0a47ee1461032a5780637ce3489b1461034057806380faa57d1461036057600080fd5b806367a52793146102b657806370458d85146102cc57806370a08231146102df57600080fd5b80628cc2621461018557806302387a7b146101c25780630660f1e8146101e457806318160ddd146102455780633d18b91214610269578063412753581461027e575b600080fd5b34801561019157600080fd5b506101a56101a036600461166a565b61050d565b6040516001600160801b0390911681526020015b60405180910390f35b3480156101ce57600080fd5b506101e26101dd3660046116e1565b61058a565b005b3480156101f057600080fd5b506102256101ff36600461166a565b6009602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101b9565b34801561025157600080fd5b5061025b60005481565b6040519081526020016101b9565b34801561027557600080fd5b506101e2610629565b34801561028a57600080fd5b5060015461029e906001600160a01b031681565b6040516001600160a01b0390911681526020016101b9565b3480156102c257600080fd5b5061025b60025481565b6101e26102da36600461168c565b6107fb565b3480156102eb57600080fd5b5061025b6102fa36600461166a565b6001600160a01b031660009081526003602052604090205490565b34801561032157600080fd5b506101e261089c565b34801561033657600080fd5b5061025b60075481565b34801561034c57600080fd5b506101e261035b36600461173f565b610910565b34801561036c57600080fd5b5061037561099d565b6040516001600160401b0390911681526020016101b9565b34801561039957600080fd5b506101e26103a836600461166a565b6109d1565b6101e26103bb3660046116e1565b610a1d565b3480156103cc57600080fd5b506101e26103db3660046116fc565b610a2a565b3480156103ec57600080fd5b5060055461029e906001600160a01b031681565b34801561040c57600080fd5b506101e2610c86565b34801561042157600080fd5b5060085461037590600160401b90046001600160401b031681565b34801561044857600080fd5b5060045461029e906001600160a01b031681565b34801561046857600080fd5b506101a5610e09565b34801561047d57600080fd5b506008546101a590600160801b90046001600160801b031681565b3480156104a457600080fd5b506101e2610e90565b3480156104b957600080fd5b50600854610375906001600160401b031681565b3480156104d957600080fd5b506101e26104e836600461166a565b610eb3565b3480156104f957600080fd5b5060065461029e906001600160a01b031681565b6001600160a01b0381166000908152600960205260408120546001600160801b03600160801b8204811691670de0b6b3a7640000911661054b610e09565b036001600160801b0316610574856001600160a01b031660009081526003602052604090205490565b028161058257610582611820565b040192915050565b336000610595610e09565b905061059f61099d565b600880546001600160801b03808516600160801b026001600160401b03948516600160401b029190911693909116929092179190911790556105e08261050d565b6001600160a01b03831660009081526009602052604090206001600160801b038381169216600160801b026001600160801b03191691909117905561062483610ee6565b505050565b336000610634610e09565b905061063e61099d565b600880546001600160801b03808516600160801b026001600160401b03948516600160401b0291909116939091169290921791909117905561067f8261050d565b6001600160a01b03831660009081526009602052604081206001600160801b038481169316600160801b026001600160801b031916929092179091556106c43361050d565b6001600160801b03169050801561062457336000818152600960205260409081902080546001600160801b03169055600654905163a9059cbb60e01b81526004810192909252602482018390526001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077691906116bf565b6107c05760405162461bcd60e51b81526020600482015260166024820152751c995dd85c99081d1c985b9cd9995c8819985a5b195960521b60448201526064015b60405180910390fd5b60405181815233907fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486906020015b60405180910390a2505050565b816000610806610e09565b905061081061099d565b600880546001600160801b03808516600160801b026001600160401b03948516600160401b029190911693909116929092179190911790556108518261050d565b6001600160a01b03831660009081526009602052604090206001600160801b038381169216600160801b026001600160801b0319169190911790556108968484611149565b50505050565b6005546001600160a01b031633146108c65760405162461bcd60e51b81526004016107b7906117c6565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461093a5760405162461bcd60e51b81526004016107b7906117c6565b6113888111156109985760405162461bcd60e51b8152602060048201526024808201527f6465706f73697420666565206d75737420626520736d616c6c6572207468616e6044820152632035302560e01b60648201526084016107b7565b600255565b60085460009042906001600160401b03908116908216106109c9576008546001600160401b03166109cb565b805b91505090565b6005546001600160a01b031633146109fb5760405162461bcd60e51b81526004016107b7906117c6565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b610a2733826107fb565b50565b6005546001600160a01b03163314610a545760405162461bcd60e51b81526004016107b7906117c6565b6000826001600160801b031611610a6a57600080fd5b610a72610e09565b600880546001600160801b03928316600160801b0292169190911790556006546040516370a0823160e01b815230600482015242916000916001600160a01b03909116906370a082319060240160206040518083038186803b158015610ad757600080fd5b505afa158015610aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0f9190611758565b6004546006549192506001600160a01b0391821691161415610b315760005490035b6008546000906001600160401b0390811690841610610b7d57836001600160401b0316856001600160801b031681610b6b57610b6b611820565b046001600160801b0316600755610bb9565b506008546007546001600160401b0391821684900382169081029185166001600160801b038716830181610bb357610bb3611820565b04600755505b8181866001600160801b0316011115610c085760405162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b60448201526064016107b7565b600880546001600160801b031916600160401b6001600160401b038087169190910267ffffffffffffffff191691909117858701919091161790556040516001600160801b03861681527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a15050505050565b6005546001600160a01b03163314610cb05760405162461bcd60e51b81526004016107b7906117c6565b6006546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c9190611758565b6004546006549192506001600160a01b0391821691161415610d5857600054610d5590826117fb565b90505b60065460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc91906116bf565b610de557600080fd5b5060006007556008805467ffffffffffffffff1916426001600160401b0316179055565b6000805480610e2a575050600854600160801b90046001600160801b031690565b600854600090600160401b90046001600160401b0316610e4861099d565b036001600160401b03169050816007548202670de0b6b3a76400000281610e7157610e71611820565b6008546001600160801b03600160801b90910416919004019392505050565b610e98610629565b33600090815260036020526040902054610eb19061058a565b565b6005546001600160a01b03163314610edd5760405162461bcd60e51b81526004016107b7906117c6565b610a2781611576565b336000908152600360205260409020546001600160801b0382161115610f4e5760405162461bcd60e51b815260206004820152601a60248201527f77697468647261773a2062616c616e6365206973206c6f77657200000000000060448201526064016107b7565b33600090815260036020526040812080546001600160801b0384169081900390915581540390556004546001600160a01b0316806110245760405160009033906001600160801b038516908381818185875af1925050503d8060008114610fd1576040519150601f19603f3d011682016040523d82523d6000602084013e610fd6565b606091505b505090508061101e5760405162461bcd60e51b8152602060048201526014602482015273657468207472616e73666572206661696c75726560601b60448201526064016107b7565b50611107565b6004805460405163a9059cbb60e01b815233928101929092526001600160801b03841660248301526001600160a01b03169063a9059cbb90604401602060405180830381600087803b15801561107957600080fd5b505af115801561108d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b191906116bf565b6040518060400160405280601c81526020017f7374616b656420746f6b656e207472616e73666572206661696c656400000000815250906111055760405162461bcd60e51b81526004016107b79190611771565b505b6040516001600160801b038316815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a25050565b6004546001600160a01b03168061128a57600061271060025434028161117157611171611820565b0490508034116111b95760405162461bcd60e51b81526020600482015260136024820152723ab73232b9333637bb9032bc31b2b83a34b7b760691b60448201526064016107b7565b600080543483900390810182556001600160a01b0386168252600360205260409091208054820190558115611283576001546040516000916001600160a01b03169084908381818185875af1925050503d8060008114611235576040519150601f19603f3d011682016040523d82523d6000602084013e61123a565b606091505b50509050806112815760405162461bcd60e51b8152602060048201526013602482015272195d1a081d1c985b9cd9995c8819985a5b1959606a1b60448201526064016107b7565b505b5050611528565b34156112c75760405162461bcd60e51b815260206004820152600c60248201526b0dcdedc5af4cae4de40cae8d60a31b60448201526064016107b7565b6000826001600160801b0316116113115760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b60448201526064016107b7565b6040516323b872dd60e01b81523360048201523060248201526001600160801b03831660448201526001600160a01b038216906323b872dd90606401602060405180830381600087803b15801561136757600080fd5b505af115801561137b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139f91906116bf565b6040518060400160405280601c81526020017f7374616b656420746f6b656e207472616e73666572206661696c656400000000815250906113f35760405162461bcd60e51b81526004016107b79190611771565b506000612710600254846001600160801b0316028161141457611414611820565b04905080836001600160801b0316116114655760405162461bcd60e51b81526020600482015260136024820152723ab73232b9333637bb9032bc31b2b83a34b7b760691b60448201526064016107b7565b600080546001600160801b03851683900390810182556001600160a01b03861682526003602052604090912080548201905581156115255760015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb90604401602060405180830381600087803b1580156114eb57600080fd5b505af11580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906116bf565b505b50505b600254604080516001600160801b038516815260208101929092526001600160a01b038516917f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9091016107ee565b6001600160a01b0381166115db5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107b7565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461164e57600080fd5b919050565b80356001600160801b038116811461164e57600080fd5b60006020828403121561167c57600080fd5b61168582611637565b9392505050565b6000806040838503121561169f57600080fd5b6116a883611637565b91506116b660208401611653565b90509250929050565b6000602082840312156116d157600080fd5b8151801515811461168557600080fd5b6000602082840312156116f357600080fd5b61168582611653565b6000806040838503121561170f57600080fd5b61171883611653565b915060208301356001600160401b038116811461173457600080fd5b809150509250929050565b60006020828403121561175157600080fd5b5035919050565b60006020828403121561176a57600080fd5b5051919050565b600060208083528351808285015260005b8181101561179e57858101830151858201604001528201611782565b818111156117b0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008282101561181b57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052601260045260246000fdfea26469706673582212204173727a9123058841be079bac64b931a388de3c73d3804cbe70dfbdfd4ddc1c64736f6c63430008070033

Deployed ByteCode Sourcemap

5302:4597:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7069:252;;;;;;;;;;-1:-1:-1;7069:252:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;8431:47:1;;;8413:66;;8401:2;8386:18;7069:252:0;;;;;;;;7587:116;;;;;;;;;;-1:-1:-1;7587:116:0;;;;;:::i;:::-;;:::i;:::-;;5634:50;;;;;;;;;;-1:-1:-1;5634:50:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;5634:50:0;;;;-1:-1:-1;;;5634:50:0;;;;;;;;;-1:-1:-1;;;;;8958:15:1;;;8940:34;;9010:15;;;;9005:2;8990:18;;8983:43;8860:18;5634:50:0;8713:319:1;2708:26:0;;;;;;;;;;;;;;;;;;;9477:25:1;;;9465:2;9450:18;2708:26:0;9331:177:1;7825:335:0;;;;;;;;;;;;;:::i;2741:25::-;;;;;;;;;;-1:-1:-1;2741:25:0;;;;-1:-1:-1;;;;;2741:25:0;;;;;;-1:-1:-1;;;;;2425:32:1;;;2407:51;;2395:2;2380:18;2741:25:0;2261:203:1;2773:25:0;;;;;;;;;;;;;;;;7432:147;;;;;;:::i;:::-;;:::i;3036:110::-;;;;;;;;;;-1:-1:-1;3036:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;3120:18:0;3093:7;3120:18;;;:9;:18;;;;;;;3036:110;1248:138;;;;;;;;;;;;;:::i;5392:25::-;;;;;;;;;;;;;;;;9711:185;;;;;;;;;;-1:-1:-1;9711:185:0;;;;;:::i;:::-;;:::i;6422:210::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9675:31:1;;;9657:50;;9645:2;9630:18;6422:210:0;9513:200:1;9597:106:0;;;;;;;;;;-1:-1:-1;9597:106:0;;;;;:::i;:::-;;:::i;7329:95::-;;;;;;:::i;:::-;;:::i;8168:999::-;;;;;;;;;;-1:-1:-1;8168:999:0;;;;;:::i;:::-;;:::i;516:20::-;;;;;;;;;;-1:-1:-1;516:20:0;;;;-1:-1:-1;;;;;516:20:0;;;9175:414;;;;;;;;;;;;;:::i;5457:28::-;;;;;;;;;;-1:-1:-1;5457:28:0;;;;-1:-1:-1;;;5457:28:0;;-1:-1:-1;;;;;5457:28:0;;;2859:25;;;;;;;;;;-1:-1:-1;2859:25:0;;;;-1:-1:-1;;;;;2859:25:0;;;6640:421;;;;;;;;;;;;;:::i;5492:35::-;;;;;;;;;;-1:-1:-1;5492:35:0;;;;-1:-1:-1;;;5492:35:0;;-1:-1:-1;;;;;5492:35:0;;;7711:106;;;;;;;;;;;;;:::i;5424:26::-;;;;;;;;;;-1:-1:-1;5424:26:0;;;;-1:-1:-1;;;;;5424:26:0;;;1541:109;;;;;;;;;;-1:-1:-1;1541:109:0;;;;;:::i;:::-;;:::i;5360:25::-;;;;;;;;;;-1:-1:-1;5360:25:0;;;;-1:-1:-1;;;;;5360:25:0;;;7069:252;-1:-1:-1;;;;;7273:20:0;;7123:7;7273:20;;;:11;:20;;;;;:28;-1:-1:-1;;;;;;;;7273:28:0;;;;;7266:4;;7221:43;7204:16;:14;:16::i;:::-;:60;-1:-1:-1;;;;;7184:81:0;:18;7194:7;-1:-1:-1;;;;;3120:18:0;3093:7;3120:18;;;:9;:18;;;;;;;3036:110;7184:18;:81;:86;;;;;:::i;:::-;;:117;;7069:252;-1:-1:-1;;7069:252:0:o;7587:116::-;7650:10;6102:29;6134:16;:14;:16::i;:::-;6102:48;;6178:26;:24;:26::i;:::-;6161:14;:43;;-1:-1:-1;;;;;6215:44:0;;;-1:-1:-1;;;6215:44:0;-1:-1:-1;;;;;6161:43:0;;;-1:-1:-1;;;6161:43:0;6215:44;;;;;;;;;;;;;;;;;;6301:15;6308:7;6301:6;:15::i;:::-;-1:-1:-1;;;;;6270:20:0;;;;;;:11;:20;;;;;-1:-1:-1;;;;;6327:67:0;;;6270:46;;-1:-1:-1;;;6270:46:0;-1:-1:-1;;;;;;6327:67:0;;;;;;;7673:22:::1;7688:6:::0;7673:14:::1;:22::i;:::-;6091:323:::0;7587:116;;:::o;7825:335::-;7866:10;6102:29;6134:16;:14;:16::i;:::-;6102:48;;6178:26;:24;:26::i;:::-;6161:14;:43;;-1:-1:-1;;;;;6215:44:0;;;-1:-1:-1;;;6215:44:0;-1:-1:-1;;;;;6161:43:0;;;-1:-1:-1;;;6161:43:0;6215:44;;;;;;;;;;;;;;;;;;6301:15;6308:7;6301:6;:15::i;:::-;-1:-1:-1;;;;;6270:20:0;;;;;;:11;:20;;;;;-1:-1:-1;;;;;6327:67:0;;;6270:46;;-1:-1:-1;;;6270:46:0;-1:-1:-1;;;;;;6327:67:0;;;;;;;;7906:18:::1;7913:10;7906:6;:18::i;:::-;-1:-1:-1::0;;;;;7889:35:0::1;::::0;-1:-1:-1;7939:10:0;;7935:218:::1;;7978:10;8000:1;7966:23:::0;;;:11:::1;:23;::::0;;;;;;:35;;-1:-1:-1;;;;;7966:35:0::1;::::0;;8024:11:::1;::::0;:40;;-1:-1:-1;;;8024:40:0;;::::1;::::0;::::1;3384:51:1::0;;;;3451:18;;;3444:34;;;-1:-1:-1;;;;;8024:11:0::1;::::0;:20:::1;::::0;3357:18:1;;8024:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8016:75;;;::::0;-1:-1:-1;;;8016:75:0;;5606:2:1;8016:75:0::1;::::0;::::1;5588:21:1::0;5645:2;5625:18;;;5618:30;-1:-1:-1;;;5664:18:1;;;5657:52;5726:18;;8016:75:0::1;;;;;;;;;8111:30;::::0;9477:25:1;;;8122:10:0::1;::::0;8111:30:::1;::::0;9465:2:1;9450:18;8111:30:0::1;;;;;;;;7878:282;6091:323:::0;7825:335;:::o;7432:147::-;7520:7;6102:29;6134:16;:14;:16::i;:::-;6102:48;;6178:26;:24;:26::i;:::-;6161:14;:43;;-1:-1:-1;;;;;6215:44:0;;;-1:-1:-1;;;6215:44:0;-1:-1:-1;;;;;6161:43:0;;;-1:-1:-1;;;6161:43:0;6215:44;;;;;;;;;;;;;;;;;;6301:15;6308:7;6301:6;:15::i;:::-;-1:-1:-1;;;;;6270:20:0;;;;;;:11;:20;;;;;-1:-1:-1;;;;;6327:67:0;;;6270:46;;-1:-1:-1;;;6270:46:0;-1:-1:-1;;;;;;6327:67:0;;;;;;;7540:31:::1;7555:7:::0;7564:6;7540:14:::1;:31::i;:::-;6091:323:::0;7432:147;;;:::o;1248:138::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;1331:5:::1;::::0;1310:39:::1;::::0;1346:1:::1;::::0;-1:-1:-1;;;;;1331:5:0::1;::::0;1310:39:::1;::::0;1346:1;;1310:39:::1;1360:5;:18:::0;;-1:-1:-1;;;;;;1360:18:0::1;::::0;;1248:138::o;9711:185::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;9808:4:::1;9793:11;:19;;9785:68;;;::::0;-1:-1:-1;;;9785:68:0;;8064:2:1;9785:68:0::1;::::0;::::1;8046:21:1::0;8103:2;8083:18;;;8076:30;8142:34;8122:18;;;8115:62;-1:-1:-1;;;8193:18:1;;;8186:34;8237:19;;9785:68:0::1;7862:400:1::0;9785:68:0::1;9864:10;:24:::0;9711:185::o;6422:210::-;6580:12;;6479:6;;6529:15;;-1:-1:-1;;;;;6580:12:0;;;6563:29;;;;:61;;6612:12;;-1:-1:-1;;;;;6612:12:0;6563:61;;;6595:14;6563:61;6556:68;;;6422:210;:::o;9597:106::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;9671:10:::1;:24:::0;;-1:-1:-1;;;;;;9671:24:0::1;-1:-1:-1::0;;;;;9671:24:0;;;::::1;::::0;;;::::1;::::0;;9597:106::o;7329:95::-;7388:28;7397:10;7409:6;7388:8;:28::i;:::-;7329:95;:::o;8168:999::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;8298:1:::1;8289:6;-1:-1:-1::0;;;;;8289:10:0::1;;8281:19;;;::::0;::::1;;8338:16;:14;:16::i;:::-;8315:20;:39:::0;;-1:-1:-1;;;;;8315:39:0;;::::1;-1:-1:-1::0;;;8315:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;8457:11:::1;::::0;:36:::1;::::0;-1:-1:-1;;;8457:36:0;;8487:4:::1;8457:36;::::0;::::1;2407:51:1::0;8400:15:0::1;::::0;-1:-1:-1;;;;;;;8457:11:0;;::::1;::::0;:21:::1;::::0;2380:18:1;;8457:36:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8526:11;::::0;8511::::1;::::0;8431:62;;-1:-1:-1;;;;;;8511:11:0;;::::1;8526::::0;::::1;8511:26;8508:78;;;8575:11;::::0;8556:30;::::1;8508:78;8658:12;::::0;8601:16:::1;::::0;-1:-1:-1;;;;;8658:12:0;;::::1;8640:30:::0;;::::1;;8636:295;;8711:8;-1:-1:-1::0;;;;;8704:15:0::1;:6;-1:-1:-1::0;;;;;8704:15:0::1;;;;;;:::i;:::-;;-1:-1:-1::0;;;;;8691:28:0::1;:10;:28:::0;8636:295:::1;;;-1:-1:-1::0;8780:12:0::1;::::0;8847:10:::1;::::0;-1:-1:-1;;;;;8780:12:0;;::::1;:27:::0;;::::1;8760:47:::0;::::1;8837:20:::0;;::::1;::::0;8889:26;::::1;-1:-1:-1::0;;;;;8890:15:0;::::1;::::0;::::1;8889:26:::0;::::1;;;;:::i;:::-;;8876:10;:39:::0;-1:-1:-1;8636:295:0::1;8973:15;8961:8;8954:6;-1:-1:-1::0;;;;;8954:15:0::1;;:34;;8946:64;;;::::0;-1:-1:-1;;;8946:64:0;;7009:2:1;8946:64:0::1;::::0;::::1;6991:21:1::0;7048:2;7028:18;;;7021:30;-1:-1:-1;;;7067:18:1;;;7060:47;7124:18;;8946:64:0::1;6807:341:1::0;8946:64:0::1;9025:14;:31:::0;;-1:-1:-1;;;;;;9071:38:0;-1:-1:-1;;;;;;;;9025:31:0;;::::1;::::0;;;::::1;-1:-1:-1::0;;9071:38:0;;;;;9086:23;;::::1;9071:38:::0;;;::::1;;::::0;;9129:19:::1;::::0;-1:-1:-1;;;;;8431:47:1;;8413:66;;9129:19:0::1;::::0;8401:2:1;8386:18;9129:19:0::1;;;;;;;8256:904;;;8168:999:::0;;:::o;9175:414::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;9254:11:::1;::::0;:36:::1;::::0;-1:-1:-1;;;9254:36:0;;9284:4:::1;9254:36;::::0;::::1;2407:51:1::0;9231:20:0::1;::::0;-1:-1:-1;;;;;9254:11:0::1;::::0;:21:::1;::::0;2380:18:1;;9254:36:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9384:11;::::0;9369::::1;::::0;9231:59;;-1:-1:-1;;;;;;9369:11:0;;::::1;9384::::0;::::1;9369:26;9366:75;;;9430:11;::::0;9414:27:::1;::::0;;::::1;:::i;:::-;;;9366:75;9460:11;::::0;:46:::1;::::0;-1:-1:-1;;;9460:46:0;;9481:10:::1;9460:46;::::0;::::1;3384:51:1::0;3451:18;;;3444:34;;;-1:-1:-1;;;;;9460:11:0;;::::1;::::0;:20:::1;::::0;3357:18:1;;9460:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9452:55;;;::::0;::::1;;-1:-1:-1::0;9531:1:0::1;9518:10;:14:::0;9543:12:::1;:38:::0;;-1:-1:-1;;9543:38:0::1;9565:15;-1:-1:-1::0;;;;;9543:38:0::1;;::::0;;9175:414::o;6640:421::-;6687:7;6735:11;;6761:22;6757:82;;-1:-1:-1;;6807:20:0;;-1:-1:-1;;;6807:20:0;;-1:-1:-1;;;;;6807:20:0;;6640:421::o;6757:82::-;6926:14;;6874:22;;-1:-1:-1;;;6926:14:0;;-1:-1:-1;;;;;6926:14:0;6899:26;:24;:26::i;:::-;:41;-1:-1:-1;;;;;6874:66:0;;;7024:17;7008:10;;6993:14;:25;7019:4;6993:30;:48;;;;;:::i;:::-;6970:20;;-1:-1:-1;;;;;;;;6970:20:0;;;;6993:48;;;6970:71;;6640:421;-1:-1:-1;;;6640:421:0:o;7711:106::-;7747:11;:9;:11::i;:::-;7796:10;3093:7;3120:18;;;:9;:18;;;;;;7769:40;;7587:116;:::i;7769:40::-;7711:106::o;1541:109::-;835:5;;-1:-1:-1;;;;;835:5:0;821:10;:19;813:64;;;;-1:-1:-1;;;813:64:0;;;;;;;:::i;:::-;1614:28:::1;1633:8;1614:18;:28::i;4659:636::-:0;4747:10;4737:21;;;;:9;:21;;;;;;-1:-1:-1;;;;;4727:31:0;;;;4719:70;;;;-1:-1:-1;;;4719:70:0;;6305:2:1;4719:70:0;;;6287:21:1;6344:2;6324:18;;;6317:30;6383:28;6363:18;;;6356:56;6429:18;;4719:70:0;6103:350:1;4719:70:0;4835:10;4825:21;;;;:9;:21;;;;;:31;;-1:-1:-1;;;;;4825:31:0;;;;;;;;;4885:11;;:18;4871:32;;4937:11;;-1:-1:-1;;;;;4937:11:0;4962:24;4959:284;;5028:34;;5010:12;;5028:10;;-1:-1:-1;;;;;5028:34:0;;;5010:12;5028:34;5010:12;5028:34;;:10;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5009:53;;;5085:7;5077:40;;;;-1:-1:-1;;;5077:40:0;;6660:2:1;5077:40:0;;;6642:21:1;6699:2;6679:18;;;6672:30;-1:-1:-1;;;6718:18:1;;;6711:50;6778:18;;5077:40:0;6458:344:1;5077:40:0;4988:141;4959:284;;;5167:11;;;:40;;-1:-1:-1;;;5167:40:0;;5188:10;5167:40;;;3064:51:1;;;;-1:-1:-1;;;;;3151:47:1;;3131:18;;;3124:75;-1:-1:-1;;;;;5167:11:0;;:20;;3037:18:1;;5167:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5209:21;;;;;;;;;;;;;;;;;5159:72;;;;;-1:-1:-1;;;5159:72:0;;;;;;;;:::i;:::-;;4959:284;5258:29;;-1:-1:-1;;;;;8431:47:1;;8413:66;;5268:10:0;;5258:29;;8401:2:1;8386:18;5258:29:0;;;;;;;4708:587;4659:636;:::o;3237:1414::-;3334:11;;-1:-1:-1;;;;;3334:11:0;3359:24;3356:1237;;3435:14;3477:5;3464:10;;3452:9;:22;:30;;;;;:::i;:::-;;3435:47;;3521:6;3509:9;:18;3501:50;;;;-1:-1:-1;;;3501:50:0;;7355:2:1;3501:50:0;;;7337:21:1;7394:2;7374:18;;;7367:30;-1:-1:-1;;;7413:18:1;;;7406:49;7472:18;;3501:50:0;7153:343:1;3501:50:0;3570:20;3630:27;;3593:9;:18;;;3630:27;;;;;-1:-1:-1;;;;;3676:18:0;;;;:9;:18;;;;;;:34;;;;;;3733:10;;3729:174;;3787:10;;:34;;3769:12;;-1:-1:-1;;;;;3787:10:0;;3810:6;;3769:12;3787:34;3769:12;3787:34;3810:6;3787:10;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3768:53;;;3852:7;3844:39;;;;-1:-1:-1;;;3844:39:0;;5957:2:1;3844:39:0;;;5939:21:1;5996:2;5976:18;;;5969:30;-1:-1:-1;;;6015:18:1;;;6008:49;6074:18;;3844:39:0;5755:343:1;3844:39:0;3745:158;3729:174;3406:512;;3356:1237;;;3967:9;:14;3959:39;;;;-1:-1:-1;;;3959:39:0;;5265:2:1;3959:39:0;;;5247:21:1;5304:2;5284:18;;;5277:30;-1:-1:-1;;;5323:18:1;;;5316:42;5375:18;;3959:39:0;5063:336:1;3959:39:0;4030:1;4021:6;-1:-1:-1;;;;;4021:10:0;;4013:37;;;;-1:-1:-1;;;4013:37:0;;4922:2:1;4013:37:0;;;4904:21:1;4961:2;4941:18;;;4934:30;-1:-1:-1;;;4980:18:1;;;4973:44;5034:18;;4013:37:0;4720:338:1;4013:37:0;4073:50;;-1:-1:-1;;;4073:50:0;;4089:10;4073:50;;;2709:34:1;4109:4:0;2759:18:1;;;2752:43;-1:-1:-1;;;;;2831:47:1;;2811:18;;;2804:75;-1:-1:-1;;;;;4073:15:0;;;;;2644:18:1;;4073:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4125:21;;;;;;;;;;;;;;;;;4065:82;;;;;-1:-1:-1;;;4065:82:0;;;;;;;;:::i;:::-;;4192:14;4231:5;4218:10;;4209:6;-1:-1:-1;;;;;4209:19:0;;:27;;;;;:::i;:::-;;4192:44;;4272:6;4263;-1:-1:-1;;;;;4263:15:0;;4255:47;;;;-1:-1:-1;;;4255:47:0;;7355:2:1;4255:47:0;;;7337:21:1;7394:2;7374:18;;;7367:30;-1:-1:-1;;;7413:18:1;;;7406:49;7472:18;;4255:47:0;7153:343:1;4255:47:0;4321:20;4378:27;;-1:-1:-1;;;;;4344:15:0;;;;;4378:27;;;;;-1:-1:-1;;;;;4424:18:0;;;;:9;:18;;;;;;:34;;;;;;4481:10;;4477:90;;4528:10;;4516:31;;-1:-1:-1;;;4516:31:0;;-1:-1:-1;;;;;4528:10:0;;;4516:31;;;3384:51:1;3451:18;;;3444:34;;;4516:11:0;;;;;;3357:18:1;;4516:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4477:90;4162:420;;3356:1237;4632:10;;4608:35;;;-1:-1:-1;;;;;9229:47:1;;9211:66;;9308:2;9293:18;;9286:34;;;;-1:-1:-1;;;;;4608:35:0;;;;;9184:18:1;4608:35:0;9037:289:1;1756:227:0;-1:-1:-1;;;;;1830:22:0;;1822:73;;;;-1:-1:-1;;;1822:73:0;;4515:2:1;1822:73:0;;;4497:21:1;4554:2;4534:18;;;4527:30;4593:34;4573:18;;;4566:62;-1:-1:-1;;;4644:18:1;;;4637:36;4690:19;;1822:73:0;4313:402:1;1822:73:0;1932:5;;1911:37;;-1:-1:-1;;;;;1911:37:0;;;;1932:5;;1911:37;;1932:5;;1911:37;1959:5;:16;;-1:-1:-1;;;;;;1959:16:0;-1:-1:-1;;;;;1959:16:0;;;;;;;;;;1756:227::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:188::-;260:20;;-1:-1:-1;;;;;309:46:1;;299:57;;289:85;;370:1;367;360:12;385:186;444:6;497:2;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;536:29;555:9;536:29;:::i;:::-;526:39;385:186;-1:-1:-1;;;385:186:1:o;576:260::-;644:6;652;705:2;693:9;684:7;680:23;676:32;673:52;;;721:1;718;711:12;673:52;744:29;763:9;744:29;:::i;:::-;734:39;;792:38;826:2;815:9;811:18;792:38;:::i;:::-;782:48;;576:260;;;;;:::o;841:277::-;908:6;961:2;949:9;940:7;936:23;932:32;929:52;;;977:1;974;967:12;929:52;1009:9;1003:16;1062:5;1055:13;1048:21;1041:5;1038:32;1028:60;;1084:1;1081;1074:12;1123:186;1182:6;1235:2;1223:9;1214:7;1210:23;1206:32;1203:52;;;1251:1;1248;1241:12;1203:52;1274:29;1293:9;1274:29;:::i;1314:358::-;1381:6;1389;1442:2;1430:9;1421:7;1417:23;1413:32;1410:52;;;1458:1;1455;1448:12;1410:52;1481:29;1500:9;1481:29;:::i;:::-;1471:39;;1560:2;1549:9;1545:18;1532:32;-1:-1:-1;;;;;1597:5:1;1593:30;1586:5;1583:41;1573:69;;1638:1;1635;1628:12;1573:69;1661:5;1651:15;;;1314:358;;;;;:::o;1677:180::-;1736:6;1789:2;1777:9;1768:7;1764:23;1760:32;1757:52;;;1805:1;1802;1795:12;1757:52;-1:-1:-1;1828:23:1;;1677:180;-1:-1:-1;1677:180:1:o;1862:184::-;1932:6;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;-1:-1:-1;2024:16:1;;1862:184;-1:-1:-1;1862:184:1:o;3711:597::-;3823:4;3852:2;3881;3870:9;3863:21;3913:6;3907:13;3956:6;3951:2;3940:9;3936:18;3929:34;3981:1;3991:140;4005:6;4002:1;3999:13;3991:140;;;4100:14;;;4096:23;;4090:30;4066:17;;;4085:2;4062:26;4055:66;4020:10;;3991:140;;;4149:6;4146:1;4143:13;4140:91;;;4219:1;4214:2;4205:6;4194:9;4190:22;4186:31;4179:42;4140:91;-1:-1:-1;4292:2:1;4271:15;-1:-1:-1;;4267:29:1;4252:45;;;;4299:2;4248:54;;3711:597;-1:-1:-1;;;3711:597:1:o;7501:356::-;7703:2;7685:21;;;7722:18;;;7715:30;7781:34;7776:2;7761:18;;7754:62;7848:2;7833:18;;7501:356::o;9718:222::-;9758:4;9786:1;9783;9780:8;9777:131;;;9830:10;9825:3;9821:20;9818:1;9811:31;9865:4;9862:1;9855:15;9893:4;9890:1;9883:15;9777:131;-1:-1:-1;9925:9:1;;9718:222::o;9945:127::-;10006:10;10001:3;9997:20;9994:1;9987:31;10037:4;10034:1;10027:15;10061:4;10058:1;10051:15

Metadata Hash

4173727a9123058841be079bac64b931a388de3c73d3804cbe70dfbdfd4ddc1c
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.