ERC-20
Overview
Max Total Supply
10,000,000 SafeZK
Holders
70
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000236782 SafeZKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SafeZK
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-31 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.9; interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the token decimals. */ function decimals() external view returns (uint8); /** * @dev Returns the token symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the token name. */ function name() external view returns (string memory); /** * @dev Returns the token owner. */ function getOwner() external view returns (address); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns(uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address _owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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 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 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); } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint 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 (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint 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 (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); 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 (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } contract SafeZK is IERC20, Ownable{ IUniswapV2Router02 public uniswapV2Router; string private constant _NAME = "Safe ZK"; string private constant _SYMBOL = "SafeZK"; uint8 private constant _DECIMALS = 18; uint8 public constant MAX_FEE_PERCENT = 10; uint8 public taxFee = 25; bool private inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; address public uniswapV2Pair; address payable taxCollector; uint256 private constant TOTAL_SUPPLY = 10**7 * 10**_DECIMALS; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 public minTokensToSwapAndLiquify; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor( address router, address payable taxCollectorAddress ){ require(router != address(0), "Router must be set"); require(taxCollectorAddress != address(0), "TaxCollector wallet must be set"); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; taxCollector = taxCollectorAddress; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; minTokensToSwapAndLiquify = 50000 * 10**_DECIMALS; _balances[_msgSender()] = TOTAL_SUPPLY; emit Transfer(address(0), _msgSender(), TOTAL_SUPPLY); } function setRouterAddress(address newRouter) external onlyOwner { IUniswapV2Router02 _newUniswapRouter = IUniswapV2Router02(newRouter); IUniswapV2Factory factory = IUniswapV2Factory(_newUniswapRouter.factory()); address pair = factory.getPair(address(this), _newUniswapRouter.WETH()); if (pair == address(0)) { uniswapV2Pair = factory.createPair(address(this), _newUniswapRouter.WETH()); } else { uniswapV2Pair = pair; } uniswapV2Router = _newUniswapRouter; emit UpdateUniswapRouter(uniswapV2Router, uniswapV2Pair); } function setTaxCollector(address payable _taxCollector) external onlyOwner{ require(_taxCollector != address(0), "Error: zero address"); taxCollector = _taxCollector; } function excludeFromFee(address account) external onlyOwner { require(account != address(0), "Error: zero address"); require(!_isExcludedFromFee[account], "Already Excluded"); _isExcludedFromFee[account] = true; } function includeInFee(address account) external onlyOwner { require(_isExcludedFromFee[account], "Already Included"); delete _isExcludedFromFee[account]; } function isExcludedFromFees(address account) public view returns(bool){ return _isExcludedFromFee[account]; } function setTaxFee(uint8 _taxFee) external onlyOwner { require(_taxFee <= MAX_FEE_PERCENT, "Fee percent cannot be greater than maxFeePercent"); taxFee = _taxFee; } function toggleSwapAndLiquify() external onlyOwner{ swapAndLiquifyEnabled = !swapAndLiquifyEnabled; } function setMinTokenToSwapAndLiquify(uint256 amount) external onlyOwner{ require(amount > 0, "amount cannot be zero"); uint256 minTokensToSwapAndLiquifyPrev = minTokensToSwapAndLiquify; minTokensToSwapAndLiquify = amount; emit UpdateMinTokenToSwapAndLiquify(minTokensToSwapAndLiquify, minTokensToSwapAndLiquifyPrev); } function rescueETH(uint256 amount) external onlyOwner returns(bool){ payable(_msgSender()).transfer(amount); return true; } function rescueERC20(address erc20, uint256 amount) external onlyOwner returns(bool){ bool success = IERC20(erc20).transfer(_msgSender(), amount); return success; } function decimals() external override view returns (uint8) { return _DECIMALS; } function symbol() external override view returns (string memory) { return _SYMBOL; } function name() external override view returns (string memory) { return _NAME; } function totalSupply() external override view returns (uint256) { return TOTAL_SUPPLY; } function balanceOf(address account) external override view returns(uint256){ return _balances[account]; } function getOwner() external override view returns (address) { return owner(); } /** * @dev See {ERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) external override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {ERC20-allowance}. */ function allowance(address owner_, address spender) external override view returns (uint256) { return _allowances[owner_][spender]; } /** * @dev See {ERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) external override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {ERC20-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) external override returns (bool) { _transfer(sender, recipient, amount); uint256 _currentAllowance = _allowances[sender][_msgSender()]; // this check is not mandatory. but to return exact overflow reason we can use it. require(_currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), _currentAllowance - amount); } return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {ERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {ERC20-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 returns (bool) { uint256 _currentAllowance = _allowances[_msgSender()][spender]; // this check is not mandatory. but to return exact overflow reason we can use it. require(_currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, _currentAllowance - subtractedValue); } return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(_balances[sender] >= amount, "ERC20: transfer amount exceeds balance"); uint256 contractTokenBalance = _balances[(address(this))]; bool overMinTokenBalance = contractTokenBalance >= minTokensToSwapAndLiquify; if (overMinTokenBalance && !inSwapAndLiquify && swapAndLiquifyEnabled) { swapAndLiquify(); } bool takeFee = true; if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){ takeFee = false; } _tokenTransfer(sender, recipient, amount, takeFee); } receive() external payable {} function swapAndLiquify() private lockTheSwap { uint256 amount = _balances[(address(this))]; swapTokensForEth(amount); uint256 taxes = address(this).balance; taxCollector.transfer(taxes); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ){ emit SwapAndLiquifyStatus("Success"); } catch { emit SwapAndLiquifyStatus("Failed"); } } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) internal { uint256 transferAmount = amount; if (takeFee) { uint256 totalFee = amount * taxFee / 100; _balances[address(this)] = _balances[address(this)] + totalFee; transferAmount = transferAmount - totalFee; emit Transfer(sender, address(this), totalFee); } unchecked { _balances[sender] = _balances[sender] - amount; } _balances[recipient] = _balances[recipient] + transferAmount; emit Transfer(sender, recipient, transferAmount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. * * This is 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 { 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); } event UpdateUniswapRouter(IUniswapV2Router02 router, address pair); event UpdateMinTokenToSwapAndLiquify(uint256 minTokensToSwapAndLiquify, uint256 minTokensToSwapAndLiquifyPrev); event SwapAndLiquifyStatus(string status); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address payable","name":"taxCollectorAddress","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":"string","name":"status","type":"string"}],"name":"SwapAndLiquifyStatus","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":"uint256","name":"minTokensToSwapAndLiquify","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minTokensToSwapAndLiquifyPrev","type":"uint256"}],"name":"UpdateMinTokenToSwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IUniswapV2Router02","name":"router","type":"address"},{"indexed":false,"internalType":"address","name":"pair","type":"address"}],"name":"UpdateUniswapRouter","type":"event"},{"inputs":[],"name":"MAX_FEE_PERCENT","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokensToSwapAndLiquify","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":[{"internalType":"address","name":"erc20","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueETH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinTokenToSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_taxCollector","type":"address"}],"name":"setTaxCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_taxFee","type":"uint8"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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
60806040526001805462ff00ff60a01b19166201001960a01b1790553480156200002857600080fd5b5060405162002257380380620022578339810160408190526200004b9162000429565b6200005633620003c0565b6001600160a01b038216620000a75760405162461bcd60e51b8152602060048201526012602482015271149bdd5d195c881b5d5cdd081899481cd95d60721b60448201526064015b60405180910390fd5b6001600160a01b038116620000ff5760405162461bcd60e51b815260206004820152601f60248201527f546178436f6c6c6563746f722077616c6c6574206d757374206265207365740060448201526064016200009e565b600160066000620001186000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600684528290208054909416600117909355600380548585166001600160a01b0319909116179055805163c45a015560e01b81529051859384169263c45a01559260048082019391829003018186803b158015620001a657600080fd5b505afa158015620001bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e1919062000468565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022a57600080fd5b505afa1580156200023f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000265919062000468565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002ae57600080fd5b505af1158015620002c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e9919062000468565b600280546001600160a01b03199081166001600160a01b039384161790915560018054909116918316919091179055620003266012600a620005a4565b620003349061c350620005b5565b600755620003456012600a620005a4565b620003549062989680620005b5565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003976012600a620005a4565b620003a69062989680620005b5565b60405190815260200160405180910390a3505050620005d7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200042657600080fd5b50565b600080604083850312156200043d57600080fd5b82516200044a8162000410565b60208401519092506200045d8162000410565b809150509250929050565b6000602082840312156200047b57600080fd5b8151620004888162000410565b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004e6578160001904821115620004ca57620004ca6200048f565b80851615620004d857918102915b93841c9390800290620004aa565b509250929050565b600082620004ff575060016200059e565b816200050e575060006200059e565b8160018114620005275760028114620005325762000552565b60019150506200059e565b60ff8411156200054657620005466200048f565b50506001821b6200059e565b5060208310610133831016604e8410600b841016171562000577575081810a6200059e565b620005838383620004a5565b80600019048211156200059a576200059a6200048f565b0290505b92915050565b60006200048860ff841683620004ee565b6000816000190483118215151615620005d257620005d26200048f565b500290565b611c7080620005e76000396000f3fe6080604052600436106101d15760003560e01c806370a08231116100f7578063a071dcf411610095578063dd62ed3e11610064578063dd62ed3e1461056c578063ea2f0b37146105b2578063f2fde38b146105d2578063ffe613b4146105f257600080fd5b8063a071dcf4146104eb578063a457c2d71461050c578063a9059cbb1461052c578063b1797d221461054c57600080fd5b80638da5cb5b116100d15780638da5cb5b1461044857806393da5bbc1461048657806395d89b411461049c5780639e252f00146104cb57600080fd5b806370a0823114610412578063893d20e8146104485780638cd4426d1461046657600080fd5b8063395093511161016f5780634a74bb021161013e5780634a74bb021461038e5780634ac79aa7146103af5780634fbee193146103c457806367d81740146103fd57600080fd5b8063395093511461030e57806341cb87fc1461032e578063437823ec1461034e57806349bd5a5e1461036e57600080fd5b80631694505e116101ab5780631694505e1461027157806318160ddd146102a957806323b872dd146102cc578063313ce567146102ec57600080fd5b806306fdde03146101dd57806308695b411461021f578063095ea7b31461024157600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600781526653616665205a4b60c81b60208201525b6040516102169190611856565b60405180910390f35b34801561022b57600080fd5b5061023f61023a3660046118c0565b610612565b005b34801561024d57600080fd5b5061026161025c3660046118e4565b6106b3565b6040519015158152602001610216565b34801561027d57600080fd5b50600154610291906001600160a01b031681565b6040516001600160a01b039091168152602001610216565b3480156102b557600080fd5b506102be6106ca565b604051908152602001610216565b3480156102d857600080fd5b506102616102e7366004611910565b6106ea565b3480156102f857600080fd5b5060125b60405160ff9091168152602001610216565b34801561031a57600080fd5b506102616103293660046118e4565b610794565b34801561033a57600080fd5b5061023f6103493660046118c0565b6107d0565b34801561035a57600080fd5b5061023f6103693660046118c0565b610b28565b34801561037a57600080fd5b50600254610291906001600160a01b031681565b34801561039a57600080fd5b5060015461026190600160b01b900460ff1681565b3480156103bb57600080fd5b5061023f610c1e565b3480156103d057600080fd5b506102616103df3660046118c0565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561040957600080fd5b506102fc600a81565b34801561041e57600080fd5b506102be61042d3660046118c0565b6001600160a01b031660009081526004602052604090205490565b34801561045457600080fd5b506000546001600160a01b0316610291565b34801561047257600080fd5b506102616104813660046118e4565b610c69565b34801561049257600080fd5b506102be60075481565b3480156104a857600080fd5b50604080518082019091526006815265536166655a4b60d01b6020820152610209565b3480156104d757600080fd5b506102616104e6366004611951565b610d2e565b3480156104f757600080fd5b506001546102fc90600160a01b900460ff1681565b34801561051857600080fd5b506102616105273660046118e4565b610d86565b34801561053857600080fd5b506102616105473660046118e4565b610e1f565b34801561055857600080fd5b5061023f61056736600461196a565b610e2c565b34801561057857600080fd5b506102be61058736600461198d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105be57600080fd5b5061023f6105cd3660046118c0565b610ee3565b3480156105de57600080fd5b5061023f6105ed3660046118c0565b610f89565b3480156105fe57600080fd5b5061023f61060d366004611951565b611024565b6000546001600160a01b031633146106455760405162461bcd60e51b815260040161063c906119c6565b60405180910390fd5b6001600160a01b0381166106915760405162461bcd60e51b81526020600482015260136024820152724572726f723a207a65726f206164647265737360681b604482015260640161063c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006106c03384846110dc565b5060015b92915050565b60006106d86012600a611af5565b6106e59062989680611b04565b905090565b60006106f7848484611200565b6001600160a01b03841660009081526005602090815260408083203384529091529020548281101561077c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161063c565b61078985338584036110dc565b506001949350505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106c09185906107cb908690611b23565b6110dc565b6000546001600160a01b031633146107fa5760405162461bcd60e51b815260040161063c906119c6565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561083a57600080fd5b505afa15801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108729190611b3b565b90506000816001600160a01b031663e6a4390530856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190611b3b565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561093d57600080fd5b505afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109759190611b3b565b90506001600160a01b038116610aab57816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a069190611b3b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a4e57600080fd5b505af1158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a869190611b3b565b600280546001600160a01b0319166001600160a01b0392909216919091179055610ac7565b600280546001600160a01b0319166001600160a01b0383161790555b600180546001600160a01b0319166001600160a01b0385811691821790925560025460408051928352921660208201527fb6bf376037f707ef439f1e5e56d7987d6b0c55798fe21ff475fd00b1f37ed920910160405180910390a150505050565b6000546001600160a01b03163314610b525760405162461bcd60e51b815260040161063c906119c6565b6001600160a01b038116610b9e5760405162461bcd60e51b81526020600482015260136024820152724572726f723a207a65726f206164647265737360681b604482015260640161063c565b6001600160a01b03811660009081526006602052604090205460ff1615610bfa5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48115e18db1d59195960821b604482015260640161063c565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610c485760405162461bcd60e51b815260040161063c906119c6565b6001805460ff60b01b198116600160b01b9182900460ff1615909102179055565b600080546001600160a01b03163314610c945760405162461bcd60e51b815260040161063c906119c6565b60006001600160a01b03841663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101869052604401602060405180830381600087803b158015610cee57600080fd5b505af1158015610d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d269190611b58565b949350505050565b600080546001600160a01b03163314610d595760405162461bcd60e51b815260040161063c906119c6565b604051339083156108fc029084906000818181858888f193505050501580156106c0573d6000803e3d6000fd5b3360009081526005602090815260408083206001600160a01b038616845290915281205482811015610e085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161063c565b610e1533858584036110dc565b5060019392505050565b60006106c0338484611200565b6000546001600160a01b03163314610e565760405162461bcd60e51b815260040161063c906119c6565b600a60ff82161115610ec35760405162461bcd60e51b815260206004820152603060248201527f4665652070657263656e742063616e6e6f74206265206772656174657220746860448201526f185b881b585e11995954195c98d95b9d60821b606482015260840161063c565b6001805460ff909216600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b815260040161063c906119c6565b6001600160a01b03811660009081526006602052604090205460ff16610f685760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48125b98db1d59195960821b604482015260640161063c565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b03163314610fb35760405162461bcd60e51b815260040161063c906119c6565b6001600160a01b0381166110185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161063c565b6110218161144e565b50565b6000546001600160a01b0316331461104e5760405162461bcd60e51b815260040161063c906119c6565b600081116110965760405162461bcd60e51b8152602060048201526015602482015274616d6f756e742063616e6e6f74206265207a65726f60581b604482015260640161063c565b600780549082905560408051838152602081018390527f224d367fb8685e04996001a5f3649e5d94c828df2464b2a2a7e3d4704e69f71491015b60405180910390a15050565b6001600160a01b03831661113e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161063c565b6001600160a01b03821661119f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161063c565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063c565b6001600160a01b0382166112c65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063c565b600081116113285760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161063c565b6001600160a01b03831660009081526004602052604090205481111561139f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161063c565b30600090815260046020526040902054600754811080159081906113cd5750600154600160a81b900460ff16155b80156113e25750600154600160b01b900460ff165b156113ef576113ef61149e565b6001600160a01b03851660009081526006602052604090205460019060ff168061143157506001600160a01b03851660009081526006602052604090205460ff165b1561143a575060005b61144686868684611516565b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001805460ff60a81b1916600160a81b179055306000908152600460205260409020546114ca81611663565b60035460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611504573d6000803e3d6000fd5b50506001805460ff60a81b1916905550565b8181156115cd5760015460009060649061153a90600160a01b900460ff1686611b04565b6115449190611b7a565b30600090815260046020526040902054909150611562908290611b23565b3060009081526004602052604090205561157c8183611b9c565b9150306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c391815260200190565b60405180910390a3505b6001600160a01b038086166000908152600460205260408082208054879003905591861681522054611600908290611b23565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116549085815260200190565b60405180910390a35050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061169857611698611bb3565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116ec57600080fd5b505afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190611b3b565b8160018151811061173757611737611bb3565b6001600160a01b03928316602091820292909201015260015461175d91309116846110dc565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611796908590600090869030904290600401611bc9565b600060405180830381600087803b1580156117b057600080fd5b505af19250505080156117c1575060015b61180d577f22b212abbac4f28435a37f1253f735d1d9c9b444577feee64b691ca0911302976040516110d09060208082526006908201526511985a5b195960d21b604082015260600190565b7f22b212abbac4f28435a37f1253f735d1d9c9b444577feee64b691ca0911302976040516110d0906020808252600790820152665375636365737360c81b604082015260600190565b600060208083528351808285015260005b8181101561188357858101830151858201604001528201611867565b81811115611895576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461102157600080fd5b6000602082840312156118d257600080fd5b81356118dd816118ab565b9392505050565b600080604083850312156118f757600080fd5b8235611902816118ab565b946020939093013593505050565b60008060006060848603121561192557600080fd5b8335611930816118ab565b92506020840135611940816118ab565b929592945050506040919091013590565b60006020828403121561196357600080fd5b5035919050565b60006020828403121561197c57600080fd5b813560ff811681146118dd57600080fd5b600080604083850312156119a057600080fd5b82356119ab816118ab565b915060208301356119bb816118ab565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a4c578160001904821115611a3257611a326119fb565b80851615611a3f57918102915b93841c9390800290611a16565b509250929050565b600082611a63575060016106c4565b81611a70575060006106c4565b8160018114611a865760028114611a9057611aac565b60019150506106c4565b60ff841115611aa157611aa16119fb565b50506001821b6106c4565b5060208310610133831016604e8410600b8410161715611acf575081810a6106c4565b611ad98383611a11565b8060001904821115611aed57611aed6119fb565b029392505050565b60006118dd60ff841683611a54565b6000816000190483118215151615611b1e57611b1e6119fb565b500290565b60008219821115611b3657611b366119fb565b500190565b600060208284031215611b4d57600080fd5b81516118dd816118ab565b600060208284031215611b6a57600080fd5b815180151581146118dd57600080fd5b600082611b9757634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611bae57611bae6119fb565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c195784516001600160a01b031683529383019391830191600101611bf4565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122011dbc035406f2a964833df7261b3e4a362ddef120e19a4176a4668232871dd2664736f6c634300080900330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000008a2c17de5ed2b8746eda7684bc0483a181aa0a96
Deployed Bytecode
0x6080604052600436106101d15760003560e01c806370a08231116100f7578063a071dcf411610095578063dd62ed3e11610064578063dd62ed3e1461056c578063ea2f0b37146105b2578063f2fde38b146105d2578063ffe613b4146105f257600080fd5b8063a071dcf4146104eb578063a457c2d71461050c578063a9059cbb1461052c578063b1797d221461054c57600080fd5b80638da5cb5b116100d15780638da5cb5b1461044857806393da5bbc1461048657806395d89b411461049c5780639e252f00146104cb57600080fd5b806370a0823114610412578063893d20e8146104485780638cd4426d1461046657600080fd5b8063395093511161016f5780634a74bb021161013e5780634a74bb021461038e5780634ac79aa7146103af5780634fbee193146103c457806367d81740146103fd57600080fd5b8063395093511461030e57806341cb87fc1461032e578063437823ec1461034e57806349bd5a5e1461036e57600080fd5b80631694505e116101ab5780631694505e1461027157806318160ddd146102a957806323b872dd146102cc578063313ce567146102ec57600080fd5b806306fdde03146101dd57806308695b411461021f578063095ea7b31461024157600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600781526653616665205a4b60c81b60208201525b6040516102169190611856565b60405180910390f35b34801561022b57600080fd5b5061023f61023a3660046118c0565b610612565b005b34801561024d57600080fd5b5061026161025c3660046118e4565b6106b3565b6040519015158152602001610216565b34801561027d57600080fd5b50600154610291906001600160a01b031681565b6040516001600160a01b039091168152602001610216565b3480156102b557600080fd5b506102be6106ca565b604051908152602001610216565b3480156102d857600080fd5b506102616102e7366004611910565b6106ea565b3480156102f857600080fd5b5060125b60405160ff9091168152602001610216565b34801561031a57600080fd5b506102616103293660046118e4565b610794565b34801561033a57600080fd5b5061023f6103493660046118c0565b6107d0565b34801561035a57600080fd5b5061023f6103693660046118c0565b610b28565b34801561037a57600080fd5b50600254610291906001600160a01b031681565b34801561039a57600080fd5b5060015461026190600160b01b900460ff1681565b3480156103bb57600080fd5b5061023f610c1e565b3480156103d057600080fd5b506102616103df3660046118c0565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561040957600080fd5b506102fc600a81565b34801561041e57600080fd5b506102be61042d3660046118c0565b6001600160a01b031660009081526004602052604090205490565b34801561045457600080fd5b506000546001600160a01b0316610291565b34801561047257600080fd5b506102616104813660046118e4565b610c69565b34801561049257600080fd5b506102be60075481565b3480156104a857600080fd5b50604080518082019091526006815265536166655a4b60d01b6020820152610209565b3480156104d757600080fd5b506102616104e6366004611951565b610d2e565b3480156104f757600080fd5b506001546102fc90600160a01b900460ff1681565b34801561051857600080fd5b506102616105273660046118e4565b610d86565b34801561053857600080fd5b506102616105473660046118e4565b610e1f565b34801561055857600080fd5b5061023f61056736600461196a565b610e2c565b34801561057857600080fd5b506102be61058736600461198d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105be57600080fd5b5061023f6105cd3660046118c0565b610ee3565b3480156105de57600080fd5b5061023f6105ed3660046118c0565b610f89565b3480156105fe57600080fd5b5061023f61060d366004611951565b611024565b6000546001600160a01b031633146106455760405162461bcd60e51b815260040161063c906119c6565b60405180910390fd5b6001600160a01b0381166106915760405162461bcd60e51b81526020600482015260136024820152724572726f723a207a65726f206164647265737360681b604482015260640161063c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006106c03384846110dc565b5060015b92915050565b60006106d86012600a611af5565b6106e59062989680611b04565b905090565b60006106f7848484611200565b6001600160a01b03841660009081526005602090815260408083203384529091529020548281101561077c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161063c565b61078985338584036110dc565b506001949350505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106c09185906107cb908690611b23565b6110dc565b6000546001600160a01b031633146107fa5760405162461bcd60e51b815260040161063c906119c6565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561083a57600080fd5b505afa15801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108729190611b3b565b90506000816001600160a01b031663e6a4390530856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190611b3b565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561093d57600080fd5b505afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109759190611b3b565b90506001600160a01b038116610aab57816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a069190611b3b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a4e57600080fd5b505af1158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a869190611b3b565b600280546001600160a01b0319166001600160a01b0392909216919091179055610ac7565b600280546001600160a01b0319166001600160a01b0383161790555b600180546001600160a01b0319166001600160a01b0385811691821790925560025460408051928352921660208201527fb6bf376037f707ef439f1e5e56d7987d6b0c55798fe21ff475fd00b1f37ed920910160405180910390a150505050565b6000546001600160a01b03163314610b525760405162461bcd60e51b815260040161063c906119c6565b6001600160a01b038116610b9e5760405162461bcd60e51b81526020600482015260136024820152724572726f723a207a65726f206164647265737360681b604482015260640161063c565b6001600160a01b03811660009081526006602052604090205460ff1615610bfa5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48115e18db1d59195960821b604482015260640161063c565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610c485760405162461bcd60e51b815260040161063c906119c6565b6001805460ff60b01b198116600160b01b9182900460ff1615909102179055565b600080546001600160a01b03163314610c945760405162461bcd60e51b815260040161063c906119c6565b60006001600160a01b03841663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101869052604401602060405180830381600087803b158015610cee57600080fd5b505af1158015610d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d269190611b58565b949350505050565b600080546001600160a01b03163314610d595760405162461bcd60e51b815260040161063c906119c6565b604051339083156108fc029084906000818181858888f193505050501580156106c0573d6000803e3d6000fd5b3360009081526005602090815260408083206001600160a01b038616845290915281205482811015610e085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161063c565b610e1533858584036110dc565b5060019392505050565b60006106c0338484611200565b6000546001600160a01b03163314610e565760405162461bcd60e51b815260040161063c906119c6565b600a60ff82161115610ec35760405162461bcd60e51b815260206004820152603060248201527f4665652070657263656e742063616e6e6f74206265206772656174657220746860448201526f185b881b585e11995954195c98d95b9d60821b606482015260840161063c565b6001805460ff909216600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b815260040161063c906119c6565b6001600160a01b03811660009081526006602052604090205460ff16610f685760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48125b98db1d59195960821b604482015260640161063c565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b03163314610fb35760405162461bcd60e51b815260040161063c906119c6565b6001600160a01b0381166110185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161063c565b6110218161144e565b50565b6000546001600160a01b0316331461104e5760405162461bcd60e51b815260040161063c906119c6565b600081116110965760405162461bcd60e51b8152602060048201526015602482015274616d6f756e742063616e6e6f74206265207a65726f60581b604482015260640161063c565b600780549082905560408051838152602081018390527f224d367fb8685e04996001a5f3649e5d94c828df2464b2a2a7e3d4704e69f71491015b60405180910390a15050565b6001600160a01b03831661113e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161063c565b6001600160a01b03821661119f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161063c565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063c565b6001600160a01b0382166112c65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063c565b600081116113285760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161063c565b6001600160a01b03831660009081526004602052604090205481111561139f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161063c565b30600090815260046020526040902054600754811080159081906113cd5750600154600160a81b900460ff16155b80156113e25750600154600160b01b900460ff165b156113ef576113ef61149e565b6001600160a01b03851660009081526006602052604090205460019060ff168061143157506001600160a01b03851660009081526006602052604090205460ff165b1561143a575060005b61144686868684611516565b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001805460ff60a81b1916600160a81b179055306000908152600460205260409020546114ca81611663565b60035460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611504573d6000803e3d6000fd5b50506001805460ff60a81b1916905550565b8181156115cd5760015460009060649061153a90600160a01b900460ff1686611b04565b6115449190611b7a565b30600090815260046020526040902054909150611562908290611b23565b3060009081526004602052604090205561157c8183611b9c565b9150306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c391815260200190565b60405180910390a3505b6001600160a01b038086166000908152600460205260408082208054879003905591861681522054611600908290611b23565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116549085815260200190565b60405180910390a35050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061169857611698611bb3565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116ec57600080fd5b505afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190611b3b565b8160018151811061173757611737611bb3565b6001600160a01b03928316602091820292909201015260015461175d91309116846110dc565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611796908590600090869030904290600401611bc9565b600060405180830381600087803b1580156117b057600080fd5b505af19250505080156117c1575060015b61180d577f22b212abbac4f28435a37f1253f735d1d9c9b444577feee64b691ca0911302976040516110d09060208082526006908201526511985a5b195960d21b604082015260600190565b7f22b212abbac4f28435a37f1253f735d1d9c9b444577feee64b691ca0911302976040516110d0906020808252600790820152665375636365737360c81b604082015260600190565b600060208083528351808285015260005b8181101561188357858101830151858201604001528201611867565b81811115611895576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461102157600080fd5b6000602082840312156118d257600080fd5b81356118dd816118ab565b9392505050565b600080604083850312156118f757600080fd5b8235611902816118ab565b946020939093013593505050565b60008060006060848603121561192557600080fd5b8335611930816118ab565b92506020840135611940816118ab565b929592945050506040919091013590565b60006020828403121561196357600080fd5b5035919050565b60006020828403121561197c57600080fd5b813560ff811681146118dd57600080fd5b600080604083850312156119a057600080fd5b82356119ab816118ab565b915060208301356119bb816118ab565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a4c578160001904821115611a3257611a326119fb565b80851615611a3f57918102915b93841c9390800290611a16565b509250929050565b600082611a63575060016106c4565b81611a70575060006106c4565b8160018114611a865760028114611a9057611aac565b60019150506106c4565b60ff841115611aa157611aa16119fb565b50506001821b6106c4565b5060208310610133831016604e8410600b8410161715611acf575081810a6106c4565b611ad98383611a11565b8060001904821115611aed57611aed6119fb565b029392505050565b60006118dd60ff841683611a54565b6000816000190483118215151615611b1e57611b1e6119fb565b500290565b60008219821115611b3657611b366119fb565b500190565b600060208284031215611b4d57600080fd5b81516118dd816118ab565b600060208284031215611b6a57600080fd5b815180151581146118dd57600080fd5b600082611b9757634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611bae57611bae6119fb565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c195784516001600160a01b031683529383019391830191600101611bf4565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122011dbc035406f2a964833df7261b3e4a362ddef120e19a4176a4668232871dd2664736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000008a2c17de5ed2b8746eda7684bc0483a181aa0a96
-----Decoded View---------------
Arg [0] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : taxCollectorAddress (address): 0x8a2C17dE5ED2B8746Eda7684bC0483a181Aa0A96
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000008a2c17de5ed2b8746eda7684bc0483a181aa0a96
Deployed Bytecode Sourcemap
12728:12186:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17061:80;;;;;;;;;;-1:-1:-1;17133:5:0;;;;;;;;;;;;-1:-1:-1;;;17133:5:0;;;;17061:80;;;;;;;:::i;:::-;;;;;;;;15082:192;;;;;;;;;;-1:-1:-1;15082:192:0;;;;;:::i;:::-;;:::i;:::-;;18153:163;;;;;;;;;;-1:-1:-1;18153:163:0;;;;;:::i;:::-;;:::i;:::-;;;1521:14:1;;1514:22;1496:41;;1484:2;1469:18;18153:163:0;1356:187:1;12771:41:0;;;;;;;;;;-1:-1:-1;12771:41:0;;;;-1:-1:-1;;;;;12771:41:0;;;;;;-1:-1:-1;;;;;1738:32:1;;;1720:51;;1708:2;1693:18;12771:41:0;1548:229:1;17147:88:0;;;;;;;;;;;;;:::i;:::-;;;1928:25:1;;;1916:2;1901:18;17147:88:0;1782:177:1;18776:531:0;;;;;;;;;;-1:-1:-1;18776:531:0;;;;;:::i;:::-;;:::i;16885:80::-;;;;;;;;;;-1:-1:-1;12955:2:0;16885:80;;;2613:4:1;2601:17;;;2583:36;;2571:2;2556:18;16885:80:0;2441:184:1;19704:207:0;;;;;;;;;;-1:-1:-1;19704:207:0;;;;;:::i;:::-;;:::i;14448:626::-;;;;;;;;;;-1:-1:-1;14448:626:0;;;;;:::i;:::-;;:::i;15282:245::-;;;;;;;;;;-1:-1:-1;15282:245:0;;;;;:::i;:::-;;:::i;13131:28::-;;;;;;;;;;-1:-1:-1;13131:28:0;;;;-1:-1:-1;;;;;13131:28:0;;;13082:40;;;;;;;;;;-1:-1:-1;13082:40:0;;;;-1:-1:-1;;;13082:40:0;;;;;;16046:115;;;;;;;;;;;;;:::i;15721:123::-;;;;;;;;;;-1:-1:-1;15721:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;15809:27:0;15786:4;15809:27;;;:18;:27;;;;;;;;;15721:123;12964:42;;;;;;;;;;;;13004:2;12964:42;;17241:105;;;;;;;;;;-1:-1:-1;17241:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;17325:18:0;17308:7;17325:18;;;:9;:18;;;;;;;17241:105;17352:80;;;;;;;;;;-1:-1:-1;17404:7:0;3999:6;-1:-1:-1;;;;;3999:6:0;17352:80;17147:88;16690:187;;;;;;;;;;-1:-1:-1;16690:187:0;;;;;:::i;:::-;;:::i;13459:40::-;;;;;;;;;;;;;;;;16971:84;;;;;;;;;;-1:-1:-1;17045:7:0;;;;;;;;;;;;-1:-1:-1;;;17045:7:0;;;;16971:84;;16536:146;;;;;;;;;;-1:-1:-1;16536:146:0;;;;;:::i;:::-;;:::i;13013:24::-;;;;;;;;;;-1:-1:-1;13013:24:0;;;;-1:-1:-1;;;13013:24:0;;;;;;20400:486;;;;;;;;;;-1:-1:-1;20400:486:0;;;;;:::i;:::-;;:::i;17637:169::-;;;;;;;;;;-1:-1:-1;17637:169:0;;;;;:::i;:::-;;:::i;15852:186::-;;;;;;;;;;-1:-1:-1;15852:186:0;;;;;:::i;:::-;;:::i;17866:147::-;;;;;;;;;;-1:-1:-1;17866:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;17977:19:0;;;17950:7;17977:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17866:147;15535:178;;;;;;;;;;-1:-1:-1;15535:178:0;;;;;:::i;:::-;;:::i;4381:201::-;;;;;;;;;;-1:-1:-1;4381:201:0;;;;;:::i;:::-;;:::i;16169:359::-;;;;;;;;;;-1:-1:-1;16169:359:0;;;;;:::i;:::-;;:::i;15082:192::-;3972:7;3999:6;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15175:27:0;::::1;15167:60;;;::::0;-1:-1:-1;;;15167:60:0;;4529:2:1;15167:60:0::1;::::0;::::1;4511:21:1::0;4568:2;4548:18;;;4541:30;-1:-1:-1;;;4587:18:1;;;4580:49;4646:18;;15167:60:0::1;4327:343:1::0;15167:60:0::1;15238:12;:28:::0;;-1:-1:-1;;;;;;15238:28:0::1;-1:-1:-1::0;;;;;15238:28:0;;;::::1;::::0;;;::::1;::::0;;15082:192::o;18153:163::-;18230:4;18247:39;3247:10;18270:7;18279:6;18247:8;:39::i;:::-;-1:-1:-1;18304:4:0;18153:163;;;;;:::o;17147:88::-;17202:7;13251:13;12955:2;13251;:13;:::i;:::-;13243:21;;:5;:21;:::i;:::-;17213:19;;17147:88;:::o;18776:531::-;18876:4;18893:36;18903:6;18911:9;18922:6;18893:9;:36::i;:::-;-1:-1:-1;;;;;18968:19:0;;18940:25;18968:19;;;:11;:19;;;;;;;;3247:10;18968:33;;;;;;;;19112:27;;;;19104:80;;;;-1:-1:-1;;;19104:80:0;;6565:2:1;19104:80:0;;;6547:21:1;6604:2;6584:18;;;6577:30;6643:34;6623:18;;;6616:62;-1:-1:-1;;;6694:18:1;;;6687:38;6742:19;;19104:80:0;6363:404:1;19104:80:0;19212:58;19221:6;3247:10;19263:6;19243:17;:26;19212:8;:58::i;:::-;-1:-1:-1;19295:4:0;;18776:531;-1:-1:-1;;;;18776:531:0:o;19704:207::-;3247:10;19784:4;19833:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19833:34:0;;;;;;;;;;19784:4;;19801:80;;19824:7;;19833:47;;19870:10;;19833:47;:::i;:::-;19801:8;:80::i;14448:626::-;3972:7;3999:6;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;14523:36:::1;14581:9;14523:68;;14602:25;14648:17;-1:-1:-1::0;;;;;14648:25:0::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14602:74;;14687:12;14702:7;-1:-1:-1::0;;;;;14702:15:0::1;;14726:4;14733:17;-1:-1:-1::0;;;;;14733:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14702:56;::::0;-1:-1:-1;;;;;;14702:56:0::1;::::0;;;;;;-1:-1:-1;;;;;7399:15:1;;;14702:56:0::1;::::0;::::1;7381:34:1::0;7451:15;;7431:18;;;7424:43;7316:18;;14702:56:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14687:71:::0;-1:-1:-1;;;;;;14775:18:0;::::1;14771:179;;14826:7;-1:-1:-1::0;;;;;14826:18:0::1;;14853:4;14860:17;-1:-1:-1::0;;;;;14860:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14826:59;::::0;-1:-1:-1;;;;;;14826:59:0::1;::::0;;;;;;-1:-1:-1;;;;;7399:15:1;;;14826:59:0::1;::::0;::::1;7381:34:1::0;7451:15;;7431:18;;;7424:43;7316:18;;14826:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14810:13;:75:::0;;-1:-1:-1;;;;;;14810:75:0::1;-1:-1:-1::0;;;;;14810:75:0;;;::::1;::::0;;;::::1;::::0;;14771:179:::1;;;14918:13;:20:::0;;-1:-1:-1;;;;;;14918:20:0::1;-1:-1:-1::0;;;;;14918:20:0;::::1;;::::0;;14771:179:::1;14962:15;:35:::0;;-1:-1:-1;;;;;;14962:35:0::1;-1:-1:-1::0;;;;;14962:35:0;;::::1;::::0;;::::1;::::0;;;15052:13:::1;::::0;15015:51:::1;::::0;;7381:34:1;;;15052:13:0;::::1;7446:2:1::0;7431:18;;7424:43;15015:51:0::1;::::0;7316:18:1;15015:51:0::1;;;;;;;14512:562;;;14448:626:::0;:::o;15282:245::-;3972:7;3999:6;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15361:21:0;::::1;15353:53;;;::::0;-1:-1:-1;;;15353:53:0;;4529:2:1;15353:53:0::1;::::0;::::1;4511:21:1::0;4568:2;4548:18;;;4541:30;-1:-1:-1;;;4587:18:1;;;4580:49;4646:18;;15353:53:0::1;4327:343:1::0;15353:53:0::1;-1:-1:-1::0;;;;;15426:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;15425:28;15417:57;;;::::0;-1:-1:-1;;;15417:57:0;;8015:2:1;15417:57:0::1;::::0;::::1;7997:21:1::0;8054:2;8034:18;;;8027:30;-1:-1:-1;;;8073:18:1;;;8066:46;8129:18;;15417:57:0::1;7813:340:1::0;15417:57:0::1;-1:-1:-1::0;;;;;15485:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;15485:34:0::1;15515:4;15485:34;::::0;;15282:245::o;16046:115::-;3972:7;3999:6;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;16132:21:::1;::::0;;-1:-1:-1;;;;16107:46:0;::::1;-1:-1:-1::0;;;16132:21:0;;;::::1;;;16131:22;16107:46:::0;;::::1;;::::0;;16046:115::o;16690:187::-;16769:4;3999:6;;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;16785:12:::1;-1:-1:-1::0;;;;;16800:22:0;::::1;;3247:10:::0;16800:44:::1;::::0;-1:-1:-1;;;;;;16800:44:0::1;::::0;;;;;;-1:-1:-1;;;;;8358:32:1;;;16800:44:0::1;::::0;::::1;8340:51:1::0;8407:18;;;8400:34;;;8313:18;;16800:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16785:59:::0;16690:187;-1:-1:-1;;;;16690:187:0:o;16536:146::-;16598:4;3999:6;;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;16614:38:::1;::::0;3247:10;;16614:38;::::1;;;::::0;16645:6;;16614:38:::1;::::0;;;16645:6;3247:10;16614:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;20400:486:::0;3247:10;20485:4;20530:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20530:34:0;;;;;;;;;;20675:36;;;;20667:86;;;;-1:-1:-1;;;20667:86:0;;8929:2:1;20667:86:0;;;8911:21:1;8968:2;8948:18;;;8941:30;9007:34;8987:18;;;8980:62;-1:-1:-1;;;9058:18:1;;;9051:35;9103:19;;20667:86:0;8727:401:1;20667:86:0;20781:68;3247:10;20804:7;20833:15;20813:17;:35;20781:8;:68::i;:::-;-1:-1:-1;20874:4:0;;20400:486;-1:-1:-1;;;20400:486:0:o;17637:169::-;17717:4;17734:42;3247:10;17758:9;17769:6;17734:9;:42::i;15852:186::-;3972:7;3999:6;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;13004:2:::1;15924:26;::::0;::::1;;;15916:87;;;::::0;-1:-1:-1;;;15916:87:0;;9335:2:1;15916:87:0::1;::::0;::::1;9317:21:1::0;9374:2;9354:18;;;9347:30;9413:34;9393:18;;;9386:62;-1:-1:-1;;;9464:18:1;;;9457:46;9520:19;;15916:87:0::1;9133:412:1::0;15916:87:0::1;16014:6;:16:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;16014:16:0::1;-1:-1:-1::0;;;;16014:16:0;;::::1;::::0;;;::::1;::::0;;15852:186::o;15535:178::-;3972:7;3999:6;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15612:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;15604:56;;;::::0;-1:-1:-1;;;15604:56:0;;9752:2:1;15604:56:0::1;::::0;::::1;9734:21:1::0;9791:2;9771:18;;;9764:30;-1:-1:-1;;;9810:18:1;;;9803:46;9866:18;;15604:56:0::1;9550:340:1::0;15604:56:0::1;-1:-1:-1::0;;;;;15678:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;15671:34;;-1:-1:-1;;15671:34:0::1;::::0;;15535:178::o;4381:201::-;3972:7;3999:6;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4470:22:0;::::1;4462:73;;;::::0;-1:-1:-1;;;4462:73:0;;10097:2:1;4462:73:0::1;::::0;::::1;10079:21:1::0;10136:2;10116:18;;;10109:30;10175:34;10155:18;;;10148:62;-1:-1:-1;;;10226:18:1;;;10219:36;10272:19;;4462:73:0::1;9895:402:1::0;4462:73:0::1;4546:28;4565:8;4546:18;:28::i;:::-;4381:201:::0;:::o;16169:359::-;3972:7;3999:6;-1:-1:-1;;;;;3999:6:0;3247:10;4146:23;4138:68;;;;-1:-1:-1;;;4138:68:0;;;;;;;:::i;:::-;16268:1:::1;16259:6;:10;16251:44;;;::::0;-1:-1:-1;;;16251:44:0;;10504:2:1;16251:44:0::1;::::0;::::1;10486:21:1::0;10543:2;10523:18;;;10516:30;-1:-1:-1;;;10562:18:1;;;10555:51;10623:18;;16251:44:0::1;10302:345:1::0;16251:44:0::1;16346:25;::::0;;16382:34;;;;16432:88:::1;::::0;;10826:25:1;;;10882:2;10867:18;;10860:34;;;16432:88:0::1;::::0;10799:18:1;16432:88:0::1;;;;;;;;16240:288;16169:359:::0;:::o;24329:342::-;-1:-1:-1;;;;;24424:20:0;;24416:69;;;;-1:-1:-1;;;24416:69:0;;11107:2:1;24416:69:0;;;11089:21:1;11146:2;11126:18;;;11119:30;11185:34;11165:18;;;11158:62;-1:-1:-1;;;11236:18:1;;;11229:34;11280:19;;24416:69:0;10905:400:1;24416:69:0;-1:-1:-1;;;;;24504:21:0;;24496:68;;;;-1:-1:-1;;;24496:68:0;;11512:2:1;24496:68:0;;;11494:21:1;11551:2;11531:18;;;11524:30;11590:34;11570:18;;;11563:62;-1:-1:-1;;;11641:18:1;;;11634:32;11683:19;;24496:68:0;11310:398:1;24496:68:0;-1:-1:-1;;;;;24577:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;24630:33;;1928:25:1;;;24630:33:0;;1901:18:1;24630:33:0;;;;;;;24329:342;;;:::o;21363:908::-;-1:-1:-1;;;;;21461:20:0;;21453:70;;;;-1:-1:-1;;;21453:70:0;;11915:2:1;21453:70:0;;;11897:21:1;11954:2;11934:18;;;11927:30;11993:34;11973:18;;;11966:62;-1:-1:-1;;;12044:18:1;;;12037:35;12089:19;;21453:70:0;11713:401:1;21453:70:0;-1:-1:-1;;;;;21542:23:0;;21534:71;;;;-1:-1:-1;;;21534:71:0;;12321:2:1;21534:71:0;;;12303:21:1;12360:2;12340:18;;;12333:30;12399:34;12379:18;;;12372:62;-1:-1:-1;;;12450:18:1;;;12443:33;12493:19;;21534:71:0;12119:399:1;21534:71:0;21633:1;21624:6;:10;21616:64;;;;-1:-1:-1;;;21616:64:0;;12725:2:1;21616:64:0;;;12707:21:1;12764:2;12744:18;;;12737:30;12803:34;12783:18;;;12776:62;-1:-1:-1;;;12854:18:1;;;12847:39;12903:19;;21616:64:0;12523:405:1;21616:64:0;-1:-1:-1;;;;;21699:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;21699:27:0;21691:78;;;;-1:-1:-1;;;21691:78:0;;13135:2:1;21691:78:0;;;13117:21:1;13174:2;13154:18;;;13147:30;13213:34;13193:18;;;13186:62;-1:-1:-1;;;13264:18:1;;;13257:36;13310:19;;21691:78:0;12933:402:1;21691:78:0;21832:4;21782:28;21813:26;;;:9;:26;;;;;;21901:25;;21877:49;;;;;;;21943:40;;-1:-1:-1;21967:16:0;;-1:-1:-1;;;21967:16:0;;;;21966:17;21943:40;:65;;;;-1:-1:-1;21987:21:0;;-1:-1:-1;;;21987:21:0;;;;21943:65;21939:114;;;22025:16;:14;:16::i;:::-;-1:-1:-1;;;;;22099:26:0;;22065:12;22099:26;;;:18;:26;;;;;;22080:4;;22099:26;;;:59;;-1:-1:-1;;;;;;22129:29:0;;;;;;:18;:29;;;;;;;;22099:59;22095:106;;;-1:-1:-1;22184:5:0;22095:106;22213:50;22228:6;22236:9;22247:6;22255:7;22213:14;:50::i;:::-;21442:829;;;21363:908;;;:::o;4742:191::-;4816:16;4835:6;;-1:-1:-1;;;;;4852:17:0;;;-1:-1:-1;;;;;;4852:17:0;;;;;;4885:40;;4835:6;;;;;;;4885:40;;4816:16;4885:40;4805:128;4742:191;:::o;22316:230::-;13559:4;13540:23;;-1:-1:-1;;;;13540:23:0;-1:-1:-1;;;13540:23:0;;;22409:4:::1;13540:23:::0;22390:26;;;:9:::1;:26;::::0;;;;;22427:24:::1;22390:26:::0;22427:16:::1;:24::i;:::-;22510:12;::::0;:28:::1;::::0;22478:21:::1;::::0;-1:-1:-1;;;;;22510:12:0::1;::::0;:28;::::1;;;::::0;22478:21;;22462:13:::1;22510:28:::0;22462:13;22510:28;22478:21;22510:12;:28;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13586:16:0;:24;;-1:-1:-1;;;;13586:24:0;;;-1:-1:-1;22316:230:0:o;23200:701::-;23377:6;23394:275;;;;23450:6;;23422:16;;23459:3;;23441:15;;-1:-1:-1;;;23450:6:0;;;;23441;:15;:::i;:::-;:21;;;;:::i;:::-;23522:4;23504:24;;;;:9;:24;;;;;;23422:40;;-1:-1:-1;23504:35:0;;23422:40;;23504:35;:::i;:::-;23495:4;23477:24;;;;:9;:24;;;;;:62;23571:25;23588:8;23571:14;:25;:::i;:::-;23554:42;;23641:4;-1:-1:-1;;;;;23616:41:0;23625:6;-1:-1:-1;;;;;23616:41:0;;23648:8;23616:41;;;;1928:25:1;;1916:2;1901:18;;1782:177;23616:41:0;;;;;;;;23407:262;23394:275;-1:-1:-1;;;;;23724:17:0;;;;;;;:9;:17;;;;;;;;:26;;;23704:46;;23795:20;;;;;;;:37;;23818:14;;23795:37;:::i;:::-;-1:-1:-1;;;;;23772:20:0;;;;;;;:9;:20;;;;;;;:60;;;;23850:43;;;;;;;;;;23878:14;1928:25:1;;1916:2;1901:18;;1782:177;23850:43:0;;;;;;;;23341:560;23200:701;;;;:::o;22554:638::-;22644:16;;;22658:1;22644:16;;;;;;;;22620:21;;22644:16;;;;;;;;;;-1:-1:-1;22644:16:0;22620:40;;22689:4;22671;22676:1;22671:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22671:23:0;;;:7;;;;;;;;;;:23;;;;22715:15;;:22;;;-1:-1:-1;;;22715:22:0;;;;:15;;;;;:20;;:22;;;;;22671:7;;22715:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22705:4;22710:1;22705:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22705:32:0;;;:7;;;;;;;;;:32;22782:15;;22750:62;;22767:4;;22782:15;22800:11;22750:8;:62::i;:::-;22829:15;;:224;;-1:-1:-1;;;22829:224:0;;-1:-1:-1;;;;;22829:15:0;;;;:66;;:224;;22910:11;;22829:15;;22980:4;;23007;;23027:15;;22829:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22825:360;;23143:30;;;;;15143:2:1;15125:21;;;15182:1;15162:18;;;15155:29;-1:-1:-1;;;15215:2:1;15200:18;;15193:36;15261:2;15246:18;;14941:329;22825:360:0;23073:31;;;;;15477:2:1;15459:21;;;15516:1;15496:18;;;15489:29;-1:-1:-1;;;15549:2:1;15534:18;;15527:37;15596:2;15581:18;;15275:330;14:597;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:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:139::-;-1:-1:-1;;;;;699:31:1;;689:42;;679:70;;745:1;742;735:12;760:263;827:6;880:2;868:9;859:7;855:23;851:32;848:52;;;896:1;893;886:12;848:52;935:9;922:23;954:39;987:5;954:39;:::i;:::-;1012:5;760:263;-1:-1:-1;;;760:263:1:o;1028:323::-;1096:6;1104;1157:2;1145:9;1136:7;1132:23;1128:32;1125:52;;;1173:1;1170;1163:12;1125:52;1212:9;1199:23;1231:39;1264:5;1231:39;:::i;:::-;1289:5;1341:2;1326:18;;;;1313:32;;-1:-1:-1;;;1028:323:1:o;1964:472::-;2041:6;2049;2057;2110:2;2098:9;2089:7;2085:23;2081:32;2078:52;;;2126:1;2123;2116:12;2078:52;2165:9;2152:23;2184:39;2217:5;2184:39;:::i;:::-;2242:5;-1:-1:-1;2299:2:1;2284:18;;2271:32;2312:41;2271:32;2312:41;:::i;:::-;1964:472;;2372:7;;-1:-1:-1;;;2426:2:1;2411:18;;;;2398:32;;1964:472::o;3098:180::-;3157:6;3210:2;3198:9;3189:7;3185:23;3181:32;3178:52;;;3226:1;3223;3216:12;3178:52;-1:-1:-1;3249:23:1;;3098:180;-1:-1:-1;3098:180:1:o;3283:269::-;3340:6;3393:2;3381:9;3372:7;3368:23;3364:32;3361:52;;;3409:1;3406;3399:12;3361:52;3448:9;3435:23;3498:4;3491:5;3487:16;3480:5;3477:27;3467:55;;3518:1;3515;3508:12;3557:404;3625:6;3633;3686:2;3674:9;3665:7;3661:23;3657:32;3654:52;;;3702:1;3699;3692:12;3654:52;3741:9;3728:23;3760:39;3793:5;3760:39;:::i;:::-;3818:5;-1:-1:-1;3875:2:1;3860:18;;3847:32;3888:41;3847:32;3888:41;:::i;:::-;3948:7;3938:17;;;3557:404;;;;;:::o;3966:356::-;4168:2;4150:21;;;4187:18;;;4180:30;4246:34;4241:2;4226:18;;4219:62;4313:2;4298:18;;3966:356::o;4675:127::-;4736:10;4731:3;4727:20;4724:1;4717:31;4767:4;4764:1;4757:15;4791:4;4788:1;4781:15;4807:422;4896:1;4939:5;4896:1;4953:270;4974:7;4964:8;4961:21;4953:270;;;5033:4;5029:1;5025:6;5021:17;5015:4;5012:27;5009:53;;;5042:18;;:::i;:::-;5092:7;5082:8;5078:22;5075:55;;;5112:16;;;;5075:55;5191:22;;;;5151:15;;;;4953:270;;;4957:3;4807:422;;;;;:::o;5234:806::-;5283:5;5313:8;5303:80;;-1:-1:-1;5354:1:1;5368:5;;5303:80;5402:4;5392:76;;-1:-1:-1;5439:1:1;5453:5;;5392:76;5484:4;5502:1;5497:59;;;;5570:1;5565:130;;;;5477:218;;5497:59;5527:1;5518:10;;5541:5;;;5565:130;5602:3;5592:8;5589:17;5586:43;;;5609:18;;:::i;:::-;-1:-1:-1;;5665:1:1;5651:16;;5680:5;;5477:218;;5779:2;5769:8;5766:16;5760:3;5754:4;5751:13;5747:36;5741:2;5731:8;5728:16;5723:2;5717:4;5714:12;5710:35;5707:77;5704:159;;;-1:-1:-1;5816:19:1;;;5848:5;;5704:159;5895:34;5920:8;5914:4;5895:34;:::i;:::-;5965:6;5961:1;5957:6;5953:19;5944:7;5941:32;5938:58;;;5976:18;;:::i;:::-;6014:20;;5234:806;-1:-1:-1;;;5234:806:1:o;6045:140::-;6103:5;6132:47;6173:4;6163:8;6159:19;6153:4;6132:47;:::i;6190:168::-;6230:7;6296:1;6292;6288:6;6284:14;6281:1;6278:21;6273:1;6266:9;6259:17;6255:45;6252:71;;;6303:18;;:::i;:::-;-1:-1:-1;6343:9:1;;6190:168::o;6772:128::-;6812:3;6843:1;6839:6;6836:1;6833:13;6830:39;;;6849:18;;:::i;:::-;-1:-1:-1;6885:9:1;;6772:128::o;6905:259::-;6975:6;7028:2;7016:9;7007:7;7003:23;6999:32;6996:52;;;7044:1;7041;7034:12;6996:52;7076:9;7070:16;7095:39;7128:5;7095:39;:::i;8445:277::-;8512:6;8565:2;8553:9;8544:7;8540:23;8536:32;8533:52;;;8581:1;8578;8571:12;8533:52;8613:9;8607:16;8666:5;8659:13;8652:21;8645:5;8642:32;8632:60;;8688:1;8685;8678:12;13340:217;13380:1;13406;13396:132;;13450:10;13445:3;13441:20;13438:1;13431:31;13485:4;13482:1;13475:15;13513:4;13510:1;13503:15;13396:132;-1:-1:-1;13542:9:1;;13340:217::o;13562:125::-;13602:4;13630:1;13627;13624:8;13621:34;;;13635:18;;:::i;:::-;-1:-1:-1;13672:9:1;;13562:125::o;13824:127::-;13885:10;13880:3;13876:20;13873:1;13866:31;13916:4;13913:1;13906:15;13940:4;13937:1;13930:15;13956:980;14218:4;14266:3;14255:9;14251:19;14297:6;14286:9;14279:25;14323:2;14361:6;14356:2;14345:9;14341:18;14334:34;14404:3;14399:2;14388:9;14384:18;14377:31;14428:6;14463;14457:13;14494:6;14486;14479:22;14532:3;14521:9;14517:19;14510:26;;14571:2;14563:6;14559:15;14545:29;;14592:1;14602:195;14616:6;14613:1;14610:13;14602:195;;;14681:13;;-1:-1:-1;;;;;14677:39:1;14665:52;;14772:15;;;;14737:12;;;;14713:1;14631:9;14602:195;;;-1:-1:-1;;;;;;;14853:32:1;;;;14848:2;14833:18;;14826:60;-1:-1:-1;;;14917:3:1;14902:19;14895:35;14814:3;13956:980;-1:-1:-1;;;13956:980:1:o
Swarm Source
ipfs://11dbc035406f2a964833df7261b3e4a362ddef120e19a4176a4668232871dd26
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.