ETH Price: $2,690.89 (+1.61%)

Token

New Order (NEWO)
 

Overview

Max Total Supply

800,000,000 NEWO

Holders

1,603 (0.00%)

Market

Price

$0.00 @ 0.000002 ETH

Onchain Market Cap

$3,862,792.00

Circulating Supply Market Cap

$819,373.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000007771999013 NEWO

Value
$0.00 ( ~0 Eth) [0.0000%]
0x1b772387d2401e94466c4d21cc5c126592695da4
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

New Order is an open and permissionless incubation DAO, generating long-term value by launching decentralized financial protocols, applications, tools, and infrastructure across layer one ecosystems and exploring new digital asset classes like NFTs, data tokens and more.

Market

Volume (24H):$29.16
Market Capitalization:$819,373.00
Circulating Supply:169,695,501.00 NEWO
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GovernanceTokenPausable

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-01
*/

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.9;

/**
 * @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) {
        return msg.data;
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol


// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)

//pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

//pragma solidity ^0.8.0;


/**
 * @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() {
        _transferOwnership(_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 {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

//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);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

//pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/ERC20.sol)

//pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// File: contracts/newGovToken.sol


//pragma solidity ^0.8.9;




/**
@title TimelockToken contract - implements an ERC20 governance token with built-in locking capabilities to implement a vesting schedule with a vesting cliff.

Based on 
https://github.com/gnosis/disbursement-contracts/blob/master/contracts/Disbursement.sol
 +
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol
**/

interface ILOCKABLETOKEN{
    /**
     * @dev Returns the amount of tokens that are unlocked i.e. transferrable by `who`
     *
     */
    function balanceUnlocked(address who) external view returns (uint256 amount);
    /**
     * @dev Returns the amount of tokens that are locked and not transferrable by `who`
     *
     */
    function balanceLocked(address who) external view returns (uint256 amount);

    /**
     * @dev Emitted when the token lockup is initialized  
     * `tokenHolder` is the address the lock pertains to
     *  `amountLocked` is the amount of tokens locked 
     *  `vestTime` unix time when tokens will start vesting
     *  `cliffTime` unix time before which locked tokens are not transferrable
     *  `period` is the time interval over which tokens vest
     */
    event  NewTokenLock(address tokenHolder, uint256 amountLocked, uint256 vestTime, uint256 cliffTime, uint256 period);

} 


contract GovernanceTokenPausable is ERC20, ILOCKABLETOKEN, Ownable, Pausable{

     /*
     *  Events
     */

    /*
     *  Storage
     */
    
    //token locking state variables
    mapping(address => uint256) public disbursementPeriod;
    mapping(address => uint256) public vestTime;
    mapping(address => uint256) public cliffTime;
    mapping(address => uint256) public timelockedTokens;

    /*
     *  Public functions
     */

    constructor(string memory name_, string memory symbol_, uint256 amount_, address deployer_) ERC20(name_, symbol_){
        _mint(deployer_, amount_);
    }

    /* 
     @dev function to lock tokens, only if there are no tokens currently locked
     @param timelockedTokens_ number of tokens to lock up
     @param `vestTime_` unix time when tokens will start vesting
     @param `cliffTime_` unix time before which locked tokens are not transferrable
     @param `disbursementPeriod_` is the time interval over which tokens vest
     */
    function newTimeLock(uint256 timelockedTokens_, uint256 vestTime_, uint256 cliffTime_, uint256 disbursementPeriod_)
        external
    {
        require(timelockedTokens_ > 0, "Cannot timelock 0 tokens");
        require(timelockedTokens_ <= balanceOf(msg.sender), "Cannot timelock more tokens than current balance");
        require(balanceLocked(msg.sender) == 0, "Cannot timelock additional tokens while tokens already locked");
        require(disbursementPeriod_ > 0, "Cannot have disbursement period of 0");
        require(vestTime_ > block.timestamp, "vesting start must be in the future");
        require(cliffTime_ >= vestTime_, "cliff must be at same time as vesting starts (or later)");

        disbursementPeriod[msg.sender] = disbursementPeriod_;
        vestTime[msg.sender] = vestTime_;
        cliffTime[msg.sender] = cliffTime_;
        timelockedTokens[msg.sender] = timelockedTokens_;
        emit NewTokenLock(msg.sender, timelockedTokens_, vestTime_, cliffTime_, disbursementPeriod_);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when the contract is not paused
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override whenNotPaused
    {
        uint maxTokens = calcMaxTransferrable(from);
        if (from != address(0x0) && amount > maxTokens){
          revert("amount exceeds available unlocked tokens");
        }
    }

   
    /// @dev Calculates the maximum amount of transferrable tokens for address `who`
    /// @return Number of transferrable tokens 
    function calcMaxTransferrable(address who)
        public
        view
        returns (uint256)
    {
        if(timelockedTokens[who] == 0){
            return balanceOf(who);
        }
        uint256 maxTokens;
        if( vestTime[who] > block.timestamp || cliffTime[who] > block.timestamp){
            maxTokens = 0;
        } else {
            maxTokens = timelockedTokens[who] * (block.timestamp - vestTime[who]) / disbursementPeriod[who];
        }
        if (timelockedTokens[who] < maxTokens){
          return balanceOf(who);
        }
        return balanceOf(who) + maxTokens - timelockedTokens[who];
    }
    
    /// @dev Calculates the amount of locked tokens for address `who`
    /// @return amount of locked tokens 
    function balanceLocked(address who) 
        public 
        virtual 
        override 
        view 
        returns (uint256 amount){

        if(timelockedTokens[who] == 0){
            return 0;
        }
        if( vestTime[who] > block.timestamp || cliffTime[who] > block.timestamp){
            return timelockedTokens[who];
        }
        uint256 maxTokens = timelockedTokens[who] * (block.timestamp - vestTime[who]) / disbursementPeriod[who];
        if(maxTokens >= timelockedTokens[who]){
            return 0;
        }
        return timelockedTokens[who] - maxTokens;

    }
    /// @dev Calculates the maximum amount of transferrable tokens for address `who`. Alias for calcMaxTransferrable for backwards compatibility.
    /// @return amount of transferrable tokens 
    function balanceUnlocked(address who) 
        external 
        view 
        virtual 
        override 
        returns (uint256 amount){
        return calcMaxTransferrable(who);
    }

    function pause() 
        external 
        onlyOwner
    {
        _pause();
    }

    function unPause() 
        external 
        onlyOwner
    {
        _unpause();
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"address","name":"deployer_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"address","name":"tokenHolder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountLocked","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"vestTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"cliffTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"period","type":"uint256"}],"name":"NewTokenLock","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"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":"who","type":"address"}],"name":"balanceLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceUnlocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"calcMaxTransferrable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cliffTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"disbursementPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timelockedTokens_","type":"uint256"},{"internalType":"uint256","name":"vestTime_","type":"uint256"},{"internalType":"uint256","name":"cliffTime_","type":"uint256"},{"internalType":"uint256","name":"disbursementPeriod_","type":"uint256"}],"name":"newTimeLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timelockedTokens","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vestTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5060405162001bb338038062001bb38339810160408190526200003491620005b1565b8351849084906200004d9060039060208501906200043e565b508051620000639060049060208401906200043e565b505050620000806200007a620000a360201b60201c565b620000a7565b6005805460ff60a01b19169055620000998183620000f9565b5050505062000713565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001555760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200016360008383620001f0565b80600260008282546200017791906200065c565b90915550506001600160a01b03821660009081526020819052604081208054839290620001a69084906200065c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b62000204600554600160a01b900460ff1690565b15620002465760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200014c565b60006200025384620002d3565b90506001600160a01b038416158015906200026d57508082115b15620002cd5760405162461bcd60e51b815260206004820152602860248201527f616d6f756e74206578636565647320617661696c61626c6520756e6c6f636b656044820152676420746f6b656e7360c01b60648201526084016200014c565b50505050565b6001600160a01b0381166000908152600960205260408120546200030d57506001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600760205260408120544210806200034b57506001600160a01b03831660009081526008602052604090205442105b156200035a57506000620003bf565b6001600160a01b0383166000908152600660209081526040808320546007909252909120546200038b904262000677565b6001600160a01b038516600090815260096020526040902054620003b0919062000691565b620003bc9190620006b3565b90505b6001600160a01b03831660009081526009602052604090205481111562000401576001600160a01b0383166000908152602081905260409020545b9392505050565b6001600160a01b0383166000908152600960209081526040808320549183905290912054620004329083906200065c565b620003fa919062000677565b8280546200044c90620006d6565b90600052602060002090601f016020900481019282620004705760008555620004bb565b82601f106200048b57805160ff1916838001178555620004bb565b82800160010185558215620004bb579182015b82811115620004bb5782518255916020019190600101906200049e565b50620004c9929150620004cd565b5090565b5b80821115620004c95760008155600101620004ce565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200050c57600080fd5b81516001600160401b0380821115620005295762000529620004e4565b604051601f8301601f19908116603f01168101908282118183101715620005545762000554620004e4565b816040528381526020925086838588010111156200057157600080fd5b600091505b8382101562000595578582018301518183018401529082019062000576565b83821115620005a75760008385830101525b9695505050505050565b60008060008060808587031215620005c857600080fd5b84516001600160401b0380821115620005e057600080fd5b620005ee88838901620004fa565b955060208701519150808211156200060557600080fd5b506200061487828801620004fa565b60408701516060880151919550935090506001600160a01b03811681146200063b57600080fd5b939692955090935050565b634e487b7160e01b600052601160045260246000fd5b6000821982111562000672576200067262000646565b500190565b6000828210156200068c576200068c62000646565b500390565b6000816000190483118215151615620006ae57620006ae62000646565b500290565b600082620006d157634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680620006eb57607f821691505b602082108114156200070d57634e487b7160e01b600052602260045260246000fd5b50919050565b61149080620007236000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80638456cb59116100de578063a9059cbb11610097578063d4e5be2b11610071578063d4e5be2b14610342578063dd62ed3e14610362578063f2fde38b1461039b578063f7b188a5146103ae57600080fd5b8063a9059cbb146102ef578063abcbab8d14610302578063afcc634c1461032257600080fd5b80638456cb591461027e5780638da5cb5b1461028657806392d62f78146102a157806395d89b41146102b4578063a457c2d7146102bc578063a6e59986146102cf57600080fd5b8063395093511161013057806339509351146102005780633f89a91c146102135780635c975abb146102265780635fc3a3121461023857806370a082311461024b578063715018a61461027457600080fd5b80630451f5201461017857806306fdde031461019e578063095ea7b3146101b357806318160ddd146101d657806323b872dd146101de578063313ce567146101f1575b600080fd5b61018b610186366004611229565b6103b6565b6040519081526020015b60405180910390f35b6101a66103c7565b6040516101959190611244565b6101c66101c1366004611299565b610459565b6040519015158152602001610195565b60025461018b565b6101c66101ec3660046112c3565b61046f565b60405160128152602001610195565b6101c661020e366004611299565b61051e565b61018b610221366004611229565b61055a565b600554600160a01b900460ff166101c6565b61018b610246366004611229565b6106b8565b61018b610259366004611229565b6001600160a01b031660009081526020819052604090205490565b61027c6107e5565b005b61027c61081b565b6005546040516001600160a01b039091168152602001610195565b61027c6102af3660046112ff565b61084d565b6101a6610b42565b6101c66102ca366004611299565b610b51565b61018b6102dd366004611229565b60076020526000908152604090205481565b6101c66102fd366004611299565b610bea565b61018b610310366004611229565b60086020526000908152604090205481565b61018b610330366004611229565b60066020526000908152604090205481565b61018b610350366004611229565b60096020526000908152604090205481565b61018b610370366004611331565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61027c6103a9366004611229565b610bf7565b61027c610c92565b60006103c18261055a565b92915050565b6060600380546103d690611364565b80601f016020809104026020016040519081016040528092919081815260200182805461040290611364565b801561044f5780601f106104245761010080835404028352916020019161044f565b820191906000526020600020905b81548152906001019060200180831161043257829003601f168201915b5050505050905090565b6000610466338484610cc4565b50600192915050565b600061047c848484610de8565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156105065760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105138533858403610cc4565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104669185906105559086906113b5565b610cc4565b6001600160a01b038116600090815260096020526040812054610595576001600160a01b0382166000908152602081905260409020546103c1565b6001600160a01b0382166000908152600760205260408120544210806105d257506001600160a01b03831660009081526008602052604090205442105b156105df5750600061063e565b6001600160a01b03831660009081526006602090815260408083205460079092529091205461060e90426113cd565b6001600160a01b03851660009081526009602052604090205461063191906113e4565b61063b9190611403565b90505b6001600160a01b03831660009081526009602052604090205481111561067f576001600160a01b0383166000908152602081905260409020545b9392505050565b6001600160a01b03831660009081526009602090815260408083205491839052909120546106ae9083906113b5565b61067891906113cd565b6001600160a01b0381166000908152600960205260408120546106dd57506000919050565b6001600160a01b03821660009081526007602052604090205442108061071a57506001600160a01b03821660009081526008602052604090205442105b1561073b57506001600160a01b031660009081526009602052604090205490565b6001600160a01b038216600090815260066020908152604080832054600790925282205461076990426113cd565b6001600160a01b03851660009081526009602052604090205461078c91906113e4565b6107969190611403565b6001600160a01b03841660009081526009602052604090205490915081106107c15750600092915050565b6001600160a01b0383166000908152600960205260409020546106789082906113cd565b6005546001600160a01b0316331461080f5760405162461bcd60e51b81526004016104fd90611425565b6108196000610fc3565b565b6005546001600160a01b031633146108455760405162461bcd60e51b81526004016104fd90611425565b610819611015565b6000841161089d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742074696d656c6f636b203020746f6b656e73000000000000000060448201526064016104fd565b336000908152602081905260409020548411156109155760405162461bcd60e51b815260206004820152603060248201527f43616e6e6f742074696d656c6f636b206d6f726520746f6b656e73207468616e60448201526f2063757272656e742062616c616e636560801b60648201526084016104fd565b61091e336106b8565b156109915760405162461bcd60e51b815260206004820152603d60248201527f43616e6e6f742074696d656c6f636b206164646974696f6e616c20746f6b656e60448201527f73207768696c6520746f6b656e7320616c7265616479206c6f636b656400000060648201526084016104fd565b600081116109ed5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420686176652064697362757273656d656e7420706572696f642060448201526306f6620360e41b60648201526084016104fd565b428311610a485760405162461bcd60e51b815260206004820152602360248201527f76657374696e67207374617274206d75737420626520696e207468652066757460448201526275726560e81b60648201526084016104fd565b82821015610abe5760405162461bcd60e51b815260206004820152603760248201527f636c696666206d7573742062652061742073616d652074696d6520617320766560448201527f7374696e672073746172747320286f72206c617465722900000000000000000060648201526084016104fd565b3360008181526006602090815260408083208590556007825280832087905560088252808320869055600982529182902087905581519283528201869052810184905260608101839052608081018290527f14dd38da30c9da84bbafc0a82aca4fe12d2802342bdff3aee7cba29b3dace69c9060a00160405180910390a150505050565b6060600480546103d690611364565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610bd35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104fd565b610be03385858403610cc4565b5060019392505050565b6000610466338484610de8565b6005546001600160a01b03163314610c215760405162461bcd60e51b81526004016104fd90611425565b6001600160a01b038116610c865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104fd565b610c8f81610fc3565b50565b6005546001600160a01b03163314610cbc5760405162461bcd60e51b81526004016104fd90611425565b6108196110ba565b6001600160a01b038316610d265760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104fd565b6001600160a01b038216610d875760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104fd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e4c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104fd565b6001600160a01b038216610eae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104fd565b610eb983838361113e565b6001600160a01b03831660009081526020819052604090205481811015610f315760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104fd565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610f689084906113b5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fb491815260200190565b60405180910390a35b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600554600160a01b900460ff16156110625760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104fd565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861109d3390565b6040516001600160a01b03909116815260200160405180910390a1565b600554600160a01b900460ff1661110a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104fd565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361109d565b600554600160a01b900460ff161561118b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104fd565b60006111968461055a565b90506001600160a01b038416158015906111af57508082115b15610fbd5760405162461bcd60e51b815260206004820152602860248201527f616d6f756e74206578636565647320617661696c61626c6520756e6c6f636b656044820152676420746f6b656e7360c01b60648201526084016104fd565b80356001600160a01b038116811461122457600080fd5b919050565b60006020828403121561123b57600080fd5b6106788261120d565b600060208083528351808285015260005b8181101561127157858101830151858201604001528201611255565b81811115611283576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156112ac57600080fd5b6112b58361120d565b946020939093013593505050565b6000806000606084860312156112d857600080fd5b6112e18461120d565b92506112ef6020850161120d565b9150604084013590509250925092565b6000806000806080858703121561131557600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561134457600080fd5b61134d8361120d565b915061135b6020840161120d565b90509250929050565b600181811c9082168061137857607f821691505b6020821081141561139957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156113c8576113c861139f565b500190565b6000828210156113df576113df61139f565b500390565b60008160001904831182151516156113fe576113fe61139f565b500290565b60008261142057634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220e6a5e2a238b751fe8c40f472a4a459e529735c43f545cc727d2d42f69a003e7e64736f6c634300080b0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000295be96e64066972000000000000000000000000000000026104955b8280c28ca392f42422fdbdbf93c700300000000000000000000000000000000000000000000000000000000000000094e6577204f72646572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e45574f00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c80638456cb59116100de578063a9059cbb11610097578063d4e5be2b11610071578063d4e5be2b14610342578063dd62ed3e14610362578063f2fde38b1461039b578063f7b188a5146103ae57600080fd5b8063a9059cbb146102ef578063abcbab8d14610302578063afcc634c1461032257600080fd5b80638456cb591461027e5780638da5cb5b1461028657806392d62f78146102a157806395d89b41146102b4578063a457c2d7146102bc578063a6e59986146102cf57600080fd5b8063395093511161013057806339509351146102005780633f89a91c146102135780635c975abb146102265780635fc3a3121461023857806370a082311461024b578063715018a61461027457600080fd5b80630451f5201461017857806306fdde031461019e578063095ea7b3146101b357806318160ddd146101d657806323b872dd146101de578063313ce567146101f1575b600080fd5b61018b610186366004611229565b6103b6565b6040519081526020015b60405180910390f35b6101a66103c7565b6040516101959190611244565b6101c66101c1366004611299565b610459565b6040519015158152602001610195565b60025461018b565b6101c66101ec3660046112c3565b61046f565b60405160128152602001610195565b6101c661020e366004611299565b61051e565b61018b610221366004611229565b61055a565b600554600160a01b900460ff166101c6565b61018b610246366004611229565b6106b8565b61018b610259366004611229565b6001600160a01b031660009081526020819052604090205490565b61027c6107e5565b005b61027c61081b565b6005546040516001600160a01b039091168152602001610195565b61027c6102af3660046112ff565b61084d565b6101a6610b42565b6101c66102ca366004611299565b610b51565b61018b6102dd366004611229565b60076020526000908152604090205481565b6101c66102fd366004611299565b610bea565b61018b610310366004611229565b60086020526000908152604090205481565b61018b610330366004611229565b60066020526000908152604090205481565b61018b610350366004611229565b60096020526000908152604090205481565b61018b610370366004611331565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61027c6103a9366004611229565b610bf7565b61027c610c92565b60006103c18261055a565b92915050565b6060600380546103d690611364565b80601f016020809104026020016040519081016040528092919081815260200182805461040290611364565b801561044f5780601f106104245761010080835404028352916020019161044f565b820191906000526020600020905b81548152906001019060200180831161043257829003601f168201915b5050505050905090565b6000610466338484610cc4565b50600192915050565b600061047c848484610de8565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156105065760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105138533858403610cc4565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104669185906105559086906113b5565b610cc4565b6001600160a01b038116600090815260096020526040812054610595576001600160a01b0382166000908152602081905260409020546103c1565b6001600160a01b0382166000908152600760205260408120544210806105d257506001600160a01b03831660009081526008602052604090205442105b156105df5750600061063e565b6001600160a01b03831660009081526006602090815260408083205460079092529091205461060e90426113cd565b6001600160a01b03851660009081526009602052604090205461063191906113e4565b61063b9190611403565b90505b6001600160a01b03831660009081526009602052604090205481111561067f576001600160a01b0383166000908152602081905260409020545b9392505050565b6001600160a01b03831660009081526009602090815260408083205491839052909120546106ae9083906113b5565b61067891906113cd565b6001600160a01b0381166000908152600960205260408120546106dd57506000919050565b6001600160a01b03821660009081526007602052604090205442108061071a57506001600160a01b03821660009081526008602052604090205442105b1561073b57506001600160a01b031660009081526009602052604090205490565b6001600160a01b038216600090815260066020908152604080832054600790925282205461076990426113cd565b6001600160a01b03851660009081526009602052604090205461078c91906113e4565b6107969190611403565b6001600160a01b03841660009081526009602052604090205490915081106107c15750600092915050565b6001600160a01b0383166000908152600960205260409020546106789082906113cd565b6005546001600160a01b0316331461080f5760405162461bcd60e51b81526004016104fd90611425565b6108196000610fc3565b565b6005546001600160a01b031633146108455760405162461bcd60e51b81526004016104fd90611425565b610819611015565b6000841161089d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742074696d656c6f636b203020746f6b656e73000000000000000060448201526064016104fd565b336000908152602081905260409020548411156109155760405162461bcd60e51b815260206004820152603060248201527f43616e6e6f742074696d656c6f636b206d6f726520746f6b656e73207468616e60448201526f2063757272656e742062616c616e636560801b60648201526084016104fd565b61091e336106b8565b156109915760405162461bcd60e51b815260206004820152603d60248201527f43616e6e6f742074696d656c6f636b206164646974696f6e616c20746f6b656e60448201527f73207768696c6520746f6b656e7320616c7265616479206c6f636b656400000060648201526084016104fd565b600081116109ed5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420686176652064697362757273656d656e7420706572696f642060448201526306f6620360e41b60648201526084016104fd565b428311610a485760405162461bcd60e51b815260206004820152602360248201527f76657374696e67207374617274206d75737420626520696e207468652066757460448201526275726560e81b60648201526084016104fd565b82821015610abe5760405162461bcd60e51b815260206004820152603760248201527f636c696666206d7573742062652061742073616d652074696d6520617320766560448201527f7374696e672073746172747320286f72206c617465722900000000000000000060648201526084016104fd565b3360008181526006602090815260408083208590556007825280832087905560088252808320869055600982529182902087905581519283528201869052810184905260608101839052608081018290527f14dd38da30c9da84bbafc0a82aca4fe12d2802342bdff3aee7cba29b3dace69c9060a00160405180910390a150505050565b6060600480546103d690611364565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610bd35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104fd565b610be03385858403610cc4565b5060019392505050565b6000610466338484610de8565b6005546001600160a01b03163314610c215760405162461bcd60e51b81526004016104fd90611425565b6001600160a01b038116610c865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104fd565b610c8f81610fc3565b50565b6005546001600160a01b03163314610cbc5760405162461bcd60e51b81526004016104fd90611425565b6108196110ba565b6001600160a01b038316610d265760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104fd565b6001600160a01b038216610d875760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104fd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e4c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104fd565b6001600160a01b038216610eae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104fd565b610eb983838361113e565b6001600160a01b03831660009081526020819052604090205481811015610f315760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104fd565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610f689084906113b5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fb491815260200190565b60405180910390a35b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600554600160a01b900460ff16156110625760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104fd565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861109d3390565b6040516001600160a01b03909116815260200160405180910390a1565b600554600160a01b900460ff1661110a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104fd565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361109d565b600554600160a01b900460ff161561118b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104fd565b60006111968461055a565b90506001600160a01b038416158015906111af57508082115b15610fbd5760405162461bcd60e51b815260206004820152602860248201527f616d6f756e74206578636565647320617661696c61626c6520756e6c6f636b656044820152676420746f6b656e7360c01b60648201526084016104fd565b80356001600160a01b038116811461122457600080fd5b919050565b60006020828403121561123b57600080fd5b6106788261120d565b600060208083528351808285015260005b8181101561127157858101830151858201604001528201611255565b81811115611283576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156112ac57600080fd5b6112b58361120d565b946020939093013593505050565b6000806000606084860312156112d857600080fd5b6112e18461120d565b92506112ef6020850161120d565b9150604084013590509250925092565b6000806000806080858703121561131557600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561134457600080fd5b61134d8361120d565b915061135b6020840161120d565b90509250929050565b600181811c9082168061137857607f821691505b6020821081141561139957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156113c8576113c861139f565b500190565b6000828210156113df576113df61139f565b500390565b60008160001904831182151516156113fe576113fe61139f565b500290565b60008261142057634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220e6a5e2a238b751fe8c40f472a4a459e529735c43f545cc727d2d42f69a003e7e64736f6c634300080b0033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000295be96e64066972000000000000000000000000000000026104955b8280c28ca392f42422fdbdbf93c700300000000000000000000000000000000000000000000000000000000000000094e6577204f72646572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e45574f00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): New Order
Arg [1] : symbol_ (string): NEWO
Arg [2] : amount_ (uint256): 800000000000000000000000000
Arg [3] : deployer_ (address): 0x26104955B8280C28CA392f42422fdBdbF93C7003

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 00000000000000000000000000000000000000000295be96e640669720000000
Arg [3] : 00000000000000000000000026104955b8280c28ca392f42422fdbdbf93c7003
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [5] : 4e6577204f726465720000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4e45574f00000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

22875:5045:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27525:194;;;;;;:::i;:::-;;:::i;:::-;;;529:25:1;;;517:2;502:18;27525:194:0;;;;;;;;11513:100;;;:::i;:::-;;;;;;;:::i;13680:169::-;;;;;;:::i;:::-;;:::i;:::-;;;1591:14:1;;1584:22;1566:41;;1554:2;1539:18;13680:169:0;1426:187:1;12633:108:0;12721:12;;12633:108;;14331:492;;;;;;:::i;:::-;;:::i;12475:93::-;;;12558:2;2093:36:1;;2081:2;2066:18;12475:93:0;1951:184:1;15232:215:0;;;;;;:::i;:::-;;:::i;25946:641::-;;;;;;:::i;:::-;;:::i;2027:86::-;2098:7;;-1:-1:-1;;;2098:7:0;;;;2027:86;;26712:611;;;;;;:::i;:::-;;:::i;12804:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12905:18:0;12878:7;12905:18;;;;;;;;;;;;12804:127;4928:103;;;:::i;:::-;;27727:88;;;:::i;4277:87::-;4350:6;;4277:87;;-1:-1:-1;;;;;4350:6:0;;;2286:51:1;;2274:2;2259:18;4277:87:0;2140:203:1;23892:1031:0;;;;;;:::i;:::-;;:::i;11732:104::-;;;:::i;15950:413::-;;;;;;:::i;:::-;;:::i;23133:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;13144:175;;;;;;:::i;:::-;;:::i;23183:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;23073:53;;;;;;:::i;:::-;;;;;;;;;;;;;;23234:51;;;;;;:::i;:::-;;;;;;;;;;;;;;13382:151;;;;;;:::i;:::-;-1:-1:-1;;;;;13498:18:0;;;13471:7;13498:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13382:151;5186:201;;;;;;:::i;:::-;;:::i;27823:92::-;;;:::i;27525:194::-;27653:14;27686:25;27707:3;27686:20;:25::i;:::-;27679:32;27525:194;-1:-1:-1;;27525:194:0:o;11513:100::-;11567:13;11600:5;11593:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11513:100;:::o;13680:169::-;13763:4;13780:39;759:10;13803:7;13812:6;13780:8;:39::i;:::-;-1:-1:-1;13837:4:0;13680:169;;;;:::o;14331:492::-;14471:4;14488:36;14498:6;14506:9;14517:6;14488:9;:36::i;:::-;-1:-1:-1;;;;;14564:19:0;;14537:24;14564:19;;;:11;:19;;;;;;;;759:10;14564:33;;;;;;;;14616:26;;;;14608:79;;;;-1:-1:-1;;;14608:79:0;;3590:2:1;14608:79:0;;;3572:21:1;3629:2;3609:18;;;3602:30;3668:34;3648:18;;;3641:62;-1:-1:-1;;;3719:18:1;;;3712:38;3767:19;;14608:79:0;;;;;;;;;14723:57;14732:6;759:10;14773:6;14754:16;:25;14723:8;:57::i;:::-;-1:-1:-1;14811:4:0;;14331:492;-1:-1:-1;;;;14331:492:0:o;15232:215::-;759:10;15320:4;15369:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15369:34:0;;;;;;;;;;15320:4;;15337:80;;15360:7;;15369:47;;15406:10;;15369:47;:::i;:::-;15337:8;:80::i;25946:641::-;-1:-1:-1;;;;;26065:21:0;;26037:7;26065:21;;;:16;:21;;;;;;26062:78;;-1:-1:-1;;;;;12905:18:0;;12878:7;12905:18;;;;;;;;;;;26114:14;12804:127;26062:78;-1:-1:-1;;;;;26182:13:0;;26150:17;26182:13;;;:8;:13;;;;;;26198:15;-1:-1:-1;26182:31:0;:67;;-1:-1:-1;;;;;;26217:14:0;;;;;;:9;:14;;;;;;26234:15;-1:-1:-1;26182:67:0;26178:240;;;-1:-1:-1;26277:1:0;26178:240;;;-1:-1:-1;;;;;26383:23:0;;;;;;:18;:23;;;;;;;;;26366:8;:13;;;;;;;26348:31;;:15;:31;:::i;:::-;-1:-1:-1;;;;;26323:21:0;;;;;;:16;:21;;;;;;:57;;;;:::i;:::-;:83;;;;:::i;:::-;26311:95;;26178:240;-1:-1:-1;;;;;26432:21:0;;;;;;:16;:21;;;;;;:33;-1:-1:-1;26428:84:0;;;-1:-1:-1;;;;;12905:18:0;;12878:7;12905:18;;;;;;;;;;;26486:14;26479:21;25946:641;-1:-1:-1;;;25946:641:0:o;26428:84::-;-1:-1:-1;;;;;26558:21:0;;;;;;:16;:21;;;;;;;;;12905:18;;;;;;;;26529:26;;26546:9;;26529:26;:::i;:::-;:50;;;;:::i;26712:611::-;-1:-1:-1;;;;;26867:21:0;;26836:14;26867:21;;;:16;:21;;;;;;26864:65;;-1:-1:-1;26916:1:0;;26712:611;-1:-1:-1;26712:611:0:o;26864:65::-;-1:-1:-1;;;;;26943:13:0;;;;;;:8;:13;;;;;;26959:15;-1:-1:-1;26943:31:0;:67;;-1:-1:-1;;;;;;26978:14:0;;;;;;:9;:14;;;;;;26995:15;-1:-1:-1;26943:67:0;26939:127;;;-1:-1:-1;;;;;;27033:21:0;;;;;:16;:21;;;;;;;26712:611::o;26939:127::-;-1:-1:-1;;;;;27156:23:0;;27076:17;27156:23;;;:18;:23;;;;;;;;;27139:8;:13;;;;;;27121:31;;:15;:31;:::i;:::-;-1:-1:-1;;;;;27096:21:0;;;;;;:16;:21;;;;;;:57;;;;:::i;:::-;:83;;;;:::i;:::-;-1:-1:-1;;;;;27206:21:0;;;;;;:16;:21;;;;;;27076:103;;-1:-1:-1;27193:34:0;;27190:73;;-1:-1:-1;27250:1:0;;26712:611;-1:-1:-1;;26712:611:0:o;27190:73::-;-1:-1:-1;;;;;27280:21:0;;;;;;:16;:21;;;;;;:33;;27304:9;;27280:33;:::i;4928:103::-;4350:6;;-1:-1:-1;;;;;4350:6:0;759:10;4497:23;4489:68;;;;-1:-1:-1;;;4489:68:0;;;;;;;:::i;:::-;4993:30:::1;5020:1;4993:18;:30::i;:::-;4928:103::o:0;27727:88::-;4350:6;;-1:-1:-1;;;;;4350:6:0;759:10;4497:23;4489:68;;;;-1:-1:-1;;;4489:68:0;;;;;;;:::i;:::-;27799:8:::1;:6;:8::i;23892:1031::-:0;24070:1;24050:17;:21;24042:58;;;;-1:-1:-1;;;24042:58:0;;5150:2:1;24042:58:0;;;5132:21:1;5189:2;5169:18;;;5162:30;5228:26;5208:18;;;5201:54;5272:18;;24042:58:0;4948:348:1;24042:58:0;24150:10;12878:7;12905:18;;;;;;;;;;;24119:17;:42;;24111:103;;;;-1:-1:-1;;;24111:103:0;;5503:2:1;24111:103:0;;;5485:21:1;5542:2;5522:18;;;5515:30;5581:34;5561:18;;;5554:62;-1:-1:-1;;;5632:18:1;;;5625:46;5688:19;;24111:103:0;5301:412:1;24111:103:0;24233:25;24247:10;24233:13;:25::i;:::-;:30;24225:104;;;;-1:-1:-1;;;24225:104:0;;5920:2:1;24225:104:0;;;5902:21:1;5959:2;5939:18;;;5932:30;5998:34;5978:18;;;5971:62;6069:31;6049:18;;;6042:59;6118:19;;24225:104:0;5718:425:1;24225:104:0;24370:1;24348:19;:23;24340:72;;;;-1:-1:-1;;;24340:72:0;;6350:2:1;24340:72:0;;;6332:21:1;6389:2;6369:18;;;6362:30;6428:34;6408:18;;;6401:62;-1:-1:-1;;;6479:18:1;;;6472:34;6523:19;;24340:72:0;6148:400:1;24340:72:0;24443:15;24431:9;:27;24423:75;;;;-1:-1:-1;;;24423:75:0;;6755:2:1;24423:75:0;;;6737:21:1;6794:2;6774:18;;;6767:30;6833:34;6813:18;;;6806:62;-1:-1:-1;;;6884:18:1;;;6877:33;6927:19;;24423:75:0;6553:399:1;24423:75:0;24531:9;24517:10;:23;;24509:91;;;;-1:-1:-1;;;24509:91:0;;7159:2:1;24509:91:0;;;7141:21:1;7198:2;7178:18;;;7171:30;7237:34;7217:18;;;7210:62;7308:25;7288:18;;;7281:53;7351:19;;24509:91:0;6957:419:1;24509:91:0;24632:10;24613:30;;;;:18;:30;;;;;;;;:52;;;24676:8;:20;;;;;:32;;;24719:9;:21;;;;;:34;;;24764:16;:28;;;;;;:48;;;24828:87;;7640:51:1;;;7707:18;;7700:34;;;7750:18;;7743:34;;;7808:2;7793:18;;7786:34;;;7851:3;7836:19;;7829:35;;;24828:87:0;;7627:3:1;7612:19;24828:87:0;;;;;;;23892:1031;;;;:::o;11732:104::-;11788:13;11821:7;11814:14;;;;;:::i;15950:413::-;759:10;16043:4;16087:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16087:34:0;;;;;;;;;;16140:35;;;;16132:85;;;;-1:-1:-1;;;16132:85:0;;8077:2:1;16132:85:0;;;8059:21:1;8116:2;8096:18;;;8089:30;8155:34;8135:18;;;8128:62;-1:-1:-1;;;8206:18:1;;;8199:35;8251:19;;16132:85:0;7875:401:1;16132:85:0;16253:67;759:10;16276:7;16304:15;16285:16;:34;16253:8;:67::i;:::-;-1:-1:-1;16351:4:0;;15950:413;-1:-1:-1;;;15950:413:0:o;13144:175::-;13230:4;13247:42;759:10;13271:9;13282:6;13247:9;:42::i;5186:201::-;4350:6;;-1:-1:-1;;;;;4350:6:0;759:10;4497:23;4489:68;;;;-1:-1:-1;;;4489:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5275:22:0;::::1;5267:73;;;::::0;-1:-1:-1;;;5267:73:0;;8483:2:1;5267:73:0::1;::::0;::::1;8465:21:1::0;8522:2;8502:18;;;8495:30;8561:34;8541:18;;;8534:62;-1:-1:-1;;;8612:18:1;;;8605:36;8658:19;;5267:73:0::1;8281:402:1::0;5267:73:0::1;5351:28;5370:8;5351:18;:28::i;:::-;5186:201:::0;:::o;27823:92::-;4350:6;;-1:-1:-1;;;;;4350:6:0;759:10;4497:23;4489:68;;;;-1:-1:-1;;;4489:68:0;;;;;;;:::i;:::-;27897:10:::1;:8;:10::i;19634:380::-:0;-1:-1:-1;;;;;19770:19:0;;19762:68;;;;-1:-1:-1;;;19762:68:0;;8890:2:1;19762:68:0;;;8872:21:1;8929:2;8909:18;;;8902:30;8968:34;8948:18;;;8941:62;-1:-1:-1;;;9019:18:1;;;9012:34;9063:19;;19762:68:0;8688:400:1;19762:68:0;-1:-1:-1;;;;;19849:21:0;;19841:68;;;;-1:-1:-1;;;19841:68:0;;9295:2:1;19841:68:0;;;9277:21:1;9334:2;9314:18;;;9307:30;9373:34;9353:18;;;9346:62;-1:-1:-1;;;9424:18:1;;;9417:32;9466:19;;19841:68:0;9093:398:1;19841:68:0;-1:-1:-1;;;;;19922:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19974:32;;529:25:1;;;19974:32:0;;502:18:1;19974:32:0;;;;;;;19634:380;;;:::o;16853:733::-;-1:-1:-1;;;;;16993:20:0;;16985:70;;;;-1:-1:-1;;;16985:70:0;;9698:2:1;16985:70:0;;;9680:21:1;9737:2;9717:18;;;9710:30;9776:34;9756:18;;;9749:62;-1:-1:-1;;;9827:18:1;;;9820:35;9872:19;;16985:70:0;9496:401:1;16985:70:0;-1:-1:-1;;;;;17074:23:0;;17066:71;;;;-1:-1:-1;;;17066:71:0;;10104:2:1;17066:71:0;;;10086:21:1;10143:2;10123:18;;;10116:30;10182:34;10162:18;;;10155:62;-1:-1:-1;;;10233:18:1;;;10226:33;10276:19;;17066:71:0;9902:399:1;17066:71:0;17150:47;17171:6;17179:9;17190:6;17150:20;:47::i;:::-;-1:-1:-1;;;;;17234:17:0;;17210:21;17234:17;;;;;;;;;;;17270:23;;;;17262:74;;;;-1:-1:-1;;;17262:74:0;;10508:2:1;17262:74:0;;;10490:21:1;10547:2;10527:18;;;10520:30;10586:34;10566:18;;;10559:62;-1:-1:-1;;;10637:18:1;;;10630:36;10683:19;;17262:74:0;10306:402:1;17262:74:0;-1:-1:-1;;;;;17372:17:0;;;:9;:17;;;;;;;;;;;17392:22;;;17372:42;;17436:20;;;;;;;;:30;;17408:6;;17372:9;17436:30;;17408:6;;17436:30;:::i;:::-;;;;;;;;17501:9;-1:-1:-1;;;;;17484:35:0;17493:6;-1:-1:-1;;;;;17484:35:0;;17512:6;17484:35;;;;529:25:1;;517:2;502:18;;383:177;17484:35:0;;;;;;;;17532:46;16974:612;16853:733;;;:::o;5547:191::-;5640:6;;;-1:-1:-1;;;;;5657:17:0;;;-1:-1:-1;;;;;;5657:17:0;;;;;;;5690:40;;5640:6;;;5657:17;5640:6;;5690:40;;5621:16;;5690:40;5610:128;5547:191;:::o;2827:118::-;2098:7;;-1:-1:-1;;;2098:7:0;;;;2352:9;2344:38;;;;-1:-1:-1;;;2344:38:0;;10915:2:1;2344:38:0;;;10897:21:1;10954:2;10934:18;;;10927:30;-1:-1:-1;;;10973:18:1;;;10966:46;11029:18;;2344:38:0;10713:340:1;2344:38:0;2887:7:::1;:14:::0;;-1:-1:-1;;;;2887:14:0::1;-1:-1:-1::0;;;2887:14:0::1;::::0;;2917:20:::1;2924:12;759:10:::0;;679:98;2924:12:::1;2917:20;::::0;-1:-1:-1;;;;;2304:32:1;;;2286:51;;2274:2;2259:18;2917:20:0::1;;;;;;;2827:118::o:0;3086:120::-;2098:7;;-1:-1:-1;;;2098:7:0;;;;2622:41;;;;-1:-1:-1;;;2622:41:0;;11260:2:1;2622:41:0;;;11242:21:1;11299:2;11279:18;;;11272:30;-1:-1:-1;;;11318:18:1;;;11311:50;11378:18;;2622:41:0;11058:344:1;2622:41:0;3145:7:::1;:15:::0;;-1:-1:-1;;;;3145:15:0::1;::::0;;3176:22:::1;759:10:::0;3185:12:::1;679:98:::0;25453:345;2098:7;;-1:-1:-1;;;2098:7:0;;;;2352:9;2344:38;;;;-1:-1:-1;;;2344:38:0;;10915:2:1;2344:38:0;;;10897:21:1;10954:2;10934:18;;;10927:30;-1:-1:-1;;;10973:18:1;;;10966:46;11029:18;;2344:38:0;10713:340:1;2344:38:0;25615:14:::1;25632:26;25653:4;25632:20;:26::i;:::-;25615:43:::0;-1:-1:-1;;;;;;25673:20:0;::::1;::::0;;::::1;::::0;:42:::1;;;25706:9;25697:6;:18;25673:42;25669:122;;;25729:50;::::0;-1:-1:-1;;;25729:50:0;;11609:2:1;25729:50:0::1;::::0;::::1;11591:21:1::0;11648:2;11628:18;;;11621:30;11687:34;11667:18;;;11660:62;-1:-1:-1;;;11738:18:1;;;11731:38;11786:19;;25729:50:0::1;11407:404:1::0;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;565:597::-;677:4;706:2;735;724:9;717:21;767:6;761:13;810:6;805:2;794:9;790:18;783:34;835:1;845:140;859:6;856:1;853:13;845:140;;;954:14;;;950:23;;944:30;920:17;;;939:2;916:26;909:66;874:10;;845:140;;;1003:6;1000:1;997:13;994:91;;;1073:1;1068:2;1059:6;1048:9;1044:22;1040:31;1033:42;994:91;-1:-1:-1;1146:2:1;1125:15;-1:-1:-1;;1121:29:1;1106:45;;;;1153:2;1102:54;;565:597;-1:-1:-1;;;565:597:1:o;1167:254::-;1235:6;1243;1296:2;1284:9;1275:7;1271:23;1267:32;1264:52;;;1312:1;1309;1302:12;1264:52;1335:29;1354:9;1335:29;:::i;:::-;1325:39;1411:2;1396:18;;;;1383:32;;-1:-1:-1;;;1167:254:1:o;1618:328::-;1695:6;1703;1711;1764:2;1752:9;1743:7;1739:23;1735:32;1732:52;;;1780:1;1777;1770:12;1732:52;1803:29;1822:9;1803:29;:::i;:::-;1793:39;;1851:38;1885:2;1874:9;1870:18;1851:38;:::i;:::-;1841:48;;1936:2;1925:9;1921:18;1908:32;1898:42;;1618:328;;;;;:::o;2348:385::-;2434:6;2442;2450;2458;2511:3;2499:9;2490:7;2486:23;2482:33;2479:53;;;2528:1;2525;2518:12;2479:53;-1:-1:-1;;2551:23:1;;;2621:2;2606:18;;2593:32;;-1:-1:-1;2672:2:1;2657:18;;2644:32;;2723:2;2708:18;2695:32;;-1:-1:-1;2348:385:1;-1:-1:-1;2348:385:1:o;2738:260::-;2806:6;2814;2867:2;2855:9;2846:7;2842:23;2838:32;2835:52;;;2883:1;2880;2873:12;2835:52;2906:29;2925:9;2906:29;:::i;:::-;2896:39;;2954:38;2988:2;2977:9;2973:18;2954:38;:::i;:::-;2944:48;;2738:260;;;;;:::o;3003:380::-;3082:1;3078:12;;;;3125;;;3146:61;;3200:4;3192:6;3188:17;3178:27;;3146:61;3253:2;3245:6;3242:14;3222:18;3219:38;3216:161;;;3299:10;3294:3;3290:20;3287:1;3280:31;3334:4;3331:1;3324:15;3362:4;3359:1;3352:15;3216:161;;3003:380;;;:::o;3797:127::-;3858:10;3853:3;3849:20;3846:1;3839:31;3889:4;3886:1;3879:15;3913:4;3910:1;3903:15;3929:128;3969:3;4000:1;3996:6;3993:1;3990:13;3987:39;;;4006:18;;:::i;:::-;-1:-1:-1;4042:9:1;;3929:128::o;4062:125::-;4102:4;4130:1;4127;4124:8;4121:34;;;4135:18;;:::i;:::-;-1:-1:-1;4172:9:1;;4062:125::o;4192:168::-;4232:7;4298:1;4294;4290:6;4286:14;4283:1;4280:21;4275:1;4268:9;4261:17;4257:45;4254:71;;;4305:18;;:::i;:::-;-1:-1:-1;4345:9:1;;4192:168::o;4365:217::-;4405:1;4431;4421:132;;4475:10;4470:3;4466:20;4463:1;4456:31;4510:4;4507:1;4500:15;4538:4;4535:1;4528:15;4421:132;-1:-1:-1;4567:9:1;;4365:217::o;4587:356::-;4789:2;4771:21;;;4808:18;;;4801:30;4867:34;4862:2;4847:18;;4840:62;4934:2;4919:18;;4587:356::o

Swarm Source

ipfs://e6a5e2a238b751fe8c40f472a4a459e529735c43f545cc727d2d42f69a003e7e
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.