Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,357,942.590046296296295942 GOJ
Holders
296
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
47.341203703703703703 GOJValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GOJTOKEN
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-13 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Implementation of the {IERC20} interface. * */ 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; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ 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"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ 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"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ 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); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ 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"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(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 { } } /** * @dev mightygojiras get balance in wallets */ interface Imightygojiras { function balanceGenesis(address owner) external view returns(uint256); } /** * @dev GOJ roken reward */ contract GOJTOKEN is ERC20, Ownable { uint256 constant public BASE_RATE = 10 ether; //10 GOJ a day uint256 public START; bool rewardPaused = false; mapping(address => uint256) public rewards; mapping(address => uint256) public lastUpdate; mapping(address => bool) public allowedAddresses; address public mightygojirasAddress; address public cityAddress; constructor() ERC20("GOJ", "GOJ") { START = block.timestamp; } function setStartTimeStamp(uint256 timestamp) public onlyOwner { START = timestamp; } function setmightygojirasContractAddress(address contractAddress) public onlyOwner { mightygojirasAddress = contractAddress; } /** * @dev burn BOJ to claim CITY */ function setCityContractAddress(address contractAddress) public onlyOwner { cityAddress = contractAddress; } function updateReward(address from, address to) external { require(msg.sender == mightygojirasAddress); if(from != address(0)){ rewards[from] += getPendingReward(from); lastUpdate[from] = block.timestamp; } if(to != address(0)){ rewards[to] += getPendingReward(to); lastUpdate[to] = block.timestamp; } } function claimReward() external { require(!rewardPaused, "Claim paused"); _mint(msg.sender, rewards[msg.sender] + getPendingReward(msg.sender)); rewards[msg.sender] = 0; lastUpdate[msg.sender] = block.timestamp; } function claimTestRewards(address _address, uint256 _amount) external { require(!rewardPaused, "Claim paused"); require(allowedAddresses[msg.sender], "Address needs to aprpove burn first"); _mint(_address, _amount); } function burn(address user, uint256 amount) external { require(allowedAddresses[msg.sender] || msg.sender == mightygojirasAddress || msg.sender == cityAddress, "Address needs to aprpove burn first"); _burn(user, amount); } function getTotalClaimable(address user) external view returns(uint256) { return rewards[user] + getPendingReward(user); } function getPendingReward(address user) internal view returns(uint256) { Imightygojiras mightygojiras = Imightygojiras(mightygojirasAddress); return mightygojiras.balanceGenesis(user) * BASE_RATE * (block.timestamp - (lastUpdate[user] >= START ? lastUpdate[user] : START)) / 86400; } function setAllowedAddresses(address _address, bool _access) public onlyOwner { allowedAddresses[_address] = _access; } function toggleReward() public onlyOwner { rewardPaused = !rewardPaused; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[],"name":"BASE_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"START","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":"","type":"address"}],"name":"allowedAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cityAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"claimTestRewards","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":"address","name":"user","type":"address"}],"name":"getTotalClaimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"","type":"address"}],"name":"lastUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mightygojirasAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_access","type":"bool"}],"name":"setAllowedAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setCityContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setStartTimeStamp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setmightygojirasContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleReward","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"updateReward","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526007805460ff191690553480156200001b57600080fd5b506040518060400160405280600381526020016223a7a560e91b8152506040518060400160405280600381526020016223a7a560e91b81525081600390805190602001906200006c929190620000f3565b50805162000082906004906020840190620000f3565b505050600062000097620000ef60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35042600655620001d6565b3390565b828054620001019062000199565b90600052602060002090601f01602090048101928262000125576000855562000170565b82601f106200014057805160ff191683800117855562000170565b8280016001018555821562000170579182015b828111156200017057825182559160200191906001019062000153565b506200017e92915062000182565b5090565b5b808211156200017e576000815560010162000183565b600281046001821680620001ae57607f821691505b60208210811415620001d057634e487b7160e01b600052602260045260246000fd5b50919050565b61171680620001e66000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063a9059cbb116100a2578063cb03fb1e11610071578063cb03fb1e146103b3578063d230af3a146103c6578063dd62ed3e146103d9578063f2fde38b146103ec576101e5565b8063a9059cbb14610388578063ac8724cf1461039b578063b88a802f146103a3578063ba9a061a146103ab576101e5565b806394996680116100de578063949966801461034757806395d89b411461035a5780639dc29fac14610362578063a457c2d714610375576101e5565b806370a0823114610311578063715018a614610324578063897819121461032c5780638da5cb5b1461033f576101e5565b8063267e8ab6116101875780633e9de606116101565780633e9de606146102db5780634120657a146102e357806341910f90146102f6578063663c47d2146102fe576101e5565b8063267e8ab61461028b578063313ce5671461029e57806332d353ac146102b357806339509351146102c8576101e5565b8063095ea7b3116101c3578063095ea7b31461023d5780630ef877961461025d57806318160ddd1461027057806323b872dd14610278576101e5565b8063061c67d1146101ea57806306fdde03146101ff5780630700037d1461021d575b600080fd5b6101fd6101f83660046111c0565b6103ff565b005b610207610468565b6040516102149190611238565b60405180910390f35b61023061022b3660046110ff565b6104fa565b604051610214919061160a565b61025061024b3660046111c0565b61050c565b604051610214919061122d565b6101fd61026b3660046110ff565b610529565b61023061058a565b61025061028636600461114b565b610590565b6102306102993660046110ff565b610627565b6102a661065d565b6040516102149190611613565b6102bb610662565b6040516102149190611219565b6102506102d63660046111c0565b610671565b6102bb6106c0565b6102506102f13660046110ff565b6106cf565b6102306106e4565b6101fd61030c3660046110ff565b6106f0565b61023061031f3660046110ff565b610751565b6101fd61076c565b6101fd61033a366004611186565b6107f5565b6102bb61085f565b6101fd6103553660046111e9565b61086e565b6102076108b2565b6101fd6103703660046111c0565b6108c1565b6102506103833660046111c0565b610924565b6102506103963660046111c0565b61099f565b6101fd6109b3565b6101fd610a06565b610230610a76565b6102306103c13660046110ff565b610a7c565b6101fd6103d4366004611119565b610a8e565b6102306103e7366004611119565b610b68565b6101fd6103fa3660046110ff565b610b93565b60075460ff161561042b5760405162461bcd60e51b815260040161042290611524565b60405180910390fd5b336000908152600a602052604090205460ff1661045a5760405162461bcd60e51b8152600401610422906113de565b6104648282610c54565b5050565b6060600380546104779061168f565b80601f01602080910402602001604051908101604052809291908181526020018280546104a39061168f565b80156104f05780601f106104c5576101008083540402835291602001916104f0565b820191906000526020600020905b8154815290600101906020018083116104d357829003601f168201915b5050505050905090565b60086020526000908152604090205481565b6000610520610519610d14565b8484610d18565b50600192915050565b610531610d14565b6001600160a01b031661054261085f565b6001600160a01b0316146105685760405162461bcd60e51b815260040161042290611469565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60025490565b600061059d848484610dcc565b6001600160a01b0384166000908152600160205260408120816105be610d14565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156106015760405162461bcd60e51b815260040161042290611421565b61061c8561060d610d14565b6106178685611678565b610d18565b506001949350505050565b600061063282610ef4565b6001600160a01b0383166000908152600860205260409020546106559190611621565b90505b919050565b601290565b600b546001600160a01b031681565b600061052061067e610d14565b84846001600061068c610d14565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546106179190611621565b600c546001600160a01b031681565b600a6020526000908152604090205460ff1681565b678ac7230489e8000081565b6106f8610d14565b6001600160a01b031661070961085f565b6001600160a01b03161461072f5760405162461bcd60e51b815260040161042290611469565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526020819052604090205490565b610774610d14565b6001600160a01b031661078561085f565b6001600160a01b0316146107ab5760405162461bcd60e51b815260040161042290611469565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6107fd610d14565b6001600160a01b031661080e61085f565b6001600160a01b0316146108345760405162461bcd60e51b815260040161042290611469565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6005546001600160a01b031690565b610876610d14565b6001600160a01b031661088761085f565b6001600160a01b0316146108ad5760405162461bcd60e51b815260040161042290611469565b600655565b6060600480546104779061168f565b336000908152600a602052604090205460ff16806108e95750600b546001600160a01b031633145b806108fe5750600c546001600160a01b031633145b61091a5760405162461bcd60e51b8152600401610422906113de565b6104648282610ffd565b60008060016000610933610d14565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508281101561097f5760405162461bcd60e51b81526004016104229061158e565b61099561098a610d14565b856106178685611678565b5060019392505050565b60006105206109ac610d14565b8484610dcc565b6109bb610d14565b6001600160a01b03166109cc61085f565b6001600160a01b0316146109f25760405162461bcd60e51b815260040161042290611469565b6007805460ff19811660ff90911615179055565b60075460ff1615610a295760405162461bcd60e51b815260040161042290611524565b610a5533610a3633610ef4565b33600090815260086020526040902054610a509190611621565b610c54565b33600090815260086020908152604080832083905560099091529020429055565b60065481565b60096020526000908152604090205481565b600b546001600160a01b03163314610aa557600080fd5b6001600160a01b03821615610b0657610abd82610ef4565b6001600160a01b03831660009081526008602052604081208054909190610ae5908490611621565b90915550506001600160a01b03821660009081526009602052604090204290555b6001600160a01b0381161561046457610b1e81610ef4565b6001600160a01b03821660009081526008602052604081208054909190610b46908490611621565b90915550506001600160a01b0316600090815260096020526040902042905550565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610b9b610d14565b6001600160a01b0316610bac61085f565b6001600160a01b031614610bd25760405162461bcd60e51b815260040161042290611469565b6001600160a01b038116610bf85760405162461bcd60e51b815260040161042290611310565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610c7a5760405162461bcd60e51b8152600401610422906115d3565b610c86600083836110e3565b8060026000828254610c989190611621565b90915550506001600160a01b03821660009081526020819052604081208054839290610cc5908490611621565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d0890859061160a565b60405180910390a35050565b3390565b6001600160a01b038316610d3e5760405162461bcd60e51b81526004016104229061154a565b6001600160a01b038216610d645760405162461bcd60e51b815260040161042290611356565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dbf90859061160a565b60405180910390a3505050565b6001600160a01b038316610df25760405162461bcd60e51b8152600401610422906114df565b6001600160a01b038216610e185760405162461bcd60e51b81526004016104229061128b565b610e238383836110e3565b6001600160a01b03831660009081526020819052604090205481811015610e5c5760405162461bcd60e51b815260040161042290611398565b610e668282611678565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290610e9c908490611621565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ee6919061160a565b60405180910390a350505050565b600b546006546001600160a01b038381166000908152600960205260408120549093919091169162015180911015610f2e57600654610f48565b6001600160a01b0384166000908152600960205260409020545b610f529042611678565b60405163e2b26b1560e01b8152678ac7230489e80000906001600160a01b0385169063e2b26b1590610f88908990600401611219565b60206040518083038186803b158015610fa057600080fd5b505afa158015610fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd89190611201565b610fe29190611659565b610fec9190611659565b610ff69190611639565b9392505050565b6001600160a01b0382166110235760405162461bcd60e51b81526004016104229061149e565b61102f826000836110e3565b6001600160a01b038216600090815260208190526040902054818110156110685760405162461bcd60e51b8152600401610422906112ce565b6110728282611678565b6001600160a01b038416600090815260208190526040812091909155600280548492906110a0908490611678565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dbf90869061160a565b505050565b80356001600160a01b038116811461065857600080fd5b600060208284031215611110578081fd5b610ff6826110e8565b6000806040838503121561112b578081fd5b611134836110e8565b9150611142602084016110e8565b90509250929050565b60008060006060848603121561115f578081fd5b611168846110e8565b9250611176602085016110e8565b9150604084013590509250925092565b60008060408385031215611198578182fd5b6111a1836110e8565b9150602083013580151581146111b5578182fd5b809150509250929050565b600080604083850312156111d2578182fd5b6111db836110e8565b946020939093013593505050565b6000602082840312156111fa578081fd5b5035919050565b600060208284031215611212578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561126457858101830151858201604001528201611248565b818111156112755783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526023908201527f41646472657373206e6565647320746f20617072706f7665206275726e2066696040820152621c9cdd60ea1b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252600c908201526b10db185a5b481c185d5cd95960a21b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115611634576116346116ca565b500190565b60008261165457634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611673576116736116ca565b500290565b60008282101561168a5761168a6116ca565b500390565b6002810460018216806116a357607f821691505b602082108114156116c457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212204341c9e8b8124072118a025b703758869ae025bd08b8bdd97d5903b4bc43be0864736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063a9059cbb116100a2578063cb03fb1e11610071578063cb03fb1e146103b3578063d230af3a146103c6578063dd62ed3e146103d9578063f2fde38b146103ec576101e5565b8063a9059cbb14610388578063ac8724cf1461039b578063b88a802f146103a3578063ba9a061a146103ab576101e5565b806394996680116100de578063949966801461034757806395d89b411461035a5780639dc29fac14610362578063a457c2d714610375576101e5565b806370a0823114610311578063715018a614610324578063897819121461032c5780638da5cb5b1461033f576101e5565b8063267e8ab6116101875780633e9de606116101565780633e9de606146102db5780634120657a146102e357806341910f90146102f6578063663c47d2146102fe576101e5565b8063267e8ab61461028b578063313ce5671461029e57806332d353ac146102b357806339509351146102c8576101e5565b8063095ea7b3116101c3578063095ea7b31461023d5780630ef877961461025d57806318160ddd1461027057806323b872dd14610278576101e5565b8063061c67d1146101ea57806306fdde03146101ff5780630700037d1461021d575b600080fd5b6101fd6101f83660046111c0565b6103ff565b005b610207610468565b6040516102149190611238565b60405180910390f35b61023061022b3660046110ff565b6104fa565b604051610214919061160a565b61025061024b3660046111c0565b61050c565b604051610214919061122d565b6101fd61026b3660046110ff565b610529565b61023061058a565b61025061028636600461114b565b610590565b6102306102993660046110ff565b610627565b6102a661065d565b6040516102149190611613565b6102bb610662565b6040516102149190611219565b6102506102d63660046111c0565b610671565b6102bb6106c0565b6102506102f13660046110ff565b6106cf565b6102306106e4565b6101fd61030c3660046110ff565b6106f0565b61023061031f3660046110ff565b610751565b6101fd61076c565b6101fd61033a366004611186565b6107f5565b6102bb61085f565b6101fd6103553660046111e9565b61086e565b6102076108b2565b6101fd6103703660046111c0565b6108c1565b6102506103833660046111c0565b610924565b6102506103963660046111c0565b61099f565b6101fd6109b3565b6101fd610a06565b610230610a76565b6102306103c13660046110ff565b610a7c565b6101fd6103d4366004611119565b610a8e565b6102306103e7366004611119565b610b68565b6101fd6103fa3660046110ff565b610b93565b60075460ff161561042b5760405162461bcd60e51b815260040161042290611524565b60405180910390fd5b336000908152600a602052604090205460ff1661045a5760405162461bcd60e51b8152600401610422906113de565b6104648282610c54565b5050565b6060600380546104779061168f565b80601f01602080910402602001604051908101604052809291908181526020018280546104a39061168f565b80156104f05780601f106104c5576101008083540402835291602001916104f0565b820191906000526020600020905b8154815290600101906020018083116104d357829003601f168201915b5050505050905090565b60086020526000908152604090205481565b6000610520610519610d14565b8484610d18565b50600192915050565b610531610d14565b6001600160a01b031661054261085f565b6001600160a01b0316146105685760405162461bcd60e51b815260040161042290611469565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60025490565b600061059d848484610dcc565b6001600160a01b0384166000908152600160205260408120816105be610d14565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156106015760405162461bcd60e51b815260040161042290611421565b61061c8561060d610d14565b6106178685611678565b610d18565b506001949350505050565b600061063282610ef4565b6001600160a01b0383166000908152600860205260409020546106559190611621565b90505b919050565b601290565b600b546001600160a01b031681565b600061052061067e610d14565b84846001600061068c610d14565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546106179190611621565b600c546001600160a01b031681565b600a6020526000908152604090205460ff1681565b678ac7230489e8000081565b6106f8610d14565b6001600160a01b031661070961085f565b6001600160a01b03161461072f5760405162461bcd60e51b815260040161042290611469565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526020819052604090205490565b610774610d14565b6001600160a01b031661078561085f565b6001600160a01b0316146107ab5760405162461bcd60e51b815260040161042290611469565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6107fd610d14565b6001600160a01b031661080e61085f565b6001600160a01b0316146108345760405162461bcd60e51b815260040161042290611469565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6005546001600160a01b031690565b610876610d14565b6001600160a01b031661088761085f565b6001600160a01b0316146108ad5760405162461bcd60e51b815260040161042290611469565b600655565b6060600480546104779061168f565b336000908152600a602052604090205460ff16806108e95750600b546001600160a01b031633145b806108fe5750600c546001600160a01b031633145b61091a5760405162461bcd60e51b8152600401610422906113de565b6104648282610ffd565b60008060016000610933610d14565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508281101561097f5760405162461bcd60e51b81526004016104229061158e565b61099561098a610d14565b856106178685611678565b5060019392505050565b60006105206109ac610d14565b8484610dcc565b6109bb610d14565b6001600160a01b03166109cc61085f565b6001600160a01b0316146109f25760405162461bcd60e51b815260040161042290611469565b6007805460ff19811660ff90911615179055565b60075460ff1615610a295760405162461bcd60e51b815260040161042290611524565b610a5533610a3633610ef4565b33600090815260086020526040902054610a509190611621565b610c54565b33600090815260086020908152604080832083905560099091529020429055565b60065481565b60096020526000908152604090205481565b600b546001600160a01b03163314610aa557600080fd5b6001600160a01b03821615610b0657610abd82610ef4565b6001600160a01b03831660009081526008602052604081208054909190610ae5908490611621565b90915550506001600160a01b03821660009081526009602052604090204290555b6001600160a01b0381161561046457610b1e81610ef4565b6001600160a01b03821660009081526008602052604081208054909190610b46908490611621565b90915550506001600160a01b0316600090815260096020526040902042905550565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610b9b610d14565b6001600160a01b0316610bac61085f565b6001600160a01b031614610bd25760405162461bcd60e51b815260040161042290611469565b6001600160a01b038116610bf85760405162461bcd60e51b815260040161042290611310565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610c7a5760405162461bcd60e51b8152600401610422906115d3565b610c86600083836110e3565b8060026000828254610c989190611621565b90915550506001600160a01b03821660009081526020819052604081208054839290610cc5908490611621565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d0890859061160a565b60405180910390a35050565b3390565b6001600160a01b038316610d3e5760405162461bcd60e51b81526004016104229061154a565b6001600160a01b038216610d645760405162461bcd60e51b815260040161042290611356565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610dbf90859061160a565b60405180910390a3505050565b6001600160a01b038316610df25760405162461bcd60e51b8152600401610422906114df565b6001600160a01b038216610e185760405162461bcd60e51b81526004016104229061128b565b610e238383836110e3565b6001600160a01b03831660009081526020819052604090205481811015610e5c5760405162461bcd60e51b815260040161042290611398565b610e668282611678565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290610e9c908490611621565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ee6919061160a565b60405180910390a350505050565b600b546006546001600160a01b038381166000908152600960205260408120549093919091169162015180911015610f2e57600654610f48565b6001600160a01b0384166000908152600960205260409020545b610f529042611678565b60405163e2b26b1560e01b8152678ac7230489e80000906001600160a01b0385169063e2b26b1590610f88908990600401611219565b60206040518083038186803b158015610fa057600080fd5b505afa158015610fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd89190611201565b610fe29190611659565b610fec9190611659565b610ff69190611639565b9392505050565b6001600160a01b0382166110235760405162461bcd60e51b81526004016104229061149e565b61102f826000836110e3565b6001600160a01b038216600090815260208190526040902054818110156110685760405162461bcd60e51b8152600401610422906112ce565b6110728282611678565b6001600160a01b038416600090815260208190526040812091909155600280548492906110a0908490611678565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dbf90869061160a565b505050565b80356001600160a01b038116811461065857600080fd5b600060208284031215611110578081fd5b610ff6826110e8565b6000806040838503121561112b578081fd5b611134836110e8565b9150611142602084016110e8565b90509250929050565b60008060006060848603121561115f578081fd5b611168846110e8565b9250611176602085016110e8565b9150604084013590509250925092565b60008060408385031215611198578182fd5b6111a1836110e8565b9150602083013580151581146111b5578182fd5b809150509250929050565b600080604083850312156111d2578182fd5b6111db836110e8565b946020939093013593505050565b6000602082840312156111fa578081fd5b5035919050565b600060208284031215611212578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561126457858101830151858201604001528201611248565b818111156112755783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526023908201527f41646472657373206e6565647320746f20617072706f7665206275726e2066696040820152621c9cdd60ea1b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252600c908201526b10db185a5b481c185d5cd95960a21b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115611634576116346116ca565b500190565b60008261165457634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611673576116736116ca565b500290565b60008282101561168a5761168a6116ca565b500390565b6002810460018216806116a357607f821691505b602082108114156116c457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212204341c9e8b8124072118a025b703758869ae025bd08b8bdd97d5903b4bc43be0864736f6c63430008000033
Deployed Bytecode Sourcemap
15242:2840:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16866:265;;;;;;:::i;:::-;;:::i;:::-;;7286:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15415:42;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9453:169::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15845:139::-;;;;;;:::i;:::-;;:::i;8406:108::-;;;:::i;10104:422::-;;;;;;:::i;:::-;;:::i;17392:136::-;;;;;;:::i;:::-;;:::i;8248:93::-;;;:::i;:::-;;;;;;;:::i;15573:36::-;;;:::i;:::-;;;;;;;:::i;10935:215::-;;;;;;:::i;:::-;;:::i;15616:27::-;;;:::i;15518:48::-;;;;;;:::i;:::-;;:::i;15287:44::-;;;:::i;16051:121::-;;;;;;:::i;:::-;;:::i;8577:127::-;;;;;;:::i;:::-;;:::i;5881:148::-;;;:::i;17850:133::-;;;;;;:::i;:::-;;:::i;5230:87::-;;;:::i;15740:98::-;;;;;;:::i;:::-;;:::i;7505:104::-;;;:::i;17139:245::-;;;;;;:::i;:::-;;:::i;11653:377::-;;;;;;:::i;:::-;;:::i;8917:175::-;;;;;;:::i;:::-;;:::i;17991:88::-;;;:::i;16597:255::-;;;:::i;15354:20::-;;;:::i;15464:45::-;;;;;;:::i;:::-;;:::i;16184:405::-;;;;;;:::i;:::-;;:::i;9155:151::-;;;;;;:::i;:::-;;:::i;6184:244::-;;;;;;:::i;:::-;;:::i;16866:265::-;16956:12;;;;16955:13;16947:53;;;;-1:-1:-1;;;16947:53:0;;;;;;;:::i;:::-;;;;;;;;;17037:10;17020:28;;;;:16;:28;;;;;;;;17012:76;;;;-1:-1:-1;;;17012:76:0;;;;;;;:::i;:::-;17099:24;17105:8;17115:7;17099:5;:24::i;:::-;16866:265;;:::o;7286:100::-;7340:13;7373:5;7366:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7286:100;:::o;15415:42::-;;;;;;;;;;;;;:::o;9453:169::-;9536:4;9553:39;9562:12;:10;:12::i;:::-;9576:7;9585:6;9553:8;:39::i;:::-;-1:-1:-1;9610:4:0;9453:169;;;;:::o;15845:139::-;5461:12;:10;:12::i;:::-;-1:-1:-1;;;;;5450:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5450:23:0;;5442:68;;;;-1:-1:-1;;;5442:68:0;;;;;;;:::i;:::-;15939:20:::1;:38:::0;;-1:-1:-1;;;;;;15939:38:0::1;-1:-1:-1::0;;;;;15939:38:0;;;::::1;::::0;;;::::1;::::0;;15845:139::o;8406:108::-;8494:12;;8406:108;:::o;10104:422::-;10210:4;10227:36;10237:6;10245:9;10256:6;10227:9;:36::i;:::-;-1:-1:-1;;;;;10303:19:0;;10276:24;10303:19;;;:11;:19;;;;;10276:24;10323:12;:10;:12::i;:::-;-1:-1:-1;;;;;10303:33:0;-1:-1:-1;;;;;10303:33:0;;;;;;;;;;;;;10276:60;;10375:6;10355:16;:26;;10347:79;;;;-1:-1:-1;;;10347:79:0;;;;;;;:::i;:::-;10437:57;10446:6;10454:12;:10;:12::i;:::-;10468:25;10487:6;10468:16;:25;:::i;:::-;10437:8;:57::i;:::-;-1:-1:-1;10514:4:0;;10104:422;-1:-1:-1;;;;10104:422:0:o;17392:136::-;17455:7;17498:22;17515:4;17498:16;:22::i;:::-;-1:-1:-1;;;;;17482:13:0;;;;;;:7;:13;;;;;;:38;;;;:::i;:::-;17475:45;;17392:136;;;;:::o;8248:93::-;8331:2;8248:93;:::o;15573:36::-;;;-1:-1:-1;;;;;15573:36:0;;:::o;10935:215::-;11023:4;11040:80;11049:12;:10;:12::i;:::-;11063:7;11109:10;11072:11;:25;11084:12;:10;:12::i;:::-;-1:-1:-1;;;;;11072:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;11072:25:0;;;:34;;;;;;;;;;:47;;;;:::i;15616:27::-;;;-1:-1:-1;;;;;15616:27:0;;:::o;15518:48::-;;;;;;;;;;;;;;;:::o;15287:44::-;15323:8;15287:44;:::o;16051:121::-;5461:12;:10;:12::i;:::-;-1:-1:-1;;;;;5450:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5450:23:0;;5442:68;;;;-1:-1:-1;;;5442:68:0;;;;;;;:::i;:::-;16136:11:::1;:29:::0;;-1:-1:-1;;;;;;16136:29:0::1;-1:-1:-1::0;;;;;16136:29:0;;;::::1;::::0;;;::::1;::::0;;16051:121::o;8577:127::-;-1:-1:-1;;;;;8678:18:0;8651:7;8678:18;;;;;;;;;;;;8577:127::o;5881:148::-;5461:12;:10;:12::i;:::-;-1:-1:-1;;;;;5450:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5450:23:0;;5442:68;;;;-1:-1:-1;;;5442:68:0;;;;;;;:::i;:::-;5972:6:::1;::::0;5951:40:::1;::::0;5988:1:::1;::::0;-1:-1:-1;;;;;5972:6:0::1;::::0;5951:40:::1;::::0;5988:1;;5951:40:::1;6002:6;:19:::0;;-1:-1:-1;;;;;;6002:19:0::1;::::0;;5881:148::o;17850:133::-;5461:12;:10;:12::i;:::-;-1:-1:-1;;;;;5450:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5450:23:0;;5442:68;;;;-1:-1:-1;;;5442:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17939:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:36;;-1:-1:-1;;17939:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17850:133::o;5230:87::-;5303:6;;-1:-1:-1;;;;;5303:6:0;5230:87;:::o;15740:98::-;5461:12;:10;:12::i;:::-;-1:-1:-1;;;;;5450:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5450:23:0;;5442:68;;;;-1:-1:-1;;;5442:68:0;;;;;;;:::i;:::-;15814:5:::1;:17:::0;15740:98::o;7505:104::-;7561:13;7594:7;7587:14;;;;;:::i;17139:245::-;17228:10;17211:28;;;;:16;:28;;;;;;;;;:66;;-1:-1:-1;17257:20:0;;-1:-1:-1;;;;;17257:20:0;17243:10;:34;17211:66;:95;;;-1:-1:-1;17295:11:0;;-1:-1:-1;;;;;17295:11:0;17281:10;:25;17211:95;17203:143;;;;-1:-1:-1;;;17203:143:0;;;;;;;:::i;:::-;17357:19;17363:4;17369:6;17357:5;:19::i;11653:377::-;11746:4;11763:24;11790:11;:25;11802:12;:10;:12::i;:::-;-1:-1:-1;;;;;11790:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;11790:25:0;;;:34;;;;;;;;;;;-1:-1:-1;11843:35:0;;;;11835:85;;;;-1:-1:-1;;;11835:85:0;;;;;;;:::i;:::-;11931:67;11940:12;:10;:12::i;:::-;11954:7;11963:34;11982:15;11963:16;:34;:::i;11931:67::-;-1:-1:-1;12018:4:0;;11653:377;-1:-1:-1;;;11653:377:0:o;8917:175::-;9003:4;9020:42;9030:12;:10;:12::i;:::-;9044:9;9055:6;9020:9;:42::i;17991:88::-;5461:12;:10;:12::i;:::-;-1:-1:-1;;;;;5450:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5450:23:0;;5442:68;;;;-1:-1:-1;;;5442:68:0;;;;;;;:::i;:::-;18059:12:::1;::::0;;-1:-1:-1;;18043:28:0;::::1;18059:12;::::0;;::::1;18058:13;18043:28;::::0;;17991:88::o;16597:255::-;16649:12;;;;16648:13;16640:38;;;;-1:-1:-1;;;16640:38:0;;;;;;;:::i;:::-;16690:69;16696:10;16730:28;16747:10;16730:16;:28::i;:::-;16716:10;16708:19;;;;:7;:19;;;;;;:50;;;;:::i;:::-;16690:5;:69::i;:::-;16778:10;16792:1;16770:19;;;:7;:19;;;;;;;;:23;;;16804:10;:22;;;;;16829:15;16804:40;;16597:255::o;15354:20::-;;;;:::o;15464:45::-;;;;;;;;;;;;;:::o;16184:405::-;16274:20;;-1:-1:-1;;;;;16274:20:0;16260:10;:34;16252:43;;;;;;-1:-1:-1;;;;;16309:18:0;;;16306:137;;16360:22;16377:4;16360:16;:22::i;:::-;-1:-1:-1;;;;;16343:13:0;;;;;;:7;:13;;;;;:39;;:13;;;:39;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;16397:16:0;;;;;;:10;:16;;;;;16416:15;16397:34;;16306:137;-1:-1:-1;;;;;16456:16:0;;;16453:129;;16503:20;16520:2;16503:16;:20::i;:::-;-1:-1:-1;;;;;16488:11:0;;;;;;:7;:11;;;;;:35;;:11;;;:35;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;16538:14:0;;;;;:10;:14;;;;;16555:15;16538:32;;-1:-1:-1;16184:405:0:o;9155:151::-;-1:-1:-1;;;;;9271:18:0;;;9244:7;9271:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9155:151::o;6184:244::-;5461:12;:10;:12::i;:::-;-1:-1:-1;;;;;5450:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5450:23:0;;5442:68;;;;-1:-1:-1;;;5442:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6273:22:0;::::1;6265:73;;;;-1:-1:-1::0;;;6265:73:0::1;;;;;;;:::i;:::-;6375:6;::::0;6354:38:::1;::::0;-1:-1:-1;;;;;6354:38:0;;::::1;::::0;6375:6:::1;::::0;6354:38:::1;::::0;6375:6:::1;::::0;6354:38:::1;6403:6;:17:::0;;-1:-1:-1;;;;;;6403:17:0::1;-1:-1:-1::0;;;;;6403:17:0;;;::::1;::::0;;;::::1;::::0;;6184:244::o;13406:338::-;-1:-1:-1;;;;;13490:21:0;;13482:65;;;;-1:-1:-1;;;13482:65:0;;;;;;;:::i;:::-;13560:49;13589:1;13593:7;13602:6;13560:20;:49::i;:::-;13638:6;13622:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;13655:18:0;;:9;:18;;;;;;;;;;:28;;13677:6;;13655:9;:28;;13677:6;;13655:28;:::i;:::-;;;;-1:-1:-1;;13699:37:0;;-1:-1:-1;;;;;13699:37:0;;;13716:1;;13699:37;;;;13729:6;;13699:37;:::i;:::-;;;;;;;;13406:338;;:::o;601:98::-;681:10;601:98;:::o;14581:346::-;-1:-1:-1;;;;;14683:19:0;;14675:68;;;;-1:-1:-1;;;14675:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14762:21:0;;14754:68;;;;-1:-1:-1;;;14754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14835:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;14887:32;;;;;14865:6;;14887:32;:::i;:::-;;;;;;;;14581:346;;;:::o;12520:604::-;-1:-1:-1;;;;;12626:20:0;;12618:70;;;;-1:-1:-1;;;12618:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12707:23:0;;12699:71;;;;-1:-1:-1;;;12699:71:0;;;;;;;:::i;:::-;12783:47;12804:6;12812:9;12823:6;12783:20;:47::i;:::-;-1:-1:-1;;;;;12867:17:0;;12843:21;12867:17;;;;;;;;;;;12903:23;;;;12895:74;;;;-1:-1:-1;;;12895:74:0;;;;;;;:::i;:::-;13000:22;13016:6;13000:13;:22;:::i;:::-;-1:-1:-1;;;;;12980:17:0;;;:9;:17;;;;;;;;;;;:42;;;;13033:20;;;;;;;;:30;;13057:6;;12980:9;13033:30;;13057:6;;13033:30;:::i;:::-;;;;;;;;13098:9;-1:-1:-1;;;;;13081:35:0;13090:6;-1:-1:-1;;;;;13081:35:0;;13109:6;13081:35;;;;;;:::i;:::-;;;;;;;;12520:604;;;;:::o;17536:306::-;17664:20;;17792:5;;-1:-1:-1;;;;;17772:16:0;;;17598:7;17772:16;;;:10;:16;;;;;;17598:7;;17664:20;;;;;17829:5;;17772:25;;:52;;17819:5;;17772:52;;;-1:-1:-1;;;;;17800:16:0;;;;;;:10;:16;;;;;;17772:52;17753:72;;:15;:72;:::i;:::-;17703:34;;-1:-1:-1;;;17703:34:0;;15323:8;;-1:-1:-1;;;;;17703:28:0;;;;;:34;;17732:4;;17703:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;;:::i;:::-;:123;;;;:::i;:::-;:131;;;;:::i;:::-;17696:138;17536:306;-1:-1:-1;;;17536:306:0:o;14077:494::-;-1:-1:-1;;;;;14161:21:0;;14153:67;;;;-1:-1:-1;;;14153:67:0;;;;;;;:::i;:::-;14233:49;14254:7;14271:1;14275:6;14233:20;:49::i;:::-;-1:-1:-1;;;;;14320:18:0;;14295:22;14320:18;;;;;;;;;;;14357:24;;;;14349:71;;;;-1:-1:-1;;;14349:71:0;;;;;;;:::i;:::-;14452:23;14469:6;14452:14;:23;:::i;:::-;-1:-1:-1;;;;;14431:18:0;;:9;:18;;;;;;;;;;:44;;;;14486:12;:22;;14502:6;;14431:9;14486:22;;14502:6;;14486:22;:::i;:::-;;;;-1:-1:-1;;14526:37:0;;14552:1;;-1:-1:-1;;;;;14526:37:0;;;;;;;14556:6;;14526:37;:::i;14937:92::-;;;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:369::-;;;1149:2;1137:9;1128:7;1124:23;1120:32;1117:2;;;1170:6;1162;1155:22;1117:2;1198:31;1219:9;1198:31;:::i;:::-;1188:41;;1279:2;1268:9;1264:18;1251:32;1326:5;1319:13;1312:21;1305:5;1302:32;1292:2;;1353:6;1345;1338:22;1292:2;1381:5;1371:15;;;1107:285;;;;;:::o;1397:266::-;;;1526:2;1514:9;1505:7;1501:23;1497:32;1494:2;;;1547:6;1539;1532:22;1494:2;1575:31;1596:9;1575:31;:::i;:::-;1565:41;1653:2;1638:18;;;;1625:32;;-1:-1:-1;;;1484:179:1:o;1668:190::-;;1780:2;1768:9;1759:7;1755:23;1751:32;1748:2;;;1801:6;1793;1786:22;1748:2;-1:-1:-1;1829:23:1;;1738:120;-1:-1:-1;1738:120:1:o;1863:194::-;;1986:2;1974:9;1965:7;1961:23;1957:32;1954:2;;;2007:6;1999;1992:22;1954:2;-1:-1:-1;2035:16:1;;1944:113;-1:-1:-1;1944:113:1:o;2062:203::-;-1:-1:-1;;;;;2226:32:1;;;;2208:51;;2196:2;2181:18;;2163:102::o;2270:187::-;2435:14;;2428:22;2410:41;;2398:2;2383:18;;2365:92::o;2462:603::-;;2603:2;2632;2621:9;2614:21;2664:6;2658:13;2707:6;2702:2;2691:9;2687:18;2680:34;2732:4;2745:140;2759:6;2756:1;2753:13;2745:140;;;2854:14;;;2850:23;;2844:30;2820:17;;;2839:2;2816:26;2809:66;2774:10;;2745:140;;;2903:6;2900:1;2897:13;2894:2;;;2973:4;2968:2;2959:6;2948:9;2944:22;2940:31;2933:45;2894:2;-1:-1:-1;3049:2:1;3028:15;-1:-1:-1;;3024:29:1;3009:45;;;;3056:2;3005:54;;2583:482;-1:-1:-1;;;2583:482:1:o;3070:399::-;3272:2;3254:21;;;3311:2;3291:18;;;3284:30;3350:34;3345:2;3330:18;;3323:62;-1:-1:-1;;;3416:2:1;3401:18;;3394:33;3459:3;3444:19;;3244:225::o;3474:398::-;3676:2;3658:21;;;3715:2;3695:18;;;3688:30;3754:34;3749:2;3734:18;;3727:62;-1:-1:-1;;;3820:2:1;3805:18;;3798:32;3862:3;3847:19;;3648:224::o;3877:402::-;4079:2;4061:21;;;4118:2;4098:18;;;4091:30;4157:34;4152:2;4137:18;;4130:62;-1:-1:-1;;;4223:2:1;4208:18;;4201:36;4269:3;4254:19;;4051:228::o;4284:398::-;4486:2;4468:21;;;4525:2;4505:18;;;4498:30;4564:34;4559:2;4544:18;;4537:62;-1:-1:-1;;;4630:2:1;4615:18;;4608:32;4672:3;4657:19;;4458:224::o;4687:402::-;4889:2;4871:21;;;4928:2;4908:18;;;4901:30;4967:34;4962:2;4947:18;;4940:62;-1:-1:-1;;;5033:2:1;5018:18;;5011:36;5079:3;5064:19;;4861:228::o;5094:399::-;5296:2;5278:21;;;5335:2;5315:18;;;5308:30;5374:34;5369:2;5354:18;;5347:62;-1:-1:-1;;;5440:2:1;5425:18;;5418:33;5483:3;5468:19;;5268:225::o;5498:404::-;5700:2;5682:21;;;5739:2;5719:18;;;5712:30;5778:34;5773:2;5758:18;;5751:62;-1:-1:-1;;;5844:2:1;5829:18;;5822:38;5892:3;5877:19;;5672:230::o;5907:356::-;6109:2;6091:21;;;6128:18;;;6121:30;6187:34;6182:2;6167:18;;6160:62;6254:2;6239:18;;6081:182::o;6268:397::-;6470:2;6452:21;;;6509:2;6489:18;;;6482:30;6548:34;6543:2;6528:18;;6521:62;-1:-1:-1;;;6614:2:1;6599:18;;6592:31;6655:3;6640:19;;6442:223::o;6670:401::-;6872:2;6854:21;;;6911:2;6891:18;;;6884:30;6950:34;6945:2;6930:18;;6923:62;-1:-1:-1;;;7016:2:1;7001:18;;6994:35;7061:3;7046:19;;6844:227::o;7076:336::-;7278:2;7260:21;;;7317:2;7297:18;;;7290:30;-1:-1:-1;;;7351:2:1;7336:18;;7329:42;7403:2;7388:18;;7250:162::o;7417:400::-;7619:2;7601:21;;;7658:2;7638:18;;;7631:30;7697:34;7692:2;7677:18;;7670:62;-1:-1:-1;;;7763:2:1;7748:18;;7741:34;7807:3;7792:19;;7591:226::o;7822:401::-;8024:2;8006:21;;;8063:2;8043:18;;;8036:30;8102:34;8097:2;8082:18;;8075:62;-1:-1:-1;;;8168:2:1;8153:18;;8146:35;8213:3;8198:19;;7996:227::o;8228:355::-;8430:2;8412:21;;;8469:2;8449:18;;;8442:30;8508:33;8503:2;8488:18;;8481:61;8574:2;8559:18;;8402:181::o;8588:177::-;8734:25;;;8722:2;8707:18;;8689:76::o;8770:184::-;8942:4;8930:17;;;;8912:36;;8900:2;8885:18;;8867:87::o;8959:128::-;;9030:1;9026:6;9023:1;9020:13;9017:2;;;9036:18;;:::i;:::-;-1:-1:-1;9072:9:1;;9007:80::o;9092:217::-;;9158:1;9148:2;;-1:-1:-1;;;9183:31:1;;9237:4;9234:1;9227:15;9265:4;9190:1;9255:15;9148:2;-1:-1:-1;9294:9:1;;9138:171::o;9314:168::-;;9420:1;9416;9412:6;9408:14;9405:1;9402:21;9397:1;9390:9;9383:17;9379:45;9376:2;;;9427:18;;:::i;:::-;-1:-1:-1;9467:9:1;;9366:116::o;9487:125::-;;9555:1;9552;9549:8;9546:2;;;9560:18;;:::i;:::-;-1:-1:-1;9597:9:1;;9536:76::o;9617:380::-;9702:1;9692:12;;9749:1;9739:12;;;9760:2;;9814:4;9806:6;9802:17;9792:27;;9760:2;9867;9859:6;9856:14;9836:18;9833:38;9830:2;;;9913:10;9908:3;9904:20;9901:1;9894:31;9948:4;9945:1;9938:15;9976:4;9973:1;9966:15;9830:2;;9672:325;;;:::o;10002:127::-;10063:10;10058:3;10054:20;10051:1;10044:31;10094:4;10091:1;10084:15;10118:4;10115:1;10108:15
Swarm Source
ipfs://4341c9e8b8124072118a025b703758869ae025bd08b8bdd97d5903b4bc43be08
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.