ERC-20
Overview
Max Total Supply
5,000 SMK
Holders
34
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SMOKE
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-12 */ // )`·. ' ' ’ // /( .·´ ( ' )`·. (`·. )\ ' (`·. )`·._.·´( )`·. // )\ ) `·._):::. ) ’' (`·. ')\ /( .·´ ( ) `·. .·´( .·´ ( /( ' \::`·._)`·. )\.·´::... .::) .·´ ./ // )\ .·´ .:`·.(:;; -- ' '\:. :(.·´) )\ ) `·. .·´( .·´ (' )\ ) `·._):::. ) '’ .·´( .·´:..::(,(::-- ' '\::.`·._) `·.’ .·´( )::. ..:::).·´;· -- ´ ´\::.`·.(::...:(’ // .·´ (,): -- ' ' \....:::`·.( ( .·´( .·´:..::(,(::-- ' '\:·.·´(' )\ .·´ .:`·.(:;; -- ' '\:. :(.·´) )\ );; :-- ' ' \::....:::::)' ):..\(;;::-- ´ ´ ’\:::::::...::) // ):.::/\ ¯¯¯`·’ ::·´ );; :-- ’ _\::.. `·.)`·..·´ (,): -- ' ' \....:::`·.( ( .·´/\ ,... ·::´’:::/¯ - :;(::...:/\ ’¯¯¯¯¯¯/' // `·:/::::\...:´/ ____ \ .·´/\ ,..:´:::'/)::::..::::():.::/\ ¯¯¯` · ::·´’ )/:::'\...:´/ /:::::::::::/ / `·:/::::\...:´/ ___________'/ // \::::/::::/ /::::::::/\ 'I’ )/:::'\...:´/ `·;:;;:/·· ´´ ¯¯¯/’`·:/::::\...:´/ ____ \ \:::/::::/ /;;::;;´-··´´ / ' \::::/::::/ /:::::::::;; -- ´ ´\ ’ // \/;::-'/ /::::::::/:::I ’/ \:::/::::/ '/ \::::/::::/ /::::::::/I / ’' '\/;::-'/ __,...::::´/ \/;::-'/ /;;::·- ´ ´ _\ ' // /I I¯¯¯¯¯\::'/..-::::/ ’' '\/;::-'/ /:·, .·´/ /' \/;::-'/ /::::::::/:/ /' / ,, ` -:::;/ ' / .,.,·:::::'/ ’' // /::I ` * · . ____ (`·.)':/ /:::/ /::/ / / /¯¯¯¯¯'I/ /'' .·´( '/ /:::::·-.., / )`·. '/ _ ,.,.,·:::::::::::::::/ ' // I:::/`:::·... /’ ' ):./ /`·;/ /:·/ /' '/ / / / '_) ::/ ’/::::::::::// / (::..:(.·/ /:::::::::::::::::::-- ´ ’ // I:/::::::::::::·-, ’/' '\:/ / / / / / /I 'I / /' ' )..::/ /``··::::;;// / ' `·::..'/ `·__:::::· ’\: .·´ // ` ·::;;::- ·· ´´ /' ' /____/ / '/ / / /::/`· , ` ·,_'/ /’ `·:/____ / / / ' )/`·. \( ’ // /\¯¯¯¯ ,, -:::::'/' /:::::- ´´ , - ´´´ .·´'/ I:/::::::::` · , ___,.·:/' ' /::::::::/ / '/ /::::::`·._____ ...·::::::/ // /::::\,, -::::´´::::::::::::/'' /::`*..¸..-:/:`*..¸..-::::::::/ `·:;::::::::::/:::::/:::/' ' /::::::::/ '/,....·::´/ `·:::::::/::::::::/:::::::::/ ’ // \:::/:::::::::::::::;;::-·´´' '/:::::::/::/:::::::/::::::::- ´´ ' ` ·:;:::/:::::/;·´' ' ¯¯¯¯¯ /:::::::::/ ’ `·::/::::::::/::::: ·´´ ’ // '\/::::::;;::-· ´´' `*-::;/::::`*-::;/::::-·· ´´ ¯¯¯ ’ '/;;::: · ´´ ¯¯¯¯¯ // // /// Not Liquid. Not Molten. Not Fumes. Just Smoke. /// Stealth launch with no presale, no token minting, and locked initial liquidity. /// We aint gonna rug you. Promise. We're honest and we just like to trade like degens. /// That's why we made this contract for everyone to enjoy. /// /// TOTAL SUPPLY: 5,000. Each transaction takes 5% and locks it into liquidity for an ever-growing pool. /// Anti-botting/anti-dump measure: max 50 tokens per transfer. We know it's cliché, but why not? abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return 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; } } 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { /** * @dev Returns true if `account` is a contract. * * [// importANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * // importANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract ERC20 is Context, IERC20 { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol) public { _name = name; _symbol = symbol; _decimals = 6; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } // pragma solidity >=0.5.0; 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; } // pragma solidity >=0.5.0; interface IUniswapV2ERC20 { 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; } // pragma solidity >=0.6.2; 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); } // pragma solidity >=0.6.12; 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; } pragma solidity 0.6.12; contract SMOKE is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public _burnPool = 0x0000000000000000000000000000000000000000; uint8 public feeDecimals; uint32 public feePercentage; uint128 private minTokensBeforeSwap; uint256 internal _totalSupply; uint256 internal _minimumSupply; uint256 public _totalBurnedTokens; uint256 public _totalBurnedLpTokens; uint256 public _balanceOfLpTokens; bool inSwapAndLiquify; bool swapAndLiquifyEnabled; event FeeUpdated(uint8 feeDecimals, uint32 feePercentage); event MinTokensBeforeSwapUpdated(uint128 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor( IUniswapV2Router02 _uniswapV2Router, uint8 _feeDecimals, uint32 _feePercentage, uint128 _minTokensBeforeSwap, bool _swapAndLiquifyEnabled ) public ERC20("SMOKE", "SMK") { // mint tokens which will initially belong to deployer // deployer should go seed the pair with some initial liquidity _mint(msg.sender, 5000 * 10**6); // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // set the rest of the contract variables uniswapV2Router = _uniswapV2Router; updateFee(_feeDecimals, _feePercentage); updateMinTokensBeforeSwap(_minTokensBeforeSwap); updateSwapAndLiquifyEnabled(_swapAndLiquifyEnabled); } function minimumSupply() external view returns (uint256){ return _minimumSupply; } function _transfer( address from, address to, uint256 amount ) internal override { // is the token balance of this contract address over the min number of // tokens that we need to initiate a swap + liquidity lock? // also, don't get caught in a circular liquidity event. // also, don't swap & liquify if sender is uniswap pair. if (from == owner() || to == owner() || to == address(uniswapV2Router)) { super._transfer(from, to, amount); } else { require (amount <= 50 * 10 ** 6, "You're transferring too many tokens"); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= (minTokensBeforeSwap * 10 ** 6); if ( overMinTokenBalance && !inSwapAndLiquify && msg.sender != uniswapV2Pair && swapAndLiquifyEnabled ) { swapAndLiquify(contractTokenBalance); } // calculate the number of tokens to take as a fee uint256 tokensToLock = calculateTokenFee( amount, feeDecimals, feePercentage ); // take the fee and send those tokens to this contract address // and then send the remainder of tokens to original recipient uint256 tokensToTransfer = amount.sub(tokensToLock); super._transfer(from, address(this), tokensToLock); super._transfer(from, to, tokensToTransfer); } } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { // split the contract balance into halves uint256 half = contractTokenBalance.div(2); uint256 otherHalf = contractTokenBalance.sub(half); // capture the contract's current ETH balance. // this is so that we can capture exactly the amount of ETH that the // swap creates, and not make the liquidity event include any ETH that // has been manually sent to the contract uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(half); // <- this breaks the ETH to SMOKE swap when swap & liquify is triggered // how much ETH did we just swap into? uint256 newBalance = address(this).balance.sub(initialBalance); // add liquidity to uniswap addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half, newBalance, otherHalf); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function calculateTokenFee( uint256 _amount, uint8 _feeDecimals, uint32 _feePercentage ) public pure returns (uint256 locked) { locked = _amount.mul(_feePercentage).div( 10**(uint256(_feeDecimals) + 2) ); } receive() external payable {} function updateFee(uint8 _feeDecimals, uint32 _feePercentage) public onlyOwner { feeDecimals = _feeDecimals; feePercentage = _feePercentage; emit FeeUpdated(_feeDecimals, _feePercentage); } function updateMinTokensBeforeSwap(uint128 _minTokensBeforeSwap) public onlyOwner { minTokensBeforeSwap = _minTokensBeforeSwap; emit MinTokensBeforeSwapUpdated(_minTokensBeforeSwap); } function updateSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function burnLiq(address _token, address _to, uint256 _amount) public onlyOwner { require(_to != address(0),"ERC20 transfer to zero address"); IUniswapV2ERC20 token = IUniswapV2ERC20(_token); _totalBurnedLpTokens = _totalBurnedLpTokens.add(_amount); token.transfer(_burnPool, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IUniswapV2Router02","name":"_uniswapV2Router","type":"address"},{"internalType":"uint8","name":"_feeDecimals","type":"uint8"},{"internalType":"uint32","name":"_feePercentage","type":"uint32"},{"internalType":"uint128","name":"_minTokensBeforeSwap","type":"uint128"},{"internalType":"bool","name":"_swapAndLiquifyEnabled","type":"bool"}],"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":false,"internalType":"uint8","name":"feeDecimals","type":"uint8"},{"indexed":false,"internalType":"uint32","name":"feePercentage","type":"uint32"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint128","name":"minTokensBeforeSwap","type":"uint128"}],"name":"MinTokensBeforeSwapUpdated","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":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_balanceOfLpTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_burnPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurnedLpTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burnLiq","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint8","name":"_feeDecimals","type":"uint8"},{"internalType":"uint32","name":"_feePercentage","type":"uint32"}],"name":"calculateTokenFee","outputs":[{"internalType":"uint256","name":"locked","type":"uint256"}],"stateMutability":"pure","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":[],"name":"feeDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePercentage","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumSupply","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":"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"},{"inputs":[{"internalType":"uint8","name":"_feeDecimals","type":"uint8"},{"internalType":"uint32","name":"_feePercentage","type":"uint32"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_minTokensBeforeSwap","type":"uint128"}],"name":"updateMinTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b506040516200373c3803806200373c833981810160405260a08110156200007957600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506040518060400160405280600581526020017f534d4f4b450000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f534d4b000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200013692919062000afd565b5080600490805190602001906200014f92919062000afd565b506006600560006101000a81548160ff021916908360ff1602179055505050600062000180620004ad60201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002363364012a05f200620004b560201b60201c565b8473ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027d57600080fd5b505afa15801562000292573d6000803e3d6000fd5b505050506040513d6020811015620002a957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308773ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031d57600080fd5b505afa15801562000332573d6000803e3d6000fd5b505050506040513d60208110156200034957600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620003c457600080fd5b505af1158015620003d9573d6000803e3d6000fd5b505050506040513d6020811015620003f057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250506200048084846200069360201b60201c565b6200049182620007ee60201b60201c565b620004a2816200094660201b60201c565b505050505062000ba3565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200056d6000838362000a6f60201b60201c565b620005898160025462000a7460201b62001a581790919060201c565b600281905550620005e7816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000a7460201b62001a581790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b620006a3620004ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000766576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81600660146101000a81548160ff021916908360ff16021790555080600660156101000a81548163ffffffff021916908363ffffffff1602179055507f460fa919625630f734b5d86356a2511f134b6df313c793ca09e0399de8d933a08282604051808360ff1681526020018263ffffffff1681526020019250505060405180910390a15050565b620007fe620004ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620008c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055507fb20e0f86438dbd4812cee7b24a6696d4dbaa9d3db89c677e731ab7dd738c8bbe8160405180826fffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b62000956620004ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b505050565b60008082840190508381101562000af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000b4057805160ff191683800117855562000b71565b8280016001018555821562000b71579182015b8281111562000b7057825182559160200191906001019062000b53565b5b50905062000b80919062000b84565b5090565b5b8082111562000b9f57600081600090555060010162000b85565b5090565b60805160601c60a05160601c612b4c62000bf060003980610ebd5280611e87525080610b775280611d5a5280612642528061272e5280612755528061286052806128875250612b4c6000f3fe6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063a9059cbb1161008a578063eaa93e7811610064578063eaa93e78146109c0578063f2fde38b14610a0e578063f51d4df514610a5f578063ff7c479014610a8a576101c2565b8063a9059cbb1461089c578063cc0f17861461090d578063dd62ed3e1461093b576101c2565b80639f9a4e7f116100c65780639f9a4e7f14610751578063a001ecdd1461078e578063a3a49361146107bf578063a457c2d71461082b576101c2565b80638da5cb5b1461065557806391fe5a641461069657806395d89b41146106c1576101c2565b80633950935111610159578063689dc62d11610133578063689dc62d1461053357806370a08231146105ae578063715018a6146106135780637ede036d1461062a576101c2565b806339509351146104345780633a27b764146104a557806349bd5a5e146104f2576101c2565b806318160ddd1161019557806318160ddd1461030957806323b872dd1461033457806328d2bc91146103c5578063313ce56714610406576101c2565b806306fdde03146101c7578063095ea7b3146102575780631694505e146102c8576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610ab5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021c578082015181840152602081019050610201565b50505050905090810190601f1680156102495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026357600080fd5b506102b06004803603604081101561027a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b57565b60405180821515815260200191505060405180910390f35b3480156102d457600080fd5b506102dd610b75565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031557600080fd5b5061031e610b99565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b506103ad6004803603606081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ba3565b60405180821515815260200191505060405180910390f35b3480156103d157600080fd5b506103da610c7c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041257600080fd5b5061041b610ca2565b604051808260ff16815260200191505060405180910390f35b34801561044057600080fd5b5061048d6004803603604081101561045757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cb9565b60405180821515815260200191505060405180910390f35b3480156104b157600080fd5b506104f0600480360360208110156104c857600080fd5b8101908080356fffffffffffffffffffffffffffffffff169060200190929190505050610d6c565b005b3480156104fe57600080fd5b50610507610ebb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105ac6004803603606081101561055657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610edf565b005b3480156105ba57600080fd5b506105fd600480360360208110156105d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611141565b6040518082815260200191505060405180910390f35b34801561061f57600080fd5b50610628611189565b005b34801561063657600080fd5b5061063f611314565b6040518082815260200191505060405180910390f35b34801561066157600080fd5b5061066a61131e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a257600080fd5b506106ab611348565b6040518082815260200191505060405180910390f35b3480156106cd57600080fd5b506106d661134e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107165780820151818401526020810190506106fb565b50505050905090810190601f1680156107435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561075d57600080fd5b5061078c6004803603602081101561077457600080fd5b810190808035151590602001909291905050506113f0565b005b34801561079a57600080fd5b506107a3611510565b604051808263ffffffff16815260200191505060405180910390f35b3480156107cb57600080fd5b50610815600480360360608110156107e257600080fd5b8101908080359060200190929190803560ff169060200190929190803563ffffffff169060200190929190505050611526565b6040518082815260200191505060405180910390f35b34801561083757600080fd5b506108846004803603604081101561084e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611565565b60405180821515815260200191505060405180910390f35b3480156108a857600080fd5b506108f5600480360360408110156108bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611632565b60405180821515815260200191505060405180910390f35b34801561091957600080fd5b50610922611650565b604051808260ff16815260200191505060405180910390f35b34801561094757600080fd5b506109aa6004803603604081101561095e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611663565b6040518082815260200191505060405180910390f35b3480156109cc57600080fd5b50610a0c600480360360408110156109e357600080fd5b81019080803560ff169060200190929190803563ffffffff1690602001909291905050506116ea565b005b348015610a1a57600080fd5b50610a5d60048036036020811015610a3157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061183c565b005b348015610a6b57600080fd5b50610a74611a4c565b6040518082815260200191505060405180910390f35b348015610a9657600080fd5b50610a9f611a52565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050905090565b6000610b6b610b64611ae0565b8484611ae8565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b6000610bb0848484611cdf565b610c7184610bbc611ae0565b610c6c85604051806060016040528060288152602001612a5e60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c22611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f649092919063ffffffff16565b611ae8565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900460ff16905090565b6000610d62610cc6611ae0565b84610d5d8560016000610cd7611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a5890919063ffffffff16565b611ae8565b6001905092915050565b610d74611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055507fb20e0f86438dbd4812cee7b24a6696d4dbaa9d3db89c677e731ab7dd738c8bbe8160405180826fffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b610ee7611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433230207472616e7366657220746f207a65726f2061646472657373000081525060200191505060405180910390fd5b600083905061106682600b54611a5890919063ffffffff16565b600b819055508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110ff57600080fd5b505af1158015611113573d6000803e3d6000fd5b505050506040513d602081101561112957600080fd5b81019080805190602001909291905050505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611191611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600954905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113e65780601f106113bb576101008083540402835291602001916113e6565b820191906000526020600020905b8154815290600101906020018083116113c957829003601f168201915b5050505050905090565b6113f8611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b600660159054906101000a900463ffffffff1681565b600061155c60028460ff1601600a0a61154e8463ffffffff168761202490919063ffffffff16565b6120aa90919063ffffffff16565b90509392505050565b6000611628611572611ae0565b8461162385604051806060016040528060258152602001612af2602591396001600061159c611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f649092919063ffffffff16565b611ae8565b6001905092915050565b600061164661163f611ae0565b8484611cdf565b6001905092915050565b600660149054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116f2611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81600660146101000a81548160ff021916908360ff16021790555080600660156101000a81548163ffffffff021916908363ffffffff1602179055507f460fa919625630f734b5d86356a2511f134b6df313c793ca09e0399de8d933a08282604051808360ff1681526020018263ffffffff1681526020019250505060405180910390a15050565b611844611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561198c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806129cf6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600c5481565b600080828401905083811015611ad6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ace6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806129f56022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b611ce761131e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611d525750611d2361131e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611da857507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611dbd57611db88383836120f4565b611f5f565b6302faf080811115611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612aab6023913960400191505060405180910390fd5b6000611e2530611141565b90506000620f4240600760009054906101000a90046fffffffffffffffffffffffffffffffff16026fffffffffffffffffffffffffffffffff168210159050808015611e7e5750600d60009054906101000a900460ff16155b8015611ed657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eee5750600d60019054906101000a900460ff165b15611efd57611efc826123b5565b5b6000611f2b84600660149054906101000a900460ff16600660159054906101000a900463ffffffff16611526565b90506000611f42828661249790919063ffffffff16565b9050611f4f8730846120f4565b611f5a8787836120f4565b505050505b505050565b6000838311158290612011576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fd6578082015181840152602081019050611fbb565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083141561203757600090506120a4565b600082840290508284828161204857fe5b041461209f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a3d6021913960400191505060405180910390fd5b809150505b92915050565b60006120ec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124e1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561217a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a866025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129ac6023913960400191505060405180910390fd5b61220b8383836125a7565b61227681604051806060016040528060268152602001612a17602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f649092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612309816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a5890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6001600d60006101000a81548160ff02191690831515021790555060006123e66002836120aa90919063ffffffff16565b905060006123fd828461249790919063ffffffff16565b9050600047905061240d836125ac565b6000612422824761249790919063ffffffff16565b905061242e838261285a565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405180848152602001838152602001828152602001935050505060405180910390a1505050506000600d60006101000a81548160ff02191690831515021790555050565b60006124d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f64565b905092915050565b6000808311829061258d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612552578082015181840152602081019050612537565b50505050905090810190601f16801561257f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161259957fe5b049050809150509392505050565b505050565b6060600267ffffffffffffffff811180156125c657600080fd5b506040519080825280602002602001820160405280156125f55781602001602082028036833780820191505090505b509050308160008151811061260657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126a657600080fd5b505afa1580156126ba573d6000803e3d6000fd5b505050506040513d60208110156126d057600080fd5b8101908080519060200190929190505050816001815181106126ee57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612753307f000000000000000000000000000000000000000000000000000000000000000084611ae8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156128155780820151818401526020810190506127fa565b505050509050019650505050505050600060405180830381600087803b15801561283e57600080fd5b505af1158015612852573d6000803e3d6000fd5b505050505050565b612885307f000000000000000000000000000000000000000000000000000000000000000084611ae8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806128cf61131e565b426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561295457600080fd5b505af1158015612968573d6000803e3d6000fd5b50505050506040513d606081101561297f57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373596f75277265207472616e7366657272696e6720746f6f206d616e7920746f6b656e7345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220696dca294a037456a8f917b147e05ba2d886f84af05c713dea8bd3b0be3c904264736f6c634300060c00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000012a05f2000000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063a9059cbb1161008a578063eaa93e7811610064578063eaa93e78146109c0578063f2fde38b14610a0e578063f51d4df514610a5f578063ff7c479014610a8a576101c2565b8063a9059cbb1461089c578063cc0f17861461090d578063dd62ed3e1461093b576101c2565b80639f9a4e7f116100c65780639f9a4e7f14610751578063a001ecdd1461078e578063a3a49361146107bf578063a457c2d71461082b576101c2565b80638da5cb5b1461065557806391fe5a641461069657806395d89b41146106c1576101c2565b80633950935111610159578063689dc62d11610133578063689dc62d1461053357806370a08231146105ae578063715018a6146106135780637ede036d1461062a576101c2565b806339509351146104345780633a27b764146104a557806349bd5a5e146104f2576101c2565b806318160ddd1161019557806318160ddd1461030957806323b872dd1461033457806328d2bc91146103c5578063313ce56714610406576101c2565b806306fdde03146101c7578063095ea7b3146102575780631694505e146102c8576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610ab5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021c578082015181840152602081019050610201565b50505050905090810190601f1680156102495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026357600080fd5b506102b06004803603604081101561027a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b57565b60405180821515815260200191505060405180910390f35b3480156102d457600080fd5b506102dd610b75565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031557600080fd5b5061031e610b99565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b506103ad6004803603606081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ba3565b60405180821515815260200191505060405180910390f35b3480156103d157600080fd5b506103da610c7c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041257600080fd5b5061041b610ca2565b604051808260ff16815260200191505060405180910390f35b34801561044057600080fd5b5061048d6004803603604081101561045757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cb9565b60405180821515815260200191505060405180910390f35b3480156104b157600080fd5b506104f0600480360360208110156104c857600080fd5b8101908080356fffffffffffffffffffffffffffffffff169060200190929190505050610d6c565b005b3480156104fe57600080fd5b50610507610ebb565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105ac6004803603606081101561055657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610edf565b005b3480156105ba57600080fd5b506105fd600480360360208110156105d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611141565b6040518082815260200191505060405180910390f35b34801561061f57600080fd5b50610628611189565b005b34801561063657600080fd5b5061063f611314565b6040518082815260200191505060405180910390f35b34801561066157600080fd5b5061066a61131e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a257600080fd5b506106ab611348565b6040518082815260200191505060405180910390f35b3480156106cd57600080fd5b506106d661134e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107165780820151818401526020810190506106fb565b50505050905090810190601f1680156107435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561075d57600080fd5b5061078c6004803603602081101561077457600080fd5b810190808035151590602001909291905050506113f0565b005b34801561079a57600080fd5b506107a3611510565b604051808263ffffffff16815260200191505060405180910390f35b3480156107cb57600080fd5b50610815600480360360608110156107e257600080fd5b8101908080359060200190929190803560ff169060200190929190803563ffffffff169060200190929190505050611526565b6040518082815260200191505060405180910390f35b34801561083757600080fd5b506108846004803603604081101561084e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611565565b60405180821515815260200191505060405180910390f35b3480156108a857600080fd5b506108f5600480360360408110156108bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611632565b60405180821515815260200191505060405180910390f35b34801561091957600080fd5b50610922611650565b604051808260ff16815260200191505060405180910390f35b34801561094757600080fd5b506109aa6004803603604081101561095e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611663565b6040518082815260200191505060405180910390f35b3480156109cc57600080fd5b50610a0c600480360360408110156109e357600080fd5b81019080803560ff169060200190929190803563ffffffff1690602001909291905050506116ea565b005b348015610a1a57600080fd5b50610a5d60048036036020811015610a3157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061183c565b005b348015610a6b57600080fd5b50610a74611a4c565b6040518082815260200191505060405180910390f35b348015610a9657600080fd5b50610a9f611a52565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050905090565b6000610b6b610b64611ae0565b8484611ae8565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b6000610bb0848484611cdf565b610c7184610bbc611ae0565b610c6c85604051806060016040528060288152602001612a5e60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c22611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f649092919063ffffffff16565b611ae8565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900460ff16905090565b6000610d62610cc6611ae0565b84610d5d8560016000610cd7611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a5890919063ffffffff16565b611ae8565b6001905092915050565b610d74611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055507fb20e0f86438dbd4812cee7b24a6696d4dbaa9d3db89c677e731ab7dd738c8bbe8160405180826fffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b7f000000000000000000000000ac992040ef4c054e2ecd4e089f1c23f1e3d07c0e81565b610ee7611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433230207472616e7366657220746f207a65726f2061646472657373000081525060200191505060405180910390fd5b600083905061106682600b54611a5890919063ffffffff16565b600b819055508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110ff57600080fd5b505af1158015611113573d6000803e3d6000fd5b505050506040513d602081101561112957600080fd5b81019080805190602001909291905050505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611191611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600954905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113e65780601f106113bb576101008083540402835291602001916113e6565b820191906000526020600020905b8154815290600101906020018083116113c957829003601f168201915b5050505050905090565b6113f8611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b600660159054906101000a900463ffffffff1681565b600061155c60028460ff1601600a0a61154e8463ffffffff168761202490919063ffffffff16565b6120aa90919063ffffffff16565b90509392505050565b6000611628611572611ae0565b8461162385604051806060016040528060258152602001612af2602591396001600061159c611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f649092919063ffffffff16565b611ae8565b6001905092915050565b600061164661163f611ae0565b8484611cdf565b6001905092915050565b600660149054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116f2611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81600660146101000a81548160ff021916908360ff16021790555080600660156101000a81548163ffffffff021916908363ffffffff1602179055507f460fa919625630f734b5d86356a2511f134b6df313c793ca09e0399de8d933a08282604051808360ff1681526020018263ffffffff1681526020019250505060405180910390a15050565b611844611ae0565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561198c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806129cf6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600c5481565b600080828401905083811015611ad6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ace6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806129f56022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b611ce761131e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611d525750611d2361131e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611da857507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611dbd57611db88383836120f4565b611f5f565b6302faf080811115611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612aab6023913960400191505060405180910390fd5b6000611e2530611141565b90506000620f4240600760009054906101000a90046fffffffffffffffffffffffffffffffff16026fffffffffffffffffffffffffffffffff168210159050808015611e7e5750600d60009054906101000a900460ff16155b8015611ed657507f000000000000000000000000ac992040ef4c054e2ecd4e089f1c23f1e3d07c0e73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eee5750600d60019054906101000a900460ff165b15611efd57611efc826123b5565b5b6000611f2b84600660149054906101000a900460ff16600660159054906101000a900463ffffffff16611526565b90506000611f42828661249790919063ffffffff16565b9050611f4f8730846120f4565b611f5a8787836120f4565b505050505b505050565b6000838311158290612011576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fd6578082015181840152602081019050611fbb565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083141561203757600090506120a4565b600082840290508284828161204857fe5b041461209f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a3d6021913960400191505060405180910390fd5b809150505b92915050565b60006120ec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124e1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561217a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a866025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129ac6023913960400191505060405180910390fd5b61220b8383836125a7565b61227681604051806060016040528060268152602001612a17602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f649092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612309816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a5890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6001600d60006101000a81548160ff02191690831515021790555060006123e66002836120aa90919063ffffffff16565b905060006123fd828461249790919063ffffffff16565b9050600047905061240d836125ac565b6000612422824761249790919063ffffffff16565b905061242e838261285a565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405180848152602001838152602001828152602001935050505060405180910390a1505050506000600d60006101000a81548160ff02191690831515021790555050565b60006124d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f64565b905092915050565b6000808311829061258d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612552578082015181840152602081019050612537565b50505050905090810190601f16801561257f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161259957fe5b049050809150509392505050565b505050565b6060600267ffffffffffffffff811180156125c657600080fd5b506040519080825280602002602001820160405280156125f55781602001602082028036833780820191505090505b509050308160008151811061260657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126a657600080fd5b505afa1580156126ba573d6000803e3d6000fd5b505050506040513d60208110156126d057600080fd5b8101908080519060200190929190505050816001815181106126ee57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612753307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ae8565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156128155780820151818401526020810190506127fa565b505050509050019650505050505050600060405180830381600087803b15801561283e57600080fd5b505af1158015612852573d6000803e3d6000fd5b505050505050565b612885307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ae8565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806128cf61131e565b426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561295457600080fd5b505af1158015612968573d6000803e3d6000fd5b50505050506040513d606081101561297f57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373596f75277265207472616e7366657272696e6720746f6f206d616e7920746f6b656e7345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220696dca294a037456a8f917b147e05ba2d886f84af05c713dea8bd3b0be3c904264736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000012a05f2000000000000000000000000000000000000000000000000000000000000000001
-----Decoded View---------------
Arg [0] : _uniswapV2Router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _feeDecimals (uint8): 0
Arg [2] : _feePercentage (uint32): 5
Arg [3] : _minTokensBeforeSwap (uint128): 5000000000
Arg [4] : _swapAndLiquifyEnabled (bool): True
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 000000000000000000000000000000000000000000000000000000012a05f200
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode Sourcemap
29567:7110:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18936:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19802:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29644:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19219:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19981:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29747:69;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19126:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20310:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;35926:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;29702:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;36344:328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19327:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6551:148;;;;;;;;;;;;;:::i;:::-;;31530:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5909:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;30010:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19029:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36164:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;29858:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;35353:274;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20536:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19456:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29827:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19641:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;35674:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6854;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30050:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30092:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18936:83;18973:13;19006:5;18999:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18936:83;:::o;19802:169::-;19885:4;19902:39;19911:12;:10;:12::i;:::-;19925:7;19934:6;19902:8;:39::i;:::-;19959:4;19952:11;;19802:169;;;;:::o;29644:51::-;;;:::o;19219:100::-;19272:7;19299:12;;19292:19;;19219:100;:::o;19981:321::-;20087:4;20104:36;20114:6;20122:9;20133:6;20104:9;:36::i;:::-;20151:121;20160:6;20168:12;:10;:12::i;:::-;20182:89;20220:6;20182:89;;;;;;;;;;;;;;;;;:11;:19;20194:6;20182:19;;;;;;;;;;;;;;;:33;20202:12;:10;:12::i;:::-;20182:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20151:8;:121::i;:::-;20290:4;20283:11;;19981:321;;;;;:::o;29747:69::-;;;;;;;;;;;;;:::o;19126:83::-;19167:5;19192:9;;;;;;;;;;;19185:16;;19126:83;:::o;20310:218::-;20398:4;20415:83;20424:12;:10;:12::i;:::-;20438:7;20447:50;20486:10;20447:11;:25;20459:12;:10;:12::i;:::-;20447:25;;;;;;;;;;;;;;;:34;20473:7;20447:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20415:8;:83::i;:::-;20516:4;20509:11;;20310:218;;;;:::o;35926:230::-;6131:12;:10;:12::i;:::-;6121:22;;:6;;;;;;;;;;;:22;;;6113:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36064:20:::1;36042:19;;:42;;;;;;;;;;;;;;;;;;36100:48;36127:20;36100:48;;;;;;;;;;;;;;;;;;;;35926:230:::0;:::o;29702:38::-;;;:::o;36344:328::-;6131:12;:10;:12::i;:::-;6121:22;;:6;;;;;;;;;;;:22;;;6113:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36458:1:::1;36443:17;;:3;:17;;;;36435:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;36505:21;36545:6;36505:47;;36586:33;36611:7;36586:20;;:24;;:33;;;;:::i;:::-;36563:20;:56;;;;36630:5;:14;;;36645:9;;;;;;;;;;;36656:7;36630:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;6191:1;36344:328:::0;;;:::o;19327:119::-;19393:7;19420:9;:18;19430:7;19420:18;;;;;;;;;;;;;;;;19413:25;;19327:119;;;:::o;6551:148::-;6131:12;:10;:12::i;:::-;6121:22;;:6;;;;;;;;;;;:22;;;6113:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6658:1:::1;6621:40;;6642:6;;;;;;;;;;;6621:40;;;;;;;;;;;;6689:1;6672:6;;:19;;;;;;;;;;;;;;;;;;6551:148::o:0;31530:97::-;31578:7;31605:14;;31598:21;;31530:97;:::o;5909:79::-;5947:7;5974:6;;;;;;;;;;;5967:13;;5909:79;:::o;30010:33::-;;;;:::o;19029:87::-;19068:13;19101:7;19094:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19029:87;:::o;36164:174::-;6131:12;:10;:12::i;:::-;6121:22;;:6;;;;;;;;;;;:22;;;6113:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36268:8:::1;36244:21;;:32;;;;;;;;;;;;;;;;;;36292:38;36321:8;36292:38;;;;;;;;;;;;;;;;;;;;36164:174:::0;:::o;29858:27::-;;;;;;;;;;;;;:::o;35353:274::-;35495:14;35531:88;35606:1;35590:12;35582:21;;:25;35577:2;:31;35531:27;35543:14;35531:27;;:7;:11;;:27;;;;:::i;:::-;:31;;:88;;;;:::i;:::-;35522:97;;35353:274;;;;;:::o;20536:269::-;20629:4;20646:129;20655:12;:10;:12::i;:::-;20669:7;20678:96;20717:15;20678:96;;;;;;;;;;;;;;;;;:11;:25;20690:12;:10;:12::i;:::-;20678:25;;;;;;;;;;;;;;;:34;20704:7;20678:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;20646:8;:129::i;:::-;20793:4;20786:11;;20536:269;;;;:::o;19456:175::-;19542:4;19559:42;19569:12;:10;:12::i;:::-;19583:9;19594:6;19559:9;:42::i;:::-;19619:4;19612:11;;19456:175;;;;:::o;29827:24::-;;;;;;;;;;;;;:::o;19641:151::-;19730:7;19757:11;:18;19769:5;19757:18;;;;;;;;;;;;;;;:27;19776:7;19757:27;;;;;;;;;;;;;;;;19750:34;;19641:151;;;;:::o;35674:244::-;6131:12;:10;:12::i;:::-;6121:22;;:6;;;;;;;;;;;:22;;;6113:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35801:12:::1;35787:11;;:26;;;;;;;;;;;;;;;;;;35840:14;35824:13;;:30;;;;;;;;;;;;;;;;;;35870:40;35881:12;35895:14;35870:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;35674:244:::0;;:::o;6854:::-;6131:12;:10;:12::i;:::-;6121:22;;:6;;;;;;;;;;;:22;;;6113:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6963:1:::1;6943:22;;:8;:22;;;;6935:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7053:8;7024:38;;7045:6;;;;;;;;;;;7024:38;;;;;;;;;;;;7082:8;7073:6;;:17;;;;;;;;;;;;;;;;;;6854:244:::0;:::o;30050:35::-;;;;:::o;30092:33::-;;;;:::o;7372:181::-;7430:7;7450:9;7466:1;7462;:5;7450:17;;7491:1;7486;:6;;7478:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7544:1;7537:8;;;7372:181;;;;:::o;5054:106::-;5107:15;5142:10;5135:17;;5054:106;:::o;22180:346::-;22299:1;22282:19;;:5;:19;;;;22274:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22380:1;22361:21;;:7;:21;;;;22353:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22464:6;22434:11;:18;22446:5;22434:18;;;;;;;;;;;;;;;:27;22453:7;22434:27;;;;;;;;;;;;;;;:36;;;;22502:7;22486:32;;22495:5;22486:32;;;22511:6;22486:32;;;;;;;;;;;;;;;;;;22180:346;;;:::o;31637:1602::-;32065:7;:5;:7::i;:::-;32057:15;;:4;:15;;;:32;;;;32082:7;:5;:7::i;:::-;32076:13;;:2;:13;;;32057:32;:66;;;;32107:15;32093:30;;:2;:30;;;32057:66;32053:1179;;;32140:33;32156:4;32162:2;32166:6;32140:15;:33::i;:::-;32053:1179;;;32221:12;32211:6;:22;;32202:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32294:28;32325:24;32343:4;32325:9;:24::i;:::-;32294:55;;32360:24;32434:7;32412:19;;;;;;;;;;;:29;32387:55;;:20;:55;;32360:82;;32471:19;:53;;;;;32508:16;;;;;;;;;;;32507:17;32471:53;:97;;;;;32555:13;32541:27;;:10;:27;;;;32471:97;:135;;;;;32585:21;;;;;;;;;;;32471:135;32453:228;;;32633:36;32648:20;32633:14;:36::i;:::-;32453:228;32761:20;32784:103;32816:6;32837:11;;;;;;;;;;;32863:13;;;;;;;;;;;32784:17;:103::i;:::-;32761:126;;33052:24;33079;33090:12;33079:6;:10;;:24;;;;:::i;:::-;33052:51;;33116:50;33132:4;33146;33153:12;33116:15;:50::i;:::-;33177:43;33193:4;33199:2;33203:16;33177:15;:43::i;:::-;32053:1179;;;;;31637:1602;;;:::o;8275:192::-;8361:7;8394:1;8389;:6;;8397:12;8381:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8421:9;8437:1;8433;:5;8421:17;;8458:1;8451:8;;;8275:192;;;;;:::o;8726:471::-;8784:7;9034:1;9029;:6;9025:47;;;9059:1;9052:8;;;;9025:47;9084:9;9100:1;9096;:5;9084:17;;9129:1;9124;9120;:5;;;;;;:10;9112:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9188:1;9181:8;;;8726:471;;;;;:::o;9673:132::-;9731:7;9758:39;9762:1;9765;9758:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;9751:46;;9673:132;;;;:::o;20815:539::-;20939:1;20921:20;;:6;:20;;;;20913:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21023:1;21002:23;;:9;:23;;;;20994:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21078:47;21099:6;21107:9;21118:6;21078:20;:47::i;:::-;21158:71;21180:6;21158:71;;;;;;;;;;;;;;;;;:9;:17;21168:6;21158:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;21138:9;:17;21148:6;21138:17;;;;;;;;;;;;;;;:91;;;;21263:32;21288:6;21263:9;:20;21273:9;21263:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;21240:9;:20;21250:9;21240:20;;;;;;;;;;;;;;;:55;;;;21328:9;21311:35;;21320:6;21311:35;;;21339:6;21311:35;;;;;;;;;;;;;;;;;;20815:539;;;:::o;33247:980::-;30570:4;30551:16;;:23;;;;;;;;;;;;;;;;;;33383:12:::1;33398:27;33423:1;33398:20;:24;;:27;;;;:::i;:::-;33383:42;;33436:17;33456:30;33481:4;33456:20;:24;;:30;;;;:::i;:::-;33436:50;;33764:22;33789:21;33764:46;;33855:22;33872:4;33855:16;:22::i;:::-;34011:18;34032:41;34058:14;34032:21;:25;;:41;;;;:::i;:::-;34011:62;;34123:35;34136:9;34147:10;34123:12;:35::i;:::-;34176:43;34191:4;34197:10;34209:9;34176:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30585:1;;;;30616:5:::0;30597:16;;:24;;;;;;;;;;;;;;;;;;33247:980;:::o;7836:136::-;7894:7;7921:43;7925:1;7928;7921:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7914:50;;7836:136;;;;:::o;10301:278::-;10387:7;10419:1;10415;:5;10422:12;10407:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10446:9;10462:1;10458;:5;;;;;;10446:17;;10570:1;10563:8;;;10301:278;;;;;:::o;22632:92::-;;;;:::o;34235:589::-;34361:21;34399:1;34385:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34361:40;;34430:4;34412;34417:1;34412:7;;;;;;;;;;;;;:23;;;;;;;;;;;34456:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34446:4;34451:1;34446:7;;;;;;;;;;;;;:32;;;;;;;;;;;34491:62;34508:4;34523:15;34541:11;34491:8;:62::i;:::-;34592:15;:66;;;34673:11;34699:1;34743:4;34770;34790:15;34592:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34235:589;;:::o;34832:513::-;34980:62;34997:4;35012:15;35030:11;34980:8;:62::i;:::-;35085:15;:31;;;35124:9;35157:4;35177:11;35203:1;35246;35289:7;:5;:7::i;:::-;35311:15;35085:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34832:513;;:::o
Swarm Source
ipfs://696dca294a037456a8f917b147e05ba2d886f84af05c713dea8bd3b0be3c9042
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.