Contract 0x749a2A8850C1861aFa1003D876d90C9b730cA58e 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x07856bd3cd9b65d0c0e46e0048e91237d39e87d59336f5f7bc11bdd8156726a4Initialize415600092022-06-28 19:34:4851 days 2 hrs ago0x3bff7fd5aacb1a22e1dd3ddbd8cfb8622a9e9a5b IN  0x749a2a8850c1861afa1003d876d90c9b730ca58e0 FTM0.000499386951
0xc865f75817be3e462da7ed051457dcadfdd2d223d7a191374cdb5a6fec3310440x60806040191652162021-10-15 14:42:54307 days 7 hrs ago0xb98d4d4e205aff4d4755e9df19bd0b8bd4e0f148 IN  Create: FujiAdmin0 FTM0.240590935948
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xc865f75817be3e462da7ed051457dcadfdd2d223d7a191374cdb5a6fec331044191652162021-10-15 14:42:54307 days 7 hrs ago 0xb98d4d4e205aff4d4755e9df19bd0b8bd4e0f148  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FujiAdmin

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 6 : FujiAdmin.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";

import "./interfaces/IFujiAdmin.sol";
import "./libraries/Errors.sol";

contract FujiAdmin is IFujiAdmin, OwnableUpgradeable {
  address private _flasher;
  address private _fliquidator;
  address payable private _ftreasury;
  address private _controller;
  address private _vaultHarvester;

  mapping(address => bool) public override validVault;

  address private _swapper;

  function initialize() external initializer {
    __Ownable_init();
  }

  // Setter Functions

  /**
   * @dev Sets the flasher contract address
   * @param _newFlasher: flasher address
   */
  function setFlasher(address _newFlasher) external onlyOwner {
    require(_newFlasher != address(0), Errors.VL_ZERO_ADDR);
    _flasher = _newFlasher;
  }

  /**
   * @dev Sets the fliquidator contract address
   * @param _newFliquidator: new fliquidator address
   */
  function setFliquidator(address _newFliquidator) external onlyOwner {
    require(_newFliquidator != address(0), Errors.VL_ZERO_ADDR);
    _fliquidator = _newFliquidator;
  }

  /**
   * @dev Sets the Treasury contract address
   * @param _newTreasury: new Fuji Treasury address
   */
  function setTreasury(address payable _newTreasury) external onlyOwner {
    require(_newTreasury != address(0), Errors.VL_ZERO_ADDR);
    _ftreasury = _newTreasury;
  }

  /**
   * @dev Sets the controller contract address.
   * @param _newController: controller address
   */
  function setController(address _newController) external onlyOwner {
    require(_newController != address(0), Errors.VL_ZERO_ADDR);
    _controller = _newController;
  }

  /**
   * @dev Sets the VaultHarvester address
   * @param _newVaultHarverster: controller address
   */
  function setVaultHarvester(address _newVaultHarverster) external onlyOwner {
    require(_newVaultHarverster != address(0), Errors.VL_ZERO_ADDR);
    _vaultHarvester = _newVaultHarverster;
  }

  /**
   * @dev Sets the Swapper address
   * @param _newSwapper: controller address
   */
  function setSwapper(address _newSwapper) external onlyOwner {
    require(_newSwapper != address(0), Errors.VL_ZERO_ADDR);
    _swapper = _newSwapper;
  }

  /**
   * @dev Adds a Vault.
   * @param _vaultAddr: Address of vault to be added
   */
  function allowVault(address _vaultAddr, bool _allowed) external onlyOwner {
    validVault[_vaultAddr] = _allowed;
  }

  // Getter Functions

  function getFlasher() external view override returns (address) {
    return _flasher;
  }

  function getFliquidator() external view override returns (address) {
    return _fliquidator;
  }

  function getTreasury() external view override returns (address payable) {
    return _ftreasury;
  }

  function getController() external view override returns (address) {
    return _controller;
  }

  function getVaultHarvester() external view override returns (address) {
    return _vaultHarvester;
  }

  function getSwapper() external view override returns (address) {
    return _swapper;
  }
}

File 2 of 6 : OwnableUpgradeable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/ContextUpgradeable.sol";
import "../proxy/utils/Initializable.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 OwnableUpgradeable is Initializable, ContextUpgradeable {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    function __Ownable_init() internal initializer {
        __Context_init_unchained();
        __Ownable_init_unchained();
    }

    function __Ownable_init_unchained() internal initializer {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual 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 {
        _setOwner(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");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    uint256[49] private __gap;
}

File 3 of 6 : IFujiAdmin.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IFujiAdmin {
  function validVault(address _vaultAddr) external view returns (bool);

  function getFlasher() external view returns (address);

  function getFliquidator() external view returns (address);

  function getController() external view returns (address);

  function getTreasury() external view returns (address payable);

  function getVaultHarvester() external view returns (address);

  function getSwapper() external view returns (address);
}

File 4 of 6 : Errors.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity ^0.8.0;

/**
 * @title Errors library
 * @author Fuji
 * @notice Defines the error messages emitted by the different contracts of the Aave protocol
 * @dev Error messages prefix glossary:
 *  - VL = Validation Logic 100 series
 *  - MATH = Math libraries 200 series
 *  - RF = Refinancing 300 series
 *  - VLT = vault 400 series
 *  - SP = Special 900 series
 */
library Errors {
  //Errors
  string public constant VL_INDEX_OVERFLOW = "100"; // index overflows uint128
  string public constant VL_INVALID_MINT_AMOUNT = "101"; //invalid amount to mint
  string public constant VL_INVALID_BURN_AMOUNT = "102"; //invalid amount to burn
  string public constant VL_AMOUNT_ERROR = "103"; //Input value >0, and for ETH msg.value and amount shall match
  string public constant VL_INVALID_WITHDRAW_AMOUNT = "104"; //Withdraw amount exceeds provided collateral, or falls undercollaterized
  string public constant VL_INVALID_BORROW_AMOUNT = "105"; //Borrow amount does not meet collaterization
  string public constant VL_NO_DEBT_TO_PAYBACK = "106"; //Msg sender has no debt amount to be payback
  string public constant VL_MISSING_ERC20_ALLOWANCE = "107"; //Msg sender has not approved ERC20 full amount to transfer
  string public constant VL_USER_NOT_LIQUIDATABLE = "108"; //User debt position is not liquidatable
  string public constant VL_DEBT_LESS_THAN_AMOUNT = "109"; //User debt is less than amount to partial close
  string public constant VL_PROVIDER_ALREADY_ADDED = "110"; // Provider is already added in Provider Array
  string public constant VL_NOT_AUTHORIZED = "111"; //Not authorized
  string public constant VL_INVALID_COLLATERAL = "112"; //There is no Collateral, or Collateral is not in active in vault
  string public constant VL_NO_ERC20_BALANCE = "113"; //User does not have ERC20 balance
  string public constant VL_INPUT_ERROR = "114"; //Check inputs. For ERC1155 batch functions, array sizes should match.
  string public constant VL_ASSET_EXISTS = "115"; //Asset intended to be added already exists in FujiERC1155
  string public constant VL_ZERO_ADDR_1155 = "116"; //ERC1155: balance/transfer for zero address
  string public constant VL_NOT_A_CONTRACT = "117"; //Address is not a contract.
  string public constant VL_INVALID_ASSETID_1155 = "118"; //ERC1155 Asset ID is invalid.
  string public constant VL_NO_ERC1155_BALANCE = "119"; //ERC1155: insufficient balance for transfer.
  string public constant VL_MISSING_ERC1155_APPROVAL = "120"; //ERC1155: transfer caller is not owner nor approved.
  string public constant VL_RECEIVER_REJECT_1155 = "121"; //ERC1155Receiver rejected tokens
  string public constant VL_RECEIVER_CONTRACT_NON_1155 = "122"; //ERC1155: transfer to non ERC1155Receiver implementer
  string public constant VL_OPTIMIZER_FEE_SMALL = "123"; //Fuji OptimizerFee has to be > 1 RAY (1e27)
  string public constant VL_UNDERCOLLATERIZED_ERROR = "124"; // Flashloan-Flashclose cannot be used when User's collateral is worth less than intended debt position to close.
  string public constant VL_MINIMUM_PAYBACK_ERROR = "125"; // Minimum Amount payback should be at least Fuji Optimizerfee accrued interest.
  string public constant VL_HARVESTING_FAILED = "126"; // Harvesting Function failed, check provided _farmProtocolNum or no claimable balance.
  string public constant VL_FLASHLOAN_FAILED = "127"; // Flashloan failed
  string public constant VL_ERC1155_NOT_TRANSFERABLE = "128"; // ERC1155: Not Transferable
  string public constant VL_SWAP_SLIPPAGE_LIMIT_EXCEED = "129"; // ERC1155: Not Transferable
  string public constant VL_ZERO_ADDR = "130"; // Zero Address

  string public constant MATH_DIVISION_BY_ZERO = "201";
  string public constant MATH_ADDITION_OVERFLOW = "202";
  string public constant MATH_MULTIPLICATION_OVERFLOW = "203";

  string public constant RF_INVALID_RATIO_VALUES = "301"; // Ratio Value provided is invalid, _ratioA/_ratioB <= 1, and > 0, or activeProvider borrowBalance = 0

  string public constant VLT_CALLER_MUST_BE_VAULT = "401"; // The caller of this function must be a vault

  string public constant ORACLE_INVALID_LENGTH = "501"; // The assets length and price feeds length doesn't match
  string public constant ORACLE_NONE_PRICE_FEED = "502"; // The price feed is not found
}

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

pragma solidity ^0.8.0;
import "../proxy/utils/Initializable.sol";

/*
 * @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 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 ContextUpgradeable is Initializable {
    function __Context_init() internal initializer {
        __Context_init_unchained();
    }

    function __Context_init_unchained() internal initializer {
    }
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
    uint256[50] private __gap;
}

File 6 of 6 : Initializable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
 * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an
 * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
 * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
 *
 * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as
 * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.
 *
 * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure
 * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.
 */
abstract contract Initializable {
    /**
     * @dev Indicates that the contract has been initialized.
     */
    bool private _initialized;

    /**
     * @dev Indicates that the contract is in the process of being initialized.
     */
    bool private _initializing;

    /**
     * @dev Modifier to protect an initializer function from being invoked twice.
     */
    modifier initializer() {
        require(_initializing || !_initialized, "Initializable: contract is already initialized");

        bool isTopLevelCall = !_initializing;
        if (isTopLevelCall) {
            _initializing = true;
            _initialized = true;
        }

        _;

        if (isTopLevelCall) {
            _initializing = false;
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_vaultAddr","type":"address"},{"internalType":"bool","name":"_allowed","type":"bool"}],"name":"allowVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFlasher","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFliquidator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSwapper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTreasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVaultHarvester","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newController","type":"address"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newFlasher","type":"address"}],"name":"setFlasher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newFliquidator","type":"address"}],"name":"setFliquidator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newSwapper","type":"address"}],"name":"setSwapper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newTreasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newVaultHarverster","type":"address"}],"name":"setVaultHarvester","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"validVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50610c00806100206000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80638129fc1c116100b2578063b8491a8411610081578063f018467d11610066578063f018467d1461021a578063f0f442601461022d578063f2fde38b1461024057610136565b8063b8491a84146101ff578063e43fa4111461020757610136565b80638129fc1c146101c95780638da5cb5b146101d157806392eefe9b146101d95780639c82f2a4146101ec57610136565b806343ad12af1161010957806368f1ecc3116100ee57806368f1ecc3146101b1578063715018a6146101b95780637fabc90b146101c157610136565b806343ad12af14610196578063536fcd1b1461019e57610136565b80630f6ec81f1461013b5780632c793d45146101645780633018205f146101795780633b19e84a1461018e575b600080fd5b61014e6101493660046109f5565b610253565b60405161015b9190610a68565b60405180910390f35b610177610172366004610a18565b610268565b005b6101816102db565b60405161015b9190610a54565b6101816102ea565b6101816102f9565b6101776101ac3660046109f5565b610308565b6101816103ab565b6101776103ba565b610181610405565b610177610414565b610181610491565b6101776101e73660046109f5565b6104a0565b6101776101fa3660046109f5565b610543565b6101816105e6565b6101776102153660046109f5565b6105f5565b6101776102283660046109f5565b610698565b61017761023b3660046109f5565b61073b565b61017761024e3660046109f5565b6107de565b606a6020526000908152604090205460ff1681565b61027061084c565b6001600160a01b0316610281610491565b6001600160a01b0316146102b05760405162461bcd60e51b81526004016102a790610b80565b60405180910390fd5b6001600160a01b03919091166000908152606a60205260409020805460ff1916911515919091179055565b6068546001600160a01b031690565b6067546001600160a01b031690565b606b546001600160a01b031690565b61031061084c565b6001600160a01b0316610321610491565b6001600160a01b0316146103475760405162461bcd60e51b81526004016102a790610b80565b60408051808201909152600381526203133360ec1b60208201526001600160a01b0382166103885760405162461bcd60e51b81526004016102a79190610a73565b50606580546001600160a01b0319166001600160a01b0392909216919091179055565b6069546001600160a01b031690565b6103c261084c565b6001600160a01b03166103d3610491565b6001600160a01b0316146103f95760405162461bcd60e51b81526004016102a790610b80565b6104036000610850565b565b6065546001600160a01b031690565b600054610100900460ff168061042d575060005460ff16155b6104495760405162461bcd60e51b81526004016102a790610b23565b600054610100900460ff16158015610474576000805460ff1961ff0019909116610100171660011790555b61047c6108a2565b801561048e576000805461ff00191690555b50565b6033546001600160a01b031690565b6104a861084c565b6001600160a01b03166104b9610491565b6001600160a01b0316146104df5760405162461bcd60e51b81526004016102a790610b80565b60408051808201909152600381526203133360ec1b60208201526001600160a01b0382166105205760405162461bcd60e51b81526004016102a79190610a73565b50606880546001600160a01b0319166001600160a01b0392909216919091179055565b61054b61084c565b6001600160a01b031661055c610491565b6001600160a01b0316146105825760405162461bcd60e51b81526004016102a790610b80565b60408051808201909152600381526203133360ec1b60208201526001600160a01b0382166105c35760405162461bcd60e51b81526004016102a79190610a73565b50606b80546001600160a01b0319166001600160a01b0392909216919091179055565b6066546001600160a01b031690565b6105fd61084c565b6001600160a01b031661060e610491565b6001600160a01b0316146106345760405162461bcd60e51b81526004016102a790610b80565b60408051808201909152600381526203133360ec1b60208201526001600160a01b0382166106755760405162461bcd60e51b81526004016102a79190610a73565b50606980546001600160a01b0319166001600160a01b0392909216919091179055565b6106a061084c565b6001600160a01b03166106b1610491565b6001600160a01b0316146106d75760405162461bcd60e51b81526004016102a790610b80565b60408051808201909152600381526203133360ec1b60208201526001600160a01b0382166107185760405162461bcd60e51b81526004016102a79190610a73565b50606680546001600160a01b0319166001600160a01b0392909216919091179055565b61074361084c565b6001600160a01b0316610754610491565b6001600160a01b03161461077a5760405162461bcd60e51b81526004016102a790610b80565b60408051808201909152600381526203133360ec1b60208201526001600160a01b0382166107bb5760405162461bcd60e51b81526004016102a79190610a73565b50606780546001600160a01b0319166001600160a01b0392909216919091179055565b6107e661084c565b6001600160a01b03166107f7610491565b6001600160a01b03161461081d5760405162461bcd60e51b81526004016102a790610b80565b6001600160a01b0381166108435760405162461bcd60e51b81526004016102a790610ac6565b61048e81610850565b3390565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16806108bb575060005460ff16155b6108d75760405162461bcd60e51b81526004016102a790610b23565b600054610100900460ff16158015610902576000805460ff1961ff0019909116610100171660011790555b61090a610912565b61047c610985565b600054610100900460ff168061092b575060005460ff16155b6109475760405162461bcd60e51b81526004016102a790610b23565b600054610100900460ff1615801561047c576000805460ff1961ff001990911661010017166001179055801561048e576000805461ff001916905550565b600054610100900460ff168061099e575060005460ff16155b6109ba5760405162461bcd60e51b81526004016102a790610b23565b600054610100900460ff161580156109e5576000805460ff1961ff0019909116610100171660011790555b61047c6109f061084c565b610850565b600060208284031215610a06578081fd5b8135610a1181610bb5565b9392505050565b60008060408385031215610a2a578081fd5b8235610a3581610bb5565b915060208301358015158114610a49578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a9f57858101830151858201604001528201610a83565b81811115610ab05783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201527f647920696e697469616c697a6564000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6001600160a01b038116811461048e57600080fdfea2646970667358221220a45e74196cecd2ae24b3a85a7fac67b60b47ef7e65ac632b55b38e119a2d0a9d64736f6c63430008000033

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.