Contract 0xf03dccaec9a28200a6708c686cf0b8bf26ddc356 2

Contract Overview

Balance:
0 AVAX

AVAX Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7af52f5319500ab0940f89e97b006523b8a75480e954ed65b0b3ef6cb98d7abbApprove276394052023-03-19 11:58:512 days 22 hrs ago0x19d52a1a75a1dfbac5a0b6db4acbd73e0b7daf4b IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001670004 27
0x35f14994dd1b172fd4e161b49c850b68f431328be5b213f036a7889d0fca31d2Approve271966732023-03-09 3:05:1013 days 7 hrs ago0x2f810deef128ff91f2ec3b02d493b120f97a97e6 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00176533839928.541330918
0xd7b51a6559886e60345b2b924c957038a07717fa81e0b2c245f87b25f30cccbfApprove271966382023-03-09 3:04:0013 days 7 hrs ago0x2f810deef128ff91f2ec3b02d493b120f97a97e6 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001608152 26
0xfe0bb2d75ed03a7a242366feb57ff709f48a4435b84e19b35c6308e836e059b8Approve265329782023-02-21 5:45:3229 days 4 hrs ago0x756afa4d46b0248237b81033f4b9976b184ea6c4 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001632082 26.5
0x0361909f14e5753a1e53ebcdd1e25a784d9cc129f3fb5411777cc6458ff2d170Approve264380302023-02-19 0:18:3231 days 10 hrs ago0x5fe8c6cc9a7269cb99715be1b6f6277638177313 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.0017009327.5
0x9c1dbee46134e190fb6ec6328aa05aec6434cc1dccef766199eee03ad4f8e26eApprove260239742023-02-09 5:52:1741 days 4 hrs ago0x8c8c4b30f81ccb5770291884f9713dbd2df016f1 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001608152 26
0xf37a9b2b9da4bbbf85bde64a93518d46233eb046647856ea54d2f9b1973930ceApprove260239672023-02-09 5:52:0341 days 4 hrs ago0x8c8c4b30f81ccb5770291884f9713dbd2df016f1 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001608152 26
0x3acde24ecaa4a076688a734f4b2a691f358eb7417c11c7ba3623df8cf339e821Approve260239622023-02-09 5:51:5241 days 4 hrs ago0x8c8c4b30f81ccb5770291884f9713dbd2df016f1 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001608152 26
0xbe485dc77ac1805b042dc4350e1f63e235dcda705ce3f3a7c7e2760ea21483ffApprove260239522023-02-09 5:51:3341 days 4 hrs ago0x8c8c4b30f81ccb5770291884f9713dbd2df016f1 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001608152 26
0x74690a5cd6d351226939c2b3acbfe01ac9abe0319af4b402791638553b5e5088Approve260239482023-02-09 5:51:2541 days 4 hrs ago0x8c8c4b30f81ccb5770291884f9713dbd2df016f1 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001608152 26
0x200a0e659e7d72c50159a1c1030ba11d4909797d9bb3dd1958f1bede65c84983Approve260239132023-02-09 5:50:1341 days 4 hrs ago0x8c8c4b30f81ccb5770291884f9713dbd2df016f1 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.001837282734 29.7045
0xd178a694482d141b695fb735de68798a8de9ad3dbbca2eb2403f1d9778711a52Approve258840152023-02-05 23:05:2744 days 11 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.000940425
0xd38f61fe2f66f90540469396b989ce2fad3bb5ecde9ce2e508115847cb82ee50Approve258393242023-02-04 21:58:5345 days 12 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00094125
0x539beb5d59a02b452410f812cfb07473b3888d78ed27f6717229531894aea2c4Approve258248982023-02-04 13:53:5445 days 20 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.000940125
0xe4fa9585d5af20f90450d42ae4e928085ba788f14b43917b4484c8feb9b575d6Approve258248912023-02-04 13:53:4045 days 20 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00094125
0x46f82487323334ada8c568b9671b685c21ed8f6442f94ef25a0fd2137b3a3615Approve257730012023-02-03 8:45:5647 days 1 hr ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00094125
0x5918b33ae1fbb44688d37d10c9e0928b2adbf44160650e12323dfe097a7b3503Approve257176872023-02-02 1:54:4648 days 8 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.000940425
0x479425eb45be4cc014054c813b37d2110161bd1b36fb8a7a630a48f742761c08Approve257176752023-02-02 1:54:2248 days 8 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00094125
0x4e56ed67da56e8760124292d796081ac1ee8ba44d48836cf3bdd2d049f579d36Approve257176672023-02-02 1:54:0648 days 8 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00094125
0xa39284b3dcc59017c6619c1df0c39e4be9447778e5e6be96ab4ec5e6ebab6970Approve257176562023-02-02 1:53:4448 days 8 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00094125
0x8ff86f96e04bbc80e206366fdd3e0a3a572d0e26cc7adb9304862b0eee88193dApprove257176472023-02-02 1:53:2648 days 8 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.000940725
0x7092635f851601dca1943b1acc4485d597831459be80cbfa941ebd6904171f31Approve256586082023-01-31 17:05:4049 days 17 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.000940425
0x1ec941c5fad3f3da950fa3db26f8d9a9b616a606d86451d51b642cb1f050b778Approve256585952023-01-31 17:05:1449 days 17 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.000940425
0x6e7ead3b3cb3647bd1606a46cff77851e87d2533fbc5fad20b6ce46302836046Approve256059662023-01-30 11:15:0350 days 23 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00094125
0x07bc26bd9df4f53b15ae9b868451aae0b484448dbe24d41183494ca3f23e4c23Approve255996352023-01-30 7:45:1251 days 2 hrs ago0x237d71b62286db0f101c4709ee5b02adf5d74738 IN  0xf03dccaec9a28200a6708c686cf0b8bf26ddc3560 AVAX0.00094125
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
YDR

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

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

pragma solidity ^0.8.0;

import "./LERC20/LERC20.sol";

contract YDR is LERC20 {
    // solhint-disable-next-line func-visibility
    constructor(
        uint256 totalSupply_,
        address admin_,
        address recoveryAdmin_,
        uint256 timelockPeriod_,
        address lossless_
    ) LERC20(totalSupply_, "YDragon", "YDR", admin_, recoveryAdmin_, timelockPeriod_, lossless_) {} // solhint-disable-line no-empty-blocks

    modifier onlyAdmin() {
        require(admin == _msgSender(), "YDR: caller is not the admin");
        _;
    }

    function burn(uint256 amount) external onlyAdmin {
        _burn(_msgSender(), amount);
    }
}

File 2 of 5 : ILosslessController.sol
//SPDX-License-Identifier: Unlicense

pragma solidity ^0.8.0;

interface ILosslessController {
    function beforeTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) external;

    function beforeTransferFrom(
        address msgSender,
        address sender,
        address recipient,
        uint256 amount
    ) external;

    function beforeApprove(
        address sender,
        address spender,
        uint256 amount
    ) external;

    function beforeIncreaseAllowance(
        address msgSender,
        address spender,
        uint256 addedValue
    ) external;

    function beforeDecreaseAllowance(
        address msgSender,
        address spender,
        uint256 subtractedValue
    ) external;

    function afterApprove(
        address sender,
        address spender,
        uint256 amount
    ) external;

    function afterTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) external;

    function afterTransferFrom(
        address msgSender,
        address sender,
        address recipient,
        uint256 amount
    ) external;

    function afterIncreaseAllowance(
        address sender,
        address spender,
        uint256 addedValue
    ) external;

    function afterDecreaseAllowance(
        address sender,
        address spender,
        uint256 subtractedValue
    ) external;
}

File 3 of 5 : LERC20.sol
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/utils/Context.sol";

import "../interfaces/ILosslessController.sol";

// solhint-disable reason-string

contract LERC20 is Context, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    address public recoveryAdmin;
    address private recoveryAdminCanditate;
    bytes32 private recoveryAdminKeyHash;
    address public admin;
    uint256 public timelockPeriod;
    uint256 public losslessTurnOffTimestamp;
    bool public isLosslessTurnOffProposed;
    bool public isLosslessOn = true;
    ILosslessController private lossless;

    event AdminChanged(address indexed previousAdmin, address indexed newAdmin);
    event RecoveryAdminChangeProposed(address indexed candidate);
    event RecoveryAdminChanged(address indexed previousAdmin, address indexed newAdmin);
    event LosslessTurnOffProposed(uint256 turnOffDate);
    event LosslessTurnedOff();
    event LosslessTurnedOn();

    // solhint-disable-next-line func-visibility
    constructor(
        uint256 totalSupply_,
        string memory name_,
        string memory symbol_,
        address admin_,
        address recoveryAdmin_,
        uint256 timelockPeriod_,
        address lossless_
    ) {
        _name = name_;
        _symbol = symbol_;
        admin = admin_;
        _mint(admin, totalSupply_);
        recoveryAdmin = recoveryAdmin_;
        timelockPeriod = timelockPeriod_;
        lossless = ILosslessController(lossless_);
    }

    // --- LOSSLESS modifiers ---

    modifier lssAprove(address spender, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeApprove(_msgSender(), spender, amount);
            _;
            lossless.afterApprove(_msgSender(), spender, amount);
        } else {
            _;
        }
    }

    modifier lssTransfer(address recipient, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeTransfer(_msgSender(), recipient, amount);
            _;
            lossless.afterTransfer(_msgSender(), recipient, amount);
        } else {
            _;
        }
    }

    modifier lssTransferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) {
        if (isLosslessOn) {
            lossless.beforeTransferFrom(_msgSender(), sender, recipient, amount);
            _;
            lossless.afterTransferFrom(_msgSender(), sender, recipient, amount);
        } else {
            _;
        }
    }

    modifier lssIncreaseAllowance(address spender, uint256 addedValue) {
        if (isLosslessOn) {
            lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue);
            _;
            lossless.afterIncreaseAllowance(_msgSender(), spender, addedValue);
        } else {
            _;
        }
    }

    modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) {
        if (isLosslessOn) {
            lossless.beforeDecreaseAllowance(_msgSender(), spender, subtractedValue);
            _;
            lossless.afterDecreaseAllowance(_msgSender(), spender, subtractedValue);
        } else {
            _;
        }
    }

    modifier onlyRecoveryAdmin() {
        require(_msgSender() == recoveryAdmin, "LERC20: Must be recovery admin");
        _;
    }

    // --- LOSSLESS management ---

    function getAdmin() external view returns (address) {
        return admin;
    }

    function transferOutBlacklistedFunds(address[] calldata from) external {
        require(_msgSender() == address(lossless), "LERC20: Only lossless contract");
        for (uint256 i = 0; i < from.length; i++) {
            _transfer(from[i], address(lossless), balanceOf(from[i]));
        }
    }

    function setLosslessAdmin(address newAdmin) public onlyRecoveryAdmin {
        emit AdminChanged(admin, newAdmin);
        admin = newAdmin;
    }

    function transferRecoveryAdminOwnership(address candidate, bytes32 keyHash)
        public
        onlyRecoveryAdmin
    {
        recoveryAdminCanditate = candidate;
        recoveryAdminKeyHash = keyHash;
        emit RecoveryAdminChangeProposed(candidate);
    }

    function acceptRecoveryAdminOwnership(bytes memory key) external {
        require(_msgSender() == recoveryAdminCanditate, "LERC20: Must be canditate");
        require(keccak256(key) == recoveryAdminKeyHash, "LERC20: Invalid key");
        emit RecoveryAdminChanged(recoveryAdmin, recoveryAdminCanditate);
        recoveryAdmin = recoveryAdminCanditate;
    }

    function proposeLosslessTurnOff() public onlyRecoveryAdmin {
        // solhint-disable-next-line not-rely-on-time
        losslessTurnOffTimestamp = block.timestamp + timelockPeriod;
        isLosslessTurnOffProposed = true;
        emit LosslessTurnOffProposed(losslessTurnOffTimestamp);
    }

    function executeLosslessTurnOff() public onlyRecoveryAdmin {
        require(isLosslessTurnOffProposed, "LERC20: TurnOff not proposed");
        // solhint-disable-next-line not-rely-on-time
        require(losslessTurnOffTimestamp <= block.timestamp, "LERC20: Time lock in progress");
        isLosslessOn = false;
        isLosslessTurnOffProposed = false;
        emit LosslessTurnedOff();
    }

    function executeLosslessTurnOn() public onlyRecoveryAdmin {
        isLosslessTurnOffProposed = false;
        isLosslessOn = true;
        emit LosslessTurnedOn();
    }

    // --- ERC20 methods ---

    function name() public view virtual returns (string memory) {
        return _name;
    }

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        lssTransfer(recipient, amount)
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        virtual
        override
        lssAprove(spender, amount)
        returns (bool)
    {
        require(
            (amount == 0) || (_allowances[_msgSender()][spender] == 0),
            "LERC20: Cannot change non zero allowance"
        );
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override lssTransferFrom(sender, recipient, amount) returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "LERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        lssIncreaseAllowance(spender, addedValue)
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        lssDecreaseAllowance(spender, subtractedValue)
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "LERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "LERC20: transfer from the zero address");
        require(recipient != address(0), "LERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "LERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "LERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "LERC20: approve from the zero address");
        require(spender != address(0), "LERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }
}

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

pragma solidity ^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 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) {
        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;
    }
}

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

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 1
  },
  "evmVersion": "london",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposed","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"candidate","type":"address"}],"name":"RecoveryAdminChangeProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"RecoveryAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLosslessTurnOffProposed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600b805461ff0019166101001790553480156200002057600080fd5b5060405162001cbf38038062001cbf8339810160408190526200004391620002da565b84604051806040016040528060078152602001662ca23930b3b7b760c91b815250604051806040016040528060038152602001622ca22960e91b8152508686868685600390805190602001906200009c92919062000217565b508451620000b290600490602088019062000217565b50600880546001600160a01b0319166001600160a01b038616908117909155620000dd90886200012f565b600580546001600160a01b039485166001600160a01b0319909116179055600991909155600b805491909216620100000262010000600160b01b0319909116179055506200039c975050505050505050565b6001600160a01b0382166200018a5760405162461bcd60e51b815260206004820181905260248201527f4c45524332303a206d696e7420746f20746865207a65726f2061646472657373604482015260640160405180910390fd5b80600260008282546200019e919062000338565b90915550506001600160a01b03821660009081526020819052604081208054839290620001cd90849062000338565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b82805462000225906200035f565b90600052602060002090601f01602090048101928262000249576000855562000294565b82601f106200026457805160ff191683800117855562000294565b8280016001018555821562000294579182015b828111156200029457825182559160200191906001019062000277565b50620002a2929150620002a6565b5090565b5b80821115620002a25760008155600101620002a7565b80516001600160a01b0381168114620002d557600080fd5b919050565b600080600080600060a08688031215620002f357600080fd5b855194506200030560208701620002bd565b93506200031560408701620002bd565b9250606086015191506200032c60808701620002bd565b90509295509295909350565b600082198211156200035a57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200037457607f821691505b602082108114156200039657634e487b7160e01b600052602260045260246000fd5b50919050565b61191380620003ac6000396000f3fe608060405234801561001057600080fd5b506004361061013e5760003560e01c806306fdde0314610143578063095ea7b31461016157806318160ddd1461018457806323b872dd146101965780632baa3c9e146101a95780632ecaf675146101be578063313ce567146101c757806339509351146101d657806342966c68146101e95780635b8a194a146101fc5780635f6529a31461020457806361086b001461022f5780636e9960c31461023857806370a082311461024957806393310ffe14610272578063936af9111461028557806395d89b4114610298578063a457c2d7146102a0578063a9059cbb146102b3578063b38fe957146102c6578063b5c22877146102ce578063ccfa214f146102e1578063d6e242b8146102f3578063dd62ed3e146102fb578063efab831c14610334578063f851a44014610341575b600080fd5b61014b610354565b6040516101589190611423565b60405180910390f35b61017461016f366004611494565b6103e6565b6040519015158152602001610158565b6002545b604051908152602001610158565b6101746101a43660046114be565b61059e565b6101bc6101b73660046114fa565b610767565b005b61018860095481565b60405160128152602001610158565b6101746101e4366004611494565b6107f6565b6101bc6101f736600461151c565b6108de565b6101bc610944565b600554610217906001600160a01b031681565b6040516001600160a01b039091168152602001610158565b610188600a5481565b6008546001600160a01b0316610217565b6101886102573660046114fa565b6001600160a01b031660009081526020819052604090205490565b6101bc610280366004611494565b6109b1565b6101bc610293366004611535565b610a34565b61014b610b2a565b6101746102ae366004611494565b610b39565b6101746102c1366004611494565b610ca0565b6101bc610d5e565b6101bc6102dc3660046115bf565b610e6a565b600b5461017490610100900460ff1681565b6101bc610f7a565b61018861030936600461166f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b546101749060ff1681565b600854610217906001600160a01b031681565b606060038054610363906116a2565b80601f016020809104026020016040519081016040528092919081815260200182805461038f906116a2565b80156103dc5780601f106103b1576101008083540402835291602001916103dc565b820191906000526020600020905b8154815290600101906020018083116103bf57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff161561053e57600b546201000090046001600160a01b03166347abf3be3384846040518463ffffffff1660e01b8152600401610437939291906116dd565b600060405180830381600087803b15801561045157600080fd5b505af1158015610465573d6000803e3d6000fd5b50505050836000148061049957503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6104be5760405162461bcd60e51b81526004016104b590611701565b60405180910390fd5b6104ca335b8686611008565b600b54600193506201000090046001600160a01b031663900f66ef335b84846040518463ffffffff1660e01b8152600401610507939291906116dd565b600060405180830381600087803b15801561052157600080fd5b505af1158015610535573d6000803e3d6000fd5b50505050610596565b83158061056c57503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6105885760405162461bcd60e51b81526004016104b590611701565b610591336104c3565b600192505b505092915050565b6000838383600b60019054906101000a900460ff16156106fe57600b546201000090046001600160a01b031663379f5c69338585856040518563ffffffff1660e01b81526004016105f29493929190611749565b600060405180830381600087803b15801561060c57600080fd5b505af1158015610620573d6000803e3d6000fd5b5050505061062f878787611130565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156106735760405162461bcd60e51b81526004016104b590611773565b61068888335b61068389856117c0565b611008565b50600b54600194506201000090046001600160a01b031663a56e8adf338585856040518563ffffffff1660e01b81526004016106c79493929190611749565b600060405180830381600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b5050505061075d565b610709878787611130565b6001600160a01b03871660009081526001602090815260408083203384529091529020548581101561074d5760405162461bcd60e51b81526004016104b590611773565b6107578833610679565b60019450505b5050509392505050565b6005546001600160a01b0316336001600160a01b03161461079a5760405162461bcd60e51b81526004016104b5906117d7565b6008546040516001600160a01b038084169216907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f90600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b60008282600b60019054906101000a900460ff16156108d557600b546201000090046001600160a01b031663cf5961bb3384846040518463ffffffff1660e01b8152600401610847939291906116dd565b600060405180830381600087803b15801561086157600080fd5b505af1158015610875573d6000803e3d6000fd5b505050506108b46108833390565b3360009081526001602090815260408083206001600160a01b038b168452909152902054879061068390889061180e565b600b54600193506201000090046001600160a01b03166334d01aa8336104e7565b61059133610883565b6008546001600160a01b031633146109375760405162461bcd60e51b815260206004820152601c60248201527b2ca2291d1031b0b63632b91034b9903737ba103a34329030b236b4b760211b60448201526064016104b5565b61094133826112e6565b50565b6005546001600160a01b0316336001600160a01b0316146109775760405162461bcd60e51b81526004016104b5906117d7565b600b805461ffff19166101001790556040517fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7090600090a1565b6005546001600160a01b0316336001600160a01b0316146109e45760405162461bcd60e51b81526004016104b5906117d7565b600680546001600160a01b0319166001600160a01b03841690811790915560078290556040517fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3690600090a25050565b600b546201000090046001600160a01b0316336001600160a01b031614610a9d5760405162461bcd60e51b815260206004820152601e60248201527f4c45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000060448201526064016104b5565b60005b81811015610b2557610b13838383818110610abd57610abd611826565b9050602002016020810190610ad291906114fa565b600b546201000090046001600160a01b0316610b0e868686818110610af957610af9611826565b905060200201602081019061025791906114fa565b611130565b80610b1d8161183c565b915050610aa0565b505050565b606060048054610363906116a2565b60008282600b60019054906101000a900460ff1615610c4757600b546201000090046001600160a01b031663568c75a93384846040518463ffffffff1660e01b8152600401610b8a939291906116dd565b600060405180830381600087803b158015610ba457600080fd5b505af1158015610bb8573d6000803e3d6000fd5b50505050600060016000610bc93390565b6001600160a01b03908116825260208083019390935260409182016000908120918a1681529252902054905084811015610c155760405162461bcd60e51b81526004016104b590611857565b610c25335b8761068388856117c0565b50600b54600193506201000090046001600160a01b031663ded1f4d0336104e7565b3360009081526001602090815260408083206001600160a01b038916845290915290205484811015610c8b5760405162461bcd60e51b81526004016104b590611857565b610c9433610c1a565b50600195945050505050565b60008282600b60019054906101000a900460ff1615610d5557600b546201000090046001600160a01b0316631ffb811f3384846040518463ffffffff1660e01b8152600401610cf1939291906116dd565b600060405180830381600087803b158015610d0b57600080fd5b505af1158015610d1f573d6000803e3d6000fd5b50505050610d34610d2d3390565b8686611130565b600b54600193506201000090046001600160a01b031663f49062ca336104e7565b61059133610d2d565b6005546001600160a01b0316336001600160a01b031614610d915760405162461bcd60e51b81526004016104b5906117d7565b600b5460ff16610de25760405162461bcd60e51b815260206004820152601c60248201527b13115490cc8c0e88151d5c9b93d999881b9bdd081c1c9bdc1bdcd95960221b60448201526064016104b5565b42600a541115610e345760405162461bcd60e51b815260206004820152601d60248201527f4c45524332303a2054696d65206c6f636b20696e2070726f677265737300000060448201526064016104b5565b600b805461ffff191690556040517f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a90600090a1565b6006546001600160a01b0316336001600160a01b031614610ec95760405162461bcd60e51b81526020600482015260196024820152784c45524332303a204d7573742062652063616e64697461746560381b60448201526064016104b5565b6007548151602083012014610f165760405162461bcd60e51b81526020600482015260136024820152724c45524332303a20496e76616c6964206b657960681b60448201526064016104b5565b6006546005546040516001600160a01b0392831692909116907f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb90600090a350600654600580546001600160a01b0319166001600160a01b03909216919091179055565b6005546001600160a01b0316336001600160a01b031614610fad5760405162461bcd60e51b81526004016104b5906117d7565b600954610fba904261180e565b600a819055600b805460ff191660011790556040517f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb15870991610ffe9190815260200190565b60405180910390a1565b6001600160a01b03831661106c5760405162461bcd60e51b815260206004820152602560248201527f4c45524332303a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b5565b6001600160a01b0382166110ce5760405162461bcd60e51b815260206004820152602360248201527f4c45524332303a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166111955760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016104b5565b6001600160a01b0382166111f75760405162461bcd60e51b8152602060048201526024808201527f4c45524332303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016104b5565b6001600160a01b0383166000908152602081905260409020548181101561125e5760405162461bcd60e51b815260206004820152602760248201526000805160206118be83398151915260448201526662616c616e636560c81b60648201526084016104b5565b61126882826117c0565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061129e90849061180e565b92505081905550826001600160a01b0316846001600160a01b031660008051602061189e833981519152846040516112d891815260200190565b60405180910390a350505050565b6001600160a01b0382166113465760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104b5565b6001600160a01b038216600090815260208190526040902054818110156113ba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104b5565b6113c482826117c0565b6001600160a01b038416600090815260208190526040812091909155600280548492906113f29084906117c0565b90915550506040518281526000906001600160a01b0385169060008051602061189e83398151915290602001611123565b600060208083528351808285015260005b8181101561145057858101830151858201604001528201611434565b81811115611462576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461148f57600080fd5b919050565b600080604083850312156114a757600080fd5b6114b083611478565b946020939093013593505050565b6000806000606084860312156114d357600080fd5b6114dc84611478565b92506114ea60208501611478565b9150604084013590509250925092565b60006020828403121561150c57600080fd5b61151582611478565b9392505050565b60006020828403121561152e57600080fd5b5035919050565b6000806020838503121561154857600080fd5b82356001600160401b038082111561155f57600080fd5b818501915085601f83011261157357600080fd5b81358181111561158257600080fd5b8660208260051b850101111561159757600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156115d157600080fd5b81356001600160401b03808211156115e857600080fd5b818401915084601f8301126115fc57600080fd5b81358181111561160e5761160e6115a9565b604051601f8201601f19908116603f01168101908382118183101715611636576116366115a9565b8160405282815287602084870101111561164f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561168257600080fd5b61168b83611478565b915061169960208401611478565b90509250929050565b600181811c908216806116b657607f821691505b602082108114156116d757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208082526028908201527f4c45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f20616040820152676c6c6f77616e636560c01b606082015260800190565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b60208082526029908201526000805160206118be833981519152604082015268616c6c6f77616e636560b81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000828210156117d2576117d26117aa565b500390565b6020808252601e908201527f4c45524332303a204d757374206265207265636f766572792061646d696e0000604082015260600190565b60008219821115611821576118216117aa565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611850576118506117aa565b5060010190565b60208082526026908201527f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60408201526577207a65726f60d01b60608201526080019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4c45524332303a207472616e7366657220616d6f756e74206578636565647320a264697066735822122062538cf17d950a660a79f87cbc649a26e24c761f9383c77d53e8df75c24cd25c64736f6c6343000809003300000000000000000000000000000000000000000052b7d2dcc80cd2e4000000000000000000000000000000ec686277f7c3c4e7909b93d9006a4145ec0e67cd0000000000000000000000003ff9b58b687fa93bd4b0a791ca5c81db9f1e1cb00000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e5b5753cfead850f7069b05b3a76645af63a9102

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

00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000000000000000000000000000ec686277f7c3c4e7909b93d9006a4145ec0e67cd0000000000000000000000003ff9b58b687fa93bd4b0a791ca5c81db9f1e1cb00000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e5b5753cfead850f7069b05b3a76645af63a9102

-----Decoded View---------------
Arg [0] : totalSupply_ (uint256): 100000000000000000000000000
Arg [1] : admin_ (address): 0xec686277f7c3c4e7909b93d9006a4145ec0e67cd
Arg [2] : recoveryAdmin_ (address): 0x3ff9b58b687fa93bd4b0a791ca5c81db9f1e1cb0
Arg [3] : timelockPeriod_ (uint256): 86400
Arg [4] : lossless_ (address): 0xe5b5753cfead850f7069b05b3a76645af63a9102

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000
Arg [1] : 000000000000000000000000ec686277f7c3c4e7909b93d9006a4145ec0e67cd
Arg [2] : 0000000000000000000000003ff9b58b687fa93bd4b0a791ca5c81db9f1e1cb0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [4] : 000000000000000000000000e5b5753cfead850f7069b05b3a76645af63a9102


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.