ETH Price: $3,209.78 (-3.22%)
 

Overview

Max Total Supply

888,888,888,888 BEID

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: BEID
Balance
119,457,108,150.644797333968738154 BEID

Value
$0.00
0x33b23426da6fb8e1d37637f32d2fa73218c582d5
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20PresetMinterPauser

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-23
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
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;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    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;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

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

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}
abstract contract ERC20Burnable is Context, ERC20 {
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}
abstract contract Pausable is Context {
    event Paused(address account);

    event Unpaused(address account);

    bool private _paused;

    constructor() {
        _paused = false;
    }

    modifier whenNotPaused() {
        _requireNotPaused();
        _;
    }

    modifier whenPaused() {
        _requirePaused();
        _;
    }

    function paused() public view virtual returns (bool) {
        return _paused;
    }

    function _requireNotPaused() internal view virtual {
        require(!paused(), "Pausable: paused");
    }

    function _requirePaused() internal view virtual {
        require(paused(), "Pausable: not paused");
    }

    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}
abstract contract ERC20Pausable is ERC20, Pausable {
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override {
        super._beforeTokenTransfer(from, to, amount);

        require(!paused(), "ERC20Pausable: token transfer while paused");
    }
}
interface IAccessControl {
    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);

    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);

    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);

    function hasRole(bytes32 role, address account) external view returns (bool);

    function getRoleAdmin(bytes32 role) external view returns (bytes32);

    function grantRole(bytes32 role, address account) external;

    function revokeRole(bytes32 role, address account) external;

    function renounceRole(bytes32 role, address account) external;
}
interface IAccessControlEnumerable is IAccessControl {
    function getRoleMember(bytes32 role, uint256 index) external view returns (address);

    function getRoleMemberCount(bytes32 role) external view returns (uint256);
}
library Math {
    enum Rounding {
        Down,
        Up,
        Zero
    }

    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a > b ? a : b;
    }

    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        return (a & b) + (a ^ b) / 2;
    }

    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {
        return a == 0 ? 0 : (a - 1) / b + 1;
    }

    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {
        unchecked {
            uint256 prod0;
            uint256 prod1;
            assembly {
                let mm := mulmod(x, y, not(0))
                prod0 := mul(x, y)
                prod1 := sub(sub(mm, prod0), lt(mm, prod0))
            }

            if (prod1 == 0) {
                return prod0 / denominator;
            }

            require(denominator > prod1, "Math: mulDiv overflow");

            uint256 remainder;
            assembly {
                remainder := mulmod(x, y, denominator)

                prod1 := sub(prod1, gt(remainder, prod0))
                prod0 := sub(prod0, remainder)
            }

            uint256 twos = denominator & (~denominator + 1);
            assembly {
                denominator := div(denominator, twos)

                prod0 := div(prod0, twos)

                twos := add(div(sub(0, twos), twos), 1)
            }

            prod0 |= prod1 * twos;

            uint256 inverse = (3 * denominator) ^ 2;

            inverse *= 2 - denominator * inverse;
            inverse *= 2 - denominator * inverse;
            inverse *= 2 - denominator * inverse;
            inverse *= 2 - denominator * inverse;
            inverse *= 2 - denominator * inverse;
            inverse *= 2 - denominator * inverse;

            result = prod0 * inverse;
            return result;
        }
    }

    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {
        uint256 result = mulDiv(x, y, denominator);
        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
            result += 1;
        }
        return result;
    }

    function sqrt(uint256 a) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 result = 1 << (log2(a) >> 1);

        unchecked {
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            result = (result + a / result) >> 1;
            return min(result, a / result);
        }
    }

    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {
        unchecked {
            uint256 result = sqrt(a);
            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);
        }
    }

    function log2(uint256 value) internal pure returns (uint256) {
        uint256 result = 0;
        unchecked {
            if (value >> 128 > 0) {
                value >>= 128;
                result += 128;
            }
            if (value >> 64 > 0) {
                value >>= 64;
                result += 64;
            }
            if (value >> 32 > 0) {
                value >>= 32;
                result += 32;
            }
            if (value >> 16 > 0) {
                value >>= 16;
                result += 16;
            }
            if (value >> 8 > 0) {
                value >>= 8;
                result += 8;
            }
            if (value >> 4 > 0) {
                value >>= 4;
                result += 4;
            }
            if (value >> 2 > 0) {
                value >>= 2;
                result += 2;
            }
            if (value >> 1 > 0) {
                result += 1;
            }
        }
        return result;
    }

    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {
        unchecked {
            uint256 result = log2(value);
            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);
        }
    }

    function log10(uint256 value) internal pure returns (uint256) {
        uint256 result = 0;
        unchecked {
            if (value >= 10 ** 64) {
                value /= 10 ** 64;
                result += 64;
            }
            if (value >= 10 ** 32) {
                value /= 10 ** 32;
                result += 32;
            }
            if (value >= 10 ** 16) {
                value /= 10 ** 16;
                result += 16;
            }
            if (value >= 10 ** 8) {
                value /= 10 ** 8;
                result += 8;
            }
            if (value >= 10 ** 4) {
                value /= 10 ** 4;
                result += 4;
            }
            if (value >= 10 ** 2) {
                value /= 10 ** 2;
                result += 2;
            }
            if (value >= 10 ** 1) {
                result += 1;
            }
        }
        return result;
    }

    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {
        unchecked {
            uint256 result = log10(value);
            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);
        }
    }

    function log256(uint256 value) internal pure returns (uint256) {
        uint256 result = 0;
        unchecked {
            if (value >> 128 > 0) {
                value >>= 128;
                result += 16;
            }
            if (value >> 64 > 0) {
                value >>= 64;
                result += 8;
            }
            if (value >> 32 > 0) {
                value >>= 32;
                result += 4;
            }
            if (value >> 16 > 0) {
                value >>= 16;
                result += 2;
            }
            if (value >> 8 > 0) {
                result += 1;
            }
        }
        return result;
    }

    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {
        unchecked {
            uint256 result = log256(value);
            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);
        }
    }
}
library SignedMath {
    function max(int256 a, int256 b) internal pure returns (int256) {
        return a > b ? a : b;
    }

    function min(int256 a, int256 b) internal pure returns (int256) {
        return a < b ? a : b;
    }

    function average(int256 a, int256 b) internal pure returns (int256) {
        int256 x = (a & b) + ((a ^ b) >> 1);
        return x + (int256(uint256(x) >> 255) & (a ^ b));
    }

    function abs(int256 n) internal pure returns (uint256) {
        unchecked {
            return uint256(n >= 0 ? n : -n);
        }
    }
}
library Strings {
    bytes16 private constant _SYMBOLS = "0123456789abcdef";
    uint8 private constant _ADDRESS_LENGTH = 20;

    function toString(uint256 value) internal pure returns (string memory) {
        unchecked {
            uint256 length = Math.log10(value) + 1;
            string memory buffer = new string(length);
            uint256 ptr;
            assembly {
                ptr := add(buffer, add(32, length))
            }
            while (true) {
                ptr--;
                assembly {
                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))
                }
                value /= 10;
                if (value == 0) break;
            }
            return buffer;
        }
    }

    function toString(int256 value) internal pure returns (string memory) {
        return string(abi.encodePacked(value < 0 ? "-" : "", toString(SignedMath.abs(value))));
    }

    function toHexString(uint256 value) internal pure returns (string memory) {
        unchecked {
            return toHexString(value, Math.log256(value) + 1);
        }
    }

    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }

    function toHexString(address addr) internal pure returns (string memory) {
        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
    }

    function equal(string memory a, string memory b) internal pure returns (bool) {
        return keccak256(bytes(a)) == keccak256(bytes(b));
    }
}
interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}
abstract contract AccessControl is Context, IAccessControl, ERC165 {
    struct RoleData {
        mapping(address => bool) members;
        bytes32 adminRole;
    }

    mapping(bytes32 => RoleData) private _roles;

    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;

    modifier onlyRole(bytes32 role) {
        _checkRole(role);
        _;
    }

    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);
    }

    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {
        return _roles[role].members[account];
    }

    function _checkRole(bytes32 role) internal view virtual {
        _checkRole(role, _msgSender());
    }

    function _checkRole(bytes32 role, address account) internal view virtual {
        if (!hasRole(role, account)) {
            revert(
                string(
                    abi.encodePacked(
                        "AccessControl: account ",
                        Strings.toHexString(account),
                        " is missing role ",
                        Strings.toHexString(uint256(role), 32)
                    )
                )
            );
        }
    }

    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {
        return _roles[role].adminRole;
    }

    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {
        _grantRole(role, account);
    }

    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {
        _revokeRole(role, account);
    }

    function renounceRole(bytes32 role, address account) public virtual override {
        require(account == _msgSender(), "AccessControl: can only renounce roles for self");

        _revokeRole(role, account);
    }

    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }

    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        bytes32 previousAdminRole = getRoleAdmin(role);
        _roles[role].adminRole = adminRole;
        emit RoleAdminChanged(role, previousAdminRole, adminRole);
    }

    function _grantRole(bytes32 role, address account) internal virtual {
        if (!hasRole(role, account)) {
            _roles[role].members[account] = true;
            emit RoleGranted(role, account, _msgSender());
        }
    }

    function _revokeRole(bytes32 role, address account) internal virtual {
        if (hasRole(role, account)) {
            _roles[role].members[account] = false;
            emit RoleRevoked(role, account, _msgSender());
        }
    }
}
library EnumerableSet {
    struct Set {
        bytes32[] _values;
        mapping(bytes32 => uint256) _indexes;
    }

    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];

        if (valueIndex != 0) {
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;

            if (lastIndex != toDeleteIndex) {
                bytes32 lastValue = set._values[lastIndex];

                set._values[toDeleteIndex] = lastValue;
                set._indexes[lastValue] = valueIndex;
            }

            set._values.pop();

            delete set._indexes[value];

            return true;
        } else {
            return false;
        }
    }

    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }

    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }

    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        return set._values[index];
    }

    function _values(Set storage set) private view returns (bytes32[] memory) {
        return set._values;
    }

    struct Bytes32Set {
        Set _inner;
    }

    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _add(set._inner, value);
    }

    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _remove(set._inner, value);
    }

    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {
        return _contains(set._inner, value);
    }

    function length(Bytes32Set storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {
        return _at(set._inner, index);
    }

    function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {
        bytes32[] memory store = _values(set._inner);
        bytes32[] memory result;

        assembly {
            result := store
        }

        return result;
    }

    struct AddressSet {
        Set _inner;
    }

    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(uint160(value))));
    }

    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(uint160(value))));
    }

    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(uint160(value))));
    }

    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint160(uint256(_at(set._inner, index))));
    }

    function values(AddressSet storage set) internal view returns (address[] memory) {
        bytes32[] memory store = _values(set._inner);
        address[] memory result;

        assembly {
            result := store
        }

        return result;
    }

    struct UintSet {
        Set _inner;
    }

    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }

    function values(UintSet storage set) internal view returns (uint256[] memory) {
        bytes32[] memory store = _values(set._inner);
        uint256[] memory result;

        assembly {
            result := store
        }

        return result;
    }
}
abstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {
    using EnumerableSet for EnumerableSet.AddressSet;

    mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;

    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);
    }

    function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) {
        return _roleMembers[role].at(index);
    }

    function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) {
        return _roleMembers[role].length();
    }

    function _grantRole(bytes32 role, address account) internal virtual override {
        super._grantRole(role, account);
        _roleMembers[role].add(account);
    }

    function _revokeRole(bytes32 role, address account) internal virtual override {
        super._revokeRole(role, account);
        _roleMembers[role].remove(account);
    }
}


contract ERC20PresetMinterPauser is Context, AccessControlEnumerable, ERC20Burnable, ERC20Pausable {
    bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
    bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");

    constructor(string memory name, string memory symbol) ERC20(name, symbol) {
        _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());

        _setupRole(MINTER_ROLE, _msgSender());
        _setupRole(PAUSER_ROLE, _msgSender());
    }

    function mint(address to, uint256 amount) public virtual {
        require(hasRole(MINTER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have minter role to mint");
        _mint(to, amount);
    }

    function pause() public virtual {
        require(hasRole(PAUSER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have pauser role to pause");
        _pause();
    }

    function unpause() public virtual {
        require(hasRole(PAUSER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have pauser role to unpause");
        _unpause();
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override(ERC20, ERC20Pausable) {
        super._beforeTokenTransfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"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":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","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":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801562000010575f80fd5b5060405162001cb338038062001cb38339810160408190526200003391620002cf565b81816005620000438382620003c0565b506006620000528282620003c0565b50506007805460ff19169055506200006b5f33620000cb565b620000977f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000cb565b620000c37f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000cb565b505062000488565b620000d78282620000db565b5050565b620000e7828262000105565b5f828152600160205260409020620001009082620001a3565b505050565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620000d7575f828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200015f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f620001b9836001600160a01b038416620001c2565b90505b92915050565b5f8181526001830160205260408120546200020957508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155620001bc565b505f620001bc565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000235575f80fd5b81516001600160401b038082111562000252576200025262000211565b604051601f8301601f19908116603f011681019082821181831017156200027d576200027d62000211565b8160405283815260209250868385880101111562000299575f80fd5b5f91505b83821015620002bc57858201830151818301840152908201906200029d565b5f93810190920192909252949350505050565b5f8060408385031215620002e1575f80fd5b82516001600160401b0380821115620002f8575f80fd5b620003068683870162000225565b935060208501519150808211156200031c575f80fd5b506200032b8582860162000225565b9150509250929050565b600181811c908216806200034a57607f821691505b6020821081036200036957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000100575f81815260208120601f850160051c81016020861015620003975750805b601f850160051c820191505b81811015620003b857828155600101620003a3565b505050505050565b81516001600160401b03811115620003dc57620003dc62000211565b620003f481620003ed845462000335565b846200036f565b602080601f8311600181146200042a575f8415620004125750858301515b5f19600386901b1c1916600185901b178555620003b8565b5f85815260208120601f198616915b828110156200045a5788860151825594840194600190910190840162000439565b50858210156200047857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b61181d80620004965f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c806370a08231116100f3578063a457c2d711610093578063d53913931161006e578063d5391393146103a2578063d547741f146103c9578063dd62ed3e146103dc578063e63ab1e9146103ef575f80fd5b8063a457c2d714610369578063a9059cbb1461037c578063ca15c8731461038f575f80fd5b80639010d07c116100ce5780639010d07c1461031c57806391d148541461034757806395d89b411461035a578063a217fddf14610362575f80fd5b806370a08231146102d957806379cc6790146103015780638456cb5914610314575f80fd5b8063313ce5671161015e5780633f4ba83a116101395780633f4ba83a146102a057806340c10f19146102a857806342966c68146102bb5780635c975abb146102ce575f80fd5b8063313ce5671461026b57806336568abe1461027a578063395093511461028d575f80fd5b806318160ddd1161019957806318160ddd1461020f57806323b872dd14610221578063248a9ca3146102345780632f2ff15d14610256575f80fd5b806301ffc9a7146101bf57806306fdde03146101e7578063095ea7b3146101fc575b5f80fd5b6101d26101cd366004611500565b610416565b60405190151581526020015b60405180910390f35b6101ef610440565b6040516101de9190611549565b6101d261020a366004611596565b6104d0565b6004545b6040519081526020016101de565b6101d261022f3660046115be565b6104e7565b6102136102423660046115f7565b5f9081526020819052604090206001015490565b61026961026436600461160e565b61050a565b005b604051601281526020016101de565b61026961028836600461160e565b610533565b6101d261029b366004611596565b6105b6565b6102696105d7565b6102696102b6366004611596565b61067d565b6102696102c93660046115f7565b61071c565b60075460ff166101d2565b6102136102e7366004611638565b6001600160a01b03165f9081526002602052604090205490565b61026961030f366004611596565b610729565b61026961073e565b61032f61032a366004611651565b6107e2565b6040516001600160a01b0390911681526020016101de565b6101d261035536600461160e565b610800565b6101ef610828565b6102135f81565b6101d2610377366004611596565b610837565b6101d261038a366004611596565b6108b1565b61021361039d3660046115f7565b6108be565b6102137f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102696103d736600461160e565b6108d4565b6102136103ea366004611671565b6108f8565b6102137f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b5f6001600160e01b03198216635a05180f60e01b148061043a575061043a82610922565b92915050565b60606005805461044f90611699565b80601f016020809104026020016040519081016040528092919081815260200182805461047b90611699565b80156104c65780601f1061049d576101008083540402835291602001916104c6565b820191905f5260205f20905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b5f336104dd818585610956565b5060019392505050565b5f336104f4858285610a79565b6104ff858585610af1565b506001949350505050565b5f8281526020819052604090206001015461052481610ca5565b61052e8383610caf565b505050565b6001600160a01b03811633146105a85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105b28282610cd0565b5050565b5f336104dd8185856105c883836108f8565b6105d291906116e5565b610956565b6106017f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610800565b6106735760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e706175736500000000000000606482015260840161059f565b61067b610cf1565b565b6106a77f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610800565b6107125760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b606482015260840161059f565b6105b28282610d43565b6107263382610e0d565b50565b610734823383610a79565b6105b28282610e0d565b6107687f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610800565b6107da5760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f207061757365000000000000000000606482015260840161059f565b61067b610f4a565b5f8281526001602052604081206107f99083610f87565b9392505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461044f90611699565b5f338161084482866108f8565b9050838110156108a45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161059f565b6104ff8286868403610956565b5f336104dd818585610af1565b5f81815260016020526040812061043a90610f92565b5f828152602081905260409020600101546108ee81610ca5565b61052e8383610cd0565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b5f6001600160e01b03198216637965db0b60e01b148061043a57506301ffc9a760e01b6001600160e01b031983161461043a565b6001600160a01b0383166109b85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b038216610a195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610a8484846108f8565b90505f198114610aeb5781811015610ade5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161059f565b610aeb8484848403610956565b50505050565b6001600160a01b038316610b555760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b038216610bb75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b610bc2838383610f9b565b6001600160a01b0383165f9081526002602052604090205481811015610c395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161059f565b6001600160a01b038085165f8181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c989086815260200190565b60405180910390a3610aeb565b6107268133610fa6565b610cb98282610fff565b5f82815260016020526040902061052e9082611082565b610cda8282611096565b5f82815260016020526040902061052e90826110fa565b610cf961110e565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610d995760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161059f565b610da45f8383610f9b565b8060045f828254610db591906116e5565b90915550506001600160a01b0382165f818152600260209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610e6d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161059f565b610e78825f83610f9b565b6001600160a01b0382165f9081526002602052604090205481811015610eeb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161059f565b6001600160a01b0383165f8181526002602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b610f52611157565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610d263390565b5f6107f9838361119d565b5f61043a825490565b61052e8383836111c3565b610fb08282610800565b6105b257610fbd81611229565b610fc883602061123b565b604051602001610fd99291906116f8565b60408051601f198184030181529082905262461bcd60e51b825261059f91600401611549565b6110098282610800565b6105b2575f828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561103e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f6107f9836001600160a01b0384166113d1565b6110a08282610800565b156105b2575f828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f6107f9836001600160a01b03841661141d565b60075460ff1661067b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161059f565b60075460ff161561067b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161059f565b5f825f0182815481106111b2576111b261176c565b905f5260205f200154905092915050565b60075460ff161561052e5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b606482015260840161059f565b606061043a6001600160a01b03831660145b60605f611249836002611780565b6112549060026116e5565b67ffffffffffffffff81111561126c5761126c611797565b6040519080825280601f01601f191660200182016040528015611296576020820181803683370190505b509050600360fc1b815f815181106112b0576112b061176c565b60200101906001600160f81b03191690815f1a905350600f60fb1b816001815181106112de576112de61176c565b60200101906001600160f81b03191690815f1a9053505f611300846002611780565b61130b9060016116e5565b90505b6001811115611382576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061133f5761133f61176c565b1a60f81b8282815181106113555761135561176c565b60200101906001600160f81b03191690815f1a90535060049490941c9361137b816117ab565b905061130e565b5083156107f95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161059f565b5f81815260018301602052604081205461141657508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561043a565b505f61043a565b5f81815260018301602052604081205480156114f7575f61143f6001836117c0565b85549091505f90611452906001906117c0565b90508181146114b1575f865f0182815481106114705761147061176c565b905f5260205f200154905080875f0184815481106114905761149061176c565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806114c2576114c26117d3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061043a565b5f91505061043a565b5f60208284031215611510575f80fd5b81356001600160e01b0319811681146107f9575f80fd5b5f5b83811015611541578181015183820152602001611529565b50505f910152565b602081525f8251806020840152611567816040850160208701611527565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611591575f80fd5b919050565b5f80604083850312156115a7575f80fd5b6115b08361157b565b946020939093013593505050565b5f805f606084860312156115d0575f80fd5b6115d98461157b565b92506115e76020850161157b565b9150604084013590509250925092565b5f60208284031215611607575f80fd5b5035919050565b5f806040838503121561161f575f80fd5b8235915061162f6020840161157b565b90509250929050565b5f60208284031215611648575f80fd5b6107f98261157b565b5f8060408385031215611662575f80fd5b50508035926020909101359150565b5f8060408385031215611682575f80fd5b61168b8361157b565b915061162f6020840161157b565b600181811c908216806116ad57607f821691505b6020821081036116cb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561043a5761043a6116d1565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f835161172f816017850160208801611527565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611760816028840160208801611527565b01602801949350505050565b634e487b7160e01b5f52603260045260245ffd5b808202811582820484141761043a5761043a6116d1565b634e487b7160e01b5f52604160045260245ffd5b5f816117b9576117b96116d1565b505f190190565b8181038181111561043a5761043a6116d1565b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220ca4db07f7b785d2572dac73a618b8354c8fab4376c92b66bc24913ef461418a864736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c4265696a696e67204475636b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044245494400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106101bb575f3560e01c806370a08231116100f3578063a457c2d711610093578063d53913931161006e578063d5391393146103a2578063d547741f146103c9578063dd62ed3e146103dc578063e63ab1e9146103ef575f80fd5b8063a457c2d714610369578063a9059cbb1461037c578063ca15c8731461038f575f80fd5b80639010d07c116100ce5780639010d07c1461031c57806391d148541461034757806395d89b411461035a578063a217fddf14610362575f80fd5b806370a08231146102d957806379cc6790146103015780638456cb5914610314575f80fd5b8063313ce5671161015e5780633f4ba83a116101395780633f4ba83a146102a057806340c10f19146102a857806342966c68146102bb5780635c975abb146102ce575f80fd5b8063313ce5671461026b57806336568abe1461027a578063395093511461028d575f80fd5b806318160ddd1161019957806318160ddd1461020f57806323b872dd14610221578063248a9ca3146102345780632f2ff15d14610256575f80fd5b806301ffc9a7146101bf57806306fdde03146101e7578063095ea7b3146101fc575b5f80fd5b6101d26101cd366004611500565b610416565b60405190151581526020015b60405180910390f35b6101ef610440565b6040516101de9190611549565b6101d261020a366004611596565b6104d0565b6004545b6040519081526020016101de565b6101d261022f3660046115be565b6104e7565b6102136102423660046115f7565b5f9081526020819052604090206001015490565b61026961026436600461160e565b61050a565b005b604051601281526020016101de565b61026961028836600461160e565b610533565b6101d261029b366004611596565b6105b6565b6102696105d7565b6102696102b6366004611596565b61067d565b6102696102c93660046115f7565b61071c565b60075460ff166101d2565b6102136102e7366004611638565b6001600160a01b03165f9081526002602052604090205490565b61026961030f366004611596565b610729565b61026961073e565b61032f61032a366004611651565b6107e2565b6040516001600160a01b0390911681526020016101de565b6101d261035536600461160e565b610800565b6101ef610828565b6102135f81565b6101d2610377366004611596565b610837565b6101d261038a366004611596565b6108b1565b61021361039d3660046115f7565b6108be565b6102137f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102696103d736600461160e565b6108d4565b6102136103ea366004611671565b6108f8565b6102137f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b5f6001600160e01b03198216635a05180f60e01b148061043a575061043a82610922565b92915050565b60606005805461044f90611699565b80601f016020809104026020016040519081016040528092919081815260200182805461047b90611699565b80156104c65780601f1061049d576101008083540402835291602001916104c6565b820191905f5260205f20905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b5f336104dd818585610956565b5060019392505050565b5f336104f4858285610a79565b6104ff858585610af1565b506001949350505050565b5f8281526020819052604090206001015461052481610ca5565b61052e8383610caf565b505050565b6001600160a01b03811633146105a85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105b28282610cd0565b5050565b5f336104dd8185856105c883836108f8565b6105d291906116e5565b610956565b6106017f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610800565b6106735760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e706175736500000000000000606482015260840161059f565b61067b610cf1565b565b6106a77f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610800565b6107125760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b606482015260840161059f565b6105b28282610d43565b6107263382610e0d565b50565b610734823383610a79565b6105b28282610e0d565b6107687f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610800565b6107da5760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f207061757365000000000000000000606482015260840161059f565b61067b610f4a565b5f8281526001602052604081206107f99083610f87565b9392505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606006805461044f90611699565b5f338161084482866108f8565b9050838110156108a45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161059f565b6104ff8286868403610956565b5f336104dd818585610af1565b5f81815260016020526040812061043a90610f92565b5f828152602081905260409020600101546108ee81610ca5565b61052e8383610cd0565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b5f6001600160e01b03198216637965db0b60e01b148061043a57506301ffc9a760e01b6001600160e01b031983161461043a565b6001600160a01b0383166109b85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b038216610a195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610a8484846108f8565b90505f198114610aeb5781811015610ade5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161059f565b610aeb8484848403610956565b50505050565b6001600160a01b038316610b555760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b038216610bb75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b610bc2838383610f9b565b6001600160a01b0383165f9081526002602052604090205481811015610c395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161059f565b6001600160a01b038085165f8181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c989086815260200190565b60405180910390a3610aeb565b6107268133610fa6565b610cb98282610fff565b5f82815260016020526040902061052e9082611082565b610cda8282611096565b5f82815260016020526040902061052e90826110fa565b610cf961110e565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610d995760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161059f565b610da45f8383610f9b565b8060045f828254610db591906116e5565b90915550506001600160a01b0382165f818152600260209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610e6d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161059f565b610e78825f83610f9b565b6001600160a01b0382165f9081526002602052604090205481811015610eeb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161059f565b6001600160a01b0383165f8181526002602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b610f52611157565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610d263390565b5f6107f9838361119d565b5f61043a825490565b61052e8383836111c3565b610fb08282610800565b6105b257610fbd81611229565b610fc883602061123b565b604051602001610fd99291906116f8565b60408051601f198184030181529082905262461bcd60e51b825261059f91600401611549565b6110098282610800565b6105b2575f828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561103e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f6107f9836001600160a01b0384166113d1565b6110a08282610800565b156105b2575f828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f6107f9836001600160a01b03841661141d565b60075460ff1661067b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161059f565b60075460ff161561067b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161059f565b5f825f0182815481106111b2576111b261176c565b905f5260205f200154905092915050565b60075460ff161561052e5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b606482015260840161059f565b606061043a6001600160a01b03831660145b60605f611249836002611780565b6112549060026116e5565b67ffffffffffffffff81111561126c5761126c611797565b6040519080825280601f01601f191660200182016040528015611296576020820181803683370190505b509050600360fc1b815f815181106112b0576112b061176c565b60200101906001600160f81b03191690815f1a905350600f60fb1b816001815181106112de576112de61176c565b60200101906001600160f81b03191690815f1a9053505f611300846002611780565b61130b9060016116e5565b90505b6001811115611382576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061133f5761133f61176c565b1a60f81b8282815181106113555761135561176c565b60200101906001600160f81b03191690815f1a90535060049490941c9361137b816117ab565b905061130e565b5083156107f95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161059f565b5f81815260018301602052604081205461141657508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561043a565b505f61043a565b5f81815260018301602052604081205480156114f7575f61143f6001836117c0565b85549091505f90611452906001906117c0565b90508181146114b1575f865f0182815481106114705761147061176c565b905f5260205f200154905080875f0184815481106114905761149061176c565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806114c2576114c26117d3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061043a565b5f91505061043a565b5f60208284031215611510575f80fd5b81356001600160e01b0319811681146107f9575f80fd5b5f5b83811015611541578181015183820152602001611529565b50505f910152565b602081525f8251806020840152611567816040850160208701611527565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611591575f80fd5b919050565b5f80604083850312156115a7575f80fd5b6115b08361157b565b946020939093013593505050565b5f805f606084860312156115d0575f80fd5b6115d98461157b565b92506115e76020850161157b565b9150604084013590509250925092565b5f60208284031215611607575f80fd5b5035919050565b5f806040838503121561161f575f80fd5b8235915061162f6020840161157b565b90509250929050565b5f60208284031215611648575f80fd5b6107f98261157b565b5f8060408385031215611662575f80fd5b50508035926020909101359150565b5f8060408385031215611682575f80fd5b61168b8361157b565b915061162f6020840161157b565b600181811c908216806116ad57607f821691505b6020821081036116cb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561043a5761043a6116d1565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f835161172f816017850160208801611527565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611760816028840160208801611527565b01602801949350505050565b634e487b7160e01b5f52603260045260245ffd5b808202811582820484141761043a5761043a6116d1565b634e487b7160e01b5f52604160045260245ffd5b5f816117b9576117b96116d1565b505f190190565b8181038181111561043a5761043a6116d1565b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220ca4db07f7b785d2572dac73a618b8354c8fab4376c92b66bc24913ef461418a864736f6c63430008140033

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

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c4265696a696e67204475636b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044245494400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Beijing Duck
Arg [1] : symbol (string): BEID

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [3] : 4265696a696e67204475636b0000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 4245494400000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

27198:1288:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26305:214;;;;;;:::i;:::-;;:::i;:::-;;;470:14:1;;463:22;445:41;;433:2;418:18;26305:214:0;;;;;;;;1609:100;;;:::i;:::-;;;;;;;:::i;2541:201::-;;;;;;:::i;:::-;;:::i;1930:108::-;2018:12;;1930:108;;;1736:25:1;;;1724:2;1709:18;1930:108:0;1590:177:1;2750:261:0;;;;;;:::i;:::-;;:::i;19763:131::-;;;;;;:::i;:::-;19837:7;19864:12;;;;;;;;;;:22;;;;19763:131;19902:147;;;;;;:::i;:::-;;:::i;:::-;;1829:93;;;1912:2;2873:36:1;;2861:2;2846:18;1829:93:0;2731:184:1;20214:218:0;;;;;;:::i;:::-;;:::i;3019:238::-;;;;;;:::i;:::-;;:::i;28080:178::-;;;:::i;27687:205::-;;;;;;:::i;:::-;;:::i;6436:91::-;;;;;;:::i;:::-;;:::i;7072:86::-;7143:7;;;;7072:86;;2046:127;;;;;;:::i;:::-;-1:-1:-1;;;;;2147:18:0;2120:7;2147:18;;;:9;:18;;;;;;;2046:127;6535:164;;;;;;:::i;:::-;;:::i;27900:172::-;;;:::i;26527:153::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3713:32:1;;;3695:51;;3683:2;3668:18;26527:153:0;3549:203:1;18995:147:0;;;;;;:::i;:::-;;:::i;1717:104::-;;;:::i;18638:49::-;;18683:4;18638:49;;3265:436;;;;;;:::i;:::-;;:::i;2181:193::-;;;;;;:::i;:::-;;:::i;26688:142::-;;;;;;:::i;:::-;;:::i;27304:62::-;;27342:24;27304:62;;20057:149;;;;;;:::i;:::-;;:::i;2382:151::-;;;;;;:::i;:::-;;:::i;27373:62::-;;27411:24;27373:62;;26305:214;26390:4;-1:-1:-1;;;;;;26414:57:0;;-1:-1:-1;;;26414:57:0;;:97;;;26475:36;26499:11;26475:23;:36::i;:::-;26407:104;26305:214;-1:-1:-1;;26305:214:0:o;1609:100::-;1663:13;1696:5;1689:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:100;:::o;2541:201::-;2624:4;1071:10;2680:32;1071:10;2696:7;2705:6;2680:8;:32::i;:::-;-1:-1:-1;2730:4:0;;2541:201;-1:-1:-1;;;2541:201:0:o;2750:261::-;2847:4;1071:10;2905:38;2921:4;1071:10;2936:6;2905:15;:38::i;:::-;2954:27;2964:4;2970:2;2974:6;2954:9;:27::i;:::-;-1:-1:-1;2999:4:0;;2750:261;-1:-1:-1;;;;2750:261:0:o;19902:147::-;19837:7;19864:12;;;;;;;;;;:22;;;18739:16;18750:4;18739:10;:16::i;:::-;20016:25:::1;20027:4;20033:7;20016:10;:25::i;:::-;19902:147:::0;;;:::o;20214:218::-;-1:-1:-1;;;;;20310:23:0;;1071:10;20310:23;20302:83;;;;-1:-1:-1;;;20302:83:0;;4609:2:1;20302:83:0;;;4591:21:1;4648:2;4628:18;;;4621:30;4687:34;4667:18;;;4660:62;-1:-1:-1;;;4738:18:1;;;4731:45;4793:19;;20302:83:0;;;;;;;;;20398:26;20410:4;20416:7;20398:11;:26::i;:::-;20214:218;;:::o;3019:238::-;3107:4;1071:10;3163:64;1071:10;3179:7;3216:10;3188:25;1071:10;3179:7;3188:9;:25::i;:::-;:38;;;;:::i;:::-;3163:8;:64::i;28080:178::-;28133:34;27411:24;1071:10;18995:147;:::i;28133:34::-;28125:104;;;;-1:-1:-1;;;28125:104:0;;5287:2:1;28125:104:0;;;5269:21:1;5326:2;5306:18;;;5299:30;5365:34;5345:18;;;5338:62;5436:27;5416:18;;;5409:55;5481:19;;28125:104:0;5085:421:1;28125:104:0;28240:10;:8;:10::i;:::-;28080:178::o;27687:205::-;27763:34;27342:24;1071:10;18995:147;:::i;27763:34::-;27755:101;;;;-1:-1:-1;;;27755:101:0;;5713:2:1;27755:101:0;;;5695:21:1;5752:2;5732:18;;;5725:30;5791:34;5771:18;;;5764:62;-1:-1:-1;;;5842:18:1;;;5835:52;5904:19;;27755:101:0;5511:418:1;27755:101:0;27867:17;27873:2;27877:6;27867:5;:17::i;6436:91::-;6492:27;1071:10;6512:6;6492:5;:27::i;:::-;6436:91;:::o;6535:164::-;6612:46;6628:7;1071:10;6651:6;6612:15;:46::i;:::-;6669:22;6675:7;6684:6;6669:5;:22::i;27900:172::-;27951:34;27411:24;1071:10;18995:147;:::i;27951:34::-;27943:102;;;;-1:-1:-1;;;27943:102:0;;6136:2:1;27943:102:0;;;6118:21:1;6175:2;6155:18;;;6148:30;6214:34;6194:18;;;6187:62;6285:25;6265:18;;;6258:53;6328:19;;27943:102:0;5934:419:1;27943:102:0;28056:8;:6;:8::i;26527:153::-;26617:7;26644:18;;;:12;:18;;;;;:28;;26666:5;26644:21;:28::i;:::-;26637:35;26527:153;-1:-1:-1;;;26527:153:0:o;18995:147::-;19081:4;19105:12;;;;;;;;;;;-1:-1:-1;;;;;19105:29:0;;;;;;;;;;;;;;;18995:147::o;1717:104::-;1773:13;1806:7;1799:14;;;;;:::i;3265:436::-;3358:4;1071:10;3358:4;3441:25;1071:10;3458:7;3441:9;:25::i;:::-;3414:52;;3505:15;3485:16;:35;;3477:85;;;;-1:-1:-1;;;3477:85:0;;6560:2:1;3477:85:0;;;6542:21:1;6599:2;6579:18;;;6572:30;6638:34;6618:18;;;6611:62;-1:-1:-1;;;6689:18:1;;;6682:35;6734:19;;3477:85:0;6358:401:1;3477:85:0;3598:60;3607:5;3614:7;3642:15;3623:16;:34;3598:8;:60::i;2181:193::-;2260:4;1071:10;2316:28;1071:10;2333:2;2337:6;2316:9;:28::i;26688:142::-;26768:7;26795:18;;;:12;:18;;;;;:27;;:25;:27::i;20057:149::-;19837:7;19864:12;;;;;;;;;;:22;;;18739:16;18750:4;18739:10;:16::i;:::-;20172:26:::1;20184:4;20190:7;20172:11;:26::i;2382:151::-:0;-1:-1:-1;;;;;2498:18:0;;;2471:7;2498:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2382:151::o;18783:204::-;18868:4;-1:-1:-1;;;;;;18892:47:0;;-1:-1:-1;;;18892:47:0;;:87;;-1:-1:-1;;;;;;;;;;18356:40:0;;;18943:36;18247:157;5404:346;-1:-1:-1;;;;;5506:19:0;;5498:68;;;;-1:-1:-1;;;5498:68:0;;6966:2:1;5498:68:0;;;6948:21:1;7005:2;6985:18;;;6978:30;7044:34;7024:18;;;7017:62;-1:-1:-1;;;7095:18:1;;;7088:34;7139:19;;5498:68:0;6764:400:1;5498:68:0;-1:-1:-1;;;;;5585:21:0;;5577:68;;;;-1:-1:-1;;;5577:68:0;;7371:2:1;5577:68:0;;;7353:21:1;7410:2;7390:18;;;7383:30;7449:34;7429:18;;;7422:62;-1:-1:-1;;;7500:18:1;;;7493:32;7542:19;;5577:68:0;7169:398:1;5577:68:0;-1:-1:-1;;;;;5658:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5710:32;;1736:25:1;;;5710:32:0;;1709:18:1;5710:32:0;;;;;;;5404:346;;;:::o;5758:419::-;5859:24;5886:25;5896:5;5903:7;5886:9;:25::i;:::-;5859:52;;-1:-1:-1;;5926:16:0;:37;5922:248;;6008:6;5988:16;:26;;5980:68;;;;-1:-1:-1;;;5980:68:0;;7774:2:1;5980:68:0;;;7756:21:1;7813:2;7793:18;;;7786:30;7852:31;7832:18;;;7825:59;7901:18;;5980:68:0;7572:353:1;5980:68:0;6092:51;6101:5;6108:7;6136:6;6117:16;:25;6092:8;:51::i;:::-;5848:329;5758:419;;;:::o;3709:641::-;-1:-1:-1;;;;;3806:18:0;;3798:68;;;;-1:-1:-1;;;3798:68:0;;8132:2:1;3798:68:0;;;8114:21:1;8171:2;8151:18;;;8144:30;8210:34;8190:18;;;8183:62;-1:-1:-1;;;8261:18:1;;;8254:35;8306:19;;3798:68:0;7930:401:1;3798:68:0;-1:-1:-1;;;;;3885:16:0;;3877:64;;;;-1:-1:-1;;;3877:64:0;;8538:2:1;3877:64:0;;;8520:21:1;8577:2;8557:18;;;8550:30;8616:34;8596:18;;;8589:62;-1:-1:-1;;;8667:18:1;;;8660:33;8710:19;;3877:64:0;8336:399:1;3877:64:0;3954:38;3975:4;3981:2;3985:6;3954:20;:38::i;:::-;-1:-1:-1;;;;;4027:15:0;;4005:19;4027:15;;;:9;:15;;;;;;4061:21;;;;4053:72;;;;-1:-1:-1;;;4053:72:0;;8942:2:1;4053:72:0;;;8924:21:1;8981:2;8961:18;;;8954:30;9020:34;9000:18;;;8993:62;-1:-1:-1;;;9071:18:1;;;9064:36;9117:19;;4053:72:0;8740:402:1;4053:72:0;-1:-1:-1;;;;;4161:15:0;;;;;;;:9;:15;;;;;;4179:20;;;4161:38;;4214:13;;;;;;;;;;:23;;;;;;4266:26;;;;;;4193:6;1736:25:1;;1724:2;1709:18;;1590:177;4266:26:0;;;;;;;;4305:37;19902:147;19150:105;19217:30;19228:4;1071:10;19217;:30::i;26838:169::-;26926:31;26943:4;26949:7;26926:16;:31::i;:::-;26968:18;;;;:12;:18;;;;;:31;;26991:7;26968:22;:31::i;27015:174::-;27104:32;27122:4;27128:7;27104:17;:32::i;:::-;27147:18;;;;:12;:18;;;;;:34;;27173:7;27147:25;:34::i;7524:120::-;7028:16;:14;:16::i;:::-;7583:7:::1;:15:::0;;-1:-1:-1;;7583:15:0::1;::::0;;7614:22:::1;1071:10:::0;7623:12:::1;7614:22;::::0;-1:-1:-1;;;;;3713:32:1;;;3695:51;;3683:2;3668:18;7614:22:0::1;;;;;;;7524:120::o:0;4358:435::-;-1:-1:-1;;;;;4442:21:0;;4434:65;;;;-1:-1:-1;;;4434:65:0;;9349:2:1;4434:65:0;;;9331:21:1;9388:2;9368:18;;;9361:30;9427:33;9407:18;;;9400:61;9478:18;;4434:65:0;9147:355:1;4434:65:0;4512:49;4541:1;4545:7;4554:6;4512:20;:49::i;:::-;4590:6;4574:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4632:18:0;;;;;;:9;:18;;;;;;;;:28;;;;;;4687:37;1736:25:1;;;4687:37:0;;1709:18:1;4687:37:0;;;;;;;20214:218;;:::o;4801:595::-;-1:-1:-1;;;;;4885:21:0;;4877:67;;;;-1:-1:-1;;;4877:67:0;;9709:2:1;4877:67:0;;;9691:21:1;9748:2;9728:18;;;9721:30;9787:34;9767:18;;;9760:62;-1:-1:-1;;;9838:18:1;;;9831:31;9879:19;;4877:67:0;9507:397:1;4877:67:0;4957:49;4978:7;4995:1;4999:6;4957:20;:49::i;:::-;-1:-1:-1;;;;;5044:18:0;;5019:22;5044:18;;;:9;:18;;;;;;5081:24;;;;5073:71;;;;-1:-1:-1;;;5073:71:0;;10111:2:1;5073:71:0;;;10093:21:1;10150:2;10130:18;;;10123:30;10189:34;10169:18;;;10162:62;-1:-1:-1;;;10240:18:1;;;10233:32;10282:19;;5073:71:0;9909:398:1;5073:71:0;-1:-1:-1;;;;;5180:18:0;;;;;;:9;:18;;;;;;;;5201:23;;;5180:44;;5239:12;:22;;;;;;;5290:37;1736:25:1;;;5180:18:0;;;5290:37;;1709:18:1;5290:37:0;;;;;;;19902:147;;;:::o;7398:118::-;6948:19;:17;:19::i;:::-;7458:7:::1;:14:::0;;-1:-1:-1;;7458:14:0::1;7468:4;7458:14;::::0;;7488:20:::1;7495:12;1071:10:::0;;991:98;24617:158;24691:7;24742:22;24746:3;24758:5;24742:3;:22::i;24492:117::-;24555:7;24582:19;24590:3;22642:18;;22559:109;28266:217;28431:44;28458:4;28464:2;28468:6;28431:26;:44::i;19263:492::-;19352:22;19360:4;19366:7;19352;:22::i;:::-;19347:401;;19540:28;19560:7;19540:19;:28::i;:::-;19641:38;19669:4;19676:2;19641:19;:38::i;:::-;19445:257;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;19445:257:0;;;;;;;;;;-1:-1:-1;;;19391:345:0;;;;;;;:::i;20819:238::-;20903:22;20911:4;20917:7;20903;:22::i;:::-;20898:152;;20942:6;:12;;;;;;;;;;;-1:-1:-1;;;;;20942:29:0;;;;;;;;;:36;;-1:-1:-1;;20942:36:0;20974:4;20942:36;;;21025:12;1071:10;;991:98;21025:12;-1:-1:-1;;;;;20998:40:0;21016:7;-1:-1:-1;;;;;20998:40:0;21010:4;20998:40;;;;;;;;;;20819:238;;:::o;23991:152::-;24061:4;24085:50;24090:3;-1:-1:-1;;;;;24110:23:0;;24085:4;:50::i;21065:239::-;21149:22;21157:4;21163:7;21149;:22::i;:::-;21145:152;;;21220:5;21188:12;;;;;;;;;;;-1:-1:-1;;;;;21188:29:0;;;;;;;;;;:37;;-1:-1:-1;;21188:37:0;;;21245:40;1071:10;;21188:12;;21245:40;;21220:5;21245:40;21065:239;;:::o;24151:158::-;24224:4;24248:53;24256:3;-1:-1:-1;;;;;24276:23:0;;24248:7;:53::i;7282:108::-;7143:7;;;;7341:41;;;;-1:-1:-1;;;7341:41:0;;11331:2:1;7341:41:0;;;11313:21:1;11370:2;11350:18;;;11343:30;-1:-1:-1;;;11389:18:1;;;11382:50;11449:18;;7341:41:0;11129:344:1;7166:108:0;7143:7;;;;7236:9;7228:38;;;;-1:-1:-1;;;7228:38:0;;11680:2:1;7228:38:0;;;11662:21:1;11719:2;11699:18;;;11692:30;-1:-1:-1;;;11738:18:1;;;11731:46;11794:18;;7228:38:0;11478:340:1;22676:120:0;22743:7;22770:3;:11;;22782:5;22770:18;;;;;;;;:::i;:::-;;;;;;;;;22763:25;;22676:120;;;;:::o;7707:238::-;7143:7;;;;7881:9;7873:64;;;;-1:-1:-1;;;7873:64:0;;12157:2:1;7873:64:0;;;12139:21:1;12196:2;12176:18;;;12169:30;12235:34;12215:18;;;12208:62;-1:-1:-1;;;12286:18:1;;;12279:40;12336:19;;7873:64:0;11955:406:1;17788:151:0;17846:13;17879:52;-1:-1:-1;;;;;17891:22:0;;16329:2;17333:447;17408:13;17434:19;17466:10;17470:6;17466:1;:10;:::i;:::-;:14;;17479:1;17466:14;:::i;:::-;17456:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17456:25:0;;17434:47;;-1:-1:-1;;;17492:6:0;17499:1;17492:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;17492:15:0;;;;;;;;;-1:-1:-1;;;17518:6:0;17525:1;17518:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;17518:15:0;;;;;;;;-1:-1:-1;17549:9:0;17561:10;17565:6;17561:1;:10;:::i;:::-;:14;;17574:1;17561:14;:::i;:::-;17549:26;;17544:131;17581:1;17577;:5;17544:131;;;-1:-1:-1;;;17625:5:0;17633:3;17625:11;17616:21;;;;;;;:::i;:::-;;;;17604:6;17611:1;17604:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;17604:33:0;;;;;;;;-1:-1:-1;17662:1:0;17652:11;;;;;17584:3;;;:::i;:::-;;;17544:131;;;-1:-1:-1;17693:10:0;;17685:55;;;;-1:-1:-1;;;17685:55:0;;13014:2:1;17685:55:0;;;12996:21:1;;;13033:18;;;13026:30;13092:34;13072:18;;;13065:62;13144:18;;17685:55:0;12812:356:1;21440:291:0;21503:4;22519:19;;;:12;;;:19;;;;;;21520:204;;-1:-1:-1;21563:23:0;;;;;;;;:11;:23;;;;;;;;;;;;;21623:18;;21601:19;;;:12;;;:19;;;;;;:40;;;;21656:11;;21520:204;-1:-1:-1;21707:5:0;21700:12;;21739:675;21805:4;21843:19;;;:12;;;:19;;;;;;21879:15;;21875:532;;21911:21;21935:14;21948:1;21935:10;:14;:::i;:::-;21984:18;;21911:38;;-1:-1:-1;21964:17:0;;21984:22;;22005:1;;21984:22;:::i;:::-;21964:42;;22040:13;22027:9;:26;22023:223;;22074:17;22094:3;:11;;22106:9;22094:22;;;;;;;;:::i;:::-;;;;;;;;;22074:42;;22166:9;22137:3;:11;;22149:13;22137:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;22194:23;;;:12;;;:23;;;;;:36;;;22023:223;22262:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;22303:3;:12;;:19;22316:5;22303:19;;;;;;;;;;;22296:26;;;22346:4;22339:11;;;;;;;21875:532;22390:5;22383:12;;;;;14:286:1;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:1;;209:43;;199:71;;266:1;263;256:12;497:250;582:1;592:113;606:6;603:1;600:13;592:113;;;682:11;;;676:18;663:11;;;656:39;628:2;621:10;592:113;;;-1:-1:-1;;739:1:1;721:16;;714:27;497:250::o;752:396::-;901:2;890:9;883:21;864:4;933:6;927:13;976:6;971:2;960:9;956:18;949:34;992:79;1064:6;1059:2;1048:9;1044:18;1039:2;1031:6;1027:15;992:79;:::i;:::-;1132:2;1111:15;-1:-1:-1;;1107:29:1;1092:45;;;;1139:2;1088:54;;752:396;-1:-1:-1;;752:396:1:o;1153:173::-;1221:20;;-1:-1:-1;;;;;1270:31:1;;1260:42;;1250:70;;1316:1;1313;1306:12;1250:70;1153:173;;;:::o;1331:254::-;1399:6;1407;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;1499:29;1518:9;1499:29;:::i;:::-;1489:39;1575:2;1560:18;;;;1547:32;;-1:-1:-1;;;1331:254:1:o;1772:328::-;1849:6;1857;1865;1918:2;1906:9;1897:7;1893:23;1889:32;1886:52;;;1934:1;1931;1924:12;1886:52;1957:29;1976:9;1957:29;:::i;:::-;1947:39;;2005:38;2039:2;2028:9;2024:18;2005:38;:::i;:::-;1995:48;;2090:2;2079:9;2075:18;2062:32;2052:42;;1772:328;;;;;:::o;2105:180::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;-1:-1:-1;2256:23:1;;2105:180;-1:-1:-1;2105:180:1:o;2472:254::-;2540:6;2548;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2653:9;2640:23;2630:33;;2682:38;2716:2;2705:9;2701:18;2682:38;:::i;:::-;2672:48;;2472:254;;;;;:::o;3105:186::-;3164:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:52;;;3233:1;3230;3223:12;3185:52;3256:29;3275:9;3256:29;:::i;3296:248::-;3364:6;3372;3425:2;3413:9;3404:7;3400:23;3396:32;3393:52;;;3441:1;3438;3431:12;3393:52;-1:-1:-1;;3464:23:1;;;3534:2;3519:18;;;3506:32;;-1:-1:-1;3296:248:1:o;3757:260::-;3825:6;3833;3886:2;3874:9;3865:7;3861:23;3857:32;3854:52;;;3902:1;3899;3892:12;3854:52;3925:29;3944:9;3925:29;:::i;:::-;3915:39;;3973:38;4007:2;3996:9;3992:18;3973:38;:::i;4022:380::-;4101:1;4097:12;;;;4144;;;4165:61;;4219:4;4211:6;4207:17;4197:27;;4165:61;4272:2;4264:6;4261:14;4241:18;4238:38;4235:161;;4318:10;4313:3;4309:20;4306:1;4299:31;4353:4;4350:1;4343:15;4381:4;4378:1;4371:15;4235:161;;4022:380;;;:::o;4823:127::-;4884:10;4879:3;4875:20;4872:1;4865:31;4915:4;4912:1;4905:15;4939:4;4936:1;4929:15;4955:125;5020:9;;;5041:10;;;5038:36;;;5054:18;;:::i;10312:812::-;10723:25;10718:3;10711:38;10693:3;10778:6;10772:13;10794:75;10862:6;10857:2;10852:3;10848:12;10841:4;10833:6;10829:17;10794:75;:::i;:::-;-1:-1:-1;;;10928:2:1;10888:16;;;10920:11;;;10913:40;10978:13;;11000:76;10978:13;11062:2;11054:11;;11047:4;11035:17;;11000:76;:::i;:::-;11096:17;11115:2;11092:26;;10312:812;-1:-1:-1;;;;10312:812:1:o;11823:127::-;11884:10;11879:3;11875:20;11872:1;11865:31;11915:4;11912:1;11905:15;11939:4;11936:1;11929:15;12366:168;12439:9;;;12470;;12487:15;;;12481:22;;12467:37;12457:71;;12508:18;;:::i;12539:127::-;12600:10;12595:3;12591:20;12588:1;12581:31;12631:4;12628:1;12621:15;12655:4;12652:1;12645:15;12671:136;12710:3;12738:5;12728:39;;12747:18;;:::i;:::-;-1:-1:-1;;;12783:18:1;;12671:136::o;13173:128::-;13240:9;;;13261:11;;;13258:37;;;13275:18;;:::i;13306:127::-;13367:10;13362:3;13358:20;13355:1;13348:31;13398:4;13395:1;13388:15;13422:4;13419:1;13412:15

Swarm Source

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