ETH Price: $2,101.39 (-0.83%)

Token

Unicoin (UNCN)
 

Overview

Max Total Supply

210,000 UNCN

Holders

166

Transfers

-
4 ( 33.33%)

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Unicoin is an audited, public reporting, and regulations-compliant cryptocurrency company. Our objective is to create a leading cryptocurrency. At Unicoin.com, you can find many testimonials about Unicoin, extensive media coverage, and other information.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
UNCNToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2024-06-25
*/

// SPDX-License-Identifier: MIT AND UNLICENSED

// File @openzeppelin/contracts/utils/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @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/access/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

/**
 * @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.
 *
 * The initial owner is set to the address provided by the deployer. 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;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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 {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _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/interfaces/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
pragma solidity ^0.8.20;

/**
 * @dev Standard ERC20 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.
 */
interface IERC20Errors {
    /**
     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param balance Current balance for the interacting account.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC20InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC20InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     * @param allowance Amount of tokens a `spender` is allowed to operate with.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC20InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC20InvalidSpender(address spender);
}

/**
 * @dev Standard ERC721 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.
 */
interface IERC721Errors {
    /**
     * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.
     * Used in balance queries.
     * @param owner Address of the current owner of a token.
     */
    error ERC721InvalidOwner(address owner);

    /**
     * @dev Indicates a `tokenId` whose `owner` is the zero address.
     * @param tokenId Identifier number of a token.
     */
    error ERC721NonexistentToken(uint256 tokenId);

    /**
     * @dev Indicates an error related to the ownership over a particular token. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param tokenId Identifier number of a token.
     * @param owner Address of the current owner of a token.
     */
    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC721InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC721InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     * @param tokenId Identifier number of a token.
     */
    error ERC721InsufficientApproval(address operator, uint256 tokenId);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC721InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC721InvalidOperator(address operator);
}

/**
 * @dev Standard ERC1155 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.
 */
interface IERC1155Errors {
    /**
     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param balance Current balance for the interacting account.
     * @param needed Minimum amount required to perform a transfer.
     * @param tokenId Identifier number of a token.
     */
    error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC1155InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC1155InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     * @param owner Address of the current owner of a token.
     */
    error ERC1155MissingApprovalForAll(address operator, address owner);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC1155InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC1155InvalidOperator(address operator);

    /**
     * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.
     * Used in batch transfers.
     * @param idsLength Length of the array of token identifiers
     * @param valuesLength Length of the array of token amounts
     */
    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}


// File @openzeppelin/contracts/token/ERC20/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 */
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/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.20;




/**
 * @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}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * 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.
 */
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
    mapping(address account => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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 default value returned by this function, unless
     * it's 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 returns (uint8) {
        return 18;
    }

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, value);
        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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `value`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `value`.
     */
    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to`.
     *
     * 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.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _transfer(address from, address to, uint256 value) internal {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }

    /**
     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
     * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
     * this function.
     *
     * Emits a {Transfer} event.
     */
    function _update(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            // Overflow check required: The rest of the code assumes that totalSupply never overflows
            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                // Overflow not possible: value <= fromBalance <= totalSupply.
                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {
                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
                _totalSupply -= value;
            }
        } else {
            unchecked {
                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }

    /**
     * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
     * Relies on the `_update` mechanism
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }

    /**
     * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
     * Relies on the `_update` mechanism.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead
     */
    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }

    /**
     * @dev Sets `value` 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.
     *
     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        _approve(owner, spender, value, true);
    }

    /**
     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
     *
     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any
     * `Approval` event during `transferFrom` operations.
     *
     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to
     * true using the following override:
     * ```
     * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
     *     super._approve(owner, spender, value, true);
     * }
     * ```
     *
     * Requirements are the same as {_approve}.
     */
    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `value`.
     *
     * Does not update the allowance value in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Does not emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, value);
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/ERC20Burnable.sol)

pragma solidity ^0.8.20;


/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys a `value` amount of tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 value) public virtual {
        _burn(_msgSender(), value);
    }

    /**
     * @dev Destroys a `value` amount of tokens from `account`, deducting from
     * the caller's allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `value`.
     */
    function burnFrom(address account, uint256 value) public virtual {
        _spendAllowance(account, _msgSender(), value);
        _burn(account, value);
    }
}


// File @openzeppelin/contracts/utils/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Pausable.sol)

pragma solidity ^0.8.20;

/**
 * @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 {
    bool private _paused;

    /**
     * @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);

    /**
     * @dev The operation failed because the contract is paused.
     */
    error EnforcedPause();

    /**
     * @dev The operation failed because the contract is not paused.
     */
    error ExpectedPause();

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

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

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

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

    /**
     * @dev Throws if the contract is paused.
     */
    function _requireNotPaused() internal view virtual {
        if (paused()) {
            revert EnforcedPause();
        }
    }

    /**
     * @dev Throws if the contract is not paused.
     */
    function _requirePaused() internal view virtual {
        if (!paused()) {
            revert ExpectedPause();
        }
    }

    /**
     * @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/token/ERC20/extensions/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/ERC20Pausable.sol)

pragma solidity ^0.8.20;


/**
 * @dev ERC20 token with pausable token transfers, minting and burning.
 *
 * Useful for scenarios such as preventing trades until the end of an evaluation
 * period, or having an emergency switch for freezing all token transfers in the
 * event of a large bug.
 *
 * IMPORTANT: This contract does not include public pause and unpause functions. In
 * addition to inheriting this contract, you must define both functions, invoking the
 * {Pausable-_pause} and {Pausable-_unpause} internal functions, with appropriate
 * access control, e.g. using {AccessControl} or {Ownable}. Not doing so will
 * make the contract pause mechanism of the contract unreachable, and thus unusable.
 */
abstract contract ERC20Pausable is ERC20, Pausable {
    /**
     * @dev See {ERC20-_update}.
     *
     * Requirements:
     *
     * - the contract must not be paused.
     */
    function _update(address from, address to, uint256 value) internal virtual override whenNotPaused {
        super._update(from, to, value);
    }
}


// File @openzeppelin/contracts/utils/introspection/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}


// File contracts/UNCNToken.sol

// Original license: SPDX_License_Identifier: UNLICENSED

pragma solidity ^0.8.20;





contract UNCNToken is ERC20, ERC20Burnable, ERC20Pausable, Ownable, IERC165 {
    
    constructor(address initialOwner, string memory name_, string memory symbol_)
        ERC20(name_, symbol_)
        Ownable(initialOwner)
    {}

    function decimals() public view virtual override returns (uint8) {
        return 6;
    }
    
    function pause() public onlyOwner {
        _pause();
    }

    function unpause() public onlyOwner {
        _unpause();
    }

    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
    
    function transfer(address to, uint256 value) public override whenNotPaused returns(bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public override whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function _update(address from, address to, uint256 value)
        internal
        override(ERC20, ERC20Pausable)
    {
        super._update(from, to, value);
    }

    function supportsInterface(bytes4 interfaceID) external pure returns (bool) {
        return interfaceID == type(IERC20).interfaceId;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":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":"value","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":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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"}]

60806040523480156200001157600080fd5b5060405162001e0f38038062001e0f8339818101604052810190620000379190620003c9565b82828281600390816200004b9190620006ae565b5080600490816200005d9190620006ae565b5050506000600560006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000f05760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000e79190620007a6565b60405180910390fd5b62000101816200010b60201b60201c565b50505050620007c3565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200021282620001e5565b9050919050565b620002248162000205565b81146200023057600080fd5b50565b600081519050620002448162000219565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200029f8262000254565b810181811067ffffffffffffffff82111715620002c157620002c062000265565b5b80604052505050565b6000620002d6620001d1565b9050620002e4828262000294565b919050565b600067ffffffffffffffff82111562000307576200030662000265565b5b620003128262000254565b9050602081019050919050565b60005b838110156200033f57808201518184015260208101905062000322565b60008484015250505050565b6000620003626200035c84620002e9565b620002ca565b9050828152602081018484840111156200038157620003806200024f565b5b6200038e8482856200031f565b509392505050565b600082601f830112620003ae57620003ad6200024a565b5b8151620003c08482602086016200034b565b91505092915050565b600080600060608486031215620003e557620003e4620001db565b5b6000620003f58682870162000233565b935050602084015167ffffffffffffffff811115620004195762000418620001e0565b5b620004278682870162000396565b925050604084015167ffffffffffffffff8111156200044b576200044a620001e0565b5b620004598682870162000396565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004b657607f821691505b602082108103620004cc57620004cb6200046e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004f7565b620005428683620004f7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200058f6200058962000583846200055a565b62000564565b6200055a565b9050919050565b6000819050919050565b620005ab836200056e565b620005c3620005ba8262000596565b84845462000504565b825550505050565b600090565b620005da620005cb565b620005e7818484620005a0565b505050565b5b818110156200060f5762000603600082620005d0565b600181019050620005ed565b5050565b601f8211156200065e576200062881620004d2565b6200063384620004e7565b8101602085101562000643578190505b6200065b6200065285620004e7565b830182620005ec565b50505b505050565b600082821c905092915050565b6000620006836000198460080262000663565b1980831691505092915050565b60006200069e838362000670565b9150826002028217905092915050565b620006b98262000463565b67ffffffffffffffff811115620006d557620006d462000265565b5b620006e182546200049d565b620006ee82828562000613565b600060209050601f83116001811462000726576000841562000711578287015190505b6200071d858262000690565b8655506200078d565b601f1984166200073686620004d2565b60005b82811015620007605784890151825560018201915060208501945060208101905062000739565b868310156200078057848901516200077c601f89168262000670565b8355505b6001600288020188555050505b505050505050565b620007a08162000205565b82525050565b6000602082019050620007bd600083018462000795565b92915050565b61163c80620007d36000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80635c975abb116100ad5780638da5cb5b116100715780638da5cb5b146102d057806395d89b41146102ee578063a9059cbb1461030c578063dd62ed3e1461033c578063f2fde38b1461036c57610121565b80635c975abb1461025257806370a0823114610270578063715018a6146102a057806379cc6790146102aa5780638456cb59146102c657610121565b806323b872dd116100f457806323b872dd146101c2578063313ce567146101f25780633f4ba83a1461021057806340c10f191461021a57806342966c681461023657610121565b806301ffc9a71461012657806306fdde0314610156578063095ea7b31461017457806318160ddd146101a4575b600080fd5b610140600480360381019061013b91906111ab565b610388565b60405161014d91906111f3565b60405180910390f35b61015e6103f2565b60405161016b919061129e565b60405180910390f35b61018e60048036038101906101899190611354565b610484565b60405161019b91906111f3565b60405180910390f35b6101ac6104a7565b6040516101b991906113a3565b60405180910390f35b6101dc60048036038101906101d791906113be565b6104b1565b6040516101e991906111f3565b60405180910390f35b6101fa6104cf565b604051610207919061142d565b60405180910390f35b6102186104d8565b005b610234600480360381019061022f9190611354565b6104ea565b005b610250600480360381019061024b9190611448565b610500565b005b61025a610514565b60405161026791906111f3565b60405180910390f35b61028a60048036038101906102859190611475565b61052b565b60405161029791906113a3565b60405180910390f35b6102a8610573565b005b6102c460048036038101906102bf9190611354565b610587565b005b6102ce6105a7565b005b6102d86105b9565b6040516102e591906114b1565b60405180910390f35b6102f66105e3565b604051610303919061129e565b60405180910390f35b61032660048036038101906103219190611354565b610675565b60405161033391906111f3565b60405180910390f35b610356600480360381019061035191906114cc565b610691565b60405161036391906113a3565b60405180910390f35b61038660048036038101906103819190611475565b610718565b005b60007f36372b07000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6060600380546104019061153b565b80601f016020809104026020016040519081016040528092919081815260200182805461042d9061153b565b801561047a5780601f1061044f5761010080835404028352916020019161047a565b820191906000526020600020905b81548152906001019060200180831161045d57829003601f168201915b5050505050905090565b60008061048f61079e565b905061049c8185856107a6565b600191505092915050565b6000600254905090565b60006104bb6107b8565b6104c68484846107f9565b90509392505050565b60006006905090565b6104e0610828565b6104e86108af565b565b6104f2610828565b6104fc8282610912565b5050565b61051161050b61079e565b82610994565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61057b610828565b6105856000610a16565b565b6105998261059361079e565b83610adc565b6105a38282610994565b5050565b6105af610828565b6105b7610b70565b565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105f29061153b565b80601f016020809104026020016040519081016040528092919081815260200182805461061e9061153b565b801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b5050505050905090565b600061067f6107b8565b6106898383610bd3565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610720610828565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107925760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161078991906114b1565b60405180910390fd5b61079b81610a16565b50565b600033905090565b6107b38383836001610bf6565b505050565b6107c0610514565b156107f7576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008061080461079e565b9050610811858285610adc565b61081c858585610dcd565b60019150509392505050565b61083061079e565b73ffffffffffffffffffffffffffffffffffffffff1661084e6105b9565b73ffffffffffffffffffffffffffffffffffffffff16146108ad5761087161079e565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108a491906114b1565b60405180910390fd5b565b6108b7610ec1565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6108fb61079e565b60405161090891906114b1565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109845760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161097b91906114b1565b60405180910390fd5b61099060008383610f01565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a065760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109fd91906114b1565b60405180910390fd5b610a1282600083610f01565b5050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610ae88484610691565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b6a5781811015610b5a578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610b519392919061156c565b60405180910390fd5b610b6984848484036000610bf6565b5b50505050565b610b786107b8565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610bbc61079e565b604051610bc991906114b1565b60405180910390a1565b600080610bde61079e565b9050610beb818585610dcd565b600191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c685760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610c5f91906114b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cda5760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610cd191906114b1565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610dc7578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610dbe91906113a3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3f5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610e3691906114b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb15760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610ea891906114b1565b60405180910390fd5b610ebc838383610f01565b505050565b610ec9610514565b610eff576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610f0c838383610f11565b505050565b610f196107b8565b610f24838383610f29565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7b578060026000828254610f6f91906115d2565b9250508190555061104e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611007578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610ffe9392919061156c565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109757806002600082825403925050819055506110e4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161114191906113a3565b60405180910390a3505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61118881611153565b811461119357600080fd5b50565b6000813590506111a58161117f565b92915050565b6000602082840312156111c1576111c061114e565b5b60006111cf84828501611196565b91505092915050565b60008115159050919050565b6111ed816111d8565b82525050565b600060208201905061120860008301846111e4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561124857808201518184015260208101905061122d565b60008484015250505050565b6000601f19601f8301169050919050565b60006112708261120e565b61127a8185611219565b935061128a81856020860161122a565b61129381611254565b840191505092915050565b600060208201905081810360008301526112b88184611265565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112eb826112c0565b9050919050565b6112fb816112e0565b811461130657600080fd5b50565b600081359050611318816112f2565b92915050565b6000819050919050565b6113318161131e565b811461133c57600080fd5b50565b60008135905061134e81611328565b92915050565b6000806040838503121561136b5761136a61114e565b5b600061137985828601611309565b925050602061138a8582860161133f565b9150509250929050565b61139d8161131e565b82525050565b60006020820190506113b86000830184611394565b92915050565b6000806000606084860312156113d7576113d661114e565b5b60006113e586828701611309565b93505060206113f686828701611309565b92505060406114078682870161133f565b9150509250925092565b600060ff82169050919050565b61142781611411565b82525050565b6000602082019050611442600083018461141e565b92915050565b60006020828403121561145e5761145d61114e565b5b600061146c8482850161133f565b91505092915050565b60006020828403121561148b5761148a61114e565b5b600061149984828501611309565b91505092915050565b6114ab816112e0565b82525050565b60006020820190506114c660008301846114a2565b92915050565b600080604083850312156114e3576114e261114e565b5b60006114f185828601611309565b925050602061150285828601611309565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061155357607f821691505b6020821081036115665761156561150c565b5b50919050565b600060608201905061158160008301866114a2565b61158e6020830185611394565b61159b6040830184611394565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115dd8261131e565b91506115e88361131e565b9250828201905080821115611600576115ff6115a3565b5b9291505056fea264697066735822122048d575cfbeea2080d68d0418e746d010eabdeb139b606c0a83f60f23a5008a9964736f6c6343000814003300000000000000000000000010caad82c7eedbffcb95eaee7c0645a6b51f5950000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007556e69636f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004554e434e00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c80635c975abb116100ad5780638da5cb5b116100715780638da5cb5b146102d057806395d89b41146102ee578063a9059cbb1461030c578063dd62ed3e1461033c578063f2fde38b1461036c57610121565b80635c975abb1461025257806370a0823114610270578063715018a6146102a057806379cc6790146102aa5780638456cb59146102c657610121565b806323b872dd116100f457806323b872dd146101c2578063313ce567146101f25780633f4ba83a1461021057806340c10f191461021a57806342966c681461023657610121565b806301ffc9a71461012657806306fdde0314610156578063095ea7b31461017457806318160ddd146101a4575b600080fd5b610140600480360381019061013b91906111ab565b610388565b60405161014d91906111f3565b60405180910390f35b61015e6103f2565b60405161016b919061129e565b60405180910390f35b61018e60048036038101906101899190611354565b610484565b60405161019b91906111f3565b60405180910390f35b6101ac6104a7565b6040516101b991906113a3565b60405180910390f35b6101dc60048036038101906101d791906113be565b6104b1565b6040516101e991906111f3565b60405180910390f35b6101fa6104cf565b604051610207919061142d565b60405180910390f35b6102186104d8565b005b610234600480360381019061022f9190611354565b6104ea565b005b610250600480360381019061024b9190611448565b610500565b005b61025a610514565b60405161026791906111f3565b60405180910390f35b61028a60048036038101906102859190611475565b61052b565b60405161029791906113a3565b60405180910390f35b6102a8610573565b005b6102c460048036038101906102bf9190611354565b610587565b005b6102ce6105a7565b005b6102d86105b9565b6040516102e591906114b1565b60405180910390f35b6102f66105e3565b604051610303919061129e565b60405180910390f35b61032660048036038101906103219190611354565b610675565b60405161033391906111f3565b60405180910390f35b610356600480360381019061035191906114cc565b610691565b60405161036391906113a3565b60405180910390f35b61038660048036038101906103819190611475565b610718565b005b60007f36372b07000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6060600380546104019061153b565b80601f016020809104026020016040519081016040528092919081815260200182805461042d9061153b565b801561047a5780601f1061044f5761010080835404028352916020019161047a565b820191906000526020600020905b81548152906001019060200180831161045d57829003601f168201915b5050505050905090565b60008061048f61079e565b905061049c8185856107a6565b600191505092915050565b6000600254905090565b60006104bb6107b8565b6104c68484846107f9565b90509392505050565b60006006905090565b6104e0610828565b6104e86108af565b565b6104f2610828565b6104fc8282610912565b5050565b61051161050b61079e565b82610994565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61057b610828565b6105856000610a16565b565b6105998261059361079e565b83610adc565b6105a38282610994565b5050565b6105af610828565b6105b7610b70565b565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105f29061153b565b80601f016020809104026020016040519081016040528092919081815260200182805461061e9061153b565b801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b5050505050905090565b600061067f6107b8565b6106898383610bd3565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610720610828565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107925760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161078991906114b1565b60405180910390fd5b61079b81610a16565b50565b600033905090565b6107b38383836001610bf6565b505050565b6107c0610514565b156107f7576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008061080461079e565b9050610811858285610adc565b61081c858585610dcd565b60019150509392505050565b61083061079e565b73ffffffffffffffffffffffffffffffffffffffff1661084e6105b9565b73ffffffffffffffffffffffffffffffffffffffff16146108ad5761087161079e565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108a491906114b1565b60405180910390fd5b565b6108b7610ec1565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6108fb61079e565b60405161090891906114b1565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109845760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161097b91906114b1565b60405180910390fd5b61099060008383610f01565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a065760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109fd91906114b1565b60405180910390fd5b610a1282600083610f01565b5050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610ae88484610691565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b6a5781811015610b5a578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610b519392919061156c565b60405180910390fd5b610b6984848484036000610bf6565b5b50505050565b610b786107b8565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610bbc61079e565b604051610bc991906114b1565b60405180910390a1565b600080610bde61079e565b9050610beb818585610dcd565b600191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c685760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610c5f91906114b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cda5760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610cd191906114b1565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610dc7578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610dbe91906113a3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3f5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610e3691906114b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb15760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610ea891906114b1565b60405180910390fd5b610ebc838383610f01565b505050565b610ec9610514565b610eff576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610f0c838383610f11565b505050565b610f196107b8565b610f24838383610f29565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7b578060026000828254610f6f91906115d2565b9250508190555061104e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611007578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610ffe9392919061156c565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109757806002600082825403925050819055506110e4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161114191906113a3565b60405180910390a3505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61118881611153565b811461119357600080fd5b50565b6000813590506111a58161117f565b92915050565b6000602082840312156111c1576111c061114e565b5b60006111cf84828501611196565b91505092915050565b60008115159050919050565b6111ed816111d8565b82525050565b600060208201905061120860008301846111e4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561124857808201518184015260208101905061122d565b60008484015250505050565b6000601f19601f8301169050919050565b60006112708261120e565b61127a8185611219565b935061128a81856020860161122a565b61129381611254565b840191505092915050565b600060208201905081810360008301526112b88184611265565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112eb826112c0565b9050919050565b6112fb816112e0565b811461130657600080fd5b50565b600081359050611318816112f2565b92915050565b6000819050919050565b6113318161131e565b811461133c57600080fd5b50565b60008135905061134e81611328565b92915050565b6000806040838503121561136b5761136a61114e565b5b600061137985828601611309565b925050602061138a8582860161133f565b9150509250929050565b61139d8161131e565b82525050565b60006020820190506113b86000830184611394565b92915050565b6000806000606084860312156113d7576113d661114e565b5b60006113e586828701611309565b93505060206113f686828701611309565b92505060406114078682870161133f565b9150509250925092565b600060ff82169050919050565b61142781611411565b82525050565b6000602082019050611442600083018461141e565b92915050565b60006020828403121561145e5761145d61114e565b5b600061146c8482850161133f565b91505092915050565b60006020828403121561148b5761148a61114e565b5b600061149984828501611309565b91505092915050565b6114ab816112e0565b82525050565b60006020820190506114c660008301846114a2565b92915050565b600080604083850312156114e3576114e261114e565b5b60006114f185828601611309565b925050602061150285828601611309565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061155357607f821691505b6020821081036115665761156561150c565b5b50919050565b600060608201905061158160008301866114a2565b61158e6020830185611394565b61159b6040830184611394565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115dd8261131e565b91506115e88361131e565b9250828201905080821115611600576115ff6115a3565b5b9291505056fea264697066735822122048d575cfbeea2080d68d0418e746d010eabdeb139b606c0a83f60f23a5008a9964736f6c63430008140033

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

00000000000000000000000010caad82c7eedbffcb95eaee7c0645a6b51f5950000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007556e69636f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004554e434e00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : initialOwner (address): 0x10cAad82C7EedBFfCb95Eaee7C0645a6B51f5950
Arg [1] : name_ (string): Unicoin
Arg [2] : symbol_ (string): UNCN

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 00000000000000000000000010caad82c7eedbffcb95eaee7c0645a6b51f5950
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [4] : 556e69636f696e00000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 554e434e00000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

32733:1244:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33833:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16755:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19048:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17857:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;33478:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32977:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;33150:65;;;:::i;:::-;;33223:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26735:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29276:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18019:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3414:103;;;:::i;:::-;;27153:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;33081:61;;;:::i;:::-;;2739:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16965:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;33330:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18587:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3672:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;33833:141;33903:4;33942:24;33927:39;;;:11;:39;;;;33920:46;;33833:141;;;:::o;16755:91::-;16800:13;16833:5;16826:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16755:91;:::o;19048:190::-;19121:4;19138:13;19154:12;:10;:12::i;:::-;19138:28;;19177:31;19186:5;19193:7;19202:5;19177:8;:31::i;:::-;19226:4;19219:11;;;19048:190;;;;:::o;17857:99::-;17909:7;17936:12;;17929:19;;17857:99;:::o;33478:169::-;33580:4;28881:19;:17;:19::i;:::-;33604:35:::1;33623:4;33629:2;33633:5;33604:18;:35::i;:::-;33597:42;;33478:169:::0;;;;;:::o;32977:92::-;33035:5;33060:1;33053:8;;32977:92;:::o;33150:65::-;2625:13;:11;:13::i;:::-;33197:10:::1;:8;:10::i;:::-;33150:65::o:0;33223:95::-;2625:13;:11;:13::i;:::-;33293:17:::1;33299:2;33303:6;33293:5;:17::i;:::-;33223:95:::0;;:::o;26735:89::-;26790:26;26796:12;:10;:12::i;:::-;26810:5;26790;:26::i;:::-;26735:89;:::o;29276:86::-;29323:4;29347:7;;;;;;;;;;;29340:14;;29276:86;:::o;18019:118::-;18084:7;18111:9;:18;18121:7;18111:18;;;;;;;;;;;;;;;;18104:25;;18019:118;;;:::o;3414:103::-;2625:13;:11;:13::i;:::-;3479:30:::1;3506:1;3479:18;:30::i;:::-;3414:103::o:0;27153:161::-;27229:45;27245:7;27254:12;:10;:12::i;:::-;27268:5;27229:15;:45::i;:::-;27285:21;27291:7;27300:5;27285;:21::i;:::-;27153:161;;:::o;33081:61::-;2625:13;:11;:13::i;:::-;33126:8:::1;:6;:8::i;:::-;33081:61::o:0;2739:87::-;2785:7;2812:6;;;;;;;;;;;2805:13;;2739:87;:::o;16965:95::-;17012:13;17045:7;17038:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16965:95;:::o;33330:140::-;33413:4;28881:19;:17;:19::i;:::-;33437:25:::1;33452:2;33456:5;33437:14;:25::i;:::-;33430:32;;33330:140:::0;;;;:::o;18587:142::-;18667:7;18694:11;:18;18706:5;18694:18;;;;;;;;;;;;;;;:27;18713:7;18694:27;;;;;;;;;;;;;;;;18687:34;;18587:142;;;;:::o;3672:220::-;2625:13;:11;:13::i;:::-;3777:1:::1;3757:22;;:8;:22;;::::0;3753:93:::1;;3831:1;3803:31;;;;;;;;;;;:::i;:::-;;;;;;;;3753:93;3856:28;3875:8;3856:18;:28::i;:::-;3672:220:::0;:::o;800:98::-;853:7;880:10;873:17;;800:98;:::o;23875:130::-;23960:37;23969:5;23976:7;23985:5;23992:4;23960:8;:37::i;:::-;23875:130;;;:::o;29435:132::-;29501:8;:6;:8::i;:::-;29497:63;;;29533:15;;;;;;;;;;;;;;29497:63;29435:132::o;19816:249::-;19903:4;19920:15;19938:12;:10;:12::i;:::-;19920:30;;19961:37;19977:4;19983:7;19992:5;19961:15;:37::i;:::-;20009:26;20019:4;20025:2;20029:5;20009:9;:26::i;:::-;20053:4;20046:11;;;19816:249;;;;;:::o;2904:166::-;2975:12;:10;:12::i;:::-;2964:23;;:7;:5;:7::i;:::-;:23;;;2960:103;;3038:12;:10;:12::i;:::-;3011:40;;;;;;;;;;;:::i;:::-;;;;;;;;2960:103;2904:166::o;30177:120::-;29140:16;:14;:16::i;:::-;30246:5:::1;30236:7;;:15;;;;;;;;;;;;;;;;;;30267:22;30276:12;:10;:12::i;:::-;30267:22;;;;;;:::i;:::-;;;;;;;;30177:120::o:0;22570:213::-;22660:1;22641:21;;:7;:21;;;22637:93;;22715:1;22686:32;;;;;;;;;;;:::i;:::-;;;;;;;;22637:93;22740:35;22756:1;22760:7;22769:5;22740:7;:35::i;:::-;22570:213;;:::o;23111:211::-;23201:1;23182:21;;:7;:21;;;23178:91;;23254:1;23227:30;;;;;;;;;;;:::i;:::-;;;;;;;;23178:91;23279:35;23287:7;23304:1;23308:5;23279:7;:35::i;:::-;23111:211;;:::o;4052:191::-;4126:16;4145:6;;;;;;;;;;;4126:25;;4171:8;4162:6;;:17;;;;;;;;;;;;;;;;;;4226:8;4195:40;;4216:8;4195:40;;;;;;;;;;;;4115:128;4052:191;:::o;25591:487::-;25691:24;25718:25;25728:5;25735:7;25718:9;:25::i;:::-;25691:52;;25778:17;25758:16;:37;25754:317;;25835:5;25816:16;:24;25812:132;;;25895:7;25904:16;25922:5;25868:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;25812:132;25987:57;25996:5;26003:7;26031:5;26012:16;:24;26038:5;25987:8;:57::i;:::-;25754:317;25680:398;25591:487;;;:::o;29918:118::-;28881:19;:17;:19::i;:::-;29988:4:::1;29978:7;;:14;;;;;;;;;;;;;;;;;;30008:20;30015:12;:10;:12::i;:::-;30008:20;;;;;;:::i;:::-;;;;;;;;29918:118::o:0;18342:182::-;18411:4;18428:13;18444:12;:10;:12::i;:::-;18428:28;;18467:27;18477:5;18484:2;18488:5;18467:9;:27::i;:::-;18512:4;18505:11;;;18342:182;;;;:::o;24856:443::-;24986:1;24969:19;;:5;:19;;;24965:91;;25041:1;25012:32;;;;;;;;;;;:::i;:::-;;;;;;;;24965:91;25089:1;25070:21;;:7;:21;;;25066:92;;25143:1;25115:31;;;;;;;;;;;:::i;:::-;;;;;;;;25066:92;25198:5;25168:11;:18;25180:5;25168:18;;;;;;;;;;;;;;;:27;25187:7;25168:27;;;;;;;;;;;;;;;:35;;;;25218:9;25214:78;;;25265:7;25249:31;;25258:5;25249:31;;;25274:5;25249:31;;;;;;:::i;:::-;;;;;;;;25214:78;24856:443;;;;:::o;20450:308::-;20550:1;20534:18;;:4;:18;;;20530:88;;20603:1;20576:30;;;;;;;;;;;:::i;:::-;;;;;;;;20530:88;20646:1;20632:16;;:2;:16;;;20628:88;;20701:1;20672:32;;;;;;;;;;;:::i;:::-;;;;;;;;20628:88;20726:24;20734:4;20740:2;20744:5;20726:7;:24::i;:::-;20450:308;;;:::o;29644:130::-;29708:8;:6;:8::i;:::-;29703:64;;29740:15;;;;;;;;;;;;;;29703:64;29644:130::o;33655:170::-;33787:30;33801:4;33807:2;33811:5;33787:13;:30::i;:::-;33655:170;;;:::o;31456:147::-;28881:19;:17;:19::i;:::-;31565:30:::1;31579:4;31585:2;31589:5;31565:13;:30::i;:::-;31456:147:::0;;;:::o;21082:1135::-;21188:1;21172:18;;:4;:18;;;21168:552;;21326:5;21310:12;;:21;;;;;;;:::i;:::-;;;;;;;;21168:552;;;21364:19;21386:9;:15;21396:4;21386:15;;;;;;;;;;;;;;;;21364:37;;21434:5;21420:11;:19;21416:117;;;21492:4;21498:11;21511:5;21467:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;21416:117;21688:5;21674:11;:19;21656:9;:15;21666:4;21656:15;;;;;;;;;;;;;;;:37;;;;21349:371;21168:552;21750:1;21736:16;;:2;:16;;;21732:435;;21918:5;21902:12;;:21;;;;;;;;;;;21732:435;;;22135:5;22118:9;:13;22128:2;22118:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;21732:435;22199:2;22184:25;;22193:4;22184:25;;;22203:5;22184:25;;;;;;:::i;:::-;;;;;;;;21082:1135;;;:::o;88:117:1:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:126::-;2897:7;2937:42;2930:5;2926:54;2915:65;;2860:126;;;:::o;2992:96::-;3029:7;3058:24;3076:5;3058:24;:::i;:::-;3047:35;;2992:96;;;:::o;3094:122::-;3167:24;3185:5;3167:24;:::i;:::-;3160:5;3157:35;3147:63;;3206:1;3203;3196:12;3147:63;3094:122;:::o;3222:139::-;3268:5;3306:6;3293:20;3284:29;;3322:33;3349:5;3322:33;:::i;:::-;3222:139;;;;:::o;3367:77::-;3404:7;3433:5;3422:16;;3367:77;;;:::o;3450:122::-;3523:24;3541:5;3523:24;:::i;:::-;3516:5;3513:35;3503:63;;3562:1;3559;3552:12;3503:63;3450:122;:::o;3578:139::-;3624:5;3662:6;3649:20;3640:29;;3678:33;3705:5;3678:33;:::i;:::-;3578:139;;;;:::o;3723:474::-;3791:6;3799;3848:2;3836:9;3827:7;3823:23;3819:32;3816:119;;;3854:79;;:::i;:::-;3816:119;3974:1;3999:53;4044:7;4035:6;4024:9;4020:22;3999:53;:::i;:::-;3989:63;;3945:117;4101:2;4127:53;4172:7;4163:6;4152:9;4148:22;4127:53;:::i;:::-;4117:63;;4072:118;3723:474;;;;;:::o;4203:118::-;4290:24;4308:5;4290:24;:::i;:::-;4285:3;4278:37;4203:118;;:::o;4327:222::-;4420:4;4458:2;4447:9;4443:18;4435:26;;4471:71;4539:1;4528:9;4524:17;4515:6;4471:71;:::i;:::-;4327:222;;;;:::o;4555:619::-;4632:6;4640;4648;4697:2;4685:9;4676:7;4672:23;4668:32;4665:119;;;4703:79;;:::i;:::-;4665:119;4823:1;4848:53;4893:7;4884:6;4873:9;4869:22;4848:53;:::i;:::-;4838:63;;4794:117;4950:2;4976:53;5021:7;5012:6;5001:9;4997:22;4976:53;:::i;:::-;4966:63;;4921:118;5078:2;5104:53;5149:7;5140:6;5129:9;5125:22;5104:53;:::i;:::-;5094:63;;5049:118;4555:619;;;;;:::o;5180:86::-;5215:7;5255:4;5248:5;5244:16;5233:27;;5180:86;;;:::o;5272:112::-;5355:22;5371:5;5355:22;:::i;:::-;5350:3;5343:35;5272:112;;:::o;5390:214::-;5479:4;5517:2;5506:9;5502:18;5494:26;;5530:67;5594:1;5583:9;5579:17;5570:6;5530:67;:::i;:::-;5390:214;;;;:::o;5610:329::-;5669:6;5718:2;5706:9;5697:7;5693:23;5689:32;5686:119;;;5724:79;;:::i;:::-;5686:119;5844:1;5869:53;5914:7;5905:6;5894:9;5890:22;5869:53;:::i;:::-;5859:63;;5815:117;5610:329;;;;:::o;5945:::-;6004:6;6053:2;6041:9;6032:7;6028:23;6024:32;6021:119;;;6059:79;;:::i;:::-;6021:119;6179:1;6204:53;6249:7;6240:6;6229:9;6225:22;6204:53;:::i;:::-;6194:63;;6150:117;5945:329;;;;:::o;6280:118::-;6367:24;6385:5;6367:24;:::i;:::-;6362:3;6355:37;6280:118;;:::o;6404:222::-;6497:4;6535:2;6524:9;6520:18;6512:26;;6548:71;6616:1;6605:9;6601:17;6592:6;6548:71;:::i;:::-;6404:222;;;;:::o;6632:474::-;6700:6;6708;6757:2;6745:9;6736:7;6732:23;6728:32;6725:119;;;6763:79;;:::i;:::-;6725:119;6883:1;6908:53;6953:7;6944:6;6933:9;6929:22;6908:53;:::i;:::-;6898:63;;6854:117;7010:2;7036:53;7081:7;7072:6;7061:9;7057:22;7036:53;:::i;:::-;7026:63;;6981:118;6632:474;;;;;:::o;7112:180::-;7160:77;7157:1;7150:88;7257:4;7254:1;7247:15;7281:4;7278:1;7271:15;7298:320;7342:6;7379:1;7373:4;7369:12;7359:22;;7426:1;7420:4;7416:12;7447:18;7437:81;;7503:4;7495:6;7491:17;7481:27;;7437:81;7565:2;7557:6;7554:14;7534:18;7531:38;7528:84;;7584:18;;:::i;:::-;7528:84;7349:269;7298:320;;;:::o;7624:442::-;7773:4;7811:2;7800:9;7796:18;7788:26;;7824:71;7892:1;7881:9;7877:17;7868:6;7824:71;:::i;:::-;7905:72;7973:2;7962:9;7958:18;7949:6;7905:72;:::i;:::-;7987;8055:2;8044:9;8040:18;8031:6;7987:72;:::i;:::-;7624:442;;;;;;:::o;8072:180::-;8120:77;8117:1;8110:88;8217:4;8214:1;8207:15;8241:4;8238:1;8231:15;8258:191;8298:3;8317:20;8335:1;8317:20;:::i;:::-;8312:25;;8351:20;8369:1;8351:20;:::i;:::-;8346:25;;8394:1;8391;8387:9;8380:16;;8415:3;8412:1;8409:10;8406:36;;;8422:18;;:::i;:::-;8406:36;8258:191;;;;:::o

Swarm Source

ipfs://48d575cfbeea2080d68d0418e746d010eabdeb139b606c0a83f60f23a5008a99
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.