ERC-20
MEME
Overview
Max Total Supply
554,461,745,461,508.9264717478 CUPS
Holders
121 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,831,621,902,457.432410573101926237 CUPSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DrinkingOutOfCups
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-12 */ // File: @openzeppelin/[email protected]/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) 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) { return msg.data; } } // File: @openzeppelin/[email protected]/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/[email protected]/security/Pausable.sol // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // File: @openzeppelin/[email protected]/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool); } // File: @openzeppelin/[email protected]/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @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); } // File: @openzeppelin/[email protected]/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ 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}. * * 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 default value returned by this function, unless * it's 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: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, 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}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @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) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, 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) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This 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: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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: * * - `account` 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; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(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"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } // File: @openzeppelin/[email protected]/token/ERC20/extensions/ERC20Burnable.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity ^0.8.0; /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } // File: DrinkingOutOfCups.sol pragma solidity ^0.8.9; contract DrinkingOutOfCups is ERC20, ERC20Burnable, Pausable, Ownable { mapping(address => bool) public blacklists; bool public limited; uint256 public maxHoldingAmount; uint256 public minHoldingAmount; address public uniswapV2Pair; constructor() ERC20("Drinking Out Of Cups", "CUPS") { _mint(msg.sender, 564300000000000 * 10 ** decimals()); } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal whenNotPaused override { require(!blacklists[to] && !blacklists[from], "Blacklisted"); if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "Trading is not started"); return; } if (limited && from == uniswapV2Pair) { require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid"); } super._beforeTokenTransfer(from, to, amount); } function blacklist(address _address, bool _isBlacklisting) external onlyOwner { blacklists[_address] = _isBlacklisting; } function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner { limited = _limited; uniswapV2Pair = _uniswapV2Pair; maxHoldingAmount = _maxHoldingAmount; minHoldingAmount = _minHoldingAmount; } }
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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"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":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","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":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280601481526020017f4472696e6b696e67204f7574204f662043757073000000000000000000000000815250604051806040016040528060048152602001634355505360e01b815250816003908162000076919062000522565b50600462000085828262000522565b50506005805460ff19169055506200009d33620000cf565b620000c933620000b06012600a62000703565b620000c3906602013a550bf8006200071b565b62000129565b6200074b565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001855760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200019360008383620001fe565b8060026000828254620001a7919062000735565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6200020862000419565b6001600160a01b03821660009081526006602052604090205460ff161580156200024b57506001600160a01b03831660009081526006602052604090205460ff16155b620002875760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016200017c565b600a546001600160a01b03166200034b57620002b060055461010090046001600160a01b031690565b6001600160a01b0316836001600160a01b03161480620002f85750620002e360055461010090046001600160a01b031690565b6001600160a01b0316826001600160a01b0316145b620003465760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f7420737461727465640000000000000000000060448201526064016200017c565b505050565b60075460ff1680156200036b5750600a546001600160a01b038481169116145b156200040157600854816200038b846200046360201b620004fd1760201c565b62000397919062000735565b11158015620003ca575060095481620003bb846200046360201b620004fd1760201c565b620003c7919062000735565b10155b620004015760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b60448201526064016200017c565b620003468383836200034660201b620006911760201c565b60055460ff1615620004615760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200017c565b565b6001600160a01b031660009081526020819052604090205490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004a957607f821691505b602082108103620004ca57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034657600081815260208120601f850160051c81016020861015620004f95750805b601f850160051c820191505b818110156200051a5782815560010162000505565b505050505050565b81516001600160401b038111156200053e576200053e6200047e565b62000556816200054f845462000494565b84620004d0565b602080601f8311600181146200058e5760008415620005755750858301515b600019600386901b1c1916600185901b1785556200051a565b600085815260208120601f198616915b82811015620005bf578886015182559484019460019091019084016200059e565b5085821015620005de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000645578160001904821115620006295762000629620005ee565b808516156200063757918102915b93841c939080029062000609565b509250929050565b6000826200065e57506001620006fd565b816200066d57506000620006fd565b81600181146200068657600281146200069157620006b1565b6001915050620006fd565b60ff841115620006a557620006a5620005ee565b50506001821b620006fd565b5060208310610133831016604e8410600b8410161715620006d6575081810a620006fd565b620006e2838362000604565b8060001904821115620006f957620006f9620005ee565b0290505b92915050565b60006200071460ff8416836200064d565b9392505050565b8082028115828204841417620006fd57620006fd620005ee565b80820180821115620006fd57620006fd620005ee565b6110e3806200075b6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de57806389f9a1d311610097578063a457c2d711610071578063a457c2d71461032a578063a9059cbb1461033d578063dd62ed3e14610350578063f2fde38b1461036357600080fd5b806389f9a1d3146103035780638da5cb5b1461030c57806395d89b411461032257600080fd5b80635c975abb146102b557806370a08231146102c0578063715018a6146102d357806379cc6790146102db5780638456cb59146102ee578063860a32ec146102f657600080fd5b8063313ce5671161014b5780633f4ba83a116101255780633f4ba83a1461025c578063404e51291461026457806342966c681461027757806349bd5a5e1461028a57600080fd5b8063313ce5671461022557806339509351146102345780633aa633aa1461024757600080fd5b806306fdde0314610193578063095ea7b3146101b157806316c02129146101d457806318160ddd146101f75780631ab99e121461020957806323b872dd14610212575b600080fd5b61019b610376565b6040516101a89190610e98565b60405180910390f35b6101c46101bf366004610f02565b610408565b60405190151581526020016101a8565b6101c46101e2366004610f2c565b60066020526000908152604090205460ff1681565b6002545b6040519081526020016101a8565b6101fb60095481565b6101c4610220366004610f4e565b610422565b604051601281526020016101a8565b6101c4610242366004610f02565b610446565b61025a610255366004610f9a565b610468565b005b61025a6104ab565b61025a610272366004610fdc565b6104bd565b61025a61028536600461100f565b6104f0565b600a5461029d906001600160a01b031681565b6040516001600160a01b0390911681526020016101a8565b60055460ff166101c4565b6101fb6102ce366004610f2c565b6104fd565b61025a610518565b61025a6102e9366004610f02565b61052a565b61025a610543565b6007546101c49060ff1681565b6101fb60085481565b60055461010090046001600160a01b031661029d565b61019b610553565b6101c4610338366004610f02565b610562565b6101c461034b366004610f02565b6105e2565b6101fb61035e366004611028565b6105f0565b61025a610371366004610f2c565b61061b565b60606003805461038590611052565b80601f01602080910402602001604051908101604052809291908181526020018280546103b190611052565b80156103fe5780601f106103d3576101008083540402835291602001916103fe565b820191906000526020600020905b8154815290600101906020018083116103e157829003601f168201915b5050505050905090565b600033610416818585610696565b60019150505b92915050565b6000336104308582856107ba565b61043b858585610834565b506001949350505050565b60003361041681858561045983836105f0565b610463919061108c565b610696565b6104706109e3565b6007805460ff191694151594909417909355600a80546001600160a01b0319166001600160a01b039390931692909217909155600855600955565b6104b36109e3565b6104bb610a43565b565b6104c56109e3565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6104fa3382610a95565b50565b6001600160a01b031660009081526020819052604090205490565b6105206109e3565b6104bb6000610bd3565b6105358233836107ba565b61053f8282610a95565b5050565b61054b6109e3565b6104bb610c2d565b60606004805461038590611052565b6000338161057082866105f0565b9050838110156105d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61043b8286868403610696565b600033610416818585610834565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6106236109e3565b6001600160a01b0381166106885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105cc565b6104fa81610bd3565b505050565b6001600160a01b0383166106f85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105cc565b6001600160a01b0382166107595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105cc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006107c684846105f0565b9050600019811461082e57818110156108215760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105cc565b61082e8484848403610696565b50505050565b6001600160a01b0383166108985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105cc565b6001600160a01b0382166108fa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105cc565b610905838383610c6a565b6001600160a01b0383166000908152602081905260409020548181101561097d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105cc565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361082e565b6005546001600160a01b036101009091041633146104bb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105cc565b610a4b610e09565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610af55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105cc565b610b0182600083610c6a565b6001600160a01b03821660009081526020819052604090205481811015610b755760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105cc565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c35610e52565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610a783390565b610c72610e52565b6001600160a01b03821660009081526006602052604090205460ff16158015610cb457506001600160a01b03831660009081526006602052604090205460ff16155b610cee5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016105cc565b600a546001600160a01b0316610d76576005546001600160a01b03848116610100909204161480610d3157506005546001600160a01b0383811661010090920416145b6106915760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b60448201526064016105cc565b60075460ff168015610d955750600a546001600160a01b038481169116145b156106915760085481610da7846104fd565b610db1919061108c565b11158015610dd4575060095481610dc7846104fd565b610dd1919061108c565b10155b6106915760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b60448201526064016105cc565b60055460ff166104bb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105cc565b60055460ff16156104bb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105cc565b600060208083528351808285015260005b81811015610ec557858101830151858201604001528201610ea9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610efd57600080fd5b919050565b60008060408385031215610f1557600080fd5b610f1e83610ee6565b946020939093013593505050565b600060208284031215610f3e57600080fd5b610f4782610ee6565b9392505050565b600080600060608486031215610f6357600080fd5b610f6c84610ee6565b9250610f7a60208501610ee6565b9150604084013590509250925092565b80358015158114610efd57600080fd5b60008060008060808587031215610fb057600080fd5b610fb985610f8a565b9350610fc760208601610ee6565b93969395505050506040820135916060013590565b60008060408385031215610fef57600080fd5b610ff883610ee6565b915061100660208401610f8a565b90509250929050565b60006020828403121561102157600080fd5b5035919050565b6000806040838503121561103b57600080fd5b61104483610ee6565b915061100660208401610ee6565b600181811c9082168061106657607f821691505b60208210810361108657634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561041c57634e487b7160e01b600052601160045260246000fdfea26469706673582212205d040012acbcc5d21678af29d9bfdd2b0583159a1ec9f1933885d3ef79a542de64736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de57806389f9a1d311610097578063a457c2d711610071578063a457c2d71461032a578063a9059cbb1461033d578063dd62ed3e14610350578063f2fde38b1461036357600080fd5b806389f9a1d3146103035780638da5cb5b1461030c57806395d89b411461032257600080fd5b80635c975abb146102b557806370a08231146102c0578063715018a6146102d357806379cc6790146102db5780638456cb59146102ee578063860a32ec146102f657600080fd5b8063313ce5671161014b5780633f4ba83a116101255780633f4ba83a1461025c578063404e51291461026457806342966c681461027757806349bd5a5e1461028a57600080fd5b8063313ce5671461022557806339509351146102345780633aa633aa1461024757600080fd5b806306fdde0314610193578063095ea7b3146101b157806316c02129146101d457806318160ddd146101f75780631ab99e121461020957806323b872dd14610212575b600080fd5b61019b610376565b6040516101a89190610e98565b60405180910390f35b6101c46101bf366004610f02565b610408565b60405190151581526020016101a8565b6101c46101e2366004610f2c565b60066020526000908152604090205460ff1681565b6002545b6040519081526020016101a8565b6101fb60095481565b6101c4610220366004610f4e565b610422565b604051601281526020016101a8565b6101c4610242366004610f02565b610446565b61025a610255366004610f9a565b610468565b005b61025a6104ab565b61025a610272366004610fdc565b6104bd565b61025a61028536600461100f565b6104f0565b600a5461029d906001600160a01b031681565b6040516001600160a01b0390911681526020016101a8565b60055460ff166101c4565b6101fb6102ce366004610f2c565b6104fd565b61025a610518565b61025a6102e9366004610f02565b61052a565b61025a610543565b6007546101c49060ff1681565b6101fb60085481565b60055461010090046001600160a01b031661029d565b61019b610553565b6101c4610338366004610f02565b610562565b6101c461034b366004610f02565b6105e2565b6101fb61035e366004611028565b6105f0565b61025a610371366004610f2c565b61061b565b60606003805461038590611052565b80601f01602080910402602001604051908101604052809291908181526020018280546103b190611052565b80156103fe5780601f106103d3576101008083540402835291602001916103fe565b820191906000526020600020905b8154815290600101906020018083116103e157829003601f168201915b5050505050905090565b600033610416818585610696565b60019150505b92915050565b6000336104308582856107ba565b61043b858585610834565b506001949350505050565b60003361041681858561045983836105f0565b610463919061108c565b610696565b6104706109e3565b6007805460ff191694151594909417909355600a80546001600160a01b0319166001600160a01b039390931692909217909155600855600955565b6104b36109e3565b6104bb610a43565b565b6104c56109e3565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6104fa3382610a95565b50565b6001600160a01b031660009081526020819052604090205490565b6105206109e3565b6104bb6000610bd3565b6105358233836107ba565b61053f8282610a95565b5050565b61054b6109e3565b6104bb610c2d565b60606004805461038590611052565b6000338161057082866105f0565b9050838110156105d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61043b8286868403610696565b600033610416818585610834565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6106236109e3565b6001600160a01b0381166106885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105cc565b6104fa81610bd3565b505050565b6001600160a01b0383166106f85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105cc565b6001600160a01b0382166107595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105cc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006107c684846105f0565b9050600019811461082e57818110156108215760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105cc565b61082e8484848403610696565b50505050565b6001600160a01b0383166108985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105cc565b6001600160a01b0382166108fa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105cc565b610905838383610c6a565b6001600160a01b0383166000908152602081905260409020548181101561097d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105cc565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361082e565b6005546001600160a01b036101009091041633146104bb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105cc565b610a4b610e09565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610af55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105cc565b610b0182600083610c6a565b6001600160a01b03821660009081526020819052604090205481811015610b755760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105cc565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c35610e52565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610a783390565b610c72610e52565b6001600160a01b03821660009081526006602052604090205460ff16158015610cb457506001600160a01b03831660009081526006602052604090205460ff16155b610cee5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016105cc565b600a546001600160a01b0316610d76576005546001600160a01b03848116610100909204161480610d3157506005546001600160a01b0383811661010090920416145b6106915760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b60448201526064016105cc565b60075460ff168015610d955750600a546001600160a01b038481169116145b156106915760085481610da7846104fd565b610db1919061108c565b11158015610dd4575060095481610dc7846104fd565b610dd1919061108c565b10155b6106915760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b60448201526064016105cc565b60055460ff166104bb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105cc565b60055460ff16156104bb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105cc565b600060208083528351808285015260005b81811015610ec557858101830151858201604001528201610ea9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610efd57600080fd5b919050565b60008060408385031215610f1557600080fd5b610f1e83610ee6565b946020939093013593505050565b600060208284031215610f3e57600080fd5b610f4782610ee6565b9392505050565b600080600060608486031215610f6357600080fd5b610f6c84610ee6565b9250610f7a60208501610ee6565b9150604084013590509250925092565b80358015158114610efd57600080fd5b60008060008060808587031215610fb057600080fd5b610fb985610f8a565b9350610fc760208601610ee6565b93969395505050506040820135916060013590565b60008060408385031215610fef57600080fd5b610ff883610ee6565b915061100660208401610f8a565b90509250929050565b60006020828403121561102157600080fd5b5035919050565b6000806040838503121561103b57600080fd5b61104483610ee6565b915061100660208401610ee6565b600181811c9082168061106657607f821691505b60208210810361108657634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561041c57634e487b7160e01b600052601160045260246000fdfea26469706673582212205d040012acbcc5d21678af29d9bfdd2b0583159a1ec9f1933885d3ef79a542de64736f6c63430008120033
Deployed Bytecode Sourcemap
24239:1622:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12005:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14365:201;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;14365:201:0;1004:187:1;24316:42:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13134:108;13222:12;;13134:108;;;1533:25:1;;;1521:2;1506:18;13134:108:0;1387:177:1;24429:31:0;;;;;;15146:261;;;;;;:::i;:::-;;:::i;12976:93::-;;;13059:2;2044:36:1;;2032:2;2017:18;12976:93:0;1902:184:1;15816:238:0;;;;;;:::i;:::-;;:::i;25557:301::-;;;;;;:::i;:::-;;:::i;:::-;;24705:65;;;:::i;25414:135::-;;;;;;:::i;:::-;;:::i;23587:91::-;;;;;;:::i;:::-;;:::i;24467:28::-;;;;;-1:-1:-1;;;;;24467:28:0;;;;;;-1:-1:-1;;;;;3260:32:1;;;3242:51;;3230:2;3215:18;24467:28:0;3096:203:1;5277:86:0;5348:7;;;;5277:86;;13305:127;;;;;;:::i;:::-;;:::i;2781:103::-;;;:::i;23997:164::-;;;;;;:::i;:::-;;:::i;24636:61::-;;;:::i;24365:19::-;;;;;;;;;24391:31;;;;;;2140:87;2213:6;;;;;-1:-1:-1;;;;;2213:6:0;2140:87;;12224:104;;;:::i;16557:436::-;;;;;;:::i;:::-;;:::i;13638:193::-;;;;;;:::i;:::-;;:::i;13894:151::-;;;;;;:::i;:::-;;:::i;3039:201::-;;;;;;:::i;:::-;;:::i;12005:100::-;12059:13;12092:5;12085:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12005:100;:::o;14365:201::-;14448:4;765:10;14504:32;765:10;14520:7;14529:6;14504:8;:32::i;:::-;14554:4;14547:11;;;14365:201;;;;;:::o;15146:261::-;15243:4;765:10;15301:38;15317:4;765:10;15332:6;15301:15;:38::i;:::-;15350:27;15360:4;15366:2;15370:6;15350:9;:27::i;:::-;-1:-1:-1;15395:4:0;;15146:261;-1:-1:-1;;;;15146:261:0:o;15816:238::-;15904:4;765:10;15960:64;765:10;15976:7;16013:10;15985:25;765:10;15976:7;15985:9;:25::i;:::-;:38;;;;:::i;:::-;15960:8;:64::i;25557:301::-;2026:13;:11;:13::i;:::-;25697:7:::1;:18:::0;;-1:-1:-1;;25697:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;25726:13:::1;:30:::0;;-1:-1:-1;;;;;;25726:30:0::1;-1:-1:-1::0;;;;;25726:30:0;;;::::1;::::0;;;::::1;::::0;;;25767:16:::1;:36:::0;25814:16:::1;:36:::0;25557:301::o;24705:65::-;2026:13;:11;:13::i;:::-;24752:10:::1;:8;:10::i;:::-;24705:65::o:0;25414:135::-;2026:13;:11;:13::i;:::-;-1:-1:-1;;;;;25503:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:38;;-1:-1:-1;;25503:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25414:135::o;23587:91::-;23643:27;765:10;23663:6;23643:5;:27::i;:::-;23587:91;:::o;13305:127::-;-1:-1:-1;;;;;13406:18:0;13379:7;13406:18;;;;;;;;;;;;13305:127::o;2781:103::-;2026:13;:11;:13::i;:::-;2846:30:::1;2873:1;2846:18;:30::i;23997:164::-:0;24074:46;24090:7;765:10;24113:6;24074:15;:46::i;:::-;24131:22;24137:7;24146:6;24131:5;:22::i;:::-;23997:164;;:::o;24636:61::-;2026:13;:11;:13::i;:::-;24681:8:::1;:6;:8::i;12224:104::-:0;12280:13;12313:7;12306:14;;;;;:::i;16557:436::-;16650:4;765:10;16650:4;16733:25;765:10;16750:7;16733:9;:25::i;:::-;16706:52;;16797:15;16777:16;:35;;16769:85;;;;-1:-1:-1;;;16769:85:0;;4383:2:1;16769:85:0;;;4365:21:1;4422:2;4402:18;;;4395:30;4461:34;4441:18;;;4434:62;-1:-1:-1;;;4512:18:1;;;4505:35;4557:19;;16769:85:0;;;;;;;;;16890:60;16899:5;16906:7;16934:15;16915:16;:34;16890:8;:60::i;13638:193::-;13717:4;765:10;13773:28;765:10;13790:2;13794:6;13773:9;:28::i;13894:151::-;-1:-1:-1;;;;;14010:18:0;;;13983:7;14010:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13894:151::o;3039:201::-;2026:13;:11;:13::i;:::-;-1:-1:-1;;;;;3128:22:0;::::1;3120:73;;;::::0;-1:-1:-1;;;3120:73:0;;4789:2:1;3120:73:0::1;::::0;::::1;4771:21:1::0;4828:2;4808:18;;;4801:30;4867:34;4847:18;;;4840:62;-1:-1:-1;;;4918:18:1;;;4911:36;4964:19;;3120:73:0::1;4587:402:1::0;3120:73:0::1;3204:28;3223:8;3204:18;:28::i;22206:91::-:0;;;;:::o;20550:346::-;-1:-1:-1;;;;;20652:19:0;;20644:68;;;;-1:-1:-1;;;20644:68:0;;5196:2:1;20644:68:0;;;5178:21:1;5235:2;5215:18;;;5208:30;5274:34;5254:18;;;5247:62;-1:-1:-1;;;5325:18:1;;;5318:34;5369:19;;20644:68:0;4994:400:1;20644:68:0;-1:-1:-1;;;;;20731:21:0;;20723:68;;;;-1:-1:-1;;;20723:68:0;;5601:2:1;20723:68:0;;;5583:21:1;5640:2;5620:18;;;5613:30;5679:34;5659:18;;;5652:62;-1:-1:-1;;;5730:18:1;;;5723:32;5772:19;;20723:68:0;5399:398:1;20723:68:0;-1:-1:-1;;;;;20804:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20856:32;;1533:25:1;;;20856:32:0;;1506:18:1;20856:32:0;;;;;;;20550:346;;;:::o;21187:419::-;21288:24;21315:25;21325:5;21332:7;21315:9;:25::i;:::-;21288:52;;-1:-1:-1;;21355:16:0;:37;21351:248;;21437:6;21417:16;:26;;21409:68;;;;-1:-1:-1;;;21409:68:0;;6004:2:1;21409:68:0;;;5986:21:1;6043:2;6023:18;;;6016:30;6082:31;6062:18;;;6055:59;6131:18;;21409:68:0;5802:353:1;21409:68:0;21521:51;21530:5;21537:7;21565:6;21546:16;:25;21521:8;:51::i;:::-;21277:329;21187:419;;;:::o;17463:806::-;-1:-1:-1;;;;;17560:18:0;;17552:68;;;;-1:-1:-1;;;17552:68:0;;6362:2:1;17552:68:0;;;6344:21:1;6401:2;6381:18;;;6374:30;6440:34;6420:18;;;6413:62;-1:-1:-1;;;6491:18:1;;;6484:35;6536:19;;17552:68:0;6160:401:1;17552:68:0;-1:-1:-1;;;;;17639:16:0;;17631:64;;;;-1:-1:-1;;;17631:64:0;;6768:2:1;17631:64:0;;;6750:21:1;6807:2;6787:18;;;6780:30;6846:34;6826:18;;;6819:62;-1:-1:-1;;;6897:18:1;;;6890:33;6940:19;;17631:64:0;6566:399:1;17631:64:0;17708:38;17729:4;17735:2;17739:6;17708:20;:38::i;:::-;-1:-1:-1;;;;;17781:15:0;;17759:19;17781:15;;;;;;;;;;;17815:21;;;;17807:72;;;;-1:-1:-1;;;17807:72:0;;7172:2:1;17807:72:0;;;7154:21:1;7211:2;7191:18;;;7184:30;7250:34;7230:18;;;7223:62;-1:-1:-1;;;7301:18:1;;;7294:36;7347:19;;17807:72:0;6970:402:1;17807:72:0;-1:-1:-1;;;;;17915:15:0;;;:9;:15;;;;;;;;;;;17933:20;;;17915:38;;18133:13;;;;;;;;;;:23;;;;;;18185:26;;1533:25:1;;;18133:13:0;;18185:26;;1506:18:1;18185:26:0;;;;;;;18224:37;22206:91;2305:132;2213:6;;-1:-1:-1;;;;;2213:6:0;;;;;765:10;2369:23;2361:68;;;;-1:-1:-1;;;2361:68:0;;7579:2:1;2361:68:0;;;7561:21:1;;;7598:18;;;7591:30;7657:34;7637:18;;;7630:62;7709:18;;2361:68:0;7377:356:1;6132:120:0;5141:16;:14;:16::i;:::-;6191:7:::1;:15:::0;;-1:-1:-1;;6191:15:0::1;::::0;;6222:22:::1;765:10:::0;6231:12:::1;6222:22;::::0;-1:-1:-1;;;;;3260:32:1;;;3242:51;;3230:2;3215:18;6222:22:0::1;;;;;;;6132:120::o:0;19437:675::-;-1:-1:-1;;;;;19521:21:0;;19513:67;;;;-1:-1:-1;;;19513:67:0;;7940:2:1;19513:67:0;;;7922:21:1;7979:2;7959:18;;;7952:30;8018:34;7998:18;;;7991:62;-1:-1:-1;;;8069:18:1;;;8062:31;8110:19;;19513:67:0;7738:397:1;19513:67:0;19593:49;19614:7;19631:1;19635:6;19593:20;:49::i;:::-;-1:-1:-1;;;;;19680:18:0;;19655:22;19680:18;;;;;;;;;;;19717:24;;;;19709:71;;;;-1:-1:-1;;;19709:71:0;;8342:2:1;19709:71:0;;;8324:21:1;8381:2;8361:18;;;8354:30;8420:34;8400:18;;;8393:62;-1:-1:-1;;;8471:18:1;;;8464:32;8513:19;;19709:71:0;8140:398:1;19709:71:0;-1:-1:-1;;;;;19816:18:0;;:9;:18;;;;;;;;;;;19837:23;;;19816:44;;19955:12;:22;;;;;;;20006:37;1533:25:1;;;19816:9:0;;:18;20006:37;;1506:18:1;20006:37:0;;;;;;;22206:91;;;:::o;3400:191::-;3493:6;;;-1:-1:-1;;;;;3510:17:0;;;3493:6;3510:17;;;-1:-1:-1;;;;;;3510:17:0;;;;;;3543:40;;3493:6;;;;;;;;3543:40;;3474:16;;3543:40;3463:128;3400:191;:::o;5873:118::-;4882:19;:17;:19::i;:::-;5933:7:::1;:14:::0;;-1:-1:-1;;5933:14:0::1;5943:4;5933:14;::::0;;5963:20:::1;5970:12;765:10:::0;;685:98;24778:628;4882:19;:17;:19::i;:::-;-1:-1:-1;;;;;24934:14:0;::::1;;::::0;;;:10:::1;:14;::::0;;;;;::::1;;24933:15;:36:::0;::::1;;;-1:-1:-1::0;;;;;;24953:16:0;::::1;;::::0;;;:10:::1;:16;::::0;;;;;::::1;;24952:17;24933:36;24925:60;;;::::0;-1:-1:-1;;;24925:60:0;;8745:2:1;24925:60:0::1;::::0;::::1;8727:21:1::0;8784:2;8764:18;;;8757:30;-1:-1:-1;;;8803:18:1;;;8796:41;8854:18;;24925:60:0::1;8543:335:1::0;24925:60:0::1;25002:13;::::0;-1:-1:-1;;;;;25002:13:0::1;24998:148;;2213:6:::0;;-1:-1:-1;;;;;25054:15:0;;::::1;2213:6:::0;;;;;25054:15:::1;::::0;:32:::1;;-1:-1:-1::0;2213:6:0;;-1:-1:-1;;;;;25073:13:0;;::::1;2213:6:::0;;;;;25073:13:::1;25054:32;25046:67;;;::::0;-1:-1:-1;;;25046:67:0;;9085:2:1;25046:67:0::1;::::0;::::1;9067:21:1::0;9124:2;9104:18;;;9097:30;-1:-1:-1;;;9143:18:1;;;9136:52;9205:18;;25046:67:0::1;8883:346:1::0;24998:148:0::1;25162:7;::::0;::::1;;:32:::0;::::1;;;-1:-1:-1::0;25181:13:0::1;::::0;-1:-1:-1;;;;;25173:21:0;;::::1;25181:13:::0;::::1;25173:21;25162:32;25158:184;;;25251:16;;25241:6;25219:19;25235:2;25219:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;25303:16;;25293:6;25271:19;25287:2;25271:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;25219:100;25211:119;;;::::0;-1:-1:-1;;;25211:119:0;;9436:2:1;25211:119:0::1;::::0;::::1;9418:21:1::0;9475:1;9455:18;;;9448:29;-1:-1:-1;;;9493:18:1;;;9486:36;9539:18;;25211:119:0::1;9234:329:1::0;5621:108:0;5348:7;;;;5680:41;;;;-1:-1:-1;;;5680:41:0;;9770:2:1;5680:41:0;;;9752:21:1;9809:2;9789:18;;;9782:30;-1:-1:-1;;;9828:18:1;;;9821:50;9888:18;;5680:41:0;9568:344:1;5436:108:0;5348:7;;;;5506:9;5498:38;;;;-1:-1:-1;;;5498:38:0;;10119:2:1;5498:38:0;;;10101:21:1;10158:2;10138:18;;;10131:30;-1:-1:-1;;;10177:18:1;;;10170:46;10233:18;;5498:38:0;9917:340:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:186::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;1347:29;1366:9;1347:29;:::i;:::-;1337:39;1196:186;-1:-1:-1;;;1196:186:1:o;1569:328::-;1646:6;1654;1662;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:29;1773:9;1754:29;:::i;:::-;1744:39;;1802:38;1836:2;1825:9;1821:18;1802:38;:::i;:::-;1792:48;;1887:2;1876:9;1872:18;1859:32;1849:42;;1569:328;;;;;:::o;2091:160::-;2156:20;;2212:13;;2205:21;2195:32;;2185:60;;2241:1;2238;2231:12;2256:391;2339:6;2347;2355;2363;2416:3;2404:9;2395:7;2391:23;2387:33;2384:53;;;2433:1;2430;2423:12;2384:53;2456:26;2472:9;2456:26;:::i;:::-;2446:36;;2501:38;2535:2;2524:9;2520:18;2501:38;:::i;:::-;2256:391;;2491:48;;-1:-1:-1;;;;2586:2:1;2571:18;;2558:32;;2637:2;2622:18;2609:32;;2256:391::o;2652:254::-;2717:6;2725;2778:2;2766:9;2757:7;2753:23;2749:32;2746:52;;;2794:1;2791;2784:12;2746:52;2817:29;2836:9;2817:29;:::i;:::-;2807:39;;2865:35;2896:2;2885:9;2881:18;2865:35;:::i;:::-;2855:45;;2652:254;;;;;:::o;2911:180::-;2970:6;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;-1:-1:-1;3062:23:1;;2911:180;-1:-1:-1;2911:180:1:o;3304:260::-;3372:6;3380;3433:2;3421:9;3412:7;3408:23;3404:32;3401:52;;;3449:1;3446;3439:12;3401:52;3472:29;3491:9;3472:29;:::i;:::-;3462:39;;3520:38;3554:2;3543:9;3539:18;3520:38;:::i;3569:380::-;3648:1;3644:12;;;;3691;;;3712:61;;3766:4;3758:6;3754:17;3744:27;;3712:61;3819:2;3811:6;3808:14;3788:18;3785:38;3782:161;;3865:10;3860:3;3856:20;3853:1;3846:31;3900:4;3897:1;3890:15;3928:4;3925:1;3918:15;3782:161;;3569:380;;;:::o;3954:222::-;4019:9;;;4040:10;;;4037:133;;;4092:10;4087:3;4083:20;4080:1;4073:31;4127:4;4124:1;4117:15;4155:4;4152:1;4145:15
Swarm Source
ipfs://5d040012acbcc5d21678af29d9bfdd2b0583159a1ec9f1933885d3ef79a542de
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.