ETH Price: $2,715.03 (+3.91%)
Gas: 1.63 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw205414162024-08-16 13:13:23171 days ago1723814003IN
0x27B9B53e...5aD6b09b0
0 ETH0.000439876
Withdraw191835112024-02-08 12:40:59361 days ago1707396059IN
0x27B9B53e...5aD6b09b0
0 ETH0.0058304676.59066326
Withdraw177736292023-07-26 0:18:11559 days ago1690330691IN
0x27B9B53e...5aD6b09b0
0 ETH0.0023335430.65414146
Withdraw169672052023-04-03 8:04:35673 days ago1680509075IN
0x27B9B53e...5aD6b09b0
0 ETH0.0014779118.92603093
Withdraw167688552023-03-06 10:56:23700 days ago1678100183IN
0x27B9B53e...5aD6b09b0
0 ETH0.0018557222.9382724
Withdraw161562382022-12-10 18:56:59786 days ago1670698619IN
0x27B9B53e...5aD6b09b0
0 ETH0.0013009216.08044679
Get Reward160494812022-11-25 20:47:59801 days ago1669409279IN
0x27B9B53e...5aD6b09b0
0 ETH0.0007533511.79877829
Get Reward160156452022-11-21 3:16:35806 days ago1669000595IN
0x27B9B53e...5aD6b09b0
0 ETH0.0006707710.50540961
Withdraw160156422022-11-21 3:15:59806 days ago1669000559IN
0x27B9B53e...5aD6b09b0
0 ETH0.000775810.19122602
Withdraw157631092022-10-16 20:37:47841 days ago1665952667IN
0x27B9B53e...5aD6b09b0
0 ETH0.0009779512.84664129
Get Reward155363142022-09-15 2:13:59873 days ago1663208039IN
0x27B9B53e...5aD6b09b0
0 ETH0.000564468.84054012
Withdraw155034002022-09-09 15:04:17878 days ago1662735857IN
0x27B9B53e...5aD6b09b0
0 ETH0.0025261633.17920812
Withdraw151168162022-07-10 19:40:02939 days ago1657482002IN
0x27B9B53e...5aD6b09b0
0 ETH0.0026926333.28309437
Withdraw149992282022-06-20 23:24:50959 days ago1655767490IN
0x27B9B53e...5aD6b09b0
0 ETH0.0017060821.08853266
Withdraw149700322022-06-15 22:53:54964 days ago1655333634IN
0x27B9B53e...5aD6b09b0
0 ETH0.0037135250.63638711
Withdraw147633072022-05-12 21:01:32998 days ago1652389292IN
0x27B9B53e...5aD6b09b0
0 ETH0.0075181198.76018301
Get Reward147095572022-05-04 7:17:191007 days ago1651648639IN
0x27B9B53e...5aD6b09b0
0 ETH0.0030585247.90167646
Withdraw147015312022-05-03 0:40:431008 days ago1651538443IN
0x27B9B53e...5aD6b09b0
0 ETH0.0044868855.46147652
Get Reward146552262022-04-25 17:56:481015 days ago1650909408IN
0x27B9B53e...5aD6b09b0
0 ETH0.00720152112.78822859
Withdraw145833052022-04-14 11:37:361026 days ago1649936256IN
0x27B9B53e...5aD6b09b0
0 ETH0.0018852130.90469725
Withdraw145567972022-04-10 8:11:191031 days ago1649578279IN
0x27B9B53e...5aD6b09b0
0 ETH0.0023052429.51625521
Get Reward145567902022-04-10 8:09:011031 days ago1649578141IN
0x27B9B53e...5aD6b09b0
0 ETH0.0018496528.96878513
Withdraw144867412022-03-30 9:14:411042 days ago1648631681IN
0x27B9B53e...5aD6b09b0
0 ETH0.0025559831.59401758
Withdraw144791382022-03-29 5:11:451043 days ago1648530705IN
0x27B9B53e...5aD6b09b0
0 ETH0.0021977736.02844111
Stake144790782022-03-29 4:57:401043 days ago1648529860IN
0x27B9B53e...5aD6b09b0
0 ETH0.0033911440.48835077
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:
FishPoolTwo

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 10 runs

Other Settings:
default evmVersion
File 1 of 1 : FishPoolTwo.sol
// SPDX-License-Identifier: MIT

/**
 *Submitted for verification at arbiscan.io on 2021-09-08
 */

//SPDX-License-Identifier: MIT

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

pragma solidity ^0.8.0;

/**
 * @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;

    mapping(address => uint256) private _balances;
    IERC20 public stakedToken;

    event Staked(address indexed user, uint256 amount);
    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 {
                totalSupply += msg.value;
                _balances[forWhom] += msg.value;
            }
        } else {
            require(msg.value == 0, 'non-zero eth');
            require(amount > 0, 'Cannot stake 0');
            require(
                st.transferFrom(msg.sender, address(this), amount),
                _transferErrorMessage
            );
            unchecked {
                totalSupply += amount;
                _balances[forWhom] += amount;
            }
        }
        emit Staked(forWhom, amount);
    }

    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 FishPoolTwo 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) {
        rewardToken = _rewardToken;
        stakedToken = _stakedToken;
    }

    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);
    }
}

/*
   ____            __   __        __   _
  / __/__ __ ___  / /_ / /  ___  / /_ (_)__ __
 _\ \ / // // _ \/ __// _ \/ -_)/ __// / \ \ /
/___/ \_, //_//_/\__//_//_/\__/ \__//_/ /_\_\
     /___/

* Synthetix: YFIRewards.sol
*
* Docs: https://docs.synthetix.io/
*
*
* MIT License
* ===========
*
* Copyright (c) 2020 Synthetix
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
*/

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_rewardToken","type":"address"},{"internalType":"contract IERC20","name":"_stakedToken","type":"address"}],"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"}],"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":[{"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":"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":"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"}]

608060405234801561001057600080fd5b5060405161155238038061155283398101604081905261002f91610087565b600380546001600160a01b03199081163317909155600480546001600160a01b03948516908316179055600280549290931691161790556100b9565b80516001600160a01b038116811461008257600080fd5b919050565b60008060408385031215610099578182fd5b6100a28361006b565b91506100b06020840161006b565b90509250929050565b61148a806100c86000396000f3fe6080604052600436106101045760003560e01c80628cc2621461010957806302387a7b1461013f5780630660f1e81461016157806318160ddd146101c25780633d18b912146101e657806370458d85146101fb57806370a082311461020e578063715018a61461022e5780637b0a47ee1461024357806380faa57d1461025957806388fe2be81461028657806389ee4bde146102995780638da5cb5b146102b9578063c885bc58146102e6578063c8f33c91146102fb578063cc7a262e14610322578063cd3daf9d14610342578063df136d6514610357578063e9fad8ee1461037e578063ebe2b12b14610393578063f2fde38b146103b3578063f7c618c1146103d3575b600080fd5b34801561011557600080fd5b50610129610124366004611262565b6103f3565b60405161013691906113fd565b60405180910390f35b34801561014b57600080fd5b5061015f61015a3660046112d5565b610468565b005b34801561016d57600080fd5b506101a261017c366004611262565b6007602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b03938416815292909116602083015201610136565b3480156101ce57600080fd5b506101d860005481565b604051908152602001610136565b3480156101f257600080fd5b5061015f610507565b61015f610209366004611283565b6106d6565b34801561021a57600080fd5b506101d8610229366004611262565b610777565b34801561023a57600080fd5b5061015f610792565b34801561024f57600080fd5b506101d860055481565b34801561026557600080fd5b5061026e6107f4565b6040516001600160401b039091168152602001610136565b61015f6102943660046112d5565b610828565b3480156102a557600080fd5b5061015f6102b43660046112ef565b610835565b3480156102c557600080fd5b506003546102d9906001600160a01b031681565b6040516101369190611348565b3480156102f257600080fd5b5061015f610aaa565b34801561030757600080fd5b5060065461026e90600160401b90046001600160401b031681565b34801561032e57600080fd5b506002546102d9906001600160a01b031681565b34801561034e57600080fd5b50610129610c31565b34801561036357600080fd5b5060065461012990600160801b90046001600160801b031681565b34801561038a57600080fd5b5061015f610cc6565b34801561039f57600080fd5b5060065461026e906001600160401b031681565b3480156103bf57600080fd5b5061015f6103ce366004611262565b610cdc565b3480156103df57600080fd5b506004546102d9906001600160a01b031681565b6001600160a01b0381166000908152600760205260408120546001600160801b03600160801b8204811691670de0b6b3a76400009116610431610c31565b036001600160801b031661044485610777565b028161046057634e487b7160e01b600052601260045260246000fd5b040192915050565b336000610473610c31565b905061047d6107f4565b600680546001600160801b03808516600160801b026001600160401b03948516600160401b029190911693909116929092179190911790556104be826103f3565b6001600160a01b03831660009081526007602052604090206001600160801b038381169216600160801b026001600160801b03191691909117905561050283610d0f565b505050565b336000610512610c31565b905061051c6107f4565b600680546001600160801b03808516600160801b026001600160401b03948516600160401b0291909116939091169290921791909117905561055d826103f3565b6001600160a01b03831660009081526007602052604081206001600160801b038481169316600160801b026001600160801b031916929092179091556105a2336103f3565b6001600160801b03169050801561050257336000818152600760205260409081902080546001600160801b0316905560048054915163a9059cbb60e01b81526001600160a01b039092169263a9059cbb926105ff9286910161135c565b602060405180830381600087803b15801561061957600080fd5b505af115801561062d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065191906112b5565b61069b5760405162461bcd60e51b81526020600482015260166024820152751c995dd85c99081d1c985b9cd9995c8819985a5b195960521b60448201526064015b60405180910390fd5b60405181815233907fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486906020015b60405180910390a2505050565b8160006106e1610c31565b90506106eb6107f4565b600680546001600160801b03808516600160801b026001600160401b03948516600160401b0291909116939091169290921791909117905561072c826103f3565b6001600160a01b03831660009081526007602052604090206001600160801b038381169216600160801b026001600160801b0319169190911790556107718484610f70565b50505050565b6001600160a01b031660009081526001602052604090205490565b6003546001600160a01b031633146107bc5760405162461bcd60e51b8152600401610692906113c8565b6003546040516000916001600160a01b031690600080516020611435833981519152908390a3600380546001600160a01b0319169055565b60065460009042906001600160401b0390811690821610610820576006546001600160401b0316610822565b805b91505090565b61083233826106d6565b50565b6003546001600160a01b0316331461085f5760405162461bcd60e51b8152600401610692906113c8565b6000826001600160801b03161161087557600080fd5b61087d610c31565b600680546001600160801b03928316600160801b029216919091179055600480546040516370a0823160e01b815242926000926001600160a01b0316916370a08231916108cc91309101611348565b60206040518083038186803b1580156108e457600080fd5b505afa1580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190611330565b6002546004549192506001600160a01b039182169116141561093e5760005490035b6006546000906001600160401b039081169084161061099857836001600160401b0316856001600160801b03168161098657634e487b7160e01b600052601260045260246000fd5b046001600160801b03166005556109e2565b506006546005546001600160401b0391821684900382169081029185166001600160801b0387168301816109dc57634e487b7160e01b600052601260045260246000fd5b04600555505b8181866001600160801b0316011115610a315760405162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b6044820152606401610692565b600680546001600160801b031916600160401b6001600160401b03808716919091026001600160401b03191691909117858701919091161790556040517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d90610a9b9087906113fd565b60405180910390a15050505050565b6003546001600160a01b03163314610ad45760405162461bcd60e51b8152600401610692906113c8565b600480546040516370a0823160e01b81526000926001600160a01b03909216916370a0823191610b0691309101611348565b60206040518083038186803b158015610b1e57600080fd5b505afa158015610b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190611330565b6002546004549192506001600160a01b0391821691161415610b8257600054610b7f9082611411565b90505b6004805460405163a9059cbb60e01b81526001600160a01b039091169163a9059cbb91610bb391339186910161135c565b602060405180830381600087803b158015610bcd57600080fd5b505af1158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906112b5565b610c0e57600080fd5b506000600555600680546001600160401b031916426001600160401b0316179055565b6000805480610c52575050600654600160801b90046001600160801b031690565b600654600090600160401b90046001600160401b0316610c706107f4565b036001600160401b03169050816005548202670de0b6b3a76400000281610ca757634e487b7160e01b600052601260045260246000fd5b6006546001600160801b03600160801b90910416919004019392505050565b610cce610507565b610cda61015a33610777565b565b6003546001600160a01b03163314610d065760405162461bcd60e51b8152600401610692906113c8565b61083281611180565b336000908152600160205260409020546001600160801b0382161115610d745760405162461bcd60e51b815260206004820152601a6024820152793bb4ba34323930bb9d103130b630b731b29034b9903637bbb2b960311b6044820152606401610692565b33600090815260016020526040812080546001600160801b0384169081900390915581540390556002546001600160a01b031680610e4a5760405160009033906001600160801b038516908381818185875af1925050503d8060008114610df7576040519150601f19603f3d011682016040523d82523d6000602084013e610dfc565b606091505b5050905080610e445760405162461bcd60e51b8152602060048201526014602482015273657468207472616e73666572206661696c75726560601b6044820152606401610692565b50610f2b565b60025460405163a9059cbb60e01b81523360048201526001600160801b03841660248201526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610e9e57600080fd5b505af1158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed691906112b5565b6040518060400160405280601c81526020017b1cdd185ad959081d1bdad95b881d1c985b9cd9995c8819985a5b195960221b81525090610f295760405162461bcd60e51b81526004016106929190611375565b505b336001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d583604051610f6491906113fd565b60405180910390a25050565b6002546001600160a01b031680610fad57600080543490810182556001600160a01b03851682526001602052604090912080549091019055611147565b3415610fea5760405162461bcd60e51b815260206004820152600c60248201526b0dcdedc5af4cae4de40cae8d60a31b6044820152606401610692565b6000826001600160801b0316116110345760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b6044820152606401610692565b6040516323b872dd60e01b81523360048201523060248201526001600160801b03831660448201526001600160a01b038216906323b872dd90606401602060405180830381600087803b15801561108a57600080fd5b505af115801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c291906112b5565b6040518060400160405280601c81526020017b1cdd185ad959081d1bdad95b881d1c985b9cd9995c8819985a5b195960221b815250906111155760405162461bcd60e51b81526004016106929190611375565b50600080546001600160801b03841690810182556001600160a01b038516825260016020526040909120805490910190555b826001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040516106c991906113fd565b6001600160a01b0381166111e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610692565b6003546040516001600160a01b0380841692169060008051602061143583398151915290600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461124657600080fd5b919050565b80356001600160801b038116811461124657600080fd5b600060208284031215611273578081fd5b61127c8261122f565b9392505050565b60008060408385031215611295578081fd5b61129e8361122f565b91506112ac6020840161124b565b90509250929050565b6000602082840312156112c6578081fd5b8151801515811461127c578182fd5b6000602082840312156112e6578081fd5b61127c8261124b565b60008060408385031215611301578182fd5b61130a8361124b565b915060208301356001600160401b0381168114611325578182fd5b809150509250929050565b600060208284031215611341578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6000602080835283518082850152825b818110156113a157858101830151858201604001528201611385565b818111156113b25783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6001600160801b0391909116815260200190565b60008282101561142f57634e487b7160e01b81526011600452602481fd5b50039056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220a725b6780843de62bf469171d1b15866584544aeac6e5f5d864b7569a8abf75864736f6c634300080400330000000000000000000000002604e9f68259e609e8744fb67cc410d50fc9aa0f000000000000000000000000fe4a7f5c61f0010876e7d6a7fdef0a9647a8b323

Deployed Bytecode

0x6080604052600436106101045760003560e01c80628cc2621461010957806302387a7b1461013f5780630660f1e81461016157806318160ddd146101c25780633d18b912146101e657806370458d85146101fb57806370a082311461020e578063715018a61461022e5780637b0a47ee1461024357806380faa57d1461025957806388fe2be81461028657806389ee4bde146102995780638da5cb5b146102b9578063c885bc58146102e6578063c8f33c91146102fb578063cc7a262e14610322578063cd3daf9d14610342578063df136d6514610357578063e9fad8ee1461037e578063ebe2b12b14610393578063f2fde38b146103b3578063f7c618c1146103d3575b600080fd5b34801561011557600080fd5b50610129610124366004611262565b6103f3565b60405161013691906113fd565b60405180910390f35b34801561014b57600080fd5b5061015f61015a3660046112d5565b610468565b005b34801561016d57600080fd5b506101a261017c366004611262565b6007602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b03938416815292909116602083015201610136565b3480156101ce57600080fd5b506101d860005481565b604051908152602001610136565b3480156101f257600080fd5b5061015f610507565b61015f610209366004611283565b6106d6565b34801561021a57600080fd5b506101d8610229366004611262565b610777565b34801561023a57600080fd5b5061015f610792565b34801561024f57600080fd5b506101d860055481565b34801561026557600080fd5b5061026e6107f4565b6040516001600160401b039091168152602001610136565b61015f6102943660046112d5565b610828565b3480156102a557600080fd5b5061015f6102b43660046112ef565b610835565b3480156102c557600080fd5b506003546102d9906001600160a01b031681565b6040516101369190611348565b3480156102f257600080fd5b5061015f610aaa565b34801561030757600080fd5b5060065461026e90600160401b90046001600160401b031681565b34801561032e57600080fd5b506002546102d9906001600160a01b031681565b34801561034e57600080fd5b50610129610c31565b34801561036357600080fd5b5060065461012990600160801b90046001600160801b031681565b34801561038a57600080fd5b5061015f610cc6565b34801561039f57600080fd5b5060065461026e906001600160401b031681565b3480156103bf57600080fd5b5061015f6103ce366004611262565b610cdc565b3480156103df57600080fd5b506004546102d9906001600160a01b031681565b6001600160a01b0381166000908152600760205260408120546001600160801b03600160801b8204811691670de0b6b3a76400009116610431610c31565b036001600160801b031661044485610777565b028161046057634e487b7160e01b600052601260045260246000fd5b040192915050565b336000610473610c31565b905061047d6107f4565b600680546001600160801b03808516600160801b026001600160401b03948516600160401b029190911693909116929092179190911790556104be826103f3565b6001600160a01b03831660009081526007602052604090206001600160801b038381169216600160801b026001600160801b03191691909117905561050283610d0f565b505050565b336000610512610c31565b905061051c6107f4565b600680546001600160801b03808516600160801b026001600160401b03948516600160401b0291909116939091169290921791909117905561055d826103f3565b6001600160a01b03831660009081526007602052604081206001600160801b038481169316600160801b026001600160801b031916929092179091556105a2336103f3565b6001600160801b03169050801561050257336000818152600760205260409081902080546001600160801b0316905560048054915163a9059cbb60e01b81526001600160a01b039092169263a9059cbb926105ff9286910161135c565b602060405180830381600087803b15801561061957600080fd5b505af115801561062d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065191906112b5565b61069b5760405162461bcd60e51b81526020600482015260166024820152751c995dd85c99081d1c985b9cd9995c8819985a5b195960521b60448201526064015b60405180910390fd5b60405181815233907fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486906020015b60405180910390a2505050565b8160006106e1610c31565b90506106eb6107f4565b600680546001600160801b03808516600160801b026001600160401b03948516600160401b0291909116939091169290921791909117905561072c826103f3565b6001600160a01b03831660009081526007602052604090206001600160801b038381169216600160801b026001600160801b0319169190911790556107718484610f70565b50505050565b6001600160a01b031660009081526001602052604090205490565b6003546001600160a01b031633146107bc5760405162461bcd60e51b8152600401610692906113c8565b6003546040516000916001600160a01b031690600080516020611435833981519152908390a3600380546001600160a01b0319169055565b60065460009042906001600160401b0390811690821610610820576006546001600160401b0316610822565b805b91505090565b61083233826106d6565b50565b6003546001600160a01b0316331461085f5760405162461bcd60e51b8152600401610692906113c8565b6000826001600160801b03161161087557600080fd5b61087d610c31565b600680546001600160801b03928316600160801b029216919091179055600480546040516370a0823160e01b815242926000926001600160a01b0316916370a08231916108cc91309101611348565b60206040518083038186803b1580156108e457600080fd5b505afa1580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190611330565b6002546004549192506001600160a01b039182169116141561093e5760005490035b6006546000906001600160401b039081169084161061099857836001600160401b0316856001600160801b03168161098657634e487b7160e01b600052601260045260246000fd5b046001600160801b03166005556109e2565b506006546005546001600160401b0391821684900382169081029185166001600160801b0387168301816109dc57634e487b7160e01b600052601260045260246000fd5b04600555505b8181866001600160801b0316011115610a315760405162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f75676820746f6b656e7360781b6044820152606401610692565b600680546001600160801b031916600160401b6001600160401b03808716919091026001600160401b03191691909117858701919091161790556040517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d90610a9b9087906113fd565b60405180910390a15050505050565b6003546001600160a01b03163314610ad45760405162461bcd60e51b8152600401610692906113c8565b600480546040516370a0823160e01b81526000926001600160a01b03909216916370a0823191610b0691309101611348565b60206040518083038186803b158015610b1e57600080fd5b505afa158015610b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190611330565b6002546004549192506001600160a01b0391821691161415610b8257600054610b7f9082611411565b90505b6004805460405163a9059cbb60e01b81526001600160a01b039091169163a9059cbb91610bb391339186910161135c565b602060405180830381600087803b158015610bcd57600080fd5b505af1158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0591906112b5565b610c0e57600080fd5b506000600555600680546001600160401b031916426001600160401b0316179055565b6000805480610c52575050600654600160801b90046001600160801b031690565b600654600090600160401b90046001600160401b0316610c706107f4565b036001600160401b03169050816005548202670de0b6b3a76400000281610ca757634e487b7160e01b600052601260045260246000fd5b6006546001600160801b03600160801b90910416919004019392505050565b610cce610507565b610cda61015a33610777565b565b6003546001600160a01b03163314610d065760405162461bcd60e51b8152600401610692906113c8565b61083281611180565b336000908152600160205260409020546001600160801b0382161115610d745760405162461bcd60e51b815260206004820152601a6024820152793bb4ba34323930bb9d103130b630b731b29034b9903637bbb2b960311b6044820152606401610692565b33600090815260016020526040812080546001600160801b0384169081900390915581540390556002546001600160a01b031680610e4a5760405160009033906001600160801b038516908381818185875af1925050503d8060008114610df7576040519150601f19603f3d011682016040523d82523d6000602084013e610dfc565b606091505b5050905080610e445760405162461bcd60e51b8152602060048201526014602482015273657468207472616e73666572206661696c75726560601b6044820152606401610692565b50610f2b565b60025460405163a9059cbb60e01b81523360048201526001600160801b03841660248201526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610e9e57600080fd5b505af1158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed691906112b5565b6040518060400160405280601c81526020017b1cdd185ad959081d1bdad95b881d1c985b9cd9995c8819985a5b195960221b81525090610f295760405162461bcd60e51b81526004016106929190611375565b505b336001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d583604051610f6491906113fd565b60405180910390a25050565b6002546001600160a01b031680610fad57600080543490810182556001600160a01b03851682526001602052604090912080549091019055611147565b3415610fea5760405162461bcd60e51b815260206004820152600c60248201526b0dcdedc5af4cae4de40cae8d60a31b6044820152606401610692565b6000826001600160801b0316116110345760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b6044820152606401610692565b6040516323b872dd60e01b81523360048201523060248201526001600160801b03831660448201526001600160a01b038216906323b872dd90606401602060405180830381600087803b15801561108a57600080fd5b505af115801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c291906112b5565b6040518060400160405280601c81526020017b1cdd185ad959081d1bdad95b881d1c985b9cd9995c8819985a5b195960221b815250906111155760405162461bcd60e51b81526004016106929190611375565b50600080546001600160801b03841690810182556001600160a01b038516825260016020526040909120805490910190555b826001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040516106c991906113fd565b6001600160a01b0381166111e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610692565b6003546040516001600160a01b0380841692169060008051602061143583398151915290600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461124657600080fd5b919050565b80356001600160801b038116811461124657600080fd5b600060208284031215611273578081fd5b61127c8261122f565b9392505050565b60008060408385031215611295578081fd5b61129e8361122f565b91506112ac6020840161124b565b90509250929050565b6000602082840312156112c6578081fd5b8151801515811461127c578182fd5b6000602082840312156112e6578081fd5b61127c8261124b565b60008060408385031215611301578182fd5b61130a8361124b565b915060208301356001600160401b0381168114611325578182fd5b809150509250929050565b600060208284031215611341578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6000602080835283518082850152825b818110156113a157858101830151858201604001528201611385565b818111156113b25783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6001600160801b0391909116815260200190565b60008282101561142f57634e487b7160e01b81526011600452602481fd5b50039056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220a725b6780843de62bf469171d1b15866584544aeac6e5f5d864b7569a8abf75864736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000002604e9f68259e609e8744fb67cc410d50fc9aa0f000000000000000000000000fe4a7f5c61f0010876e7d6a7fdef0a9647a8b323

-----Decoded View---------------
Arg [0] : _rewardToken (address): 0x2604e9f68259e609e8744fB67Cc410D50Fc9AA0F
Arg [1] : _stakedToken (address): 0xFe4A7f5C61F0010876E7d6a7FdEf0A9647A8b323

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002604e9f68259e609e8744fb67cc410d50fc9aa0f
Arg [1] : 000000000000000000000000fe4a7f5c61f0010876e7d6a7fdef0a9647a8b323


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.