Contract 0x3C61b93B64f59B5091A11A071083598eE8B5Cb64 7

 

Contract Overview

Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1bace327a50072c384f729b316d6554b4407dd7bb050b6f88f24462637e8eed9Set Reward Per S...400773902022-11-21 22:45:15509 days 2 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.00001733 0.1
0xe0bb2f71ff5cad78e140b52fe9bfeeae26334da9fcc9d5979bfa556cf162964aSet Reward Per S...47579982022-01-18 12:00:10816 days 13 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000806003423 ETH1.194925329
0x6ec2d11f5f9ff22dfc20827ea013c77ed9df7ac5c5f9d9b652fdb00310d9d39dSet Reward Per S...45483242022-01-11 0:55:04824 days 36 mins ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.001153585263 ETH1.710226298
0xd700bfd467512eb7860a7d13525ddf618e3b8e091f7e06796e166973af5f4054Set Reward Per S...42978912022-01-03 14:55:42831 days 10 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000586302294 ETH0.869025999
0x4865a62d6a1d202e9fdb04b6d4dd8b6cfcf5aac74a58ef8881b85b512b067d95Set Reward Per S...41381392021-12-28 16:50:31837 days 8 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000514963718 ETH0.764851368
0xfb9175d725a7cf3eb6d1e0c19bab2e096b2e53548a6a1e39150a0bb50cf8e910Set Reward Per S...39786762021-12-20 13:30:22845 days 12 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000390878016 ETH0.579365221
0xbaffc5a662b26255fcdbe2af3e649e70d137bfb733ecd031bac6df717ab79e16Set Reward Per S...38239432021-12-13 16:25:57852 days 9 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.00042370294 ETH0.62673685
0xb6bd9e3c8739ec225d34e6bbe2f79f24b62ae0d93f9f6c336ad6d84c499ee809Set Reward Per S...36443692021-12-07 15:59:52858 days 9 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.00065222387 ETH0.964762561
0xbc455f63ebd2f898427b370ec612079b66f4205fa6311463d6b5c2a836dbb503Set Reward Per S...32766062021-11-23 17:58:19872 days 7 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000777922862 ETH1.15304886
0xa4e2a516e80e9d4309b6ee0c589304757872def293e1f745a92926b4203e6e14Set Reward Per S...30915562021-11-16 23:40:26879 days 1 hr ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000914443297 ETH1.352634727
0xe3022f885ee02a552b1499dbed9be2039bcebbe93efd617e15e168cdbd718881Transfer Ownersh...30834412021-11-16 14:19:38879 days 11 hrs ago0x8a7f7c5b556b1298a74c0e89df46eba117a2f6c1 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000941341733 ETH1.305911834
0x9e01c3969b40efc6e3dc982365c37fdb80feb3f2ea346efa92886e7ee84e1c3dSet Reward Per S...23723622021-10-19 17:14:17907 days 8 hrs ago0x8a7f7c5b556b1298a74c0e89df46eba117a2f6c1 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000483069361 ETH0.71456582
0x0609c0c24adc5b2d3e8d8178b8df354723933199129df72e9271522bca423e07Set Reward Per S...13656342021-09-20 21:51:29936 days 3 hrs ago0x8a7f7c5b556b1298a74c0e89df46eba117a2f6c1 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000619803864 ETH0.706460419
0x75eea23b986907f96e20e0104cacb8ac579125f4231f0949321ab93ce1f8b6aaTransfer Ownersh...13622822021-09-20 20:00:59936 days 5 hrs ago0xcc159bcb6a466da442d254ad934125f05dab66b5 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000506627575 ETH0.701621528
0x821166a08fb048320d72617320cf13074272abc6f1f35ab7fac83d106886a2fdInit13386072021-09-20 11:05:49936 days 14 hrs ago0xcc159bcb6a466da442d254ad934125f05dab66b5 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000680974876 ETH0.556195252
0x3b5d1595516f77ce9e411df731afdbc17f1952ded854665251df8db27e62774d0x60a0604013384362021-09-20 11:02:31936 days 14 hrs ago0xcc159bcb6a466da442d254ad934125f05dab66b5 IN  Contract Creation0 ETH0.006488878052 ETH0.556195252
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8264c1ca2e50693100ebb84be5636da758df85f91f8200a4c8e83820e29a6afe718785752023-03-20 19:47:53390 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0x8264c1ca2e50693100ebb84be5636da758df85f91f8200a4c8e83820e29a6afe718785752023-03-20 19:47:53390 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x8f93eaae544e8f5eb077a1e09c1554067d9e2ca80 ETH
0x8264c1ca2e50693100ebb84be5636da758df85f91f8200a4c8e83820e29a6afe718785752023-03-20 19:47:53390 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0x8264c1ca2e50693100ebb84be5636da758df85f91f8200a4c8e83820e29a6afe718785752023-03-20 19:47:53390 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0x8264c1ca2e50693100ebb84be5636da758df85f91f8200a4c8e83820e29a6afe718785752023-03-20 19:47:53390 days 5 hrs ago SushiSwap: MiniChefV2 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0xe66952ae285f208b16cbe1dbd9dde001dcc722c090a84463c99848978ca5d0dc718047972023-03-20 14:42:38390 days 10 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0xe66952ae285f208b16cbe1dbd9dde001dcc722c090a84463c99848978ca5d0dc718047972023-03-20 14:42:38390 days 10 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x8f93eaae544e8f5eb077a1e09c1554067d9e2ca80 ETH
0xe66952ae285f208b16cbe1dbd9dde001dcc722c090a84463c99848978ca5d0dc718047972023-03-20 14:42:38390 days 10 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0xe66952ae285f208b16cbe1dbd9dde001dcc722c090a84463c99848978ca5d0dc718047972023-03-20 14:42:38390 days 10 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0xe66952ae285f208b16cbe1dbd9dde001dcc722c090a84463c99848978ca5d0dc718047972023-03-20 14:42:38390 days 10 hrs ago SushiSwap: MiniChefV2 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0x4af7a547c636cb4cc841f972be2a3537facea857cb597890fa4474a30f23a36f717078092023-03-20 8:04:24390 days 17 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0x4af7a547c636cb4cc841f972be2a3537facea857cb597890fa4474a30f23a36f717078092023-03-20 8:04:24390 days 17 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x8f93eaae544e8f5eb077a1e09c1554067d9e2ca80 ETH
0x4af7a547c636cb4cc841f972be2a3537facea857cb597890fa4474a30f23a36f717078092023-03-20 8:04:24390 days 17 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0x4af7a547c636cb4cc841f972be2a3537facea857cb597890fa4474a30f23a36f717078092023-03-20 8:04:24390 days 17 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0x4af7a547c636cb4cc841f972be2a3537facea857cb597890fa4474a30f23a36f717078092023-03-20 8:04:24390 days 17 hrs ago SushiSwap: MiniChefV2 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0xdf5b624b7fc504f20def4fc6862d6d95d2cd8361d06f9c4de9aa8137894114ec715354262023-03-19 19:55:15391 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0xdf5b624b7fc504f20def4fc6862d6d95d2cd8361d06f9c4de9aa8137894114ec715354262023-03-19 19:55:15391 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x8f93eaae544e8f5eb077a1e09c1554067d9e2ca80 ETH
0xdf5b624b7fc504f20def4fc6862d6d95d2cd8361d06f9c4de9aa8137894114ec715354262023-03-19 19:55:15391 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0xdf5b624b7fc504f20def4fc6862d6d95d2cd8361d06f9c4de9aa8137894114ec715354262023-03-19 19:55:15391 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0xdf5b624b7fc504f20def4fc6862d6d95d2cd8361d06f9c4de9aa8137894114ec715354262023-03-19 19:55:15391 days 5 hrs ago SushiSwap: MiniChefV2 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0x81e659a588e3c8c9b4f94bc7d5dd8e8d85f82520c04c9480518c440fa6022342715353652023-03-19 19:55:00391 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0x81e659a588e3c8c9b4f94bc7d5dd8e8d85f82520c04c9480518c440fa6022342715353652023-03-19 19:55:00391 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0x8f93eaae544e8f5eb077a1e09c1554067d9e2ca80 ETH
0x81e659a588e3c8c9b4f94bc7d5dd8e8d85f82520c04c9480518c440fa6022342715353652023-03-19 19:55:00391 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0x81e659a588e3c8c9b4f94bc7d5dd8e8d85f82520c04c9480518c440fa6022342715353652023-03-19 19:55:00391 days 5 hrs ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 SushiSwap: MiniChefV20 ETH
0x81e659a588e3c8c9b4f94bc7d5dd8e8d85f82520c04c9480518c440fa6022342715353652023-03-19 19:55:00391 days 5 hrs ago SushiSwap: MiniChefV2 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
[ Download CSV Export 
Loading

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

Contract Name:
SpellRewarder

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2021-09-20
*/

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

// Sources flattened with hardhat v2.0.11 https://hardhat.org

// File @boringcrypto/boring-solidity/contracts/interfaces/[email protected]

// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

    function approve(address spender, 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);

    /// @notice EIP 2612
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;
}


// File @boringcrypto/boring-solidity/contracts/libraries/[email protected]

pragma solidity 0.6.12;

// solhint-disable avoid-low-level-calls

library BoringERC20 {
    bytes4 private constant SIG_SYMBOL = 0x95d89b41; // symbol()
    bytes4 private constant SIG_NAME = 0x06fdde03; // name()
    bytes4 private constant SIG_DECIMALS = 0x313ce567; // decimals()
    bytes4 private constant SIG_TRANSFER = 0xa9059cbb; // transfer(address,uint256)
    bytes4 private constant SIG_TRANSFER_FROM = 0x23b872dd; // transferFrom(address,address,uint256)

    function returnDataToString(bytes memory data) internal pure returns (string memory) {
        if (data.length >= 64) {
            return abi.decode(data, (string));
        } else if (data.length == 32) {
            uint8 i = 0;
            while(i < 32 && data[i] != 0) {
                i++;
            }
            bytes memory bytesArray = new bytes(i);
            for (i = 0; i < 32 && data[i] != 0; i++) {
                bytesArray[i] = data[i];
            }
            return string(bytesArray);
        } else {
            return "???";
        }
    }

    /// @notice Provides a safe ERC20.symbol version which returns '???' as fallback string.
    /// @param token The address of the ERC-20 token contract.
    /// @return (string) Token symbol.
    function safeSymbol(IERC20 token) internal view returns (string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(SIG_SYMBOL));
        return success ? returnDataToString(data) : "???";
    }

    /// @notice Provides a safe ERC20.name version which returns '???' as fallback string.
    /// @param token The address of the ERC-20 token contract.
    /// @return (string) Token name.
    function safeName(IERC20 token) internal view returns (string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(SIG_NAME));
        return success ? returnDataToString(data) : "???";
    }

    /// @notice Provides a safe ERC20.decimals version which returns '18' as fallback value.
    /// @param token The address of the ERC-20 token contract.
    /// @return (uint8) Token decimals.
    function safeDecimals(IERC20 token) internal view returns (uint8) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(SIG_DECIMALS));
        return success && data.length == 32 ? abi.decode(data, (uint8)) : 18;
    }

    /// @notice Provides a safe ERC20.transfer version for different ERC-20 implementations.
    /// Reverts on a failed transfer.
    /// @param token The address of the ERC-20 token.
    /// @param to Transfer tokens to.
    /// @param amount The token amount.
    function safeTransfer(
        IERC20 token,
        address to,
        uint256 amount
    ) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(SIG_TRANSFER, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: Transfer failed");
    }

    /// @notice Provides a safe ERC20.transferFrom version for different ERC-20 implementations.
    /// Reverts on a failed transfer.
    /// @param token The address of the ERC-20 token.
    /// @param from Transfer tokens from.
    /// @param to Transfer tokens to.
    /// @param amount The token amount.
    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 amount
    ) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(SIG_TRANSFER_FROM, from, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: TransferFrom failed");
    }
}


// File contracts/interfaces/IRewarder.sol


pragma solidity 0.6.12;

interface IRewarder {
    using BoringERC20 for IERC20;
    function onSushiReward(uint256 pid, address user, address recipient, uint256 sushiAmount, uint256 newLpAmount) external;
    function pendingTokens(uint256 pid, address user, uint256 sushiAmount) external view returns (IERC20[] memory, uint256[] memory);
}


// File @boringcrypto/boring-solidity/contracts/libraries/[email protected]

pragma solidity 0.6.12;

/// @notice A library for performing overflow-/underflow-safe math,
/// updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math).
library BoringMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        require((c = a + b) >= b, "BoringMath: Add Overflow");
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {
        require((c = a - b) <= a, "BoringMath: Underflow");
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        require(b == 0 || (c = a * b) / b == a, "BoringMath: Mul Overflow");
    }

    function to128(uint256 a) internal pure returns (uint128 c) {
        require(a <= uint128(-1), "BoringMath: uint128 Overflow");
        c = uint128(a);
    }

    function to64(uint256 a) internal pure returns (uint64 c) {
        require(a <= uint64(-1), "BoringMath: uint64 Overflow");
        c = uint64(a);
    }

    function to32(uint256 a) internal pure returns (uint32 c) {
        require(a <= uint32(-1), "BoringMath: uint32 Overflow");
        c = uint32(a);
    }
}

/// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint128.
library BoringMath128 {
    function add(uint128 a, uint128 b) internal pure returns (uint128 c) {
        require((c = a + b) >= b, "BoringMath: Add Overflow");
    }

    function sub(uint128 a, uint128 b) internal pure returns (uint128 c) {
        require((c = a - b) <= a, "BoringMath: Underflow");
    }
}

/// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint64.
library BoringMath64 {
    function add(uint64 a, uint64 b) internal pure returns (uint64 c) {
        require((c = a + b) >= b, "BoringMath: Add Overflow");
    }

    function sub(uint64 a, uint64 b) internal pure returns (uint64 c) {
        require((c = a - b) <= a, "BoringMath: Underflow");
    }
}

/// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint32.
library BoringMath32 {
    function add(uint32 a, uint32 b) internal pure returns (uint32 c) {
        require((c = a + b) >= b, "BoringMath: Add Overflow");
    }

    function sub(uint32 a, uint32 b) internal pure returns (uint32 c) {
        require((c = a - b) <= a, "BoringMath: Underflow");
    }
}


// File @boringcrypto/boring-solidity/contracts/[email protected]

pragma solidity 0.6.12;

// Audit on 5-Jan-2021 by Keno and BoringCrypto
// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol
// Edited by BoringCrypto

contract BoringOwnableData {
    address public owner;
    address public pendingOwner;
}

contract BoringOwnable is BoringOwnableData {
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /// @notice `owner` defaults to msg.sender on construction.
    constructor() public {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    /// @notice Transfers ownership to `newOwner`. Either directly or claimable by the new pending owner.
    /// Can only be invoked by the current `owner`.
    /// @param newOwner Address of the new owner.
    /// @param direct True if `newOwner` should be set immediately. False if `newOwner` needs to use `claimOwnership`.
    /// @param renounce Allows the `newOwner` to be `address(0)` if `direct` and `renounce` is True. Has no effect otherwise.
    function transferOwnership(
        address newOwner,
        bool direct,
        bool renounce
    ) public onlyOwner {
        if (direct) {
            // Checks
            require(newOwner != address(0) || renounce, "Ownable: zero address");

            // Effects
            emit OwnershipTransferred(owner, newOwner);
            owner = newOwner;
            pendingOwner = address(0);
        } else {
            // Effects
            pendingOwner = newOwner;
        }
    }

    /// @notice Needs to be called by `pendingOwner` to claim ownership.
    function claimOwnership() public {
        address _pendingOwner = pendingOwner;

        // Checks
        require(msg.sender == _pendingOwner, "Ownable: caller != pending owner");

        // Effects
        emit OwnershipTransferred(owner, _pendingOwner);
        owner = _pendingOwner;
        pendingOwner = address(0);
    }

    /// @notice Only allows the `owner` to execute the function.
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }
}


// File contracts/mocks/CloneRewarderTime.sol

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;




interface IMasterChefV2 {
    function lpToken(uint256 pid) external view returns (IERC20 _lpToken); 
}

/// @author @0xKeno
contract SpellRewarder is IRewarder, BoringOwnable{
    using BoringMath for uint256;
    using BoringMath128 for uint128;
    using BoringERC20 for IERC20;

    IERC20 public rewardToken;

    /// @notice Info of each MCV2 user.
    /// `amount` LP token amount the user has provided.
    /// `rewardDebt` The amount of SUSHI entitled to the user.
    struct UserInfo {
        uint256 amount;
        uint256 rewardDebt;
    }

    /// @notice Info of each MCV2 pool.
    /// `allocPoint` The amount of allocation points assigned to the pool.
    /// Also known as the amount of SUSHI to distribute per block.
    struct PoolInfo {
        uint128 accSushiPerShare;
        uint64 lastRewardTime;
    }

    /// @notice Info of each pool.
    mapping (uint256 => PoolInfo) public poolInfo;


    /// @notice Info of each user that stakes LP tokens.
    mapping (uint256 => mapping (address => UserInfo)) public userInfo;

    uint256 public rewardPerSecond;
    IERC20 public masterLpToken;
    uint256 private constant ACC_TOKEN_PRECISION = 1e12;

    address public immutable MASTERCHEF_V2;

    event LogOnReward(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event LogPoolAddition(uint256 indexed pid, uint256 allocPoint);
    event LogSetPool(uint256 indexed pid, uint256 allocPoint);
    event LogUpdatePool(uint256 indexed pid, uint64 lastRewardTime, uint256 lpSupply, uint256 accSushiPerShare);
    event LogRewardPerSecond(uint256 rewardPerSecond);
    event LogInit();

    constructor (address _MASTERCHEF_V2) public {
        MASTERCHEF_V2 = _MASTERCHEF_V2;
    }

    /// @notice Serves as the constructor for clones, as clones can't have a regular constructor
    /// @dev `data` is abi encoded in the format: (IERC20 collateral, IERC20 asset, IOracle oracle, bytes oracleData)
    function init(bytes calldata data) public payable {
        require(rewardToken == IERC20(0), "Rewarder: already initialized");
        (rewardToken, owner, rewardPerSecond, masterLpToken) = abi.decode(data, (IERC20, address, uint256, IERC20));
        require(rewardToken != IERC20(0), "Rewarder: bad token");
        emit LogInit();
    }

    function onSushiReward (uint256 pid, address _user, address to, uint256, uint256 lpToken) onlyMCV2 override external {
        require(IMasterChefV2(MASTERCHEF_V2).lpToken(pid) == masterLpToken);

        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][_user];
        uint256 pending;
        if (user.amount > 0) {
            pending =
                (user.amount.mul(pool.accSushiPerShare) / ACC_TOKEN_PRECISION).sub(
                    user.rewardDebt
                );
            rewardToken.safeTransfer(to, pending);
        }
        user.amount = lpToken;
        user.rewardDebt = lpToken.mul(pool.accSushiPerShare) / ACC_TOKEN_PRECISION;
        emit LogOnReward(_user, pid, pending, to);
    }
    
    function pendingTokens(uint256 pid, address user, uint256) override external view returns (IERC20[] memory rewardTokens, uint256[] memory rewardAmounts) {
        IERC20[] memory _rewardTokens = new IERC20[](1);
        _rewardTokens[0] = (rewardToken);
        uint256[] memory _rewardAmounts = new uint256[](1);
        _rewardAmounts[0] = pendingToken(pid, user);
        return (_rewardTokens, _rewardAmounts);
    }

    /// @notice Sets the sushi per second to be distributed. Can only be called by the owner.
    /// @param _rewardPerSecond The amount of Sushi to be distributed per second.
    function setRewardPerSecond(uint256 _rewardPerSecond) public onlyOwner {
        rewardPerSecond = _rewardPerSecond;
        emit LogRewardPerSecond(_rewardPerSecond);
    }

    modifier onlyMCV2 {
        require(
            msg.sender == MASTERCHEF_V2,
            "Only MCV2 can call this function."
        );
        _;
    }

    /// @notice View function to see pending Token
    /// @param _pid The index of the pool. See `poolInfo`.
    /// @param _user Address of user.
    /// @return pending SUSHI reward for a given user.
    function pendingToken(uint256 _pid, address _user) public view returns (uint256 pending) {
        PoolInfo memory pool = poolInfo[_pid];
        UserInfo storage user = userInfo[_pid][_user];
        uint256 accSushiPerShare = pool.accSushiPerShare;
        uint256 lpSupply = IMasterChefV2(MASTERCHEF_V2).lpToken(_pid).balanceOf(MASTERCHEF_V2);
        if (block.timestamp > pool.lastRewardTime && lpSupply != 0) {
            uint256 time = block.timestamp.sub(pool.lastRewardTime);
            uint256 sushiReward = time.mul(rewardPerSecond);
            accSushiPerShare = accSushiPerShare.add(sushiReward.mul(ACC_TOKEN_PRECISION) / lpSupply);
        }
        pending = (user.amount.mul(accSushiPerShare) / ACC_TOKEN_PRECISION).sub(user.rewardDebt);
    }

    /// @notice Update reward variables of the given pool.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @return pool Returns the pool that was updated.
    function updatePool(uint256 pid) public returns (PoolInfo memory pool) {
        pool = poolInfo[pid];
        if (block.timestamp > pool.lastRewardTime) {
            uint256 lpSupply = IMasterChefV2(MASTERCHEF_V2).lpToken(pid).balanceOf(MASTERCHEF_V2);

            if (lpSupply > 0) {
                uint256 time = block.timestamp.sub(pool.lastRewardTime);
                uint256 sushiReward = time.mul(rewardPerSecond);
                pool.accSushiPerShare = pool.accSushiPerShare.add((sushiReward.mul(ACC_TOKEN_PRECISION) / lpSupply).to128());
            }
            pool.lastRewardTime = block.timestamp.to64();
            poolInfo[pid] = pool;
            emit LogUpdatePool(pid, pool.lastRewardTime, lpSupply, pool.accSushiPerShare);
        }
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_MASTERCHEF_V2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"LogInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"LogOnReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"}],"name":"LogPoolAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rewardPerSecond","type":"uint256"}],"name":"LogRewardPerSecond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"}],"name":"LogSetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accSushiPerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"MASTERCHEF_V2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"init","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"masterLpToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"lpToken","type":"uint256"}],"name":"onSushiReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingToken","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingTokens","outputs":[{"internalType":"contract IERC20[]","name":"rewardTokens","type":"address[]"},{"internalType":"uint256[]","name":"rewardAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"uint128","name":"accSushiPerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerSecond","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":"uint256","name":"_rewardPerSecond","type":"uint256"}],"name":"setRewardPerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"}],"name":"updatePool","outputs":[{"components":[{"internalType":"uint128","name":"accSushiPerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"}],"internalType":"struct SpellRewarder.PoolInfo","name":"pool","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x6080604052600436106100f35760003560e01c80638bf637421161008a578063a8594dab11610059578063a8594dab1461028d578063d63b3c49146102a2578063e30c3978146102d0578063f7c618c1146102e5576100f3565b80638bf63742146102155780638da5cb5b146102355780638f10369a1461024a57806393f1a40b1461025f576100f3565b80634e71e0c8116100c65780634e71e0c81461019157806351eb05a6146101a65780635a894421146101d357806366da5815146101f5576100f3565b8063078dfbe7146100f85780631526fe271461011a57806348e43af4146101515780634ddf47d41461017e575b600080fd5b34801561010457600080fd5b50610118610113366004611045565b6102fa565b005b34801561012657600080fd5b5061013a61013536600461118d565b6103e9565b60405161014892919061161c565b60405180910390f35b34801561015d57600080fd5b5061017161016c3660046111bd565b610417565b604051610148919061163f565b61011861018c3660046110b2565b610676565b34801561019d57600080fd5b5061011861073c565b3480156101b257600080fd5b506101c66101c136600461118d565b6107c9565b60405161014891906115f2565b3480156101df57600080fd5b506101e8610a8d565b60405161014891906112b5565b34801561020157600080fd5b5061011861021036600461118d565b610ab1565b34801561022157600080fd5b506101186102303660046111ec565b610b1b565b34801561024157600080fd5b506101e8610d1e565b34801561025657600080fd5b50610171610d2d565b34801561026b57600080fd5b5061027f61027a3660046111bd565b610d33565b604051610148929190611648565b34801561029957600080fd5b506101e8610d57565b3480156102ae57600080fd5b506102c26102bd36600461123d565b610d66565b6040516101489291906112e2565b3480156102dc57600080fd5b506101e8610e11565b3480156102f157600080fd5b506101e8610e20565b6000546001600160a01b0316331461032d5760405162461bcd60e51b8152600401610324906114b6565b60405180910390fd5b81156103c8576001600160a01b0383161515806103475750805b6103635760405162461bcd60e51b815260040161032490611419565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b0319918216179091556001805490911690556103e4565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6003602052600090815260409020546001600160801b03811690600160801b900467ffffffffffffffff1682565b600061042161102e565b5060008381526003602090815260408083208151808301835290546001600160801b038082168352600160801b90910467ffffffffffffffff168285015287855260048085528386206001600160a01b0389811688529552838620835194516378ed5d1f60e01b815293969095949092169391927f000000000000000000000000f4d73326c13a4fc5fd7a064217e12780e9bd62c3909216916378ed5d1f916104cc918b910161163f565b60206040518083038186803b1580156104e457600080fd5b505afa1580156104f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051c919061111f565b6001600160a01b03166370a082317f000000000000000000000000f4d73326c13a4fc5fd7a064217e12780e9bd62c36040518263ffffffff1660e01b815260040161056791906112b5565b60206040518083038186803b15801561057f57600080fd5b505afa158015610593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b791906111a5565b9050836020015167ffffffffffffffff16421180156105d557508015155b156106405760006105fd856020015167ffffffffffffffff1642610e2f90919063ffffffff16565b9050600061061660055483610e5890919063ffffffff16565b905061063b8361062b8364e8d4a51000610e58565b8161063257fe5b86919004610e8f565b935050505b6001830154835461066b919064e8d4a510009061065d9086610e58565b8161066457fe5b0490610e2f565b979650505050505050565b6002546001600160a01b03161561069f5760405162461bcd60e51b81526004016103249061158e565b6106ab8183018361113b565b600680546001600160a01b03199081166001600160a01b0393841617909155600592909255600080548316938216939093179092556002805490911692821692909217918290551661070f5760405162461bcd60e51b8152600401610324906115c5565b6040517f98a9bd3b7a617581fc53b1e2992534e0e0cb5091c9d44aa1a7fc978f706caa8390600090a15050565b6001546001600160a01b03163381146107675760405162461bcd60e51b8152600401610324906114eb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6107d161102e565b506000818152600360209081526040918290208251808401909352546001600160801b0381168352600160801b900467ffffffffffffffff16908201819052421115610a88576040516378ed5d1f60e01b81526000906001600160a01b037f000000000000000000000000f4d73326c13a4fc5fd7a064217e12780e9bd62c316906378ed5d1f9061086690869060040161163f565b60206040518083038186803b15801561087e57600080fd5b505afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b6919061111f565b6001600160a01b03166370a082317f000000000000000000000000f4d73326c13a4fc5fd7a064217e12780e9bd62c36040518263ffffffff1660e01b815260040161090191906112b5565b60206040518083038186803b15801561091957600080fd5b505afa15801561092d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095191906111a5565b905080156109d957600061097c836020015167ffffffffffffffff1642610e2f90919063ffffffff16565b9050600061099560055483610e5890919063ffffffff16565b90506109cb6109ba846109ad8464e8d4a51000610e58565b816109b457fe5b04610eb2565b85516001600160801b031690610edf565b6001600160801b0316845250505b6109e242610f0e565b67ffffffffffffffff9081166020848101918252600086815260039091526040908190208551815493516fffffffffffffffffffffffffffffffff199094166001600160801b0382161767ffffffffffffffff60801b1916600160801b958516959095029490941790555185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610a7e9290918691611656565b60405180910390a2505b919050565b7f000000000000000000000000f4d73326c13a4fc5fd7a064217e12780e9bd62c381565b6000546001600160a01b03163314610adb5760405162461bcd60e51b8152600401610324906114b6565b60058190556040517fde89cb17ac7f58f94792b3e91e086ed85403819c24ceea882491f960ccb1a27890610b1090839061163f565b60405180910390a150565b336001600160a01b037f000000000000000000000000f4d73326c13a4fc5fd7a064217e12780e9bd62c31614610b635760405162461bcd60e51b8152600401610324906113d8565b6006546040516378ed5d1f60e01b81526001600160a01b03918216917f000000000000000000000000f4d73326c13a4fc5fd7a064217e12780e9bd62c316906378ed5d1f90610bb690899060040161163f565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c06919061111f565b6001600160a01b031614610c1957600080fd5b610c2161102e565b610c2a866107c9565b60008781526004602090815260408083206001600160a01b038a168452909152812080549293509115610c9857600182015483518354610c7e929164e8d4a510009161065d916001600160801b0316610e58565b600254909150610c98906001600160a01b03168783610f38565b838255825164e8d4a5100090610cb89086906001600160801b0316610e58565b81610cbf57fe5b048260010181905550856001600160a01b031688886001600160a01b03167f2ece88ca2bc08dd018db50e1d25a20bf1241e5fab1c396caa51f01a54bd2f75b84604051610d0c919061163f565b60405180910390a45050505050505050565b6000546001600160a01b031681565b60055481565b60046020908152600092835260408084209091529082529020805460019091015482565b6006546001600160a01b031681565b6040805160018082528183019092526060918291829160208083019080368337505060025482519293506001600160a01b031691839150600090610da657fe5b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252606091816020016020820280368337019050509050610ded8787610417565b81600081518110610dfa57fe5b602090810291909101015290969095509350505050565b6001546001600160a01b031681565b6002546001600160a01b031681565b80820382811115610e525760405162461bcd60e51b815260040161032490611372565b92915050565b6000811580610e7357505080820282828281610e7057fe5b04145b610e525760405162461bcd60e51b815260040161032490611557565b81810181811015610e525760405162461bcd60e51b81526004016103249061147f565b60006001600160801b03821115610edb5760405162461bcd60e51b815260040161032490611448565b5090565b8181016001600160801b038083169082161015610e525760405162461bcd60e51b81526004016103249061147f565b600067ffffffffffffffff821115610edb5760405162461bcd60e51b815260040161032490611520565b60006060846001600160a01b031663a9059cbb60e01b8585604051602401610f619291906112c9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f9f919061127c565b6000604051808303816000865af19150503d8060008114610fdc576040519150601f19603f3d011682016040523d82523d6000602084013e610fe1565b606091505b509150915081801561100b57508051158061100b57508080602001905181019061100b919061108f565b6110275760405162461bcd60e51b8152600401610324906113a1565b5050505050565b604080518082019091526000808252602082015290565b600080600060608486031215611059578283fd5b833561106481611681565b9250602084013561107481611699565b9150604084013561108481611699565b809150509250925092565b6000602082840312156110a0578081fd5b81516110ab81611699565b9392505050565b600080602083850312156110c4578182fd5b823567ffffffffffffffff808211156110db578384fd5b818501915085601f8301126110ee578384fd5b8135818111156110fc578485fd5b86602082850101111561110d578485fd5b60209290920196919550909350505050565b600060208284031215611130578081fd5b81516110ab81611681565b60008060008060808587031215611150578081fd5b843561115b81611681565b9350602085013561116b81611681565b925060408501359150606085013561118281611681565b939692955090935050565b60006020828403121561119e578081fd5b5035919050565b6000602082840312156111b6578081fd5b5051919050565b600080604083850312156111cf578182fd5b8235915060208301356111e181611681565b809150509250929050565b600080600080600060a08688031215611203578081fd5b85359450602086013561121581611681565b9350604086013561122581611681565b94979396509394606081013594506080013592915050565b600080600060608486031215611251578283fd5b83359250602084013561126381611681565b929592945050506040919091013590565b815260200190565b60008251815b8181101561129c5760208186018101518583015201611282565b818111156112aa5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156113245781516001600160a01b0316845292840192908401906001016112ff565b5050508381038285015280855161133b818461163f565b91508387019250845b8181101561136557611357838551611274565b938501939250600101611344565b5090979650505050505050565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e6040820152601760f91b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b6020808252601d908201527f52657761726465723a20616c726561647920696e697469616c697a6564000000604082015260600190565b6020808252601390820152722932bbb0b93232b91d103130b2103a37b5b2b760691b604082015260600190565b81516001600160801b0316815260209182015167ffffffffffffffff169181019190915260400190565b6001600160801b0392909216825267ffffffffffffffff16602082015260400190565b90815260200190565b918252602082015260400190565b67ffffffffffffffff93909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b038116811461169657600080fd5b50565b801515811461169657600080fdfea2646970667358221220050d79cb31add4f728e6b130c8fc286d8afb43d3eff18615691f9ebb81e15b3064736f6c634300060c0033

Deployed ByteCode Sourcemap

10322:5921:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8948:506;;;;;;;;;;-1:-1:-1;8948:506:0;;;;;:::i;:::-;;:::i;:::-;;11091:45;;;;;;;;;;-1:-1:-1;11091:45:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;14505:773;;;;;;;;;;-1:-1:-1;14505:773:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12206:345::-;;;;;;:::i;:::-;;:::i;9536:340::-;;;;;;;;;;;;;:::i;15462:778::-;;;;;;;;;;-1:-1:-1;15462:778:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11411:38::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13947:176::-;;;;;;;;;;-1:-1:-1;13947:176:0;;;;;:::i;:::-;;:::i;12559:764::-;;;;;;;;;;-1:-1:-1;12559:764:0;;;;;:::i;:::-;;:::i;8094:20::-;;;;;;;;;;;;;:::i;11280:30::-;;;;;;;;;;;;;:::i;11205:66::-;;;;;;;;;;-1:-1:-1;11205:66:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;11317:27::-;;;;;;;;;;;;;:::i;13335:426::-;;;;;;;;;;-1:-1:-1;13335:426:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;8121:27::-;;;;;;;;;;;;;:::i;10489:25::-;;;;;;;;;;;;;:::i;8948:506::-;10004:5;;-1:-1:-1;;;;;10004:5:0;9990:10;:19;9982:64;;;;-1:-1:-1;;;9982:64:0;;;;;;;:::i;:::-;;;;;;;;;9087:6:::1;9083:364;;;-1:-1:-1::0;;;;;9141:22:0;::::1;::::0;::::1;::::0;:34:::1;;;9167:8;9141:34;9133:68;;;;-1:-1:-1::0;;;9133:68:0::1;;;;;;;:::i;:::-;9268:5;::::0;;9247:37:::1;::::0;-1:-1:-1;;;;;9247:37:0;;::::1;::::0;9268:5;::::1;::::0;9247:37:::1;::::0;::::1;9299:5;:16:::0;;-1:-1:-1;;;;;9299:16:0;::::1;-1:-1:-1::0;;;;;;9299:16:0;;::::1;;::::0;;;;9330:25;;;;::::1;::::0;;9083:364:::1;;;9412:12;:23:::0;;-1:-1:-1;;;;;;9412:23:0::1;-1:-1:-1::0;;;;;9412:23:0;::::1;;::::0;;9083:364:::1;8948:506:::0;;;:::o;11091:45::-;;;;;;;;;;;;-1:-1:-1;;;;;11091:45:0;;;-1:-1:-1;;;11091:45:0;;;;;:::o;14505:773::-;14577:15;14605:20;;:::i;:::-;-1:-1:-1;14628:14:0;;;;:8;:14;;;;;;;;14605:37;;;;;;;;;-1:-1:-1;;;;;14605:37:0;;;;;-1:-1:-1;;;14605:37:0;;;;;;;;;14677:14;;;:8;:14;;;;;;-1:-1:-1;;;;;14677:21:0;;;;;;;;;;14736;;14787:42;;-1:-1:-1;;;14787:42:0;;14605:37;;14677:21;;14709:48;;;;;14628:14;;14801:13;14787:36;;;;;;:42;;14628:14;;14787:42;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14787:52:0;;14840:13;14787:67;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14768:86;;14887:4;:19;;;14869:37;;:15;:37;:54;;;;-1:-1:-1;14910:13:0;;;14869:54;14865:307;;;14940:12;14955:40;14975:4;:19;;;14955:40;;:15;:19;;:40;;;;:::i;:::-;14940:55;;15010:19;15032:25;15041:15;;15032:4;:8;;:25;;;;:::i;:::-;15010:47;-1:-1:-1;15091:69:0;15151:8;15112:36;15010:47;11398:4;15112:15;:36::i;:::-;:47;;;;;15091:16;;15112:47;;15091:20;:69::i;:::-;15072:88;;14865:307;;;15254:15;;;;15193:11;;15192:78;;15254:15;11398:4;;15193:33;;15209:16;15193:15;:33::i;:::-;:55;;;;;;;15192:61;:78::i;:::-;15182:88;14505:773;-1:-1:-1;;;;;;;14505:773:0:o;12206:345::-;12275:11;;-1:-1:-1;;;;;12275:11:0;:24;12267:66;;;;-1:-1:-1;;;12267:66:0;;;;;;;:::i;:::-;12399:52;;;;12410:4;12399:52;:::i;:::-;12382:13;12344:107;;-1:-1:-1;;;;;;12344:107:0;;;-1:-1:-1;;;;;12344:107:0;;;;;;;12365:15;12344:107;;;;-1:-1:-1;12344:107:0;;;;;;;;;;;;;;12345:11;12344:107;;;;;;;;;;;;;;;;12470:11;12462:56;;;;-1:-1:-1;;;12462:56:0;;;;;;;:::i;:::-;12534:9;;;;;;;12206:345;;:::o;9536:340::-;9604:12;;-1:-1:-1;;;;;9604:12:0;9656:10;:27;;9648:72;;;;-1:-1:-1;;;9648:72:0;;;;;;;:::i;:::-;9779:5;;;9758:42;;-1:-1:-1;;;;;9758:42:0;;;;9779:5;;;9758:42;;;9811:5;:21;;-1:-1:-1;;;;;9811:21:0;;;-1:-1:-1;;;;;;9811:21:0;;;;;;;9843:25;;;;;;;9536:340::o;15462:778::-;15511:20;;:::i;:::-;-1:-1:-1;15551:13:0;;;;:8;:13;;;;;;;;;15544:20;;;;;;;;;-1:-1:-1;;;;;15544:20:0;;;;-1:-1:-1;;;15544:20:0;;;;;;;;;;15579:15;:37;15575:658;;;15652:41;;-1:-1:-1;;;15652:41:0;;15633:16;;-1:-1:-1;;;;;15666:13:0;15652:36;;;;:41;;15689:3;;15652:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15652:51:0;;15704:13;15652:66;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15633:85;-1:-1:-1;15739:12:0;;15735:301;;15772:12;15787:40;15807:4;:19;;;15787:40;;:15;:19;;:40;;;;:::i;:::-;15772:55;;15846:19;15868:25;15877:15;;15868:4;:8;;:25;;;;:::i;:::-;15846:47;-1:-1:-1;15936:84:0;15962:57;16002:8;15963:36;15846:47;11398:4;15963:15;:36::i;:::-;:47;;;;;;15962:55;:57::i;:::-;15936:21;;-1:-1:-1;;;;;15936:25:0;;;:84::i;:::-;-1:-1:-1;;;;;15912:108:0;;;-1:-1:-1;;15735:301:0;16072:22;:15;:20;:22::i;:::-;16050:44;;;;:19;;;;:44;;;16109:13;;;;:8;:13;;;;;;;;:20;;;;;;-1:-1:-1;;16109:20:0;;;-1:-1:-1;;;;;16109:20:0;;;-1:-1:-1;;;;16109:20:0;-1:-1:-1;;;16109:20:0;;;;;;;;;;;;;16149:72;16109:13;;16149:72;;;;16109:20;;16189:8;;16149:72;:::i;:::-;;;;;;;;15575:658;;15462:778;;;:::o;11411:38::-;;;:::o;13947:176::-;10004:5;;-1:-1:-1;;;;;10004:5:0;9990:10;:19;9982:64;;;;-1:-1:-1;;;9982:64:0;;;;;;;:::i;:::-;14029:15:::1;:34:::0;;;14079:36:::1;::::0;::::1;::::0;::::1;::::0;14047:16;;14079:36:::1;:::i;:::-;;;;;;;;13947:176:::0;:::o;12559:764::-;14182:10;-1:-1:-1;;;;;14196:13:0;14182:27;;14160:110;;;;-1:-1:-1;;;14160:110:0;;;;;;;:::i;:::-;12740:13:::1;::::0;12695:41:::1;::::0;-1:-1:-1;;;12695:41:0;;-1:-1:-1;;;;;12740:13:0;;::::1;::::0;12709::::1;12695:36;::::0;::::1;::::0;:41:::1;::::0;12732:3;;12695:41:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12695:58:0::1;;12687:67;;;::::0;::::1;;12767:20;;:::i;:::-;12790:15;12801:3;12790:10;:15::i;:::-;12816:21;12840:13:::0;;;:8:::1;:13;::::0;;;;;;;-1:-1:-1;;;;;12840:20:0;::::1;::::0;;;;;;;12901:11;;12767:38;;-1:-1:-1;12840:20:0;12901:15;12897:250:::1;;13049:15;::::0;::::1;::::0;12977:21;;12961:11;;12960:123:::1;::::0;13049:15;11398:4:::1;::::0;12961:38:::1;::::0;-1:-1:-1;;;;;12961:38:0::1;:15;:38::i;12960:123::-;13098:11;::::0;12933:150;;-1:-1:-1;13098:37:0::1;::::0;-1:-1:-1;;;;;13098:11:0::1;13123:2:::0;12933:150;13098:24:::1;:37::i;:::-;13157:21:::0;;;13219;;11398:4:::1;::::0;13207:34:::1;::::0;13171:7;;-1:-1:-1;;;;;13207:34:0::1;:11;:34::i;:::-;:56;;;;;;13189:4;:15;;:74;;;;13312:2;-1:-1:-1::0;;;;;13279:36:0::1;13298:3;13291:5;-1:-1:-1::0;;;;;13279:36:0::1;;13303:7;13279:36;;;;;;:::i;:::-;;;;;;;;14281:1;;;12559:764:::0;;;;;:::o;8094:20::-;;;-1:-1:-1;;;;;8094:20:0;;:::o;11280:30::-;;;;:::o;11205:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11317:27::-;;;-1:-1:-1;;;;;11317:27:0;;:::o;13335:426::-;13531:15;;;13544:1;13531:15;;;;;;;;;13426:28;;;;;;13531:15;;;;;;;;;-1:-1:-1;;13577:11:0;;13557:16;;;;-1:-1:-1;;;;;;13577:11:0;;13557:16;;-1:-1:-1;13577:11:0;;13557:16;;;;-1:-1:-1;;;;;13557:32:0;;;;:16;;;;;;;;;;;:32;13634:16;;;13648:1;13634:16;;;;;;;;;13600:31;;13634:16;;;;;;;;;;;;-1:-1:-1;13634:16:0;13600:50;;13681:23;13694:3;13699:4;13681:12;:23::i;:::-;13661:14;13676:1;13661:17;;;;;;;;;;;;;;;;;:43;13723:13;;;;-1:-1:-1;13335:426:0;-1:-1:-1;;;;13335:426:0:o;8121:27::-;;;-1:-1:-1;;;;;8121:27:0;;:::o;10489:25::-;;;-1:-1:-1;;;;;10489:25:0;;:::o;5695:138::-;5788:5;;;5783:16;;;;5775:50;;;;-1:-1:-1;;;5775:50:0;;;;;;;:::i;:::-;5695:138;;;;:::o;5841:155::-;5899:9;5929:6;;;:30;;-1:-1:-1;;5944:5:0;;;5958:1;5953;5944:5;5953:1;5939:15;;;;;:20;5929:30;5921:67;;;;-1:-1:-1;;;5921:67:0;;;;;;;:::i;5546:141::-;5639:5;;;5634:16;;;;5626:53;;;;-1:-1:-1;;;5626:53:0;;;;;;;:::i;6004:161::-;6053:9;-1:-1:-1;;;;;6083:16:0;;;6075:57;;;;-1:-1:-1;;;6075:57:0;;;;;;;:::i;:::-;-1:-1:-1;6155:1:0;6004:161::o;6629:141::-;6722:5;;;-1:-1:-1;;;;;6717:16:0;;;;;;;;6709:53;;;;-1:-1:-1;;;6709:53:0;;;;;;;:::i;6173:156::-;6221:8;6250:15;;;;6242:55;;;;-1:-1:-1;;;6242:55:0;;;;;;;:::i;3802:340::-;3921:12;3935:17;3964:5;-1:-1:-1;;;;;3956:19:0;1420:10;3999:12;;4013:2;4017:6;3976:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3976:48:0;;;;;;;;;;;;;;-1:-1:-1;;;;;3976:48:0;-1:-1:-1;;;;;;3976:48:0;;;;;;;;;;3956:69;;;;3976:48;3956:69;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3920:105;;;;4044:7;:57;;;;-1:-1:-1;4056:11:0;;:16;;:44;;;4087:4;4076:24;;;;;;;;;;;;:::i;:::-;4036:98;;;;-1:-1:-1;;;4036:98:0;;;;;;;:::i;:::-;3802:340;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;1527:479::-;;;;1659:2;1647:9;1638:7;1634:23;1630:32;1627:2;;;-1:-1;;1665:12;1627:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1717:63;-1:-1;1817:2;1853:22;;359:20;384:30;359:20;384:30;:::i;:::-;1825:60;-1:-1;1922:2;1958:22;;359:20;384:30;359:20;384:30;:::i;:::-;1930:60;;;;1621:385;;;;;:::o;2013:257::-;;2125:2;2113:9;2104:7;2100:23;2096:32;2093:2;;;-1:-1;;2131:12;2093:2;507:6;501:13;519:30;543:5;519:30;:::i;:::-;2183:71;2087:183;-1:-1;;;2087:183::o;2277:365::-;;;2400:2;2388:9;2379:7;2375:23;2371:32;2368:2;;;-1:-1;;2406:12;2368:2;2464:17;2451:31;2502:18;;2494:6;2491:30;2488:2;;;-1:-1;;2524:12;2488:2;2609:6;2598:9;2594:22;;;689:3;682:4;674:6;670:17;666:27;656:2;;-1:-1;;697:12;656:2;740:6;727:20;2502:18;759:6;756:30;753:2;;;-1:-1;;789:12;753:2;884:3;2400:2;864:17;825:6;850:32;;847:41;844:2;;;-1:-1;;891:12;844:2;2400;821:17;;;;;2544:82;;-1:-1;2362:280;;-1:-1;;;;2362:280::o;2649:289::-;;2777:2;2765:9;2756:7;2752:23;2748:32;2745:2;;;-1:-1;;2783:12;2745:2;1179:6;1173:13;1191:46;1231:5;1191:46;:::i;2945:685::-;;;;;3134:3;3122:9;3113:7;3109:23;3105:33;3102:2;;;-1:-1;;3141:12;3102:2;1012:6;999:20;1024:46;1064:5;1024:46;:::i;:::-;3193:76;-1:-1;3306:2;3353:22;;217:20;242:41;217:20;242:41;:::i;:::-;3314:71;-1:-1;3422:2;3461:22;;1316:20;;-1:-1;3530:2;3582:22;;999:20;1024:46;999:20;1024:46;:::i;:::-;3096:534;;;;-1:-1;3096:534;;-1:-1;;3096:534::o;3637:241::-;;3741:2;3729:9;3720:7;3716:23;3712:32;3709:2;;;-1:-1;;3747:12;3709:2;-1:-1;1316:20;;3703:175;-1:-1;3703:175::o;3885:263::-;;4000:2;3988:9;3979:7;3975:23;3971:32;3968:2;;;-1:-1;;4006:12;3968:2;-1:-1;1464:13;;3962:186;-1:-1;3962:186::o;4155:366::-;;;4276:2;4264:9;4255:7;4251:23;4247:32;4244:2;;;-1:-1;;4282:12;4244:2;1329:6;1316:20;4334:63;;4434:2;4477:9;4473:22;72:20;97:33;124:5;97:33;:::i;:::-;4442:63;;;;4238:283;;;;;:::o;4528:743::-;;;;;;4700:3;4688:9;4679:7;4675:23;4671:33;4668:2;;;-1:-1;;4707:12;4668:2;1329:6;1316:20;4759:63;;4859:2;4902:9;4898:22;72:20;97:33;124:5;97:33;:::i;:::-;4867:63;-1:-1;4967:2;5006:22;;72:20;97:33;72:20;97:33;:::i;:::-;4662:609;;;;-1:-1;4975:63;;5075:2;5114:22;;1316:20;;-1:-1;5183:3;5223:22;1316:20;;4662:609;-1:-1;;4662:609::o;5278:491::-;;;;5416:2;5404:9;5395:7;5391:23;5387:32;5384:2;;;-1:-1;;5422:12;5384:2;1329:6;1316:20;5474:63;;5574:2;5617:9;5613:22;72:20;97:33;124:5;97:33;:::i;:::-;5378:391;;5582:63;;-1:-1;;;5682:2;5721:22;;;;1316:20;;5378:391::o;5985:173::-;13547:37;;6147:4;6138:14;;6065:93::o;13940:271::-;;7977:5;22906:12;-1:-1;25468:101;25482:6;25479:1;25476:13;25468:101;;;8121:4;25549:11;;;;;25543:18;25530:11;;;25523:39;25497:10;25468:101;;;25584:6;25581:1;25578:13;25575:2;;;-1:-1;25640:6;25635:3;25631:16;25624:27;25575:2;-1:-1;8152:16;;;;;14074:137;-1:-1;;14074:137::o;14218:222::-;-1:-1;;;;;24750:54;;;;6237:37;;14345:2;14330:18;;14316:124::o;14447:333::-;-1:-1;;;;;24750:54;;;;6237:37;;14766:2;14751:18;;13547:37;14602:2;14587:18;;14573:207::o;14787:655::-;15055:2;15069:47;;;22906:12;;15040:18;;;23581:19;;;14787:655;;23630:4;;23621:14;;;;22589;;;14787:655;6772:286;6797:6;6794:1;6791:13;6772:286;;;6858:13;;-1:-1;;;;;24750:54;8254:63;;5956:14;;;;23321;;;;2502:18;6812:9;6772:286;;;6776:14;;;15299:9;15293:4;15289:20;23630:4;15273:9;15269:18;15262:48;15324:108;7312:5;22906:12;7331:86;7410:6;7405:3;7331:86;:::i;:::-;7324:93;;23630:4;7488:5;22589:14;7500:21;;-1:-1;7527:260;7552:6;7549:1;7546:13;7527:260;;;7640:63;7699:3;7619:6;7613:13;7640:63;:::i;:::-;23321:14;;;;7633:70;-1:-1;6819:1;7567:9;7527:260;;;-1:-1;15316:116;;15026:416;-1:-1;;;;;;;15026:416::o;15704:::-;15904:2;15918:47;;;8713:2;15889:18;;;23581:19;-1:-1;;;23621:14;;;8729:44;8792:12;;;15875:245::o;16127:416::-;16327:2;16341:47;;;9043:2;16312:18;;;23581:19;9079:30;23621:14;;;9059:51;9129:12;;;16298:245::o;16550:416::-;16750:2;16764:47;;;9380:2;16735:18;;;23581:19;9416:34;23621:14;;;9396:55;-1:-1;;;9471:12;;;9464:25;9508:12;;;16721:245::o;16973:416::-;17173:2;17187:47;;;9759:2;17158:18;;;23581:19;-1:-1;;;23621:14;;;9775:44;9838:12;;;17144:245::o;17396:416::-;17596:2;17610:47;;;10089:2;17581:18;;;23581:19;10125:30;23621:14;;;10105:51;10175:12;;;17567:245::o;17819:416::-;18019:2;18033:47;;;10426:2;18004:18;;;23581:19;10462:26;23621:14;;;10442:47;10508:12;;;17990:245::o;18242:416::-;18442:2;18456:47;;;18427:18;;;23581:19;10795:34;23621:14;;;10775:55;10849:12;;;18413:245::o;18665:416::-;18865:2;18879:47;;;18850:18;;;23581:19;11136:34;23621:14;;;11116:55;11190:12;;;18836:245::o;19088:416::-;19288:2;19302:47;;;11441:2;19273:18;;;23581:19;11477:29;23621:14;;;11457:50;11526:12;;;19259:245::o;19511:416::-;19711:2;19725:47;;;11777:2;19696:18;;;23581:19;11813:26;23621:14;;;11793:47;11859:12;;;19682:245::o;19934:416::-;20134:2;20148:47;;;12110:2;20119:18;;;23581:19;12146:31;23621:14;;;12126:52;12197:12;;;20105:245::o;20357:416::-;20557:2;20571:47;;;12448:2;20542:18;;;23581:19;-1:-1;;;23621:14;;;12464:42;12525:12;;;20528:245::o;20780:322::-;12841:23;;-1:-1;;;;;24630:46;13184:37;;13022:4;13011:16;;;13005:23;24967:18;24956:30;13080:14;;;13775:36;;;;20957:2;20942:18;;20928:174::o;21109:329::-;-1:-1;;;;;24630:46;;;;13184:37;;24967:18;24956:30;21424:2;21409:18;;13775:36;21262:2;21247:18;;21233:205::o;21445:222::-;13547:37;;;21572:2;21557:18;;21543:124::o;21674:333::-;13547:37;;;21993:2;21978:18;;13547:37;21829:2;21814:18;;21800:207::o;22014:440::-;24967:18;24956:30;;;;13775:36;;22357:2;22342:18;;13547:37;;;;-1:-1;;;;;24630:46;22440:2;22425:18;;13424:50;22195:2;22180:18;;22166:288::o;25672:117::-;-1:-1;;;;;24750:54;;25731:35;;25721:2;;25780:1;;25770:12;25721:2;25715:74;:::o;25936:111::-;26017:5;24431:13;24424:21;25995:5;25992:32;25982:2;;26038:1;;26028:12

Metadata Hash

050d79cb31add4f728e6b130c8fc286d8afb43d3eff18615691f9ebb81e15b30
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.