Contract 0x3c61b93b64f59b5091a11a071083598ee8b5cb64

 

Contract Overview

Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe0bb2f71ff5cad78e140b52fe9bfeeae26334da9fcc9d5979bfa556cf162964aSet Reward Per S...47579982022-01-18 12:00:10260 days 5 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000806003423 ETH
0x6ec2d11f5f9ff22dfc20827ea013c77ed9df7ac5c5f9d9b652fdb00310d9d39dSet Reward Per S...45483242022-01-11 0:55:04267 days 16 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.001153585263 ETH
0xd700bfd467512eb7860a7d13525ddf618e3b8e091f7e06796e166973af5f4054Set Reward Per S...42978912022-01-03 14:55:42275 days 2 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000586302294 ETH
0x4865a62d6a1d202e9fdb04b6d4dd8b6cfcf5aac74a58ef8881b85b512b067d95Set Reward Per S...41381392021-12-28 16:50:31281 days 59 mins ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000514963718 ETH
0xfb9175d725a7cf3eb6d1e0c19bab2e096b2e53548a6a1e39150a0bb50cf8e910Set Reward Per S...39786762021-12-20 13:30:22289 days 4 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000390878016 ETH
0xbaffc5a662b26255fcdbe2af3e649e70d137bfb733ecd031bac6df717ab79e16Set Reward Per S...38239432021-12-13 16:25:57296 days 1 hr ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.00042370294 ETH
0xb6bd9e3c8739ec225d34e6bbe2f79f24b62ae0d93f9f6c336ad6d84c499ee809Set Reward Per S...36443692021-12-07 15:59:52302 days 1 hr ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.00065222387 ETH
0xbc455f63ebd2f898427b370ec612079b66f4205fa6311463d6b5c2a836dbb503Set Reward Per S...32766062021-11-23 17:58:19315 days 23 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000777922862 ETH
0xa4e2a516e80e9d4309b6ee0c589304757872def293e1f745a92926b4203e6e14Set Reward Per S...30915562021-11-16 23:40:26322 days 18 hrs ago0xfddfe525054efaad204600d00ca86adb1cc2ea8a IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000914443297 ETH
0xe3022f885ee02a552b1499dbed9be2039bcebbe93efd617e15e168cdbd718881Transfer Ownersh...30834412021-11-16 14:19:38323 days 3 hrs ago0x8a7f7c5b556b1298a74c0e89df46eba117a2f6c1 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000941341733 ETH
0x9e01c3969b40efc6e3dc982365c37fdb80feb3f2ea346efa92886e7ee84e1c3dSet Reward Per S...23723622021-10-19 17:14:17351 days 35 mins ago0x8a7f7c5b556b1298a74c0e89df46eba117a2f6c1 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000483069361 ETH
0x0609c0c24adc5b2d3e8d8178b8df354723933199129df72e9271522bca423e07Set Reward Per S...13656342021-09-20 21:51:29379 days 19 hrs ago0x8a7f7c5b556b1298a74c0e89df46eba117a2f6c1 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000619803864 ETH
0x75eea23b986907f96e20e0104cacb8ac579125f4231f0949321ab93ce1f8b6aaTransfer Ownersh...13622822021-09-20 20:00:59379 days 21 hrs ago0xcc159bcb6a466da442d254ad934125f05dab66b5 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000506627575 ETH
0x821166a08fb048320d72617320cf13074272abc6f1f35ab7fac83d106886a2fdInit13386072021-09-20 11:05:49380 days 6 hrs ago0xcc159bcb6a466da442d254ad934125f05dab66b5 IN  0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH0.000680974876 ETH
0x3b5d1595516f77ce9e411df731afdbc17f1952ded854665251df8db27e62774d0x60a0604013384362021-09-20 11:02:31380 days 6 hrs ago0xcc159bcb6a466da442d254ad934125f05dab66b5 IN  Contract Creation0 ETH0.006488878052 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xa4e5af9037cfb46c00a6fb2296e381d79d843f0a03beae220d91cdff23430378285536802022-10-05 17:45:564 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0xa4e5af9037cfb46c00a6fb2296e381d79d843f0a03beae220d91cdff23430378285536802022-10-05 17:45:564 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xa4e5af9037cfb46c00a6fb2296e381d79d843f0a03beae220d91cdff23430378285536802022-10-05 17:45:564 mins ago 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0xa4e5af9037cfb46c00a6fb2296e381d79d843f0a03beae220d91cdff23430378285536802022-10-05 17:45:564 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0xa4e5af9037cfb46c00a6fb2296e381d79d843f0a03beae220d91cdff23430378285536802022-10-05 17:45:564 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x8f93eaae544e8f5eb077a1e09c1554067d9e2ca80 ETH
0xa4e5af9037cfb46c00a6fb2296e381d79d843f0a03beae220d91cdff23430378285536802022-10-05 17:45:564 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xa4e5af9037cfb46c00a6fb2296e381d79d843f0a03beae220d91cdff23430378285536802022-10-05 17:45:564 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xa4e5af9037cfb46c00a6fb2296e381d79d843f0a03beae220d91cdff23430378285536802022-10-05 17:45:564 mins ago 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0xf55ae8d0b365e05aa8633431f23884cd6d05a750c84612144218e174ba986c78285499562022-10-05 17:12:3537 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0xf55ae8d0b365e05aa8633431f23884cd6d05a750c84612144218e174ba986c78285499562022-10-05 17:12:3537 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xf55ae8d0b365e05aa8633431f23884cd6d05a750c84612144218e174ba986c78285499562022-10-05 17:12:3537 mins ago 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0xf55ae8d0b365e05aa8633431f23884cd6d05a750c84612144218e174ba986c78285499562022-10-05 17:12:3537 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0xf55ae8d0b365e05aa8633431f23884cd6d05a750c84612144218e174ba986c78285499562022-10-05 17:12:3537 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x8f93eaae544e8f5eb077a1e09c1554067d9e2ca80 ETH
0xf55ae8d0b365e05aa8633431f23884cd6d05a750c84612144218e174ba986c78285499562022-10-05 17:12:3537 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xf55ae8d0b365e05aa8633431f23884cd6d05a750c84612144218e174ba986c78285499562022-10-05 17:12:3537 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xf55ae8d0b365e05aa8633431f23884cd6d05a750c84612144218e174ba986c78285499562022-10-05 17:12:3537 mins ago 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0xa3cdc24581ba45c617c54cfbd88cfa1082059393efaaeaa17f560577bd894f2d285443002022-10-05 16:21:571 hr 28 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0xa3cdc24581ba45c617c54cfbd88cfa1082059393efaaeaa17f560577bd894f2d285443002022-10-05 16:21:571 hr 28 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xa3cdc24581ba45c617c54cfbd88cfa1082059393efaaeaa17f560577bd894f2d285443002022-10-05 16:21:571 hr 28 mins ago 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0xa3cdc24581ba45c617c54cfbd88cfa1082059393efaaeaa17f560577bd894f2d285443002022-10-05 16:21:571 hr 28 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
0xa3cdc24581ba45c617c54cfbd88cfa1082059393efaaeaa17f560577bd894f2d285443002022-10-05 16:21:571 hr 28 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x8f93eaae544e8f5eb077a1e09c1554067d9e2ca80 ETH
0xa3cdc24581ba45c617c54cfbd88cfa1082059393efaaeaa17f560577bd894f2d285443002022-10-05 16:21:571 hr 28 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xa3cdc24581ba45c617c54cfbd88cfa1082059393efaaeaa17f560577bd894f2d285443002022-10-05 16:21:571 hr 28 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb64 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c30 ETH
0xa3cdc24581ba45c617c54cfbd88cfa1082059393efaaeaa17f560577bd894f2d285443002022-10-05 16:21:571 hr 28 mins ago 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3 0x3c61b93b64f59b5091a11a071083598ee8b5cb640 ETH
0xb92bf8fb88033b77defdddab01c1c6e60f50330f41c43b16984d36ee2fe175db285375042022-10-05 15:30:442 hrs 19 mins ago 0x3c61b93b64f59b5091a11a071083598ee8b5cb640x3e6648c5a70a150a88bce65f4ad4d506fe15d2af0 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x9C37b0b498dA78830284aFdCb534c3350b52e744

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 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"}]

60a060405234801561001057600080fd5b506040516117c93803806117c983398101604081905261002f91610083565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360601b6001600160601b0319166080526100b1565b600060208284031215610094578081fd5b81516001600160a01b03811681146100aa578182fd5b9392505050565b60805160601c6116dd6100ec60003980610497528061052c528061083152806108c65280610a8f5280610b265280610b8152506116dd6000f3fe6080604052600436106100f35760003560e01c80638bf637421161008a578063a8594dab11610059578063a8594dab1461028d578063d63b3c49146102a2578063e30c3978146102d0578063f7c618c1146102e5576100f3565b80638bf63742146102155780638da5cb5b146102355780638f10369a1461024a57806393f1a40b1461025f576100f3565b80634e71e0c8116100c65780634e71e0c81461019157806351eb05a6146101a65780635a894421146101d357806366da5815146101f5576100f3565b8063078dfbe7146100f85780631526fe271461011a57806348e43af4146101515780634ddf47d41461017e575b600080fd5b34801561010457600080fd5b50610118610113366004611045565b6102fa565b005b34801561012657600080fd5b5061013a61013536600461118d565b6103e9565b60405161014892919061161c565b60405180910390f35b34801561015d57600080fd5b5061017161016c3660046111bd565b610417565b604051610148919061163f565b61011861018c3660046110b2565b610676565b34801561019d57600080fd5b5061011861073c565b3480156101b257600080fd5b506101c66101c136600461118d565b6107c9565b60405161014891906115f2565b3480156101df57600080fd5b506101e8610a8d565b60405161014891906112b5565b34801561020157600080fd5b5061011861021036600461118d565b610ab1565b34801561022157600080fd5b506101186102303660046111ec565b610b1b565b34801561024157600080fd5b506101e8610d1e565b34801561025657600080fd5b50610171610d2d565b34801561026b57600080fd5b5061027f61027a3660046111bd565b610d33565b604051610148929190611648565b34801561029957600080fd5b506101e8610d57565b3480156102ae57600080fd5b506102c26102bd36600461123d565b610d66565b6040516101489291906112e2565b3480156102dc57600080fd5b506101e8610e11565b3480156102f157600080fd5b506101e8610e20565b6000546001600160a01b0316331461032d5760405162461bcd60e51b8152600401610324906114b6565b60405180910390fd5b81156103c8576001600160a01b0383161515806103475750805b6103635760405162461bcd60e51b815260040161032490611419565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b0319918216179091556001805490911690556103e4565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6003602052600090815260409020546001600160801b03811690600160801b900467ffffffffffffffff1682565b600061042161102e565b5060008381526003602090815260408083208151808301835290546001600160801b038082168352600160801b90910467ffffffffffffffff168285015287855260048085528386206001600160a01b0389811688529552838620835194516378ed5d1f60e01b815293969095949092169391927f0000000000000000000000000000000000000000000000000000000000000000909216916378ed5d1f916104cc918b910161163f565b60206040518083038186803b1580156104e457600080fd5b505afa1580156104f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051c919061111f565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161056791906112b5565b60206040518083038186803b15801561057f57600080fd5b505afa158015610593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b791906111a5565b9050836020015167ffffffffffffffff16421180156105d557508015155b156106405760006105fd856020015167ffffffffffffffff1642610e2f90919063ffffffff16565b9050600061061660055483610e5890919063ffffffff16565b905061063b8361062b8364e8d4a51000610e58565b8161063257fe5b86919004610e8f565b935050505b6001830154835461066b919064e8d4a510009061065d9086610e58565b8161066457fe5b0490610e2f565b979650505050505050565b6002546001600160a01b03161561069f5760405162461bcd60e51b81526004016103249061158e565b6106ab8183018361113b565b600680546001600160a01b03199081166001600160a01b0393841617909155600592909255600080548316938216939093179092556002805490911692821692909217918290551661070f5760405162461bcd60e51b8152600401610324906115c5565b6040517f98a9bd3b7a617581fc53b1e2992534e0e0cb5091c9d44aa1a7fc978f706caa8390600090a15050565b6001546001600160a01b03163381146107675760405162461bcd60e51b8152600401610324906114eb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6107d161102e565b506000818152600360209081526040918290208251808401909352546001600160801b0381168352600160801b900467ffffffffffffffff16908201819052421115610a88576040516378ed5d1f60e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f9061086690869060040161163f565b60206040518083038186803b15801561087e57600080fd5b505afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b6919061111f565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161090191906112b5565b60206040518083038186803b15801561091957600080fd5b505afa15801561092d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095191906111a5565b905080156109d957600061097c836020015167ffffffffffffffff1642610e2f90919063ffffffff16565b9050600061099560055483610e5890919063ffffffff16565b90506109cb6109ba846109ad8464e8d4a51000610e58565b816109b457fe5b04610eb2565b85516001600160801b031690610edf565b6001600160801b0316845250505b6109e242610f0e565b67ffffffffffffffff9081166020848101918252600086815260039091526040908190208551815493516fffffffffffffffffffffffffffffffff199094166001600160801b0382161767ffffffffffffffff60801b1916600160801b958516959095029490941790555185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610a7e9290918691611656565b60405180910390a2505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03163314610adb5760405162461bcd60e51b8152600401610324906114b6565b60058190556040517fde89cb17ac7f58f94792b3e91e086ed85403819c24ceea882491f960ccb1a27890610b1090839061163f565b60405180910390a150565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b635760405162461bcd60e51b8152600401610324906113d8565b6006546040516378ed5d1f60e01b81526001600160a01b03918216917f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f90610bb690899060040161163f565b60206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c06919061111f565b6001600160a01b031614610c1957600080fd5b610c2161102e565b610c2a866107c9565b60008781526004602090815260408083206001600160a01b038a168452909152812080549293509115610c9857600182015483518354610c7e929164e8d4a510009161065d916001600160801b0316610e58565b600254909150610c98906001600160a01b03168783610f38565b838255825164e8d4a5100090610cb89086906001600160801b0316610e58565b81610cbf57fe5b048260010181905550856001600160a01b031688886001600160a01b03167f2ece88ca2bc08dd018db50e1d25a20bf1241e5fab1c396caa51f01a54bd2f75b84604051610d0c919061163f565b60405180910390a45050505050505050565b6000546001600160a01b031681565b60055481565b60046020908152600092835260408084209091529082529020805460019091015482565b6006546001600160a01b031681565b6040805160018082528183019092526060918291829160208083019080368337505060025482519293506001600160a01b031691839150600090610da657fe5b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252606091816020016020820280368337019050509050610ded8787610417565b81600081518110610dfa57fe5b602090810291909101015290969095509350505050565b6001546001600160a01b031681565b6002546001600160a01b031681565b80820382811115610e525760405162461bcd60e51b815260040161032490611372565b92915050565b6000811580610e7357505080820282828281610e7057fe5b04145b610e525760405162461bcd60e51b815260040161032490611557565b81810181811015610e525760405162461bcd60e51b81526004016103249061147f565b60006001600160801b03821115610edb5760405162461bcd60e51b815260040161032490611448565b5090565b8181016001600160801b038083169082161015610e525760405162461bcd60e51b81526004016103249061147f565b600067ffffffffffffffff821115610edb5760405162461bcd60e51b815260040161032490611520565b60006060846001600160a01b031663a9059cbb60e01b8585604051602401610f619291906112c9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f9f919061127c565b6000604051808303816000865af19150503d8060008114610fdc576040519150601f19603f3d011682016040523d82523d6000602084013e610fe1565b606091505b509150915081801561100b57508051158061100b57508080602001905181019061100b919061108f565b6110275760405162461bcd60e51b8152600401610324906113a1565b5050505050565b604080518082019091526000808252602082015290565b600080600060608486031215611059578283fd5b833561106481611681565b9250602084013561107481611699565b9150604084013561108481611699565b809150509250925092565b6000602082840312156110a0578081fd5b81516110ab81611699565b9392505050565b600080602083850312156110c4578182fd5b823567ffffffffffffffff808211156110db578384fd5b818501915085601f8301126110ee578384fd5b8135818111156110fc578485fd5b86602082850101111561110d578485fd5b60209290920196919550909350505050565b600060208284031215611130578081fd5b81516110ab81611681565b60008060008060808587031215611150578081fd5b843561115b81611681565b9350602085013561116b81611681565b925060408501359150606085013561118281611681565b939692955090935050565b60006020828403121561119e578081fd5b5035919050565b6000602082840312156111b6578081fd5b5051919050565b600080604083850312156111cf578182fd5b8235915060208301356111e181611681565b809150509250929050565b600080600080600060a08688031215611203578081fd5b85359450602086013561121581611681565b9350604086013561122581611681565b94979396509394606081013594506080013592915050565b600080600060608486031215611251578283fd5b83359250602084013561126381611681565b929592945050506040919091013590565b815260200190565b60008251815b8181101561129c5760208186018101518583015201611282565b818111156112aa5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156113245781516001600160a01b0316845292840192908401906001016112ff565b5050508381038285015280855161133b818461163f565b91508387019250845b8181101561136557611357838551611274565b938501939250600101611344565b5090979650505050505050565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e6040820152601760f91b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b6020808252601d908201527f52657761726465723a20616c726561647920696e697469616c697a6564000000604082015260600190565b6020808252601390820152722932bbb0b93232b91d103130b2103a37b5b2b760691b604082015260600190565b81516001600160801b0316815260209182015167ffffffffffffffff169181019190915260400190565b6001600160801b0392909216825267ffffffffffffffff16602082015260400190565b90815260200190565b918252602082015260400190565b67ffffffffffffffff93909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b038116811461169657600080fd5b50565b801515811461169657600080fdfea2646970667358221220050d79cb31add4f728e6b130c8fc286d8afb43d3eff18615691f9ebb81e15b3064736f6c634300060c0033000000000000000000000000f4d73326c13a4fc5fd7a064217e12780e9bd62c3

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.