Contract 0x7d5394e4f245ef9d35393849a9ea441dfd851af6

Contract Overview

Balance:
0 BNB
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xeea01dafb0790b5ea62742bfd73684ad58798ee615fb0720aa5c75577e5d0374Add Reward Balan...85235812021-05-03 16:56:04137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029107
0x240621918cd4285f39628cf7f320d555ceabf57792b6478a5c0eef170a1e12fdAdd Reward Balan...85235782021-05-03 16:55:55137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029071
0x7f564fcf079199feb930891b90e381951e246cd3955b8acea1e69cee81c37231Add Reward Balan...85235742021-05-03 16:55:43137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029107
0x488cbb83c3afb0d94b73db0f4ec70c3aa0d5d5e8828decb9cc073b7cf909368cAdd Reward Balan...85235712021-05-03 16:55:34137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029083
0x8fd35a1590720062d8345305e2e130537774d9e6b0c008648ccf24856554c4bdAdd Reward Balan...85235672021-05-03 16:55:22137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029095
0x9afbefb85e4239dfeefb4c3ebb04cbcce15730a3cf79f356be5ea7a56134ac98Add Reward Balan...85235652021-05-03 16:55:16137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029083
0x98c6728792996b757581192565db2842c3042a56ac1a633dc091653a886bd429Add Reward Balan...85235612021-05-03 16:55:04137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029107
0x990bf6e3c7a3b65558c3a5330f952a1949f54375462da49bb25a2ae7b31290dfAdd Reward Balan...85235592021-05-03 16:54:58137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029071
0x05797e6335764c5edd9af3ca25af2bb86f0b9cb5a1ef05089a460dd0dbae3574Add Reward Balan...85235542021-05-03 16:54:43137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029107
0xcf2ea10097e9a8fd1492f73be7f5102f23321b063c97e1517a6cdb7a39f26e0cAdd Reward Balan...85235512021-05-03 16:54:34137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029083
0x13307041f2209aeb7bfc53ba517d4067e6183a07fec6f3b6b36da1f4c16d16b4Add Reward Balan...85235482021-05-03 16:54:25137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029095
0x901a2aec67946e2c95b88328ebc9a53e9e6b4804311efc277b8fd1e96153f822Add Reward Balan...85235452021-05-03 16:54:16137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029083
0x0eeb02f06dead9dd8cb85f9754ac75984ab7007088f09d7a806049257d60e1f7Add Reward Balan...85235432021-05-03 16:54:10137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029107
0x72a37eb944300649022ce4901de9ff0e21dc9ac113f4e5522649d506ae7a3e24Add Reward Balan...85235382021-05-03 16:53:55137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029071
0xa7521eb559bc9ef0f6fa49f782d32da6ad9faf286965758e672cb2b3a0c55306Add Reward Balan...85235372021-05-03 16:53:52137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029107
0x6ab04e12b97fd745bdc57fb8d035558fc81c74916fdbc598958c8b815bb30ca6Add Reward Balan...85235322021-05-03 16:53:37137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029083
0x11bc2547724e76e3eb944be2aedfb21ed1eafd574e2ea4f9d28bd1cbea0a3ce4Add Reward Balan...85235282021-05-03 16:53:25137 days 20 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.00029095
0x9f19ddca6b06d54c3f2cf56334607e4ec7dded3ddcb6dd96ff933a3cdc528f64Add Reward Balan...80193522021-04-16 4:43:48155 days 8 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.000727375
0x6b849cc47b0e1f2f190d7f03aaf16b0f4b2f7a846e429367a181c336bb169e3eAdd Reward Balan...80193492021-04-16 4:43:39155 days 8 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.000727075
0xa08fde00583fea8448feea63aca620d68af7e9d6122c3aae403d62dc355c25d9Add Reward Balan...80193452021-04-16 4:43:27155 days 8 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.000727075
0x6bac930c5f566d439337293a42c883652ce1265d07347a81b6902371e0bde197Add Reward Balan...80193422021-04-16 4:43:18155 days 8 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.000727675
0x4c02c33337eec55877b5516fbc1da346365696e9ca5d5da5dc6770cca17f8899Add Reward Balan...80193392021-04-16 4:43:09155 days 8 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.000726775
0x74b0b5ab026663cd1e2e18677f96d64a1de48b70f028aadedd312736433b7821Add Reward Balan...80193352021-04-16 4:42:57155 days 8 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.000727675
0x02662289042c46053b6a6916f9aa354d07b3b601467b0bb62d70dd52cd30d11fAdd Reward Balan...80193322021-04-16 4:42:48155 days 8 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.000727075
0xc3d7b0972046746f4e0cafe5bcd59a97ab6f883b5c6604124aab597bfa4e7f61Add Reward Balan...80193292021-04-16 4:42:39155 days 8 hrs ago0x4b2fbfaa948c0c47c85f5365b4259ab333b79192 IN  0x7d5394e4f245ef9d35393849a9ea441dfd851af60 BNB0.000727375
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BonusReward

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-02-26
*/

//"SPDX-License-Identifier: MIT"
pragma solidity ^0.8.1;
//import "hardhat/console.sol";

library Math {
    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a >= b ? a : b;
    }

    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        // (a + b) / 2 can overflow, so we distribute
        return (a / 2) + (b / 2) + (((a % 2) + (b % 2)) / 2);
    }
}


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

//sol800
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

//sol800
abstract contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

//sol8.0.0
interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

//sol8.0.0
library Address {
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

// functionStaticCall x2
// functionDelegateCall x2

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

//---------------------==
//sol8.0.0
library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

// File: contracts/IRewardDistributionRecipient.sol
abstract contract IRewardDistributionRecipient is Ownable {
    address public rewardDistribution; //added "public"

    modifier onlyRewardDistribution() {
        require(
            _msgSender() == rewardDistribution,
            "Caller is not reward distribution"
        );
        _;
    }

    //added func
    function isOnlyRewardDistribution() external view returns (bool) {
        return _msgSender() == rewardDistribution;
    }

    function isOnlyRewardDistributionB(address user)
        external
        view
        returns (bool)
    {
        return user == rewardDistribution;
    }

    function setRewardDistribution(address _rewardDistribution)
        external
        onlyOwner
    {
        //console.log("[sc] setRewardDistribution... ");
        rewardDistribution = _rewardDistribution;
    }
}

contract BonusReward is IRewardDistributionRecipient {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;
    uint256 public dailyLimitDefault = 1000 * (10**18);
    uint256 public constant CLAIMDURATION = 1 days;

    mapping(address => uint256) private rewardsClaimed;
    mapping(address => uint256) private rewardBalance;
    mapping(address => uint256) private dailyLimit;
    mapping(address => uint256) private lastClaimedTime;

    event RewardPaid(address indexed user, uint256 reward);

    address public addrRewardToken;
    //IERC20 public erc20RewardToken;

    constructor() {
      addrRewardToken = address(0x9121e7445B4cCD88EF4B509Df17dB029128EbbA0);
      //erc20RewardToken = IERC20(_rewardToken);
    }

    function getRewardTokenBalance(address addr) public view returns (uint256) {
        return IERC20(addrRewardToken).balanceOf(addr);
    }

    function getRewardTokenBalanceOnContract() public view returns (uint256) {
        return IERC20(addrRewardToken).balanceOf(address(this));
    }

    function claimRewardCheck(address user) public view returns (bool, uint256, bool, uint256) {
        return
            (block.timestamp >= lastClaimedTime[user].add(CLAIMDURATION), block.timestamp, getRewardTokenBalanceOnContract() >= rewardBalance[user], rewardBalance[user]);
    }

    function claimReward() public {
        (bool isTimeOk, uint256 blockime, bool isRewardsSufficient, uint256 reward) = claimRewardCheck(msg.sender);
        //console.log("[sc] isTimeToClaim: %s, isRewardSufficient: %s, user rewards: %s", isTimeOk, isRewardsSufficient, reward);
        //blockime

        uint256 dailyLimitUser;
        if (dailyLimit[msg.sender] == 0) {
            dailyLimitUser = dailyLimitDefault;
        } else {
            dailyLimitUser = dailyLimit[msg.sender];
        }
        if (reward > dailyLimitUser) {
            reward = dailyLimitUser;
        }

        //require(reward > 0 && isTimeOk && isRewardSufficient(msg.sender), "check failed");
        if (reward > 0 && isTimeOk && isRewardsSufficient) {
            rewardBalance[msg.sender] = rewardBalance[msg.sender].sub(reward);
            IERC20(addrRewardToken).safeTransfer(msg.sender, reward);
            rewardsClaimed[msg.sender] = rewardsClaimed[msg.sender].add(reward);
            lastClaimedTime[msg.sender] = blockime;
            emit RewardPaid(msg.sender, reward);
        }
    }

    function getRewardsClaimed(address user) public view returns (uint256) {
        return rewardsClaimed[user];
    }

    function getRewardBalance(address user) public view returns (uint256) {
        return rewardBalance[user];
    }

    function getDailyLimit(address user) public view returns (uint256) {
        return dailyLimit[user];
    }

    function setDailyLimit(address user, uint256 amount)
        public
        onlyRewardDistribution
    {
        dailyLimit[user] = amount;
    }

    function getLastClaimedTime(address user) public view returns (uint256) {
        return lastClaimedTime[user];
    }

    function reduceRewardBalance(address user, uint256 amount)
        public
        onlyRewardDistribution
    {
        rewardBalance[user] = rewardBalance[user].sub(amount);
    }

    function addRewardBalance(address user, uint256 amount)
        public
        onlyRewardDistribution
    {
        rewardBalance[user] = rewardBalance[user].add(amount);
    }

    function getBlockTimestamp() public view returns (uint256) {
        return (block.timestamp);
    }

}

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

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"inputs":[],"name":"CLAIMDURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addRewardBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addrRewardToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"claimRewardCheck","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dailyLimitDefault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getDailyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getLastClaimedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getRewardBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getRewardTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardTokenBalanceOnContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getRewardsClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOnlyRewardDistribution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isOnlyRewardDistributionB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"reduceRewardBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardDistribution","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setDailyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardDistribution","type":"address"}],"name":"setRewardDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052683635c9adc5dea0000060025534801561001d57600080fd5b50600061002861009d565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600780546001600160a01b031916739121e7445b4ccd88ef4b509df17db029128ebba01790556100a1565b3390565b610f9f806100b06000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80634c7a28b1116100b85780638da5cb5b1161007c5780638da5cb5b146102615780639d6d226014610269578063b88a802f1461027c578063c8aa2c5614610284578063d5a849e914610297578063f2fde38b146102aa57610142565b80634c7a28b11461022357806356d5a04f1461022b57806358f2ef171461023e578063715018a614610251578063796b89b91461025957610142565b80632a2f6b3e1161010a5780632a2f6b3e146101b55780632b33891c146101bd5780632c99c539146101d0578063321dce1f146101d85780633cbc5d28146101eb578063447bd9681461020057610142565b806307701cc3146101475780630d68b76114610170578063101114cf1461018557806313d2330e1461019a5780632803212f146101a2575b600080fd5b61015a610155366004610c10565b6102bd565b6040516101679190610eeb565b60405180910390f35b61018361017e366004610c10565b610346565b005b61018d6103b0565b6040516101679190610ca7565b61015a6103bf565b6101836101b0366004610c2a565b610445565b61015a61049b565b61015a6101cb366004610c10565b6104a2565b61018d6104bd565b61015a6101e6366004610c10565b6104cc565b6101f36104e7565b6040516101679190610cd4565b61021361020e366004610c10565b61050d565b6040516101679493929190610cdf565b61015a61058d565b610183610239366004610c2a565b610593565b61015a61024c366004610c10565b610610565b61018361062b565b61015a6106b4565b61018d6106b8565b6101f3610277366004610c10565b6106c7565b6101836106db565b610183610292366004610c2a565b61080b565b61015a6102a5366004610c10565b610868565b6101836102b8366004610c10565b610883565b6007546040516370a0823160e01b81526000916001600160a01b0316906370a08231906102ee908590600401610ca7565b60206040518083038186803b15801561030657600080fd5b505afa15801561031a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033e9190610c73565b90505b919050565b61034e610943565b6001600160a01b031661035f6106b8565b6001600160a01b03161461038e5760405162461bcd60e51b815260040161038590610df4565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6007546040516370a0823160e01b81526000916001600160a01b0316906370a08231906103f0903090600401610ca7565b60206040518083038186803b15801561040857600080fd5b505afa15801561041c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104409190610c73565b905090565b6001546001600160a01b0316610459610943565b6001600160a01b03161461047f5760405162461bcd60e51b815260040161038590610e29565b6001600160a01b03909116600090815260056020526040902055565b6201518081565b6001600160a01b031660009081526006602052604090205490565b6007546001600160a01b031681565b6001600160a01b031660009081526003602052604090205490565b6001546000906001600160a01b03166104fe610943565b6001600160a01b031614905090565b6001600160a01b0381166000908152600660205260408120548190819081906105399062015180610947565b6001600160a01b038616600090815260046020526040902054429182101591906105616103bf565b6001600160a01b0389166000908152600460205260409020549397509195501115925090509193509193565b60025481565b6001546001600160a01b03166105a7610943565b6001600160a01b0316146105cd5760405162461bcd60e51b815260040161038590610e29565b6001600160a01b0382166000908152600460205260409020546105f0908261097d565b6001600160a01b0390921660009081526004602052604090209190915550565b6001600160a01b031660009081526005602052604090205490565b610633610943565b6001600160a01b03166106446106b8565b6001600160a01b03161461066a5760405162461bcd60e51b815260040161038590610df4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b4290565b6000546001600160a01b031690565b6001546001600160a01b0390811691161490565b6000806000806106ea3361050d565b336000908152600560205260408120549498509296509094509250906107135750600254610725565b50336000908152600560205260409020545b80821115610731578091505b60008211801561073e5750845b80156107475750825b156108045733600090815260046020526040902054610766908361097d565b33600081815260046020526040902091909155600754610792916001600160a01b0390911690846109bf565b336000908152600360205260409020546107ac9083610947565b336000818152600360209081526040808320949094556006905282902086905590517fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486906107fb908590610eeb565b60405180910390a25b5050505050565b6001546001600160a01b031661081f610943565b6001600160a01b0316146108455760405162461bcd60e51b815260040161038590610e29565b6001600160a01b0382166000908152600460205260409020546105f09082610947565b6001600160a01b031660009081526004602052604090205490565b61088b610943565b6001600160a01b031661089c6106b8565b6001600160a01b0316146108c25760405162461bcd60e51b815260040161038590610df4565b6001600160a01b0381166108e85760405162461bcd60e51b815260040161038590610d31565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6000806109548385610ef4565b9050838110156109765760405162461bcd60e51b815260040161038590610d77565b9392505050565b600061097683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a1a565b610a158363a9059cbb60e01b84846040516024016109de929190610cbb565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610a54565b505050565b60008184841115610a3e5760405162461bcd60e51b81526004016103859190610cfe565b506000610a4b8486610f0c565b95945050505050565b6000610aa9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ae39092919063ffffffff16565b805190915015610a155780806020019051810190610ac79190610c53565b610a155760405162461bcd60e51b815260040161038590610ea1565b6060610af28484600085610afa565b949350505050565b606082471015610b1c5760405162461bcd60e51b815260040161038590610dae565b610b2585610bba565b610b415760405162461bcd60e51b815260040161038590610e6a565b600080866001600160a01b03168587604051610b5d9190610c8b565b60006040518083038185875af1925050503d8060008114610b9a576040519150601f19603f3d011682016040523d82523d6000602084013e610b9f565b606091505b5091509150610baf828286610bc0565b979650505050505050565b3b151590565b60608315610bcf575081610976565b825115610bdf5782518084602001fd5b8160405162461bcd60e51b81526004016103859190610cfe565b80356001600160a01b038116811461034157600080fd5b600060208284031215610c21578081fd5b61097682610bf9565b60008060408385031215610c3c578081fd5b610c4583610bf9565b946020939093013593505050565b600060208284031215610c64578081fd5b81518015158114610976578182fd5b600060208284031215610c84578081fd5b5051919050565b60008251610c9d818460208701610f23565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b9315158452602084019290925215156040830152606082015260800190565b6000602082528251806020840152610d1d816040850160208701610f23565b601f01601f19169190910160400192915050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f43616c6c6572206973206e6f742072657761726420646973747269627574696f6040820152603760f91b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b90815260200190565b60008219821115610f0757610f07610f53565b500190565b600082821015610f1e57610f1e610f53565b500390565b60005b83811015610f3e578181015183820152602001610f26565b83811115610f4d576000848401525b50505050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212202e84fe7104c375c16562af1740dfc17feaeebecc802806dc85d60192793e45d864736f6c63430008010033

Deployed ByteCode Sourcemap

10123:3618:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10886:140;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9897:219;;;;;;:::i;:::-;;:::i;:::-;;9327:33;;;:::i;:::-;;;;;;;:::i;11034:147::-;;;:::i;12968:150::-;;;;;;:::i;:::-;;:::i;10306:46::-;;;:::i;13126:119::-;;;;;;:::i;:::-;;:::i;10650:30::-;;;:::i;12603:117::-;;;;;;:::i;:::-;;:::i;9594:125::-;;;:::i;:::-;;;;;;;:::i;11189:287::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;10249:50::-;;;:::i;13253:184::-;;;;;;:::i;:::-;;:::i;12851:109::-;;;;;;:::i;:::-;;:::i;3223:148::-;;;:::i;13634:102::-;;;:::i;3000:87::-;;;:::i;9727:162::-;;;;;;:::i;:::-;;:::i;11484:1111::-;;;:::i;13445:181::-;;;;;;:::i;:::-;;:::i;12728:115::-;;;;;;:::i;:::-;;:::i;3379:244::-;;;;;;:::i;:::-;;:::i;10886:140::-;10986:15;;10979:39;;-1:-1:-1;;;10979:39:0;;10952:7;;-1:-1:-1;;;;;10986:15:0;;10979:33;;:39;;11013:4;;10979:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10972:46;;10886:140;;;;:::o;9897:219::-;3146:12;:10;:12::i;:::-;-1:-1:-1;;;;;3135:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;3135:23:0;;3127:68;;;;-1:-1:-1;;;3127:68:0;;;;;;;:::i;:::-;;;;;;;;;10068:18:::1;:40:::0;;-1:-1:-1;;;;;;10068:40:0::1;-1:-1:-1::0;;;;;10068:40:0;;;::::1;::::0;;;::::1;::::0;;9897:219::o;9327:33::-;;;-1:-1:-1;;;;;9327:33:0;;:::o;11034:147::-;11132:15;;11125:48;;-1:-1:-1;;;11125:48:0;;11098:7;;-1:-1:-1;;;;;11132:15:0;;11125:33;;:48;;11167:4;;11125:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11118:55;;11034:147;:::o;12968:150::-;9469:18;;-1:-1:-1;;;;;9469:18:0;9453:12;:10;:12::i;:::-;-1:-1:-1;;;;;9453:34:0;;9431:117;;;;-1:-1:-1;;;9431:117:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13085:16:0;;::::1;;::::0;;;:10:::1;:16;::::0;;;;:25;12968:150::o;10306:46::-;10346:6;10306:46;:::o;13126:119::-;-1:-1:-1;;;;;13216:21:0;13189:7;13216:21;;;:15;:21;;;;;;;13126:119::o;10650:30::-;;;-1:-1:-1;;;;;10650:30:0;;:::o;12603:117::-;-1:-1:-1;;;;;12692:20:0;12665:7;12692:20;;;:14;:20;;;;;;;12603:117::o;9594:125::-;9693:18;;9653:4;;-1:-1:-1;;;;;9693:18:0;9677:12;:10;:12::i;:::-;-1:-1:-1;;;;;9677:34:0;;9670:41;;9594:125;:::o;11189:287::-;-1:-1:-1;;;;;11331:21:0;;11250:4;11331:21;;;:15;:21;;;;;;11250:4;;;;;;11331:40;;10346:6;11331:25;:40::i;:::-;-1:-1:-1;;;;;11427:19:0;;;;;;:13;:19;;;;;;11312:15;:59;;;;;:15;11390:33;:31;:33::i;:::-;-1:-1:-1;;;;;11448:19:0;;;;;;:13;:19;;;;;;11291:177;;-1:-1:-1;11291:177:0;;-1:-1:-1;;11390:56:0;;-1:-1:-1;11448:19:0;-1:-1:-1;11189:287:0;;;;;:::o;10249:50::-;;;;:::o;13253:184::-;9469:18;;-1:-1:-1;;;;;9469:18:0;9453:12;:10;:12::i;:::-;-1:-1:-1;;;;;9453:34:0;;9431:117;;;;-1:-1:-1;;;9431:117:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13398:19:0;::::1;;::::0;;;:13:::1;:19;::::0;;;;;:31:::1;::::0;13422:6;13398:23:::1;:31::i;:::-;-1:-1:-1::0;;;;;13376:19:0;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:53;;;;-1:-1:-1;13253:184:0:o;12851:109::-;-1:-1:-1;;;;;12936:16:0;12909:7;12936:16;;;:10;:16;;;;;;;12851:109::o;3223:148::-;3146:12;:10;:12::i;:::-;-1:-1:-1;;;;;3135:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;3135:23:0;;3127:68;;;;-1:-1:-1;;;3127:68:0;;;;;;;:::i;:::-;3330:1:::1;3314:6:::0;;3293:40:::1;::::0;-1:-1:-1;;;;;3314:6:0;;::::1;::::0;3293:40:::1;::::0;3330:1;;3293:40:::1;3361:1;3344:19:::0;;-1:-1:-1;;;;;;3344:19:0::1;::::0;;3223:148::o;13634:102::-;13712:15;13634:102;:::o;3000:87::-;3046:7;3073:6;-1:-1:-1;;;;;3073:6:0;3000:87;:::o;9727:162::-;9863:18;;-1:-1:-1;;;;;9863:18:0;;;9855:26;;;;9727:162::o;11484:1111::-;11526:13;11541:16;11559:24;11585:14;11603:28;11620:10;11603:16;:28::i;:::-;11843:10;11795:22;11832;;;:10;:22;;;;;;11525:106;;-1:-1:-1;11525:106:0;;-1:-1:-1;11525:106:0;;-1:-1:-1;11525:106:0;-1:-1:-1;11795:22:0;11828:166;;-1:-1:-1;11893:17:0;;11828:166;;;-1:-1:-1;11971:10:0;11960:22;;;;:10;:22;;;;;;11828:166;12017:14;12008:6;:23;12004:79;;;12057:14;12048:23;;12004:79;12202:1;12193:6;:10;:22;;;;;12207:8;12193:22;:45;;;;;12219:19;12193:45;12189:399;;;12297:10;12283:25;;;;:13;:25;;;;;;:37;;12313:6;12283:29;:37::i;:::-;12269:10;12255:25;;;;:13;:25;;;;;:65;;;;12342:15;;12335:56;;-1:-1:-1;;;;;12342:15:0;;;;12384:6;12335:36;:56::i;:::-;12450:10;12435:26;;;;:14;:26;;;;;;:38;;12466:6;12435:30;:38::i;:::-;12421:10;12406:26;;;;:14;:26;;;;;;;;:67;;;;12488:15;:27;;;;;:38;;;12546:30;;;;;;12569:6;;12546:30;:::i;:::-;;;;;;;;12189:399;11484:1111;;;;;:::o;13445:181::-;9469:18;;-1:-1:-1;;;;;9469:18:0;9453:12;:10;:12::i;:::-;-1:-1:-1;;;;;9453:34:0;;9431:117;;;;-1:-1:-1;;;9431:117:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13587:19:0;::::1;;::::0;;;:13:::1;:19;::::0;;;;;:31:::1;::::0;13611:6;13587:23:::1;:31::i;12728:115::-:0;-1:-1:-1;;;;;12816:19:0;12789:7;12816:19;;;:13;:19;;;;;;;12728:115::o;3379:244::-;3146:12;:10;:12::i;:::-;-1:-1:-1;;;;;3135:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;3135:23:0;;3127:68;;;;-1:-1:-1;;;3127:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3468:22:0;::::1;3460:73;;;;-1:-1:-1::0;;;3460:73:0::1;;;;;;;:::i;:::-;3570:6;::::0;;3549:38:::1;::::0;-1:-1:-1;;;;;3549:38:0;;::::1;::::0;3570:6;::::1;::::0;3549:38:::1;::::0;::::1;3598:6;:17:::0;;-1:-1:-1;;;;;;3598:17:0::1;-1:-1:-1::0;;;;;3598:17:0;;;::::1;::::0;;;::::1;::::0;;3379:244::o;2313:98::-;2393:10;2313:98;:::o;573:181::-;631:7;;663:5;667:1;663;:5;:::i;:::-;651:17;;692:1;687;:6;;679:46;;;;-1:-1:-1;;;679:46:0;;;;;;;:::i;:::-;745:1;573:181;-1:-1:-1;;;573:181:0:o;762:136::-;820:7;847:43;851:1;854;847:43;;;;;;;;;;;;;;;;;:3;:43::i;7268:177::-;7351:86;7371:5;7401:23;;;7426:2;7430:5;7378:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7378:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;7378:58:0;-1:-1:-1;;;;;;7378:58:0;;;;;;;;;;7351:19;:86::i;:::-;7268:177;;;:::o;906:226::-;1026:7;1062:12;1054:6;;;;1046:29;;;;-1:-1:-1;;;1046:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1086:9:0;1098:5;1102:1;1098;:5;:::i;:::-;1086:17;906:226;-1:-1:-1;;;;;906:226:0:o;8784:418::-;8865:23;8891:69;8919:4;8891:69;;;;;;;;;;;;;;;;;8899:5;-1:-1:-1;;;;;8891:27:0;;;:69;;;;;:::i;:::-;8975:17;;8865:95;;-1:-1:-1;8975:21:0;8971:224;;9117:10;9106:30;;;;;;;;;;;;:::i;:::-;9098:85;;;;-1:-1:-1;;;9098:85:0;;;;;;;:::i;5390:195::-;5493:12;5525:52;5547:6;5555:4;5561:1;5564:12;5525:21;:52::i;:::-;5518:59;5390:195;-1:-1:-1;;;;5390:195:0:o;5827:530::-;5954:12;6012:5;5987:21;:30;;5979:81;;;;-1:-1:-1;;;5979:81:0;;;;;;;:::i;:::-;6079:18;6090:6;6079:10;:18::i;:::-;6071:60;;;;-1:-1:-1;;;6071:60:0;;;;;;;:::i;:::-;6205:12;6219:23;6246:6;-1:-1:-1;;;;;6246:11:0;6266:5;6274:4;6246:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6204:75;;;;6297:52;6315:7;6324:10;6336:12;6297:17;:52::i;:::-;6290:59;5827:530;-1:-1:-1;;;;;;;5827:530:0:o;4368:422::-;4735:20;4774:8;;;4368:422::o;6421:742::-;6536:12;6565:7;6561:595;;;-1:-1:-1;6596:10:0;6589:17;;6561:595;6710:17;;:21;6706:439;;6973:10;6967:17;7034:15;7021:10;7017:2;7013:19;7006:44;6921:148;7116:12;7109:20;;-1:-1:-1;;;7109:20:0;;;;;;;;:::i;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:266::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;653:2;638:18;;;;625:32;;-1:-1:-1;;;484:179:1:o;668:297::-;;788:2;776:9;767:7;763:23;759:32;756:2;;;809:6;801;794:22;756:2;846:9;840:16;899:5;892:13;885:21;878:5;875:32;865:2;;926:6;918;911:22;970:194;;1093:2;1081:9;1072:7;1068:23;1064:32;1061:2;;;1114:6;1106;1099:22;1061:2;-1:-1:-1;1142:16:1;;1051:113;-1:-1:-1;1051:113:1:o;1169:274::-;;1336:6;1330:13;1352:53;1398:6;1393:3;1386:4;1378:6;1374:17;1352:53;:::i;:::-;1421:16;;;;;1306:137;-1:-1:-1;;1306:137:1:o;1448:203::-;-1:-1:-1;;;;;1612:32:1;;;;1594:51;;1582:2;1567:18;;1549:102::o;1656:274::-;-1:-1:-1;;;;;1848:32:1;;;;1830:51;;1912:2;1897:18;;1890:34;1818:2;1803:18;;1785:145::o;1935:187::-;2100:14;;2093:22;2075:41;;2063:2;2048:18;;2030:92::o;2127:411::-;2371:14;;2364:22;2346:41;;2418:2;2403:18;;2396:34;;;;2473:14;2466:22;2461:2;2446:18;;2439:50;2520:2;2505:18;;2498:34;2333:3;2318:19;;2300:238::o;2543:383::-;;2692:2;2681:9;2674:21;2724:6;2718:13;2767:6;2762:2;2751:9;2747:18;2740:34;2783:66;2842:6;2837:2;2826:9;2822:18;2817:2;2809:6;2805:15;2783:66;:::i;:::-;2910:2;2889:15;-1:-1:-1;;2885:29:1;2870:45;;;;2917:2;2866:54;;2664:262;-1:-1:-1;;2664:262:1:o;2931:402::-;3133:2;3115:21;;;3172:2;3152:18;;;3145:30;3211:34;3206:2;3191:18;;3184:62;-1:-1:-1;;;3277:2:1;3262:18;;3255:36;3323:3;3308:19;;3105:228::o;3338:351::-;3540:2;3522:21;;;3579:2;3559:18;;;3552:30;3618:29;3613:2;3598:18;;3591:57;3680:2;3665:18;;3512:177::o;3694:402::-;3896:2;3878:21;;;3935:2;3915:18;;;3908:30;3974:34;3969:2;3954:18;;3947:62;-1:-1:-1;;;4040:2:1;4025:18;;4018:36;4086:3;4071:19;;3868:228::o;4101:356::-;4303:2;4285:21;;;4322:18;;;4315:30;4381:34;4376:2;4361:18;;4354:62;4448:2;4433:18;;4275:182::o;4462:397::-;4664:2;4646:21;;;4703:2;4683:18;;;4676:30;4742:34;4737:2;4722:18;;4715:62;-1:-1:-1;;;4808:2:1;4793:18;;4786:31;4849:3;4834:19;;4636:223::o;4864:353::-;5066:2;5048:21;;;5105:2;5085:18;;;5078:30;5144:31;5139:2;5124:18;;5117:59;5208:2;5193:18;;5038:179::o;5222:406::-;5424:2;5406:21;;;5463:2;5443:18;;;5436:30;5502:34;5497:2;5482:18;;5475:62;-1:-1:-1;;;5568:2:1;5553:18;;5546:40;5618:3;5603:19;;5396:232::o;5633:177::-;5779:25;;;5767:2;5752:18;;5734:76::o;5815:128::-;;5886:1;5882:6;5879:1;5876:13;5873:2;;;5892:18;;:::i;:::-;-1:-1:-1;5928:9:1;;5863:80::o;5948:125::-;;6016:1;6013;6010:8;6007:2;;;6021:18;;:::i;:::-;-1:-1:-1;6058:9:1;;5997:76::o;6078:258::-;6150:1;6160:113;6174:6;6171:1;6168:13;6160:113;;;6250:11;;;6244:18;6231:11;;;6224:39;6196:2;6189:10;6160:113;;;6291:6;6288:1;6285:13;6282:2;;;6326:1;6317:6;6312:3;6308:16;6301:27;6282:2;;6131:205;;;:::o;6341:127::-;6402:10;6397:3;6393:20;6390:1;6383:31;6433:4;6430:1;6423:15;6457:4;6454:1;6447:15

Swarm Source

ipfs://2e84fe7104c375c16562af1740dfc17feaeebecc802806dc85d60192793e45d8
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading