Contract 0xdddde9df7a604ceb41203b312b8b962a53c46997

Contract Overview

Balance:
13,827.824246574011513409 FTM

FTM Value:
$4,383.65 (@ $0.32/FTM)

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0xcaf51a149fb2455312cff0e6e1c89decaec5e4e3cccf157153073138cbcd5c4c101096052021-06-19 19:02:251 min ago0xe710acd21da5907a1e6038b75324a266ac96e23b IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002300457
0x1f2133f1962af38a655bcba73490aeb9a7376cb4ff05daf1eb46d61e19b06d8b101091652021-06-19 18:54:398 mins ago0xa3bd26a577f8e467b719ec30f1bd230474a89617 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.008923368
0x39e62f70c0b7ffe793dd7347a39bc4c7f33381a023c6f187869c73d2a3e88df6101090862021-06-19 18:53:0810 mins ago0xa3bd26a577f8e467b719ec30f1bd230474a89617 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002299794
0x60b355138c93c76e5e22876f063104effdfc029269404dded0db1010b06b04bd101088092021-06-19 18:48:1315 mins ago0x81facc69908d9c1188280fbb2793567de39f8f9b IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.008924031
0xe71261490930f775fdacf8dfa4a78943543f58360751bcf03544394fd8f03bd8101083472021-06-19 18:40:4222 mins ago0x81facc69908d9c1188280fbb2793567de39f8f9b IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.016747737
0x1d5c5851d6bff2fd4130b882382c4f5433af5e2bf8117734e9ecc3c7b7c0ca36101080042021-06-19 18:35:2428 mins ago0x73eb7a4756ef34b903d8f0d320138fa4f2e4ec5b IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002300457
0x30a016679c8573da07149122c1d45431cb65be04afa0181799bb3ff58ab3a4b3101049142021-06-19 17:44:531 hr 18 mins ago0x46aaa27dbc0c4d4d1c8afb81e7e032d44e0fde36 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002600914727
0x1930a0ae6feb10173f90ceddbf2f83c2e4a48ec5e158091451be5d7b0de5c34a101027702021-06-19 17:11:241 hr 52 mins ago0xf942f3206f4bca8c6fe0f7b2168706182d772b96 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.010090329034
0x1f0b15fe6cfc9b61fa9f01cc3f37f788472bd7da67bfe34a8737df00fc0f1df2101024412021-06-19 17:06:081 hr 57 mins ago0xc84a36d9b9e7174f7edf66b52341a7ee218da964 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.00270564
0x2d2ed7fe168d571c34b3d0fb32667ae8c7d4823690a71a712ffc7592e905803f101016792021-06-19 16:53:522 hrs 9 mins ago0x33ef6b24b1b9983ec0583c1997143a9daa254435 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.0119337042
0xfa9b2bced5c985c854cb18b3ec28f7b9f6b1e6ff774e16cf28b8b2f0df57785b101016482021-06-19 16:53:092 hrs 10 mins ago0x83691dfecfb766efdecc2d1998b55eed7c4eb7fd IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002300457
0x16aace164e0da8220be96edd5b72f96c5077cdc7ada96749740b1b6e5b008b36101013132021-06-19 16:48:152 hrs 15 mins ago0x33ef6b24b1b9983ec0583c1997143a9daa254435 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002300457
0x7051c016e3d24105872457d1c4c070132b6277385cbe3f73764175873f0a3fed100996872021-06-19 16:23:052 hrs 40 mins ago0x2996d82fb798a98c9ce18dc9528e0f88e3871e86 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.0131362115
0x33472977aa47657d16fe13136d1e6ed68bb3ff631d6ed57c0157b94d436d0340100992722021-06-19 16:16:592 hrs 46 mins ago0x4eb6ce3ee2ecea32118592db89e661193710fe30 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.00166755
0x62cd43c271f98c4b300b0cb15640258b7664f97516ff141c935329218c957081100980712021-06-19 16:01:173 hrs 2 mins ago0x3a306e1a3560316dce4a6697e78b53b024f08761 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002299794
0x4981c69638e0d4717d02f19687734d846e6eae437699553ddda432f1f497e7ce100968012021-06-19 15:44:273 hrs 19 mins ago0xb1ed26254e15f2e5698a9e398629909a129972d3 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002300457
0x58291d6a5abd0658a1f927591b35d30f40c093626c33b1cf7760df4144e9b1f0100966242021-06-19 15:42:143 hrs 21 mins ago0x4eb6ce3ee2ecea32118592db89e661193710fe30 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.002299794
0xb533ba7d0a31a900f88c6b53dc4b84d75051dc20d64253e428feca3f0cb02b7a100941132021-06-19 15:08:173 hrs 55 mins ago0x5137bb6e49489f28ee6f289e2d2df6ab9cca6db1 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.003967216
0x006d67ce25a3b689d32821ceeac681438454981273770a73cbf2451a9c269211100919182021-06-19 14:35:564 hrs 27 mins ago0xcbf1414db543594bf5aef808989167cc1df58190 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.00360656
0x2cd6398593aa1f5825a90276fb9f047eeed8da9d92b977f6b0760a19ee5c0b39100917842021-06-19 14:34:014 hrs 29 mins ago0xbffc3dd2490c44015c6ea06d62b8bfac7f666663 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.01399848
0xc49b05c2030bb1858a8f0b1dbf5e33573cad543849b7f6da3c43a899c3222e2d100917192021-06-19 14:33:024 hrs 30 mins ago0xbffc3dd2490c44015c6ea06d62b8bfac7f666663 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.00360856
0x0e2ddaffa81bc05ecd407464d3f7fb345c32ce0ebcfb5193fd8c8bae0e683ce1100909472021-06-19 14:22:344 hrs 40 mins ago0xe27597af91352537f4ea74622b5a2ba6d464d9ee IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.0022547
0x03ca3bcc36ac3f085f7987eb9eb7df6386a647a4a5eea79f06b45ab75a939c0e100905312021-06-19 14:16:404 hrs 46 mins ago0x4803351533528ab489812ab67366d339ab8ed61d IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.00360856
0x527e1deaa43c4937e2957a5a90549354795b99900dd8f48f50461a03146f7bbd100901062021-06-19 14:10:434 hrs 52 mins ago0x70038de1e66bb5300be670ad333fdc7b1ef52376 IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.00360656
0x7bcdc580a97cf09c02af1ffa3eb0924137d88bed430f30b78dc818f7f8b0ccc7100893642021-06-19 14:01:055 hrs 2 mins ago0x81984b26343741bad0cccfcf2d3a6041c2ea4f8f IN  0xdddde9df7a604ceb41203b312b8b962a53c469970 FTM0.01399648
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Staking

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: Staking.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

import "./SafeMath.sol";
import "./Ownable.sol";
import "./IERC20.sol";

library BasisPoints {
    using SafeMath for uint;

    uint constant private BASIS_POINTS = 10000;

    function mulBP(uint amt, uint bp) internal pure returns (uint) {
        if (amt == 0) return 0;
        return amt.mul(bp).div(BASIS_POINTS);
    }

    function divBP(uint amt, uint bp) internal pure returns (uint) {
        require(bp > 0, "Cannot divide by zero.");
        if (amt == 0) return 0;
        return amt.mul(BASIS_POINTS).div(bp);
    }

    function addBP(uint amt, uint bp) internal pure returns (uint) {
        if (amt == 0) return 0;
        if (bp == 0) return amt;
        return amt.add(mulBP(amt, bp));
    }

    function subBP(uint amt, uint bp) internal pure returns (uint) {
        if (amt == 0) return 0;
        if (bp == 0) return amt;
        return amt.sub(mulBP(amt, bp));
    }
}

contract Staking is Context, Ownable {
    using BasisPoints for uint;
    using SafeMath for uint;

    uint constant internal DISTRIBUTION_MULTIPLIER = 2 ** 64;
    uint public tempLock = 10; // A short period of lock to prevent flash loan attacks
    IERC20 private token;

    mapping(address => uint) public stakeValue;
    mapping(address => int) public stakerPayouts;
    mapping(address => uint) private stakeTimes;
    uint public totalDistributions;
    uint public totalStaked;
    uint public totalStakers;
    uint public profitPerShare;
    uint private emptyStakeTokens; //These are ftm given to the contract when there are no stakers.

    uint public startTime;

    event OnDistribute(address sender, uint amountSent);
    event OnStake(address sender, uint amount);
    event OnUnstake(address sender, uint amount);
    event OnReinvest(address sender, uint amount);
    event OnWithdraw(address sender, uint amount);

    struct Checkpoint {
      uint128 fromBlock;
      uint128 value;
    }

    mapping(address => Checkpoint[]) internal stakeValueHistory;

    Checkpoint[] internal totalStakedHistory;

    modifier whenStakingActive {
        require(startTime != 0 && now > startTime, "Staking not yet started.");
        _;
    }

    constructor(IERC20 _token) public {
        token = _token;
    }

    function setStartTime(uint _startTime) external onlyOwner {
        startTime = _startTime;
    }

    function stake(uint amount) public whenStakingActive {
        require(token.balanceOf(msg.sender) >= amount, "Cannot stake more Tokens than you hold unstaked.");
        require(block.number >= stakeTimes[msg.sender] + tempLock, "Can't stake or unstake multiple times in 5 blocks!");
        if (stakeValue[msg.sender] == 0) totalStakers = totalStakers.add(1);
        _addStake(amount);
        stakeTimes[msg.sender] = block.number;
        require(token.transferFrom(msg.sender, address(this), amount), "Stake failed due to failed transfer.");
        emit OnStake(msg.sender, amount);
    }

    function unstake(uint amount) external {
        require(stakeValue[msg.sender] >= amount, "Cannot unstake more Token than you have staked.");
        require(block.number >= stakeTimes[msg.sender] + tempLock, "Can't stake or unstake multiple times in 5 blocks!");
        stakeTimes[msg.sender] = block.number;
        // Update staker's history
        _updateCheckpointValueAtNow(
        stakeValueHistory[msg.sender],
        stakeValue[msg.sender],
        stakeValue[msg.sender].sub(amount)
        );

        // Update total staked history
        _updateCheckpointValueAtNow(
        totalStakedHistory,
        totalStaked,
        totalStaked.sub(amount)
        );
        
        //must withdraw all dividends, to prevent overflows
        withdraw(dividendsOf(msg.sender));
        if (stakeValue[msg.sender] == amount) totalStakers = totalStakers.sub(1);
        totalStaked = totalStaked.sub(amount);
        stakeValue[msg.sender] = stakeValue[msg.sender].sub(amount);

        stakerPayouts[msg.sender] = uintToInt(profitPerShare.mul(stakeValue[msg.sender]));
        
        require(token.transferFrom(address(this), msg.sender, amount), "Unstake failed due to failed transfer.");
        emit OnUnstake(msg.sender, amount);
    }

    function withdraw(uint amount) public whenStakingActive {
        require(dividendsOf(msg.sender) >= amount, "Cannot withdraw more dividends than you have earned.");
        stakerPayouts[msg.sender] = stakerPayouts[msg.sender] + uintToInt(amount.mul(DISTRIBUTION_MULTIPLIER));
        msg.sender.transfer(amount);
        emit OnWithdraw(msg.sender, amount);
    }

    function distribute() external payable {
        uint amount = msg.value;
        if(amount > 0){
            totalDistributions = totalDistributions.add(amount);
            _increaseProfitPerShare(amount);
            emit OnDistribute(msg.sender, amount);
        }
    }

    function dividendsOf(address staker) public view returns (uint) {
        int divPayout = uintToInt(profitPerShare.mul(stakeValue[staker]));
        require(divPayout >= stakerPayouts[staker], "dividend calc overflow");
        return uint(divPayout - stakerPayouts[staker])
            .div(DISTRIBUTION_MULTIPLIER);
    }

    function totalStakedAt(uint _blockNumber) public view returns(uint) {
        // If we haven't initialized history yet
        if (totalStakedHistory.length == 0) {
            // Use the existing value
            return totalStaked;
        } else {
            // Binary search history for the proper staked amount
            return _getCheckpointValueAt(
                totalStakedHistory,
                _blockNumber
            );
        }
    }

    function stakeValueAt(address _owner, uint _blockNumber) public view returns (uint) {
        // If we haven't initialized history yet
        if (stakeValueHistory[_owner].length == 0) {
            // Use the existing latest value
            return stakeValue[_owner];
        } else {
            // Binary search history for the proper staked amount
            return _getCheckpointValueAt(stakeValueHistory[_owner], _blockNumber);
        }
    }

    function uintToInt(uint val) internal pure returns (int) {
        if (val >= uint(-1).div(2)) {
            require(false, "Overflow. Cannot convert uint to int.");
        } else {
            return int(val);
        }
    }

    function _addStake(uint _amount) internal {
        // Update staker's history
        _updateCheckpointValueAtNow(
        stakeValueHistory[msg.sender],
        stakeValue[msg.sender],
        stakeValue[msg.sender].add(_amount)
        );

        // Update total staked history
        _updateCheckpointValueAtNow(
        totalStakedHistory,
        totalStaked,
        totalStaked.add(_amount)
        );

        totalStaked = totalStaked.add(_amount);
        stakeValue[msg.sender] = stakeValue[msg.sender].add(_amount);
        
        uint payout = profitPerShare.mul(_amount);
        stakerPayouts[msg.sender] = stakerPayouts[msg.sender] + uintToInt(payout);
    }

    function _increaseProfitPerShare(uint amount) internal {
        if (totalStaked != 0) {
            if (emptyStakeTokens != 0) {
                amount = amount.add(emptyStakeTokens);
                emptyStakeTokens = 0;
            }
            profitPerShare = profitPerShare.add(amount.mul(DISTRIBUTION_MULTIPLIER).div(totalStaked));
        } else {
            emptyStakeTokens = emptyStakeTokens.add(amount);
        }
    }

    function _getCheckpointValueAt(Checkpoint[] storage checkpoints, uint _block) view internal returns (uint) {
    // This case should be handled by caller
    if (checkpoints.length == 0)
      return 0;

    // Use the latest checkpoint
    if (_block >= checkpoints[checkpoints.length-1].fromBlock)
      return checkpoints[checkpoints.length-1].value;

    // Use the oldest checkpoint
    if (_block < checkpoints[0].fromBlock)
      return checkpoints[0].value;

    // Binary search of the value in the array
    uint min = 0;
    uint max = checkpoints.length-1;
    while (max > min) {
      uint mid = (max + min + 1) / 2;
      if (checkpoints[mid].fromBlock<=_block) {
        min = mid;
      } else {
        max = mid-1;
      }
    }
    return checkpoints[min].value;
  }

  function _updateCheckpointValueAtNow(
    Checkpoint[] storage checkpoints,
    uint _oldValue,
    uint _value
  ) internal {
    require(_value <= uint128(-1));
    require(_oldValue <= uint128(-1));

    if (checkpoints.length == 0) {
      Checkpoint storage genesis;
      genesis.fromBlock = uint128(block.number - 1);
      genesis.value = uint128(_oldValue);
      checkpoints.push(genesis);
    }

    if (checkpoints[checkpoints.length - 1].fromBlock < block.number) {
      Checkpoint storage newCheckPoint;
      newCheckPoint.fromBlock = uint128(block.number);
      newCheckPoint.value = uint128(_value);
      checkpoints.push(newCheckPoint);
    } else {
      Checkpoint storage oldCheckPoint = checkpoints[checkpoints.length - 1];
      oldCheckPoint.value = uint128(_value);
    }
  }
  
}

File 2 of 5: Context.sol
// SPDX-License-Identifier: MIT

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/GSN/Context.sol
// Subject to the MIT license.

pragma solidity >=0.6.0 <0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

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

File 3 of 5: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.5.0;

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

File 4 of 5: Ownable.sol
// SPDX-License-Identifier: MIT

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol
// Subject to the MIT license.

pragma solidity >=0.6.0 <0.8.0;

import "./Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

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

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 5 of 5: SafeMath.sol
// SPDX-License-Identifier: MIT

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/SafeMath.sol
// Subject to the MIT license.

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        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;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountSent","type":"uint256"}],"name":"OnDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OnReinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OnStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OnUnstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OnWithdraw","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":"distribute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"profitPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakeValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"stakeValueAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakerPayouts","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tempLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"totalStakedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600a60015534801561001557600080fd5b5060405162002a3838038062002a388339818101604052602081101561003a57600080fd5b8101908080519060200190929190505050600061005b61014060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610148565b600033905090565b6128e080620001586000396000f3fe6080604052600436106101135760003560e01c8063817b1cd2116100a0578063c9c5323211610064578063c9c5323214610432578063d7a88e3c14610481578063e4fc6b6d146104e6578063f2fde38b146104f0578063fc8690a21461054157610113565b8063817b1cd2146103355780638650e92a14610360578063869890381461038b5780638da5cb5b146103b6578063a694fc3a146103f757610113565b80632e1a7d4d116100e75780632e1a7d4d1461020e5780633e0a322d146102495780636921091a14610284578063715018a6146102f357806378e979251461030a57610113565b806265318b1461011857806307e575d61461017d578063163db71b146101a85780632e17de78146101d3575b600080fd5b34801561012457600080fd5b506101676004803603602081101561013b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105a6565b6040518082815260200191505060405180910390f35b34801561018957600080fd5b50610192610721565b6040518082815260200191505060405180910390f35b3480156101b457600080fd5b506101bd610727565b6040518082815260200191505060405180910390f35b3480156101df57600080fd5b5061020c600480360360208110156101f657600080fd5b810190808035906020019092919050505061072d565b005b34801561021a57600080fd5b506102476004803603602081101561023157600080fd5b8101908080359060200190929190505050610cfd565b005b34801561025557600080fd5b506102826004803603602081101561026c57600080fd5b8101908080359060200190929190505050610f2b565b005b34801561029057600080fd5b506102dd600480360360408110156102a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b6040518082815260200191505060405180910390f35b3480156102ff57600080fd5b506103086110e1565b005b34801561031657600080fd5b5061031f611267565b6040518082815260200191505060405180910390f35b34801561034157600080fd5b5061034a61126d565b6040518082815260200191505060405180910390f35b34801561036c57600080fd5b50610375611273565b6040518082815260200191505060405180910390f35b34801561039757600080fd5b506103a0611279565b6040518082815260200191505060405180910390f35b3480156103c257600080fd5b506103cb61127f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040357600080fd5b506104306004803603602081101561041a57600080fd5b81019080803590602001909291905050506112a8565b005b34801561043e57600080fd5b5061046b6004803603602081101561045557600080fd5b8101908080359060200190929190505050611731565b6040518082815260200191505060405180910390f35b34801561048d57600080fd5b506104d0600480360360208110156104a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061175d565b6040518082815260200191505060405180910390f35b6104ee611775565b005b3480156104fc57600080fd5b5061053f6004803603602081101561051357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611800565b005b34801561054d57600080fd5b506105906004803603602081101561056457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a0b565b6040518082815260200191505060405180910390f35b600080610605610600600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954611a2390919063ffffffff16565b611aa9565b9050600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548112156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6469766964656e642063616c63206f766572666c6f770000000000000000000081525060200191505060405180910390fd5b61071968010000000000000000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548303611b4f90919063ffffffff16565b915050919050565b60015481565b60065481565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156107c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061282b602f913960400191505060405180910390fd5b600154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401431015610861576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806127ae6032913960400191505060405180910390fd5b43600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097e600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097984600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9990919063ffffffff16565b611be3565b6109a0600d60075461099b84600754611b9990919063ffffffff16565b611be3565b6109b16109ac336105a6565b610cfd565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610a1557610a0e6001600854611b9990919063ffffffff16565b6008819055505b610a2a81600754611b9990919063ffffffff16565b600781905550610a8281600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9990919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b21610b1c600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954611a2390919063ffffffff16565b611aa9565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610c1557600080fd5b505af1158015610c29573d6000803e3d6000fd5b505050506040513d6020811015610c3f57600080fd5b8101908080519060200190929190505050610ca5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128056026913960400191505060405180910390fd5b7fb9d33f227f3fa1826b0e39a934bcee3835b3332a74d0b2c2589ec8fc94c2b11f3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b6000600b5414158015610d115750600b5442115b610d83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5374616b696e67206e6f742079657420737461727465642e000000000000000081525060200191505060405180910390fd5b80610d8d336105a6565b1015610de4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806127546034913960400191505060405180910390fd5b610e08610e036801000000000000000083611a2390919063ffffffff16565b611aa9565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ed2573d6000803e3d6000fd5b507fbace9fd79d5ea02ed8b43fa96af07e4e8f859a2f71ff878c748f5c22c57802843382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b610f33611fe0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b600080600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050141561109057600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506110db565b6110d8600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083611fe8565b90505b92915050565b6110e9611fe0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60075481565b60095481565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600b54141580156112bc5750600b5442115b61132e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5374616b696e67206e6f742079657420737461727465642e000000000000000081525060200191505060405180910390fd5b80600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156113b857600080fd5b505afa1580156113cc573d6000803e3d6000fd5b505050506040513d60208110156113e257600080fd5b8101908080519060200190929190505050101561144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061287b6030913960400191505060405180910390fd5b600154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054014310156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806127ae6032913960400191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561154b57611544600160085461222a90919063ffffffff16565b6008819055505b611554816122b2565b43600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561164957600080fd5b505af115801561165d573d6000803e3d6000fd5b505050506040513d602081101561167357600080fd5b81019080805190602001909291905050506116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127306024913960400191505060405180910390fd5b7fba7a4fcc259e92765d167230b14c7e70479648b69f2a5adcc2b15c372806ec203382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b600080600d80549050141561174a576007549050611758565b611755600d83611fe8565b90505b919050565b60036020528060005260406000206000915090505481565b600034905060008111156117fd576117988160065461222a90919063ffffffff16565b6006819055506117a781612507565b7f3b5b764958bcf10eae6e214b635b729c52c8a4962688629cf597c3167cca20223382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b50565b611808611fe0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561194e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127886026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b600080831415611a365760009050611aa3565b6000828402905082848281611a4757fe5b0414611a9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061285a6021913960400191505060405180910390fd5b809150505b92915050565b6000611adf60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611b4f90919063ffffffff16565b8210611b41576000611b3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806127e06025913960400191505060405180910390fd5b611b49565b819050611b4a565b5b919050565b6000611b9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125a9565b905092915050565b6000611bdb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061266f565b905092915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff16811115611c2257600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff16821115611c6157600080fd5b600083805490501415611dca576000600143038160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550828160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508381908060018154018082558091505060019003906000526020600020016000909190919091506000820160009054906101000a90046fffffffffffffffffffffffffffffffff168160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000820160109054906101000a90046fffffffffffffffffffffffffffffffff168160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505b4383600185805490500381548110611dde57fe5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff161015611f7d576000438160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550818160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508381908060018154018082558091505060019003906000526020600020016000909190919091506000820160009054906101000a90046fffffffffffffffffffffffffffffffff168160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000820160109054906101000a90046fffffffffffffffffffffffffffffffff168160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050611fdb565b600083600185805490500381548110611f9257fe5b906000526020600020019050818160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505b505050565b600033905090565b60008083805490501415611fff5760009050612224565b8260018480549050038154811061201257fe5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1682106120aa578260018480549050038154811061206757fe5b9060005260206000200160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050612224565b826000815481106120b757fe5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1682101561214a578260008154811061210757fe5b9060005260206000200160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050612224565b600080600185805490500390505b818111156121d757600060026001848401018161217157fe5b0490508486828154811061218157fe5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16116121ca578092506121d1565b6001810391505b50612158565b8482815481106121e357fe5b9060005260206000200160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16925050505b92915050565b6000808284019050838110156122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b61238b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238684600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222a90919063ffffffff16565b611be3565b6123ad600d6007546123a88460075461222a90919063ffffffff16565b611be3565b6123c28160075461222a90919063ffffffff16565b60078190555061241a81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222a90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061247482600954611a2390919063ffffffff16565b905061247f81611aa9565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60006007541461258a576000600a541461253b57612530600a548261222a90919063ffffffff16565b90506000600a819055505b61257f61256e6007546125606801000000000000000085611a2390919063ffffffff16565b611b4f90919063ffffffff16565b60095461222a90919063ffffffff16565b6009819055506125a6565b61259f81600a5461222a90919063ffffffff16565b600a819055505b50565b60008083118290612655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561261a5780820151818401526020810190506125ff565b50505050905090810190601f1680156126475780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161266157fe5b049050809150509392505050565b600083831115829061271c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156126e15780820151818401526020810190506126c6565b50505050905090810190601f16801561270e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe5374616b65206661696c65642064756520746f206661696c6564207472616e736665722e43616e6e6f74207769746864726177206d6f7265206469766964656e6473207468616e20796f752068617665206561726e65642e4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616e2774207374616b65206f7220756e7374616b65206d756c7469706c652074696d657320696e203520626c6f636b73214f766572666c6f772e2043616e6e6f7420636f6e766572742075696e7420746f20696e742e556e7374616b65206661696c65642064756520746f206661696c6564207472616e736665722e43616e6e6f7420756e7374616b65206d6f726520546f6b656e207468616e20796f752068617665207374616b65642e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e6e6f74207374616b65206d6f726520546f6b656e73207468616e20796f7520686f6c6420756e7374616b65642ea26469706673582212202160169068dd3c8c444819bac0cbf04f5a11c601f38d62165dc252ab60c8104c64736f6c634300060c003300000000000000000000000034d33dc8ac6f1650d94a7e9a972b47044217600b

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

00000000000000000000000034d33dc8ac6f1650d94a7e9a972b47044217600b

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000034d33dc8ac6f1650d94a7e9a972b47044217600b


Deployed ByteCode Sourcemap

955:8151:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4902:323;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1122:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1383:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2993:1252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4251:365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2289:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5692:453;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1837:145:2;;;;;;;;;;;;;:::i;:::-;;1611:21:4;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1419:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1478:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1448:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1214:77:2;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2392:595:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5231:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1236:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4622:274;;;:::i;:::-;;2131:240:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1284:44:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4902:323;4960:4;4976:13;4992:49;5002:38;5021:10;:18;5032:6;5021:18;;;;;;;;;;;;;;;;5002:14;;:18;;:38;;;;:::i;:::-;4992:9;:49::i;:::-;4976:65;;5072:13;:21;5086:6;5072:21;;;;;;;;;;;;;;;;5059:9;:34;;5051:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5137:81;1109:7;5154:13;:21;5168:6;5154:21;;;;;;;;;;;;;;;;5142:9;:33;5137:56;;:81;;;;:::i;:::-;5130:88;;;4902:323;;;:::o;1122:25::-;;;;:::o;1383:30::-;;;;:::o;2993:1252::-;3076:6;3050:10;:22;3061:10;3050:22;;;;;;;;;;;;;;;;:32;;3042:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3193:8;;3168:10;:22;3179:10;3168:22;;;;;;;;;;;;;;;;:33;3152:12;:49;;3144:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3291:12;3266:10;:22;3277:10;3266:22;;;;;;;;;;;;;;;:37;;;;3348:152;3385:17;:29;3403:10;3385:29;;;;;;;;;;;;;;;3424:10;:22;3435:10;3424:22;;;;;;;;;;;;;;;;3456:34;3483:6;3456:10;:22;3467:10;3456:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;3348:27;:152::i;:::-;3550:119;3587:18;3615:11;;3636:23;3652:6;3636:11;;:15;;:23;;;;:::i;:::-;3550:27;:119::i;:::-;3748:33;3757:23;3769:10;3757:11;:23::i;:::-;3748:8;:33::i;:::-;3821:6;3795:10;:22;3806:10;3795:22;;;;;;;;;;;;;;;;:32;3791:72;;;3844:19;3861:1;3844:12;;:16;;:19;;;;:::i;:::-;3829:12;:34;;;;3791:72;3887:23;3903:6;3887:11;;:15;;:23;;;;:::i;:::-;3873:11;:37;;;;3945:34;3972:6;3945:10;:22;3956:10;3945:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;3920:10;:22;3931:10;3920:22;;;;;;;;;;;;;;;:59;;;;4018:53;4028:42;4047:10;:22;4058:10;4047:22;;;;;;;;;;;;;;;;4028:14;;:18;;:42;;;;:::i;:::-;4018:9;:53::i;:::-;3990:13;:25;4004:10;3990:25;;;;;;;;;;;;;;;:81;;;;4098:5;;;;;;;;;;;:18;;;4125:4;4132:10;4144:6;4098:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4090:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4209:29;4219:10;4231:6;4209:29;;;;;;;;;;;;;;;;;;;;;;;;;;2993:1252;:::o;4251:365::-;2145:1;2132:9;;:14;;:33;;;;;2156:9;;2150:3;:15;2132:33;2124:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:6:::1;4325:23;4337:10;4325:11;:23::i;:::-;:33;;4317:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4481:46;4491:35;1109:7;4491:6;:10;;:35;;;;:::i;:::-;4481:9;:46::i;:::-;4453:13;:25;4467:10;4453:25;;;;;;;;;;;;;;;;:74;4425:13;:25;4439:10;4425:25;;;;;;;;;;;;;;;:102;;;;4537:10;:19;;:27;4557:6;4537:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4579:30;4590:10;4602:6;4579:30;;;;;;;;;;;;;;;;;;;;;;;;;;4251:365:::0;:::o;2289:97::-;1428:12:2;:10;:12::i;:::-;1418:22;;:6;;;;;;;;;;:22;;;1410:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:10:4::1;2357:9;:22;;;;2289:97:::0;:::o;5692:453::-;5770:4;5875:1;5839:17;:25;5857:6;5839:25;;;;;;;;;;;;;;;:32;;;;:37;5835:304;;;5944:10;:18;5955:6;5944:18;;;;;;;;;;;;;;;;5937:25;;;;5835:304;6066:62;6088:17;:25;6106:6;6088:25;;;;;;;;;;;;;;;6115:12;6066:21;:62::i;:::-;6059:69;;5692:453;;;;;:::o;1837:145:2:-;1428:12;:10;:12::i;:::-;1418:22;;:6;;;;;;;;;;:22;;;1410:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1943:1:::1;1906:40;;1927:6;::::0;::::1;;;;;;;;1906:40;;;;;;;;;;;;1973:1;1956:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1837:145::o:0;1611:21:4:-;;;;:::o;1419:23::-;;;;:::o;1478:26::-;;;;:::o;1448:24::-;;;;:::o;1214:77:2:-;1252:7;1278:6;;;;;;;;;;;1271:13;;1214:77;:::o;2392:595:4:-;2145:1;2132:9;;:14;;:33;;;;;2156:9;;2150:3;:15;2132:33;2124:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:6:::1;2463:5;;;;;;;;;;;:15;;;2479:10;2463:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;:37;;2455:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2612:8;;2587:10;:22;2598:10;2587:22;;;;;;;;;;;;;;;;:33;2571:12;:49;;2563:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2715:1;2689:10;:22;2700:10;2689:22;;;;;;;;;;;;;;;;:27;2685:67;;;2733:19;2750:1;2733:12;;:16;;:19;;;;:::i;:::-;2718:12;:34;;;;2685:67;2762:17;2772:6;2762:9;:17::i;:::-;2814:12;2789:10;:22;2800:10;2789:22;;;;;;;;;;;;;;;:37;;;;2844:5;;;;;;;;;;;:18;;;2863:10;2883:4;2890:6;2844:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;2836:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:27;2961:10;2973:6;2953:27;;;;;;;;;;;;;;;;;;;;;;;;;;2392:595:::0;:::o;5231:455::-;5293:4;5391:1;5362:18;:25;;;;:30;5358:322;;;5453:11;;5446:18;;;;5358:322;5568:101;5607:18;5643:12;5568:21;:101::i;:::-;5561:108;;5231:455;;;;:::o;1236:42::-;;;;;;;;;;;;;;;;;:::o;4622:274::-;4671:11;4685:9;4671:23;;4716:1;4707:6;:10;4704:186;;;4753:30;4776:6;4753:18;;:22;;:30;;;;:::i;:::-;4732:18;:51;;;;4797:31;4821:6;4797:23;:31::i;:::-;4847:32;4860:10;4872:6;4847:32;;;;;;;;;;;;;;;;;;;;;;;;;;4704:186;4622:274;:::o;2131:240:2:-;1428:12;:10;:12::i;:::-;1418:22;;:6;;;;;;;;;;:22;;;1410:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:1:::1;2219:22;;:8;:22;;;;2211:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2328:8;2299:38;;2320:6;::::0;::::1;;;;;;;;2299:38;;;;;;;;;;;;2356:8;2347:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2131:240:::0;:::o;1284:44:4:-;;;;;;;;;;;;;;;;;:::o;2323:459:3:-;2381:7;2627:1;2622;:6;2618:45;;;2651:1;2644:8;;;;2618:45;2673:9;2689:1;2685;:5;2673:17;;2717:1;2712;2708;:5;;;;;;:10;2700:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2774:1;2767:8;;;2323:459;;;;;:::o;6151:227:4:-;6203:3;6229:15;6242:1;6234:2;6229:12;;:15;;;;:::i;:::-;6222:3;:22;6218:154;;6268:5;6260:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6218:154;;;6357:3;6346:15;;;;6218:154;6151:227;;;;:::o;3244:130:3:-;3302:7;3328:39;3332:1;3335;3328:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3321:46;;3244:130;;;;:::o;1464:134::-;1522:7;1548:43;1552:1;1555;1548:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1541:50;;1464:134;;;;:::o;8298:803:4:-;8455:2;8437:21;;:6;:21;;8429:30;;;;;;8494:2;8473:24;;:9;:24;;8465:33;;;;;;8531:1;8509:11;:18;;;;:23;8505:198;;;8542:26;8619:1;8604:12;:16;8576:7;:17;;;:45;;;;;;;;;;;;;;;;;;8653:9;8629:7;:13;;;:34;;;;;;;;;;;;;;;;;;8671:11;8688:7;8671:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8505:198;;8761:12;8713:11;8746:1;8725:11;:18;;;;:22;8713:35;;;;;;;;;;;;;;;:45;;;;;;;;;;;;:60;;;8709:388;;;8783:32;8857:12;8823:13;:23;;;:47;;;;;;;;;;;;;;;;;;8908:6;8878:13;:19;;;:37;;;;;;;;;;;;;;;;;;8923:11;8940:13;8923:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8709:388;;;;8975:32;9010:11;9043:1;9022:11;:18;;;;:22;9010:35;;;;;;;;;;;;;;;8975:70;;9083:6;9053:13;:19;;;:37;;;;;;;;;;;;;;;;;;8709:388;;8298:803;;;:::o;731:104:0:-;784:15;818:10;811:17;;731:104;:::o;7508:786:4:-;7609:4;7692:1;7670:11;:18;;;;:23;7666:43;;;7708:1;7701:8;;;;7666:43;7763:11;7794:1;7775:11;:18;;;;:20;7763:33;;;;;;;;;;;;;;;:43;;;;;;;;;;;;7753:53;;:6;:53;7749:111;;7821:11;7852:1;7833:11;:18;;;;:20;7821:33;;;;;;;;;;;;;;;:39;;;;;;;;;;;;7814:46;;;;;;7749:111;7913:11;7925:1;7913:14;;;;;;;;;;;;;;;:24;;;;;;;;;;;;7904:33;;:6;:33;7900:72;;;7952:11;7964:1;7952:14;;;;;;;;;;;;;;;:20;;;;;;;;;;;;7945:27;;;;;;7900:72;8026:8;8044;8074:1;8055:11;:18;;;;:20;8044:31;;8081:174;8094:3;8088;:9;8081:174;;;8107:8;8136:1;8131;8125:3;8119;:9;:13;8118:19;;;;;;8107:30;;8177:6;8149:11;8161:3;8149:16;;;;;;;;;;;;;;;:26;;;;;;;;;;;;:34;;;8145:104;;8201:3;8195:9;;8145:104;;;8239:1;8235:3;:5;8229:11;;8145:104;8081:174;;;;8267:11;8279:3;8267:16;;;;;;;;;;;;;;;:22;;;;;;;;;;;;8260:29;;;;;;7508:786;;;;;:::o;1017:176:3:-;1075:7;1094:9;1110:1;1106;:5;1094:17;;1134:1;1129;:6;;1121:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1185:1;1178:8;;;1017:176;;;;:::o;6384:679:4:-;6471:153;6508:17;:29;6526:10;6508:29;;;;;;;;;;;;;;;6547:10;:22;6558:10;6547:22;;;;;;;;;;;;;;;;6579:35;6606:7;6579:10;:22;6590:10;6579:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;6471:27;:153::i;:::-;6674:120;6711:18;6739:11;;6760:24;6776:7;6760:11;;:15;;:24;;;;:::i;:::-;6674:27;:120::i;:::-;6819:24;6835:7;6819:11;;:15;;:24;;;;:::i;:::-;6805:11;:38;;;;6878:35;6905:7;6878:10;:22;6889:10;6878:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;6853:10;:22;6864:10;6853:22;;;;;;;;;;;;;;;:60;;;;6932:11;6946:27;6965:7;6946:14;;:18;;:27;;;;:::i;:::-;6932:41;;7039:17;7049:6;7039:9;:17::i;:::-;7011:13;:25;7025:10;7011:25;;;;;;;;;;;;;;;;:45;6983:13;:25;6997:10;6983:25;;;;;;;;;;;;;;;:73;;;;6384:679;;:::o;7069:433::-;7153:1;7138:11;;:16;7134:362;;7194:1;7174:16;;:21;7170:135;;7224:28;7235:16;;7224:6;:10;;:28;;;;:::i;:::-;7215:37;;7289:1;7270:16;:20;;;;7170:135;7335:72;7354:52;7394:11;;7354:35;1109:7;7354:6;:10;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;7335:14;;:18;;:72;;;;:::i;:::-;7318:14;:89;;;;7134:362;;;7457:28;7478:6;7457:16;;:20;;:28;;;;:::i;:::-;7438:16;:47;;;;7134:362;7069:433;:::o;3856:272:3:-;3942:7;3973:1;3969;:5;3976:12;3961:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3999:9;4015:1;4011;:5;;;;;;3999:17;;4120:1;4113:8;;;3856:272;;;;;:::o;1889:187::-;1975:7;2007:1;2002;:6;;2010:12;1994:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2033:9;2049:1;2045;:5;2033:17;;2068:1;2061:8;;;1889:187;;;;;:::o

Swarm Source

ipfs://2160169068dd3c8c444819bac0cbf04f5a11c601f38d62165dc252ab60c8104c
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.