Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 46 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18349375 | 452 days ago | IN | 0 ETH | 0.00032275 | ||||
Approve | 17704824 | 542 days ago | IN | 0 ETH | 0.00070111 | ||||
Approve | 17626486 | 553 days ago | IN | 0 ETH | 0.00227541 | ||||
Approve | 17624695 | 553 days ago | IN | 0 ETH | 0.00230974 | ||||
Approve | 17619552 | 554 days ago | IN | 0 ETH | 0.0007581 | ||||
Approve | 17619504 | 554 days ago | IN | 0 ETH | 0.00054084 | ||||
Approve | 17619496 | 554 days ago | IN | 0 ETH | 0.00080836 | ||||
Approve | 17619444 | 554 days ago | IN | 0 ETH | 0.000425 | ||||
Approve | 17619444 | 554 days ago | IN | 0 ETH | 0.00074511 | ||||
Approve | 17619411 | 554 days ago | IN | 0 ETH | 0.00072578 | ||||
Approve | 17619384 | 554 days ago | IN | 0 ETH | 0.00046986 | ||||
Approve | 17619381 | 554 days ago | IN | 0 ETH | 0.00076127 | ||||
Approve | 17619351 | 554 days ago | IN | 0 ETH | 0.00075225 | ||||
Transfer | 17619265 | 554 days ago | IN | 0 ETH | 0.00089292 | ||||
Approve | 17605406 | 556 days ago | IN | 0 ETH | 0.0006436 | ||||
Approve | 17573399 | 560 days ago | IN | 0 ETH | 0.00060048 | ||||
Approve | 17567645 | 561 days ago | IN | 0 ETH | 0.00061192 | ||||
Transfer | 17560053 | 562 days ago | IN | 0 ETH | 0.00038339 | ||||
Approve | 17542152 | 565 days ago | IN | 0 ETH | 0.00402356 | ||||
Approve | 17541713 | 565 days ago | IN | 0 ETH | 0.00120155 | ||||
Approve | 17541666 | 565 days ago | IN | 0 ETH | 0.00424778 | ||||
Approve | 17541160 | 565 days ago | IN | 0 ETH | 0.00071485 | ||||
Approve | 17541138 | 565 days ago | IN | 0 ETH | 0.00063002 | ||||
Approve | 17541063 | 565 days ago | IN | 0 ETH | 0.00059946 | ||||
Approve | 17541056 | 565 days ago | IN | 0 ETH | 0.0005913 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ERC20PresetMinterPauser
Compiler Version
v0.8.20+commit.a1b79de6
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.