ERC-20
Overview
Max Total Supply
197,474.742805486584862444 EX
Holders
12
Market
Price
$0.00 @ 0.000000 S
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
13,000.502198779176804595 EXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ExToken
Compiler Version
v0.8.29+commit.ab55807c
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-03-29 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; interface IAccessControl { error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); error AccessControlBadConfirmation(); 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 callerConfirmation) external; } pragma solidity ^0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 account => bool) hasRole; bytes32 adminRole; } mapping(bytes32 role => RoleData) private _roles; bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; /** * @dev Modifier that checks that an account has a specific role. Reverts * with an {AccessControlUnauthorizedAccount} error including the required role. */ modifier onlyRole(bytes32 role) { _checkRole(role); _; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId); } /** * @dev Returns `true` if `account` has been granted `role`. */ function hasRole(bytes32 role, address account) public view virtual returns (bool) { return _roles[role].hasRole[account]; } /** * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()` * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier. */ function _checkRole(bytes32 role) internal view virtual { _checkRole(role, _msgSender()); } function _checkRole(bytes32 role, address account) internal view virtual { if (!hasRole(role, account)) { revert AccessControlUnauthorizedAccount(account, role); } } function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) { return _roles[role].adminRole; } function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) { _grantRole(role, account); } function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) { _revokeRole(role, account); } function renounceRole(bytes32 role, address callerConfirmation) public virtual { if (callerConfirmation != _msgSender()) { revert AccessControlBadConfirmation(); } _revokeRole(role, callerConfirmation); } 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 returns (bool) { if (!hasRole(role, account)) { _roles[role].hasRole[account] = true; emit RoleGranted(role, account, _msgSender()); return true; } else { return false; } } function _revokeRole(bytes32 role, address account) internal virtual returns (bool) { if (hasRole(role, account)) { _roles[role].hasRole[account] = false; emit RoleRevoked(role, account, _msgSender()); return true; } else { return false; } } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, 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 sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } 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 recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } 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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract ExToken is ERC20, AccessControl { bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE"); constructor() ERC20("Ex: Hubble Constant", "EX") { _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); } function mint(address to, uint256 amount) external { require(hasRole(MINTER_ROLE, msg.sender), "Caller is not the minter"); _mint(to, amount); } function burn(uint256 amount) external { require(hasRole(BURNER_ROLE, msg.sender), "Caller is not the burner"); _burn(msg.sender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"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"},{"inputs":[],"name":"BURNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"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":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f5ffd5b506040518060400160405280601381526020017f45783a20487562626c6520436f6e7374616e74000000000000000000000000008152506040518060400160405280600281526020016108ab60f31b815250816003908161007091906101d7565b50600461007d82826101d7565b5061008c91505f905033610092565b50610291565b5f8281526005602090815260408083206001600160a01b038516845290915281205460ff16610136575f8381526005602090815260408083206001600160a01b03861684529091529020805460ff191660011790556100ee3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610139565b505f5b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061016757607f821691505b60208210810361018557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101d257805f5260205f20601f840160051c810160208510156101b05750805b601f840160051c820191505b818110156101cf575f81556001016101bc565b50505b505050565b81516001600160401b038111156101f0576101f061013f565b610204816101fe8454610153565b8461018b565b6020601f821160018114610236575f831561021f5750848201515b5f19600385901b1c1916600184901b1784556101cf565b5f84815260208120601f198516915b828110156102655787850151825560209485019460019092019101610245565b508482101561028257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6115628061029e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610179575f3560e01c806340c10f19116100d2578063a217fddf11610088578063d539139311610063578063d53913931461035a578063d547741f14610381578063dd62ed3e14610394575f5ffd5b8063a217fddf1461032d578063a457c2d714610334578063a9059cbb14610347575f5ffd5b806370a08231116100b857806370a08231146102ab57806391d14854146102e057806395d89b4114610325575f5ffd5b806340c10f191461028557806342966c6814610298575f5ffd5b8063248a9ca311610132578063313ce5671161010d578063313ce5671461025057806336568abe1461025f5780633950935114610272575f5ffd5b8063248a9ca3146101f2578063282c51f3146102145780632f2ff15d1461023b575f5ffd5b8063095ea7b311610162578063095ea7b3146101ba57806318160ddd146101cd57806323b872dd146101df575f5ffd5b806301ffc9a71461017d57806306fdde03146101a5575b5f5ffd5b61019061018b3660046112e3565b6103d9565b60405190151581526020015b60405180910390f35b6101ad610471565b60405161019c9190611329565b6101906101c83660046113a4565b610501565b6002545b60405190815260200161019c565b6101906101ed3660046113cc565b610516565b6101d1610200366004611406565b5f9081526005602052604090206001015490565b6101d17f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b61024e61024936600461141d565b6105ff565b005b6040516012815260200161019c565b61024e61026d36600461141d565b610629565b6101906102803660046113a4565b610687565b61024e6102933660046113a4565b6106cf565b61024e6102a6366004611406565b610774565b6101d16102b9366004611447565b73ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205490565b6101906102ee36600461141d565b5f91825260056020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101ad610818565b6101d15f81565b6101906103423660046113a4565b610827565b6101906103553660046113a4565b6108fe565b6101d17f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61024e61038f36600461141d565b61090a565b6101d16103a2366004611460565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260016020908152604080832093909416825291909152205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061046b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606003805461048090611488565b80601f01602080910402602001604051908101604052809291908181526020018280546104ac90611488565b80156104f75780601f106104ce576101008083540402835291602001916104f7565b820191905f5260205f20905b8154815290600101906020018083116104da57829003601f168201915b5050505050905090565b5f61050d33848461092e565b50600192915050565b5f610522848484610ae0565b73ffffffffffffffffffffffffffffffffffffffff84165f908152600160209081526040808320338452909152902054828110156105e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105f4853385840361092e565b506001949350505050565b5f8281526005602052604090206001015461061981610d91565b6106238383610d9b565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610678576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106828282610e98565b505050565b335f81815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161050d9185906106ca908690611506565b61092e565b335f9081527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a522602052604090205460ff16610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206d696e746572000000000000000060448201526064016105de565b6107708282610f55565b5050565b335f9081527f847f481f687befb06ed3511f1a8dcef57e83007c0147ae5047583d7056170937602052604090205460ff1661080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206275726e6572000000000000000060448201526064016105de565b6108153382611072565b50565b60606004805461048090611488565b335f90815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156108e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105de565b6108f4338585840361092e565b5060019392505050565b5f61050d338484610ae0565b5f8281526005602052604090206001015461092481610d91565b6106238383610e98565b73ffffffffffffffffffffffffffffffffffffffff83166109d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff8216610a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610b83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff8216610c26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526020819052604090205481811015610cdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260208190526040808220858503905591851681529081208054849290610d1e908490611506565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d8491815260200190565b60405180910390a3610623565b610815813361125c565b5f82815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610e91575f83815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610e2f3390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161046b565b505f61046b565b5f82815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610e91575f83815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161046b565b73ffffffffffffffffffffffffffffffffffffffff8216610fd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105de565b8060025f828254610fe39190611506565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f908152602081905260408120805483929061101c908490611506565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260208190526040902054818110156111ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff83165f908152602081905260408120838303905560028054849290611205908490611519565b90915550506040518281525f9073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b5f82815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610770576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016105de565b5f602082840312156112f3575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611322575f5ffd5b9392505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461139f575f5ffd5b919050565b5f5f604083850312156113b5575f5ffd5b6113be8361137c565b946020939093013593505050565b5f5f5f606084860312156113de575f5ffd5b6113e78461137c565b92506113f56020850161137c565b929592945050506040919091013590565b5f60208284031215611416575f5ffd5b5035919050565b5f5f6040838503121561142e575f5ffd5b8235915061143e6020840161137c565b90509250929050565b5f60208284031215611457575f5ffd5b6113228261137c565b5f5f60408385031215611471575f5ffd5b61147a8361137c565b915061143e6020840161137c565b600181811c9082168061149c57607f821691505b6020821081036114d3577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561046b5761046b6114d9565b8181038181111561046b5761046b6114d956fea2646970667358221220bb91fe6a40b182035fb19be4a274694947561c52b9ada0d452cd3a240967dbda64736f6c634300081d0033
Deployed Bytecode
0x608060405234801561000f575f5ffd5b5060043610610179575f3560e01c806340c10f19116100d2578063a217fddf11610088578063d539139311610063578063d53913931461035a578063d547741f14610381578063dd62ed3e14610394575f5ffd5b8063a217fddf1461032d578063a457c2d714610334578063a9059cbb14610347575f5ffd5b806370a08231116100b857806370a08231146102ab57806391d14854146102e057806395d89b4114610325575f5ffd5b806340c10f191461028557806342966c6814610298575f5ffd5b8063248a9ca311610132578063313ce5671161010d578063313ce5671461025057806336568abe1461025f5780633950935114610272575f5ffd5b8063248a9ca3146101f2578063282c51f3146102145780632f2ff15d1461023b575f5ffd5b8063095ea7b311610162578063095ea7b3146101ba57806318160ddd146101cd57806323b872dd146101df575f5ffd5b806301ffc9a71461017d57806306fdde03146101a5575b5f5ffd5b61019061018b3660046112e3565b6103d9565b60405190151581526020015b60405180910390f35b6101ad610471565b60405161019c9190611329565b6101906101c83660046113a4565b610501565b6002545b60405190815260200161019c565b6101906101ed3660046113cc565b610516565b6101d1610200366004611406565b5f9081526005602052604090206001015490565b6101d17f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b61024e61024936600461141d565b6105ff565b005b6040516012815260200161019c565b61024e61026d36600461141d565b610629565b6101906102803660046113a4565b610687565b61024e6102933660046113a4565b6106cf565b61024e6102a6366004611406565b610774565b6101d16102b9366004611447565b73ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205490565b6101906102ee36600461141d565b5f91825260056020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101ad610818565b6101d15f81565b6101906103423660046113a4565b610827565b6101906103553660046113a4565b6108fe565b6101d17f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61024e61038f36600461141d565b61090a565b6101d16103a2366004611460565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260016020908152604080832093909416825291909152205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061046b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606003805461048090611488565b80601f01602080910402602001604051908101604052809291908181526020018280546104ac90611488565b80156104f75780601f106104ce576101008083540402835291602001916104f7565b820191905f5260205f20905b8154815290600101906020018083116104da57829003601f168201915b5050505050905090565b5f61050d33848461092e565b50600192915050565b5f610522848484610ae0565b73ffffffffffffffffffffffffffffffffffffffff84165f908152600160209081526040808320338452909152902054828110156105e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105f4853385840361092e565b506001949350505050565b5f8281526005602052604090206001015461061981610d91565b6106238383610d9b565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610678576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106828282610e98565b505050565b335f81815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161050d9185906106ca908690611506565b61092e565b335f9081527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a522602052604090205460ff16610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206d696e746572000000000000000060448201526064016105de565b6107708282610f55565b5050565b335f9081527f847f481f687befb06ed3511f1a8dcef57e83007c0147ae5047583d7056170937602052604090205460ff1661080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206275726e6572000000000000000060448201526064016105de565b6108153382611072565b50565b60606004805461048090611488565b335f90815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156108e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105de565b6108f4338585840361092e565b5060019392505050565b5f61050d338484610ae0565b5f8281526005602052604090206001015461092481610d91565b6106238383610e98565b73ffffffffffffffffffffffffffffffffffffffff83166109d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff8216610a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610b83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff8216610c26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526020819052604090205481811015610cdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260208190526040808220858503905591851681529081208054849290610d1e908490611506565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d8491815260200190565b60405180910390a3610623565b610815813361125c565b5f82815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610e91575f83815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610e2f3390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161046b565b505f61046b565b5f82815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610e91575f83815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161046b565b73ffffffffffffffffffffffffffffffffffffffff8216610fd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105de565b8060025f828254610fe39190611506565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f908152602081905260408120805483929061101c908490611506565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260208190526040902054818110156111ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105de565b73ffffffffffffffffffffffffffffffffffffffff83165f908152602081905260408120838303905560028054849290611205908490611519565b90915550506040518281525f9073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b5f82815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610770576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044016105de565b5f602082840312156112f3575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611322575f5ffd5b9392505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461139f575f5ffd5b919050565b5f5f604083850312156113b5575f5ffd5b6113be8361137c565b946020939093013593505050565b5f5f5f606084860312156113de575f5ffd5b6113e78461137c565b92506113f56020850161137c565b929592945050506040919091013590565b5f60208284031215611416575f5ffd5b5035919050565b5f5f6040838503121561142e575f5ffd5b8235915061143e6020840161137c565b90509250929050565b5f60208284031215611457575f5ffd5b6113228261137c565b5f5f60408385031215611471575f5ffd5b61147a8361137c565b915061143e6020840161137c565b600181811c9082168061149c57607f821691505b6020821081036114d3577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561046b5761046b6114d9565b8181038181111561046b5761046b6114d956fea2646970667358221220bb91fe6a40b182035fb19be4a274694947561c52b9ada0d452cd3a240967dbda64736f6c634300081d0033
Deployed Bytecode Sourcemap
10657:647:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:204;;;;;;:::i;:::-;;:::i;:::-;;;516:14:1;;509:22;491:41;;479:2;464:18;2110:204:0;;;;;;;;6023:100;;;:::i;:::-;;;;;;;:::i;6937:169::-;;;;;;:::i;:::-;;:::i;6344:108::-;6432:12;;6344:108;;;1677:25:1;;;1665:2;1650:18;6344:108:0;1531:177:1;7114:492:0;;;;;;:::i;:::-;;:::i;3081:122::-;;;;;;:::i;:::-;3146:7;3173:12;;;:6;:12;;;;;:22;;;;3081:122;10774:62;;10812:24;10774:62;;3211:138;;;;;;:::i;:::-;;:::i;:::-;;6243:93;;;6326:2;2952:36:1;;2940:2;2925:18;6243:93:0;2810:184:1;3505:251:0;;;;;;:::i;:::-;;:::i;7614:215::-;;;;;;:::i;:::-;;:::i;10963:167::-;;;;;;:::i;:::-;;:::i;11138:163::-;;;;;;:::i;:::-;;:::i;6460:127::-;;;;;;:::i;:::-;6561:18;;6534:7;6561:18;;;;;;;;;;;;6460:127;2406:138;;;;;;:::i;:::-;2483:4;2507:12;;;:6;:12;;;;;;;;:29;;;;;;;;;;;;;;;;2406:138;6131:104;;;:::i;1718:49::-;;1763:4;1718:49;;7837:413;;;;;;:::i;:::-;;:::i;6595:175::-;;;;;;:::i;:::-;;:::i;10705:62::-;;10743:24;10705:62;;3357:140;;;;;;:::i;:::-;;:::i;6778:151::-;;;;;;:::i;:::-;6894:18;;;;6867:7;6894:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6778:151;2110:204;2195:4;2219:47;;;2234:32;2219:47;;:87;;-1:-1:-1;1438:25:0;1423:40;;;;2270:36;2212:94;2110:204;-1:-1:-1;;2110:204:0:o;6023:100::-;6077:13;6110:5;6103:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6023:100;:::o;6937:169::-;7020:4;7037:39;1031:10;7060:7;7069:6;7037:8;:39::i;:::-;-1:-1:-1;7094:4:0;6937:169;;;;:::o;7114:492::-;7254:4;7271:36;7281:6;7289:9;7300:6;7271:9;:36::i;:::-;7347:19;;;7320:24;7347:19;;;:11;:19;;;;;;;;1031:10;7347:33;;;;;;;;7399:26;;;;7391:79;;;;;;;4330:2:1;7391:79:0;;;4312:21:1;4369:2;4349:18;;;4342:30;4408:34;4388:18;;;4381:62;4479:10;4459:18;;;4452:38;4507:19;;7391:79:0;;;;;;;;;7506:57;7515:6;1031:10;7556:6;7537:16;:25;7506:8;:57::i;:::-;-1:-1:-1;7594:4:0;;7114:492;-1:-1:-1;;;;7114:492:0:o;3211:138::-;3146:7;3173:12;;;:6;:12;;;;;:22;;;2002:16;2013:4;2002:10;:16::i;:::-;3316:25:::1;3327:4;3333:7;3316:10;:25::i;:::-;;3211:138:::0;;;:::o;3505:251::-;3599:34;;;1031:10;3599:34;3595:104;;3657:30;;;;;;;;;;;;;;3595:104;3711:37;3723:4;3729:18;3711:11;:37::i;:::-;;3505:251;;:::o;7614:215::-;1031:10;7702:4;7751:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;7702:4;;7719:80;;7742:7;;7751:47;;7788:10;;7751:47;:::i;:::-;7719:8;:80::i;10963:167::-;11054:10;2483:4;2507:29;;;:12;;:29;:12;:29;;;;;11025:69;;;;;;;5058:2:1;11025:69:0;;;5040:21:1;5097:2;5077:18;;;5070:30;5136:26;5116:18;;;5109:54;5180:18;;11025:69:0;4856:348:1;11025:69:0;11105:17;11111:2;11115:6;11105:5;:17::i;:::-;10963:167;;:::o;11138:163::-;11217:10;2483:4;2507:29;;;:12;;:29;:12;:29;;;;;11188:69;;;;;;;5411:2:1;11188:69:0;;;5393:21:1;5450:2;5430:18;;;5423:30;5489:26;5469:18;;;5462:54;5533:18;;11188:69:0;5209:348:1;11188:69:0;11268:25;11274:10;11286:6;11268:5;:25::i;:::-;11138:163;:::o;6131:104::-;6187:13;6220:7;6213:14;;;;;:::i;7837:413::-;1031:10;7930:4;7974:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;8027:35;;;;8019:85;;;;;;;5764:2:1;8019:85:0;;;5746:21:1;5803:2;5783:18;;;5776:30;5842:34;5822:18;;;5815:62;5913:7;5893:18;;;5886:35;5938:19;;8019:85:0;5562:401:1;8019:85:0;8140:67;1031:10;8163:7;8191:15;8172:16;:34;8140:8;:67::i;:::-;-1:-1:-1;8238:4:0;;7837:413;-1:-1:-1;;;7837:413:0:o;6595:175::-;6681:4;6698:42;1031:10;6722:9;6733:6;6698:9;:42::i;3357:140::-;3146:7;3173:12;;;:6;:12;;;;;:22;;;2002:16;2013:4;2002:10;:16::i;:::-;3463:26:::1;3475:4;3481:7;3463:11;:26::i;10005:380::-:0;10141:19;;;10133:68;;;;;;;6170:2:1;10133:68:0;;;6152:21:1;6209:2;6189:18;;;6182:30;6248:34;6228:18;;;6221:62;6319:6;6299:18;;;6292:34;6343:19;;10133:68:0;5968:400:1;10133:68:0;10220:21;;;10212:68;;;;;;;6575:2:1;10212:68:0;;;6557:21:1;6614:2;6594:18;;;6587:30;6653:34;6633:18;;;6626:62;6724:4;6704:18;;;6697:32;6746:19;;10212:68:0;6373:398:1;10212:68:0;10293:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10345:32;;1677:25:1;;;10345:32:0;;1650:18:1;10345:32:0;;;;;;;10005:380;;;:::o;8258:733::-;8398:20;;;8390:70;;;;;;;6978:2:1;8390:70:0;;;6960:21:1;7017:2;6997:18;;;6990:30;7056:34;7036:18;;;7029:62;7127:7;7107:18;;;7100:35;7152:19;;8390:70:0;6776:401:1;8390:70:0;8479:23;;;8471:71;;;;;;;7384:2:1;8471:71:0;;;7366:21:1;7423:2;7403:18;;;7396:30;7462:34;7442:18;;;7435:62;7533:5;7513:18;;;7506:33;7556:19;;8471:71:0;7182:399:1;8471:71:0;8639:17;;;8615:21;8639:17;;;;;;;;;;;8675:23;;;;8667:74;;;;;;;7788:2:1;8667:74:0;;;7770:21:1;7827:2;7807:18;;;7800:30;7866:34;7846:18;;;7839:62;7937:8;7917:18;;;7910:36;7963:19;;8667:74:0;7586:402:1;8667:74:0;8777:17;;;;:9;:17;;;;;;;;;;;8797:22;;;8777:42;;8841:20;;;;;;;;:30;;8813:6;;8777:9;8841:30;;8813:6;;8841:30;:::i;:::-;;;;;;;;8906:9;8889:35;;8898:6;8889:35;;;8917:6;8889:35;;;;1677:25:1;;1665:2;1650:18;;1531:177;8889:35:0;;;;;;;;8937:46;3505:251;2759:105;2826:30;2837:4;1031:10;2826;:30::i;4023:324::-;4100:4;2507:12;;;:6;:12;;;;;;;;:29;;;;;;;;;;;;;4117:223;;4161:12;;;;:6;:12;;;;;;;;:29;;;;;;;;;;:36;;;;4193:4;4161:36;;;4244:12;1031:10;;951:98;4244:12;4217:40;;4235:7;4217:40;;4229:4;4217:40;;;;;;;;;;-1:-1:-1;4279:4:0;4272:11;;4117:223;-1:-1:-1;4323:5:0;4316:12;;4355:325;4433:4;2507:12;;;:6;:12;;;;;;;;:29;;;;;;;;;;;;;4450:223;;;4525:5;4493:12;;;:6;:12;;;;;;;;:29;;;;;;;;;;;:37;;;;;;4550:40;1031:10;;4493:12;;4550:40;;4525:5;4550:40;-1:-1:-1;4612:4:0;4605:11;;8999:399;9083:21;;;9075:65;;;;;;;8195:2:1;9075:65:0;;;8177:21:1;8234:2;8214:18;;;8207:30;8273:33;8253:18;;;8246:61;8324:18;;9075:65:0;7993:355:1;9075:65:0;9231:6;9215:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;9248:18:0;;;:9;:18;;;;;;;;;;:28;;9270:6;;9248:9;:28;;9270:6;;9248:28;:::i;:::-;;;;-1:-1:-1;;9292:37:0;;1677:25:1;;;9292:37:0;;;;9309:1;;9292:37;;1665:2:1;1650:18;9292:37:0;;;;;;;10963:167;;:::o;9406:591::-;9490:21;;;9482:67;;;;;;;8555:2:1;9482:67:0;;;8537:21:1;8594:2;8574:18;;;8567:30;8633:34;8613:18;;;8606:62;8704:3;8684:18;;;8677:31;8725:19;;9482:67:0;8353:397:1;9482:67:0;9649:18;;;9624:22;9649:18;;;;;;;;;;;9686:24;;;;9678:71;;;;;;;8957:2:1;9678:71:0;;;8939:21:1;8996:2;8976:18;;;8969:30;9035:34;9015:18;;;9008:62;9106:4;9086:18;;;9079:32;9128:19;;9678:71:0;8755:398:1;9678:71:0;9785:18;;;:9;:18;;;;;;;;;;9806:23;;;9785:44;;9851:12;:22;;9823:6;;9785:9;9851:22;;9823:6;;9851:22;:::i;:::-;;;;-1:-1:-1;;9891:37:0;;1677:25:1;;;9917:1:0;;9891:37;;;;;;1665:2:1;1650:18;9891:37:0;;;;;;;3711;3505:251;;:::o;2872:201::-;2483:4;2507:12;;;:6;:12;;;;;;;;:29;;;;;;;;;;;;;2956:110;;3007:47;;;;;9495:42:1;9483:55;;3007:47:0;;;9465:74:1;9555:18;;;9548:34;;;9438:18;;3007:47:0;9291:297:1;14:332;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:1:o;543:477::-;692:2;681:9;674:21;655:4;724:6;718:13;767:6;762:2;751:9;747:18;740:34;826:6;821:2;813:6;809:15;804:2;793:9;789:18;783:50;882:1;877:2;868:6;857:9;853:22;849:31;842:42;1011:2;941:66;936:2;928:6;924:15;920:88;909:9;905:104;901:113;893:121;;;543:477;;;;:::o;1025:196::-;1093:20;;1153:42;1142:54;;1132:65;;1122:93;;1211:1;1208;1201:12;1122:93;1025:196;;;:::o;1226:300::-;1294:6;1302;1355:2;1343:9;1334:7;1330:23;1326:32;1323:52;;;1371:1;1368;1361:12;1323:52;1394:29;1413:9;1394:29;:::i;:::-;1384:39;1492:2;1477:18;;;;1464:32;;-1:-1:-1;;;1226:300:1:o;1713:374::-;1790:6;1798;1806;1859:2;1847:9;1838:7;1834:23;1830:32;1827:52;;;1875:1;1872;1865:12;1827:52;1898:29;1917:9;1898:29;:::i;:::-;1888:39;;1946:38;1980:2;1969:9;1965:18;1946:38;:::i;:::-;1713:374;;1936:48;;-1:-1:-1;;;2053:2:1;2038:18;;;;2025:32;;1713:374::o;2092:226::-;2151:6;2204:2;2192:9;2183:7;2179:23;2175:32;2172:52;;;2220:1;2217;2210:12;2172:52;-1:-1:-1;2265:23:1;;2092:226;-1:-1:-1;2092:226:1:o;2505:300::-;2573:6;2581;2634:2;2622:9;2613:7;2609:23;2605:32;2602:52;;;2650:1;2647;2640:12;2602:52;2695:23;;;-1:-1:-1;2761:38:1;2795:2;2780:18;;2761:38;:::i;:::-;2751:48;;2505:300;;;;;:::o;3230:186::-;3289:6;3342:2;3330:9;3321:7;3317:23;3313:32;3310:52;;;3358:1;3355;3348:12;3310:52;3381:29;3400:9;3381:29;:::i;3421:260::-;3489:6;3497;3550:2;3538:9;3529:7;3525:23;3521:32;3518:52;;;3566:1;3563;3556:12;3518:52;3589:29;3608:9;3589:29;:::i;:::-;3579:39;;3637:38;3671:2;3660:9;3656:18;3637:38;:::i;3686:437::-;3765:1;3761:12;;;;3808;;;3829:61;;3883:4;3875:6;3871:17;3861:27;;3829:61;3936:2;3928:6;3925:14;3905:18;3902:38;3899:218;;3973:77;3970:1;3963:88;4074:4;4071:1;4064:15;4102:4;4099:1;4092:15;3899:218;;3686:437;;;:::o;4537:184::-;4589:77;4586:1;4579:88;4686:4;4683:1;4676:15;4710:4;4707:1;4700:15;4726:125;4791:9;;;4812:10;;;4809:36;;;4825:18;;:::i;9158:128::-;9225:9;;;9246:11;;;9243:37;;;9260:18;;:::i
Swarm Source
ipfs://bb91fe6a40b182035fb19be4a274694947561c52b9ada0d452cd3a240967dbda
[ 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.