Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 DOPE
Holders
150
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,149,423.450833948509902251 DOPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Dope
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** * dddddddddddddddddoodddddddd[ WE ARE ]dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoc:;:coddddd ddddddddddddl:,'....';ldddddddddddddddddddddddddddddddddddddddddddddddddddddlc::::ccloooool:'. .,ldddddddd ddddddddddc'. .';::,. .:odddddddddddddoolllooddddddddool:;,'''..'',;:lodl;....... ..... .;ldo;. .cddddddd ddddddddo;. 'cl;;xkldd, .:oddddddddl:'..''''.':ldddl;.....''',''.. .'..;dkOOOkxolc:;;::ld0XXNWNo. .ldddddd dddddddo, .od,..;'. ,kKx, 'ldddddl,..:ok000Odc'.,lo' ;odO0KKXXXKK0kdc' ,kXXXXXXXXXXXXXXXXXXXXXXNM0' .cdddddd ddddddd; .dOo' ':..;oOXX0l. .:ddo:..cOXXXXXXNWN0o..,..dNNXXXXXXKxd0XXX0,.dXXXXXXXXXXXXXXXXXXXXXXXWWd. .ldddddd ddddddl. cKx, ,d,.,cxXXXXXx. .:o; .xXXXXXXXXXNWWNk, .xNXXXXXXXx..oXXXXo.:KXXXXXXXXXXXXXXXXXXXXXNKo. .:ddddddd ddddddc..xXXOokXo:loOXXXXXXk' . .xXXXXXXXXXXXXNWNO, .xNXx::cldc .xNXXXKd,,codx0XXXXXKkdxkOOOkxo:. 'cdddddddd ddddddl..xXXXXXXX0; 'xXXXXXNk. .oXXXkd0XXXXXXXXWWNx. lKKx;'... .:xOXXXWXd. ;OXXXXO' ...... ..,coddddddddd ddddddo' :KXXXXXXXx. .xXXXXNNd. .kXXXd''oKXXXXOll0WK: .lkXXXKKd. '...;oOWWX: 'OXXXXx. ..;' .:loooooddddddddd dddddddl..oXXK0XXXK: .kXXXNWK: oXXXXO:.,kXOl. .kWNx. .lXXXXKc ;0Kxc..oNWK; .oXXXXX0dox0N0'.,,......';lddddd ddddddddc..xN0okXXXl ;0XXXNWx. ,0XXXXKo..,..,o0NWW0, ;KXXXx.'kXXXX00NWNd. ;0XXXXXX00KX0o. .,:cc:,. .,lddd ddddddol:. .:::kXXXo .dXXXNW0' .kNK0xo;. .dKXXXWNK: ,0XX0:,xXXXXXXNWXd. .dXXXXXX0;.',..'cx0XXXXNNKo. .:dd ddddl;..';codx0XXXXl .. lXXXNWK; .x0:...'c:..lKXXXNNK: ,0XXX00XXXXXNWNk:. 'OXXXXXXx. .;xKXXXXXXXXNWWO' .cd ddo;..;x0XXXXXXXXX0; '. lXXXNW0, .xKdldOKXK: 'OXXXXX0, ;KXXXXXXXX0kdl,. .;. ;KXXXXXXl..lOXXXXXXXXXXXXNWWd. ,o do, .xXXXXXXXXXXXXx..'..xXXXNNx. 'OXXXXXXXX0xkKXXXXXx. 'OXXXXXXX0; .',col. cXXXXXXX0k0XXXXXXXXKO0XXXNWWx. 'o d; .xXXXXXXXXXXXXXd. . cKXXNNO, cXXXXXXXXXXXXXXXXXK: oXXXXXXNNo. ,odddl. lXXXXXXXXXXXXXXX0o:cd0XXXNWXl ,d o' ,0XXXXXXXXXXXXX0l,,o0XXXXk' :KXXXXXXXXXXXXXXXXo. 'OXXXXXNWK, :dddc. cXXXXXXXXXXXXX0l.'l0XXXXXNKl. .ld o' .xXXXXXXXXXXXXXXXXXXXXXOc. .. .lKXXXXXXXXXXXXXXd. .. ;0XXXXNWNc 'oddl. 'OXXXXXXXXXXKd' :0XXXXKOo, 'ldd dc. .o0XXXXXXXXXXXXXXXX0x:. 'co; ,xKXXXXXXXXXX0c. ,oc,. 'xXXXNMX; 'oddd: ,kKXXXXXXKd, .'...,;:;'. .:oddd ddc. .,:ldxkOOOOOkxol;. 'coddo:. ,lkO0000kd:. .;odddc. ,lxOkc. ;ddddo:. .,coddoc' .cdoc;'....,;coddddd dddo:,.. ..... ..;ldddddddo;. ..... .,lddddddo:. ,oddddddo:'. .'codddddddoddddddddddd dddddddol:;,''.....',;clddddddddddddoc;'.....',coddddddddddoc;,'..';coddddddddddoc::::codddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddddooooddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd *----------------------- [ https://dopextreme.com ] ----- [https://t.me/dopextreme ] ------------------------* */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.17; library Address { /** * */ function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } 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" ); } 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"); (bool success, bytes memory returndata) = target.call{value: weiValue}( data ); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } 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 ); } interface IUniswapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Dope is IERC20, Ownable { using Address for address; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Dope"; string constant _symbol = "DOPE"; uint8 constant _decimals = 18; uint256 _totalSupply = 1_000_000_000 * (10**_decimals); uint256 _maxBuyTxAmount = (_totalSupply ) / 50; uint256 _maxSellTxAmount = (_totalSupply ) / 100; uint256 _maxWallet = (_totalSupply) / 50; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public _isExcludedFromFees; mapping(address => bool) public _isExcludedFromMaxTx; mapping(address => bool) public _isExcludedFromMaxWallet; uint256 buyMarketingFee = 50; uint256 buyLiquidityFee = 20; uint256 buyTotalFee = buyMarketingFee + buyLiquidityFee; uint256 sellMarketingFee = 50; uint256 sellLiquidityFee = 20; uint256 sellTotalFee = sellMarketingFee + sellLiquidityFee; uint256 public swapThreshold = _totalSupply / 200; uint256 constant feeDenominator = 1000; address payable public liquidityFeeWallet = payable(0x050c5Ccd4c8C254E84f7Dd1d57a76f8AcDdC6dD9); address payable public marketingWallet = payable(0x050c5Ccd4c8C254E84f7Dd1d57a76f8AcDdC6dD9); IUniswapRouter public router; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ; mapping(address => bool) automatedMarketMakerPairs; address public pair; uint256 public launchedAt; uint256 public deadBlocks; bool tradingEnabled = false; bool buyFeeEnabled = true; bool sellFeeEnabled = true; bool public swapEnabled = false; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event UpdateFees(uint256 buyMarketingFee, uint256 buyLiquidityFee, uint256 sellMarketingFee, uint256 sellLiquidityFee); event UpdateFeeReceivers(address indexed newMarketingWallet, address newLiquditiyFeeWallet); event UpdateRouter(address indexed newRouterAddress); event UpdateMaxTx(uint256 newMaxBuyTxAmount, uint256 newMaxSellTxAmount); event UpdateMaxWallet(uint256 newMaxWallet); event UpdateAMM(address indexed newAutomatedMarketMaker, bool status); event UpdateSwapBackSettings(bool enabled, uint256 denominator); event UpdateExcludedFromFees(address indexed holder, bool exempt); event UpdateExcludedFromMaxWallet(address indexed holder, bool exempt); event UpdateExcludedFromMaxTx(address indexed holder, bool exempt); event FundsDistributed( uint256 marketingETH, uint256 liquidityETH, uint256 liquidityTokens ); error InvalidTransfer(string erroString); error InvalidTransferAmount(string errorString); error InsufficientBalance(); error InvalidSwapBackSettings(string errorString); error InvalidFees(string errorString); error InvalidMaxWallet(string errorString); error InvalidMaxTxAmount(string errorString); error InvalidOpenTrading(); constructor() { router = IUniswapRouter(routerAddress); pair = IUniswapFactory(router.factory()).createPair( router.WETH(), address(this) ); automatedMarketMakerPairs[pair] = true; _allowances[owner()][routerAddress] = type(uint256).max; _allowances[address(this)][routerAddress] = type(uint256).max; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[pair] = true; _isExcludedFromMaxWallet[pair] = true; _isExcludedFromMaxWallet[DEAD] = true; _isExcludedFromMaxWallet[address(this)] = true; _isExcludedFromMaxTx[address(this)] = true; _isExcludedFromMaxTx[owner()] = true; _isExcludedFromMaxTx[routerAddress] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0), owner(), _totalSupply); } receive() external payable {} function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool){ if(sender == address(0)) revert InvalidTransfer("ERC20: transfer from 0x0"); if( amount <= 0) revert InvalidTransferAmount("Amount must be more than 0"); if(_balances[sender] < amount) revert InsufficientBalance(); if(!inSwap){ if( sender != owner() && !tradingEnabled ) revert InvalidTransfer("Trading not open yet."); checkTxLimit(sender, recipient, amount); bool isSell = automatedMarketMakerPairs[recipient]; bool isBuy = automatedMarketMakerPairs[sender]; if(isBuy) { checkWalletLimit(recipient, amount); if( !_isExcludedFromFees[recipient] && buyFeeEnabled){ uint256 feeAmount = (amount * getTotalFee(!isBuy)) / feeDenominator ; amount -= feeAmount; _balances[address(this)] += feeAmount; emit Transfer(sender, address(this), feeAmount); } } else if (isSell) { if( !_isExcludedFromFees[sender] && sellFeeEnabled){ uint256 feeAmount = (amount * getTotalFee(isSell)) / feeDenominator ; amount -= feeAmount; _balances[address(this)] += feeAmount; emit Transfer(sender, address(this), feeAmount); } if (shouldSwapBack(isSell)) { swapBack(); } return _basicTransfer(sender, recipient,amount); } // for buy and wallet-to-wallet transfers check max wallet checkWalletLimit(recipient, amount); } return _basicTransfer(sender, recipient, amount); } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } function checkWalletLimit(address recipient, uint256 amount) internal view { if (!_isExcludedFromMaxWallet[recipient]) { uint256 walletLimit = _maxWallet; if( _balances[recipient] + amount > walletLimit ) revert InvalidTransfer("Max Wallet exceeded"); } } function checkTxLimit( address sender, address recipient, uint256 amount ) internal view { if( !_isExcludedFromMaxTx[sender]) { if( amount > _maxBuyTxAmount && automatedMarketMakerPairs[sender] ) revert InvalidTransfer("Buy TX Limit Exceeded"); else if( amount > _maxSellTxAmount && automatedMarketMakerPairs[recipient] ) revert InvalidTransfer( "Sell TX Litimt Exceeded"); } } function getTotalFee(bool isSell) public view returns (uint256) { if (launchedAt + deadBlocks >= block.number) { return feeDenominator - 1; } if(isSell) return sellTotalFee; return buyTotalFee; } function shouldSwapBack(bool isSell) internal view returns (bool) { return !automatedMarketMakerPairs[msg.sender] && !inSwap && swapEnabled && isSell && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 amountToSwap = swapThreshold; if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)]; uint256 amountToLiquify = ((amountToSwap * sellLiquidityFee) / 2) / sellTotalFee; amountToSwap -= amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance - balanceBefore; uint256 totalETHFee = sellTotalFee - (sellLiquidityFee / 2); uint256 amountETHLiquidity = ((amountETH * sellLiquidityFee) / 2) / totalETHFee; uint256 amountETHMarketing = amountETH - amountETHLiquidity; if (amountETHMarketing > 0) marketingWallet.transfer(amountETHMarketing); if (amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, liquidityFeeWallet, block.timestamp ); } emit FundsDistributed( amountETHMarketing, amountETHLiquidity, amountToLiquify ); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return _decimals; } function symbol() external pure returns (string memory) { return _symbol; } function name() external pure returns (string memory) { return _name; } function getOwner() external view returns (address) { return owner(); } function getMaxTxs() external view returns (uint256 maxBuyTxAmount, uint256 maxSellTxAmount ) { return (_maxBuyTxAmount / (10**_decimals), _maxSellTxAmount / (10**_decimals)) ; } function getMaxWallet() external view returns (uint256) { return _maxWallet / (10**_decimals); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function sweep(uint256 amountPercentage, address adr) external onlyOwner { uint256 amountETH = address(this).balance; payable(adr).transfer((amountETH * amountPercentage) / 100); } function sweepTokens(uint256 amountPercentage, address trappedToken) external onlyOwner { IERC20 tokenIERC20 = IERC20(trappedToken); uint256 amountToken = (tokenIERC20.balanceOf(address(this)) * amountPercentage) / 100; tokenIERC20.transfer(marketingWallet, amountToken); } function openTrading( uint256 _deadBlocks ) external onlyOwner { if(tradingEnabled || _deadBlocks > 10) revert InvalidOpenTrading(); swapEnabled = true; deadBlocks = _deadBlocks; tradingEnabled = true; launchedAt = block.number; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function manualSwapBack() external onlyOwner(){ swapBack(); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function addAutomatedMarketMaker(address lp, bool isPool) external onlyOwner { automatedMarketMakerPairs[lp] = isPool; if(isPool){ _isExcludedFromFees[lp] = true; } else{ _isExcludedFromFees[lp] = false; } emit UpdateAMM(lp, isPool); } function setMaxTxAmount( uint256 divisorBuy, uint256 divisorSell ) external onlyOwner { if( divisorSell <= 0 || divisorBuy > 200 || divisorBuy <= 0 || divisorSell > 200) revert InvalidMaxTxAmount("Max Tx must be > 0.5% total supply"); _maxBuyTxAmount = _totalSupply / divisorBuy; _maxSellTxAmount = _totalSupply / divisorSell; emit UpdateMaxTx(_maxBuyTxAmount, _maxSellTxAmount); } function setMaxWallet(uint256 divisor) external onlyOwner { if( divisor <= 0 || divisor > 200) revert InvalidMaxWallet("Max wallet must be > 0.5% total supply"); _maxWallet = _totalSupply / divisor; emit UpdateMaxWallet(_maxWallet); } function setIsExcludedFromFees(address holder, bool exempt) external onlyOwner { _isExcludedFromFees[holder] = exempt; emit UpdateExcludedFromFees(holder, exempt); } function setIsExcludedFromMaxTx(address holder, bool exempt) external onlyOwner { _isExcludedFromMaxTx[holder] = exempt; emit UpdateExcludedFromMaxTx(holder, exempt); } function setIsExcludedFromMaxWallet(address holder, bool exempt) external onlyOwner { _isExcludedFromMaxWallet[holder] = exempt; emit UpdateExcludedFromMaxWallet(holder, exempt); } function setFees( uint256 _buyMarketingFee, uint256 _buyLiquidityFee, uint256 _sellMarketingFee, uint256 _sellLiquidityFee, bool _buyFeeEnabled, bool _sellFeeEnabled ) external onlyOwner { buyLiquidityFee = _buyLiquidityFee; buyMarketingFee = _buyMarketingFee; buyTotalFee = _buyMarketingFee + _buyLiquidityFee; sellLiquidityFee = _sellLiquidityFee; sellMarketingFee = _buyMarketingFee; sellTotalFee = _sellMarketingFee + _sellLiquidityFee; buyFeeEnabled = _buyFeeEnabled; sellFeeEnabled = _sellFeeEnabled; if(buyTotalFee + sellTotalFee > 250 ) revert InvalidFees("Total fees must be lower than 25"); emit UpdateFees( buyMarketingFee, buyLiquidityFee, sellMarketingFee, sellLiquidityFee); } function setFeeReceivers( address _liquidityFeeWallet, address _marketingWallet ) external onlyOwner { liquidityFeeWallet = payable(_liquidityFeeWallet); marketingWallet = payable(_marketingWallet); emit UpdateFeeReceivers(liquidityFeeWallet, marketingWallet); } function setSwapBackSettings( bool _enabled, uint256 _denominator ) external onlyOwner { if( _denominator < 100 || _denominator > 10000) revert InvalidSwapBackSettings("Max threshod 1% , mininum 0.01%"); swapEnabled = _enabled; swapThreshold = _totalSupply / _denominator; } function updateRouter( address newRouterAddress) external onlyOwner { router = IUniswapRouter(newRouterAddress); emit UpdateRouter(newRouterAddress); } function getCirculatingSupply() external view returns (uint256) { return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO)); } function getFees() external view returns ( uint256 _buyMarketingFee, uint256 _buyLiquidityFee, uint256 _sellMarketingFee, uint256 _sellLiquidityFee, uint256 _feeDenominator ) { return ( buyMarketingFee, buyLiquidityFee, sellMarketingFee, sellLiquidityFee, feeDenominator ); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"string","name":"errorString","type":"string"}],"name":"InvalidFees","type":"error"},{"inputs":[{"internalType":"string","name":"errorString","type":"string"}],"name":"InvalidMaxTxAmount","type":"error"},{"inputs":[{"internalType":"string","name":"errorString","type":"string"}],"name":"InvalidMaxWallet","type":"error"},{"inputs":[],"name":"InvalidOpenTrading","type":"error"},{"inputs":[{"internalType":"string","name":"errorString","type":"string"}],"name":"InvalidSwapBackSettings","type":"error"},{"inputs":[{"internalType":"string","name":"erroString","type":"string"}],"name":"InvalidTransfer","type":"error"},{"inputs":[{"internalType":"string","name":"errorString","type":"string"}],"name":"InvalidTransferAmount","type":"error"},{"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":"uint256","name":"marketingETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAutomatedMarketMaker","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"UpdateAMM","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"exempt","type":"bool"}],"name":"UpdateExcludedFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"exempt","type":"bool"}],"name":"UpdateExcludedFromMaxTx","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"exempt","type":"bool"}],"name":"UpdateExcludedFromMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newMarketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"newLiquditiyFeeWallet","type":"address"}],"name":"UpdateFeeReceivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyMarketingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellMarketingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"}],"name":"UpdateFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxBuyTxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxSellTxAmount","type":"uint256"}],"name":"UpdateMaxTx","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"UpdateMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"UpdateRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"UpdateSwapBackSettings","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addAutomatedMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFees","outputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTxs","outputs":[{"internalType":"uint256","name":"maxBuyTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxSellTxAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"isSell","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"},{"internalType":"bool","name":"_buyFeeEnabled","type":"bool"},{"internalType":"bool","name":"_sellFeeEnabled","type":"bool"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"divisorBuy","type":"uint256"},{"internalType":"uint256","name":"divisorSell","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"trappedToken","type":"address"}],"name":"sweepTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b031990811661dead17909155600280549091169055620000326012600a620005a9565b6200004290633b9aca00620005c1565b6003556032600354620000569190620005db565b60045560646003546200006a9190620005db565b60055560326003546200007e9190620005db565b6006556032600c8190556014600d8190556200009a91620005fe565b600e556032600f81905560146010819055620000b691620005fe565b60115560c8600354620000ca9190620005db565b601255601380546001600160a01b031990811673050c5ccd4c8c254e84f7dd1d57a76f8acddc6dd990811790925560148054821690921790915560168054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055601b805463ffffffff1916620101001790553480156200014257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601654601580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000207919062000614565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000269573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028f919062000614565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000302919062000614565b601880546001600160a01b0319166001600160a01b039290921691821790556000908152601760205260408120805460ff1916600117905560001990600890620003546000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120601680548416835290855283822095909555308082526008855283822086548416835285528382206000199055815483168252600985528382208054600160ff1991821681179092558284528584208054821683179055601880548616855286852080548316841790555485168452600b8752858420805482168317905581548516845285842080548216831790559183528483208054831682179055600a86528483208054831682179055825484168352848320805483168217905595548316825283822080549091169095179094556003548454821685526007845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200063f565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004eb578160001904821115620004cf57620004cf62000494565b80851615620004dd57918102915b93841c9390800290620004af565b509250929050565b6000826200050457506001620005a3565b816200051357506000620005a3565b81600181146200052c5760028114620005375762000557565b6001915050620005a3565b60ff8411156200054b576200054b62000494565b50506001821b620005a3565b5060208310610133831016604e8410600b84101617156200057c575081810a620005a3565b620005888383620004aa565b80600019048211156200059f576200059f62000494565b0290505b92915050565b6000620005ba60ff841683620004f3565b9392505050565b8082028115828204841417620005a357620005a362000494565b600082620005f957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005a357620005a362000494565b6000602082840312156200062757600080fd5b81516001600160a01b0381168114620005ba57600080fd5b612449806200064f6000396000f3fe60806040526004361061026b5760003560e01c80639770393611610144578063d1d7d7ef116100b6578063e0bf7fd11161007a578063e0bf7fd1146107ae578063f1f3bca3146107de578063f2fde38b146107fe578063f887ea401461081e578063f951212e1461083e578063fabb0b4f1461085e57600080fd5b8063d1d7d7ef146106b7578063d2138a6d146106e7578063db8d55f114610707578063dd62ed3e14610748578063df20fd491461078e57600080fd5b8063aaa867a011610108578063aaa867a014610601578063adf1869314610621578063bf56b37114610641578063c851cc3214610657578063cbf9b84b14610677578063d16336491461069757600080fd5b806397703936146105615780639f5bf42514610581578063a4b45c00146105a1578063a8aa1b31146105c1578063a9059cbb146105e157600080fd5b8063571ac8b0116101dd57806370a08231116101a157806370a0823114610493578063715018a6146104c957806375f0a874146104de578063893d20e8146105165780638da5cb5b1461051657806395d89b411461053457600080fd5b8063571ac8b0146103fd5780635d0044ca1461041d57806365acb9a91461043d57806366eb37851461045d5780636ddd17131461047257600080fd5b8063129951b11161022f578063129951b11461034b57806318160ddd1461036d57806323b872dd146103825780632b112e49146103a2578063313ce567146103b75780633b9a30a1146103d357600080fd5b80630445b6671461027757806306fdde03146102a057806307866291146102d6578063095ea7b3146103165780630fa604e41461033657600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60125481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b50604080518082019091526004815263446f706560e01b60208201525b6040516102979190611f10565b3480156102e257600080fd5b506103066102f1366004611f76565b600a6020526000908152604090205460ff1681565b6040519015158152602001610297565b34801561032257600080fd5b50610306610331366004611f93565b610874565b34801561034257600080fd5b5061028d6108e1565b34801561035757600080fd5b5061036b610366366004611fcd565b610901565b005b34801561037957600080fd5b5060035461028d565b34801561038e57600080fd5b5061030661039d36600461202b565b610a3e565b3480156103ae57600080fd5b5061028d610ad3565b3480156103c357600080fd5b5060405160128152602001610297565b3480156103df57600080fd5b506103e8610b14565b60408051928352602083019190915201610297565b34801561040957600080fd5b50610306610418366004611f76565b610b51565b34801561042957600080fd5b5061036b61043836600461206c565b610b5f565b34801561044957600080fd5b5061036b610458366004612085565b610c3c565b34801561046957600080fd5b5061036b610d49565b34801561047e57600080fd5b50601b54610306906301000000900460ff1681565b34801561049f57600080fd5b5061028d6104ae366004611f76565b6001600160a01b031660009081526007602052604090205490565b3480156104d557600080fd5b5061036b610d7d565b3480156104ea57600080fd5b506014546104fe906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561052257600080fd5b506000546001600160a01b03166104fe565b34801561054057600080fd5b50604080518082019091526004815263444f504560e01b60208201526102c9565b34801561056d57600080fd5b506013546104fe906001600160a01b031681565b34801561058d57600080fd5b5061036b61059c3660046120a7565b610df1565b3480156105ad57600080fd5b5061036b6105bc3660046120d7565b610f21565b3480156105cd57600080fd5b506018546104fe906001600160a01b031681565b3480156105ed57600080fd5b506103066105fc366004611f93565b610fb3565b34801561060d57600080fd5b5061036b61061c366004612105565b610fc0565b34801561062d57600080fd5b5061036b61063c366004612105565b611042565b34801561064d57600080fd5b5061028d60195481565b34801561066357600080fd5b5061036b610672366004611f76565b6110c4565b34801561068357600080fd5b5061036b6106923660046120a7565b611138565b3480156106a357600080fd5b5061036b6106b236600461206c565b6111b4565b3480156106c357600080fd5b506103066106d2366004611f76565b600b6020526000908152604090205460ff1681565b3480156106f357600080fd5b5061036b610702366004612105565b61122d565b34801561071357600080fd5b50600c54600d54600f546010546040805194855260208501939093529183015260608201526103e8608082015260a001610297565b34801561075457600080fd5b5061028d6107633660046120d7565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561079a57600080fd5b5061036b6107a9366004612133565b6112af565b3480156107ba57600080fd5b506103066107c9366004611f76565b60096020526000908152604090205460ff1681565b3480156107ea57600080fd5b5061028d6107f9366004612151565b611363565b34801561080a57600080fd5b5061036b610819366004611f76565b61139e565b34801561082a57600080fd5b506015546104fe906001600160a01b031681565b34801561084a57600080fd5b5061036b610859366004612105565b611488565b34801561086a57600080fd5b5061028d601a5481565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108cf9086815260200190565b60405180910390a35060015b92915050565b60006108ef6012600a612268565b6006546108fc9190612277565b905090565b6000546001600160a01b031633146109345760405162461bcd60e51b815260040161092b90612299565b60405180910390fd5b600d859055600c86905561094885876122ce565b600e556010839055600f86905561095f83856122ce565b6011819055601b805462ffff0019166101008515150262ff00001916176201000084151502179055600e5460fa91610996916122ce565b11156109e55760405163344f058b60e11b815260206004820181905260248201527f546f74616c2066656573206d757374206265206c6f776572207468616e203235604482015260640161092b565b600c54600d54600f546010546040805194855260208501939093529183015260608201527f5c3aee3d65f7eb02cded951435d06b06ef307bc7f57b98975c4a41dc116e711c9060800160405180910390a1505050505050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610abe576001600160a01b0384166000908152600860209081526040808320338452909152902054610a999083906122e1565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610ac9848484611565565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610b07916122ce565b6003546108fc91906122e1565b600080610b236012600a612268565b600454610b309190612277565b610b3c6012600a612268565b600554610b499190612277565b915091509091565b60006108db82600019610874565b6000546001600160a01b03163314610b895760405162461bcd60e51b815260040161092b90612299565b801580610b96575060c881115b15610bf357604051631f3ab60b60e31b815260206004820152602660248201527f4d61782077616c6c6574206d757374206265203e20302e352520746f74616c20604482015265737570706c7960d01b606482015260840161092b565b80600354610c019190612277565b60068190556040519081527fdd4ef051c4c49233ec73abfc2ee1514725d2a818fbcde46ee5d34a49034922f99060200160405180910390a150565b6000546001600160a01b03163314610c665760405162461bcd60e51b815260040161092b90612299565b801580610c73575060c882115b80610c7c575081155b80610c87575060c881115b15610ce0576040516316a844b960e31b815260206004820152602260248201527f4d6178205478206d757374206265203e20302e352520746f74616c20737570706044820152616c7960f01b606482015260840161092b565b81600354610cee9190612277565b600455600354610cff908290612277565b60058190556004546040517fa4a0c48c7ad1c3f2f625f4aa3fad8cc71425ca0146c7eb495b494886c8317e9092610d3d928252602082015260400190565b60405180910390a15050565b6000546001600160a01b03163314610d735760405162461bcd60e51b815260040161092b90612299565b610d7b6118f1565b565b6000546001600160a01b03163314610da75760405162461bcd60e51b815260040161092b90612299565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e1b5760405162461bcd60e51b815260040161092b90612299565b6040516370a0823160e01b8152306004820152819060009060649085906001600160a01b038516906370a0823190602401602060405180830381865afa158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d91906122f4565b610e97919061230d565b610ea19190612277565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a9190612324565b5050505050565b6000546001600160a01b03163314610f4b5760405162461bcd60e51b815260040161092b90612299565b601380546001600160a01b038481166001600160a01b03199283168117909355601480549185169190921681179091556040519081527f3a8707a38eb82a54cc7e314a4f6a1b57f8728dea75f05950a9310f71f4068a57906020015b60405180910390a25050565b6000610acc338484611565565b6000546001600160a01b03163314610fea5760405162461bcd60e51b815260040161092b90612299565b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915591519182527f9f7d06cb9b03b01b6fb89199a37bd0825030434f6a9f909100d20dfeeb4770879101610fa7565b6000546001600160a01b0316331461106c5760405162461bcd60e51b815260040161092b90612299565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f16789932756b3e9ad3678ce73d5dccbe519b382cda6ac6ae21909510c316a2f39101610fa7565b6000546001600160a01b031633146110ee5760405162461bcd60e51b815260040161092b90612299565b601580546001600160a01b0319166001600160a01b0383169081179091556040517fd5f5b4d616f94f5e10b2955392470790b3fdde7c0c0b68bd1f3ea635e2caa8d790600090a250565b6000546001600160a01b031633146111625760405162461bcd60e51b815260040161092b90612299565b476001600160a01b0382166108fc606461117c868561230d565b6111869190612277565b6040518115909202916000818181858888f193505050501580156111ae573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146111de5760405162461bcd60e51b815260040161092b90612299565b601b5460ff16806111ef5750600a81115b1561120c57604051621ef9a960e21b815260040160405180910390fd5b601b8054601a9290925563ff0000ff19909116630100000117905543601955565b6000546001600160a01b031633146112575760405162461bcd60e51b815260040161092b90612299565b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915591519182527f65b985db66ed938ec9e38480d030ac6a175ffe7aaf389975ae0c333ca002d3539101610fa7565b6000546001600160a01b031633146112d95760405162461bcd60e51b815260040161092b90612299565b60648110806112e9575061271081115b15611337576040516310e59e8d60e11b815260206004820152601f60248201527f4d6178207468726573686f64203125202c206d696e696e756d20302e30312500604482015260640161092b565b601b805463ff000000191663010000008415150217905560035461135c908290612277565b6012555050565b600043601a5460195461137691906122ce565b10611388576108db60016103e86122e1565b811561139657505060115490565b5050600e5490565b6000546001600160a01b031633146113c85760405162461bcd60e51b815260040161092b90612299565b6001600160a01b03811661142d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161092b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114b25760405162461bcd60e51b815260040161092b90612299565b6001600160a01b0382166000908152601760205260409020805460ff19168215801591909117909155611507576001600160a01b0382166000908152600960205260409020805460ff19166001179055611528565b6001600160a01b0382166000908152600960205260409020805460ff191690555b816001600160a01b03167fb1e99c778afe37c48795fa4ca546217351f2f8f668639c904f7f3a1697dfd45e82604051610fa7911515815260200190565b60006001600160a01b0384166115be576040516341b02f3b60e01b815260206004820152601860248201527f45524332303a207472616e736665722066726f6d203078300000000000000000604482015260640161092b565b6000821161160f5760405163ecb60f7760e01b815260206004820152601a60248201527f416d6f756e74206d757374206265206d6f7265207468616e2030000000000000604482015260640161092b565b6001600160a01b03841660009081526007602052604090205482111561164857604051631e9acf1760e31b815260040160405180910390fd5b601b54640100000000900460ff166118e6576000546001600160a01b0385811691161480159061167b5750601b5460ff16155b156116c1576040516341b02f3b60e01b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b604482015260640161092b565b6116cc848484611c4e565b6001600160a01b0380841660009081526017602052604080822054928716825290205460ff918216911680156117da576117068585611d59565b6001600160a01b03851660009081526009602052604090205460ff161580156117365750601b54610100900460ff165b156117d55760006103e861174a8315611363565b611754908761230d565b61175e9190612277565b905061176a81866122e1565b3060009081526007602052604081208054929750839290919061178e9084906122ce565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b6118d9565b81156118d9576001600160a01b03861660009081526009602052604090205460ff161580156118115750601b5462010000900460ff165b156118af5760006103e861182484611363565b61182e908761230d565b6118389190612277565b905061184481866122e1565b306000908152600760205260408120805492975083929091906118689084906122ce565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b6118b882611deb565b156118c5576118c56118f1565b6118d0868686611e56565b92505050610acc565b6118e38585611d59565b50505b610ac9848484611e56565b601b805464ff000000001916640100000000179055601254306000908152600760205260409020548111156119325750306000908152600760205260409020545b6000601154600260105484611947919061230d565b6119519190612277565b61195b9190612277565b905061196781836122e1565b604080516002808252606082018352929450600092909160208301908036833701905050905030816000815181106119a1576119a1612341565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612357565b81600181518110611a3157611a31612341565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac94790611a7b908790600090879030904290600401612374565b600060405180830381600087803b158015611a9557600080fd5b505af1158015611aa9573d6000803e3d6000fd5b5050505060008147611abb91906122e1565b905060006002601054611ace9190612277565b601154611adb91906122e1565b9050600081600260105485611af0919061230d565b611afa9190612277565b611b049190612277565b90506000611b1282856122e1565b90508015611b56576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b54573d6000803e3d6000fd5b505b8615611bf55760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015611bcc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bf191906123e5565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a15050601b805464ff0000000019169055505050505050565b6001600160a01b0383166000908152600a602052604090205460ff16611d545760045481118015611c9757506001600160a01b03831660009081526017602052604090205460ff165b15611cdd576040516341b02f3b60e01b8152602060048201526015602482015274109d5e48151608131a5b5a5d08115e18d959591959605a1b604482015260640161092b565b60055481118015611d0657506001600160a01b03821660009081526017602052604090205460ff165b15611d54576040516341b02f3b60e01b815260206004820152601760248201527f53656c6c205458204c6974696d74204578636565646564000000000000000000604482015260640161092b565b505050565b6001600160a01b0382166000908152600b602052604090205460ff16611de7576006546001600160a01b0383166000908152600760205260409020548190611da29084906122ce565b1115611d54576040516341b02f3b60e01b815260206004820152601360248201527213585e0815d85b1b195d08195e18d959591959606a1b604482015260640161092b565b5050565b3360009081526017602052604081205460ff16158015611e165750601b54640100000000900460ff16155b8015611e2b5750601b546301000000900460ff165b8015611e345750815b80156108db575060125430600090815260076020526040902054101592915050565b6001600160a01b038316600090815260076020526040812054611e7a9083906122e1565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611eaa9083906122ce565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611efe9086815260200190565b60405180910390a35060019392505050565b600060208083528351808285015260005b81811015611f3d57858101830151858201604001528201611f21565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611f7357600080fd5b50565b600060208284031215611f8857600080fd5b8135610acc81611f5e565b60008060408385031215611fa657600080fd5b8235611fb181611f5e565b946020939093013593505050565b8015158114611f7357600080fd5b60008060008060008060c08789031215611fe657600080fd5b86359550602087013594506040870135935060608701359250608087013561200d81611fbf565b915060a087013561201d81611fbf565b809150509295509295509295565b60008060006060848603121561204057600080fd5b833561204b81611f5e565b9250602084013561205b81611f5e565b929592945050506040919091013590565b60006020828403121561207e57600080fd5b5035919050565b6000806040838503121561209857600080fd5b50508035926020909101359150565b600080604083850312156120ba57600080fd5b8235915060208301356120cc81611f5e565b809150509250929050565b600080604083850312156120ea57600080fd5b82356120f581611f5e565b915060208301356120cc81611f5e565b6000806040838503121561211857600080fd5b823561212381611f5e565b915060208301356120cc81611fbf565b6000806040838503121561214657600080fd5b8235611fb181611fbf565b60006020828403121561216357600080fd5b8135610acc81611fbf565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156121bf5781600019048211156121a5576121a561216e565b808516156121b257918102915b93841c9390800290612189565b509250929050565b6000826121d6575060016108db565b816121e3575060006108db565b81600181146121f957600281146122035761221f565b60019150506108db565b60ff8411156122145761221461216e565b50506001821b6108db565b5060208310610133831016604e8410600b8410161715612242575081810a6108db565b61224c8383612184565b80600019048211156122605761226061216e565b029392505050565b6000610acc60ff8416836121c7565b60008261229457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156108db576108db61216e565b818103818111156108db576108db61216e565b60006020828403121561230657600080fd5b5051919050565b80820281158282048414176108db576108db61216e565b60006020828403121561233657600080fd5b8151610acc81611fbf565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561236957600080fd5b8151610acc81611f5e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123c45784516001600160a01b03168352938301939183019160010161239f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123fa57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122009d486cbfe1889548d2c69830a84150bde3403ed624ab8cc5ad49536acc6b48064736f6c63430008110033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c80639770393611610144578063d1d7d7ef116100b6578063e0bf7fd11161007a578063e0bf7fd1146107ae578063f1f3bca3146107de578063f2fde38b146107fe578063f887ea401461081e578063f951212e1461083e578063fabb0b4f1461085e57600080fd5b8063d1d7d7ef146106b7578063d2138a6d146106e7578063db8d55f114610707578063dd62ed3e14610748578063df20fd491461078e57600080fd5b8063aaa867a011610108578063aaa867a014610601578063adf1869314610621578063bf56b37114610641578063c851cc3214610657578063cbf9b84b14610677578063d16336491461069757600080fd5b806397703936146105615780639f5bf42514610581578063a4b45c00146105a1578063a8aa1b31146105c1578063a9059cbb146105e157600080fd5b8063571ac8b0116101dd57806370a08231116101a157806370a0823114610493578063715018a6146104c957806375f0a874146104de578063893d20e8146105165780638da5cb5b1461051657806395d89b411461053457600080fd5b8063571ac8b0146103fd5780635d0044ca1461041d57806365acb9a91461043d57806366eb37851461045d5780636ddd17131461047257600080fd5b8063129951b11161022f578063129951b11461034b57806318160ddd1461036d57806323b872dd146103825780632b112e49146103a2578063313ce567146103b75780633b9a30a1146103d357600080fd5b80630445b6671461027757806306fdde03146102a057806307866291146102d6578063095ea7b3146103165780630fa604e41461033657600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60125481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b50604080518082019091526004815263446f706560e01b60208201525b6040516102979190611f10565b3480156102e257600080fd5b506103066102f1366004611f76565b600a6020526000908152604090205460ff1681565b6040519015158152602001610297565b34801561032257600080fd5b50610306610331366004611f93565b610874565b34801561034257600080fd5b5061028d6108e1565b34801561035757600080fd5b5061036b610366366004611fcd565b610901565b005b34801561037957600080fd5b5060035461028d565b34801561038e57600080fd5b5061030661039d36600461202b565b610a3e565b3480156103ae57600080fd5b5061028d610ad3565b3480156103c357600080fd5b5060405160128152602001610297565b3480156103df57600080fd5b506103e8610b14565b60408051928352602083019190915201610297565b34801561040957600080fd5b50610306610418366004611f76565b610b51565b34801561042957600080fd5b5061036b61043836600461206c565b610b5f565b34801561044957600080fd5b5061036b610458366004612085565b610c3c565b34801561046957600080fd5b5061036b610d49565b34801561047e57600080fd5b50601b54610306906301000000900460ff1681565b34801561049f57600080fd5b5061028d6104ae366004611f76565b6001600160a01b031660009081526007602052604090205490565b3480156104d557600080fd5b5061036b610d7d565b3480156104ea57600080fd5b506014546104fe906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561052257600080fd5b506000546001600160a01b03166104fe565b34801561054057600080fd5b50604080518082019091526004815263444f504560e01b60208201526102c9565b34801561056d57600080fd5b506013546104fe906001600160a01b031681565b34801561058d57600080fd5b5061036b61059c3660046120a7565b610df1565b3480156105ad57600080fd5b5061036b6105bc3660046120d7565b610f21565b3480156105cd57600080fd5b506018546104fe906001600160a01b031681565b3480156105ed57600080fd5b506103066105fc366004611f93565b610fb3565b34801561060d57600080fd5b5061036b61061c366004612105565b610fc0565b34801561062d57600080fd5b5061036b61063c366004612105565b611042565b34801561064d57600080fd5b5061028d60195481565b34801561066357600080fd5b5061036b610672366004611f76565b6110c4565b34801561068357600080fd5b5061036b6106923660046120a7565b611138565b3480156106a357600080fd5b5061036b6106b236600461206c565b6111b4565b3480156106c357600080fd5b506103066106d2366004611f76565b600b6020526000908152604090205460ff1681565b3480156106f357600080fd5b5061036b610702366004612105565b61122d565b34801561071357600080fd5b50600c54600d54600f546010546040805194855260208501939093529183015260608201526103e8608082015260a001610297565b34801561075457600080fd5b5061028d6107633660046120d7565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561079a57600080fd5b5061036b6107a9366004612133565b6112af565b3480156107ba57600080fd5b506103066107c9366004611f76565b60096020526000908152604090205460ff1681565b3480156107ea57600080fd5b5061028d6107f9366004612151565b611363565b34801561080a57600080fd5b5061036b610819366004611f76565b61139e565b34801561082a57600080fd5b506015546104fe906001600160a01b031681565b34801561084a57600080fd5b5061036b610859366004612105565b611488565b34801561086a57600080fd5b5061028d601a5481565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108cf9086815260200190565b60405180910390a35060015b92915050565b60006108ef6012600a612268565b6006546108fc9190612277565b905090565b6000546001600160a01b031633146109345760405162461bcd60e51b815260040161092b90612299565b60405180910390fd5b600d859055600c86905561094885876122ce565b600e556010839055600f86905561095f83856122ce565b6011819055601b805462ffff0019166101008515150262ff00001916176201000084151502179055600e5460fa91610996916122ce565b11156109e55760405163344f058b60e11b815260206004820181905260248201527f546f74616c2066656573206d757374206265206c6f776572207468616e203235604482015260640161092b565b600c54600d54600f546010546040805194855260208501939093529183015260608201527f5c3aee3d65f7eb02cded951435d06b06ef307bc7f57b98975c4a41dc116e711c9060800160405180910390a1505050505050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610abe576001600160a01b0384166000908152600860209081526040808320338452909152902054610a999083906122e1565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610ac9848484611565565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610b07916122ce565b6003546108fc91906122e1565b600080610b236012600a612268565b600454610b309190612277565b610b3c6012600a612268565b600554610b499190612277565b915091509091565b60006108db82600019610874565b6000546001600160a01b03163314610b895760405162461bcd60e51b815260040161092b90612299565b801580610b96575060c881115b15610bf357604051631f3ab60b60e31b815260206004820152602660248201527f4d61782077616c6c6574206d757374206265203e20302e352520746f74616c20604482015265737570706c7960d01b606482015260840161092b565b80600354610c019190612277565b60068190556040519081527fdd4ef051c4c49233ec73abfc2ee1514725d2a818fbcde46ee5d34a49034922f99060200160405180910390a150565b6000546001600160a01b03163314610c665760405162461bcd60e51b815260040161092b90612299565b801580610c73575060c882115b80610c7c575081155b80610c87575060c881115b15610ce0576040516316a844b960e31b815260206004820152602260248201527f4d6178205478206d757374206265203e20302e352520746f74616c20737570706044820152616c7960f01b606482015260840161092b565b81600354610cee9190612277565b600455600354610cff908290612277565b60058190556004546040517fa4a0c48c7ad1c3f2f625f4aa3fad8cc71425ca0146c7eb495b494886c8317e9092610d3d928252602082015260400190565b60405180910390a15050565b6000546001600160a01b03163314610d735760405162461bcd60e51b815260040161092b90612299565b610d7b6118f1565b565b6000546001600160a01b03163314610da75760405162461bcd60e51b815260040161092b90612299565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e1b5760405162461bcd60e51b815260040161092b90612299565b6040516370a0823160e01b8152306004820152819060009060649085906001600160a01b038516906370a0823190602401602060405180830381865afa158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d91906122f4565b610e97919061230d565b610ea19190612277565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af1158015610ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a9190612324565b5050505050565b6000546001600160a01b03163314610f4b5760405162461bcd60e51b815260040161092b90612299565b601380546001600160a01b038481166001600160a01b03199283168117909355601480549185169190921681179091556040519081527f3a8707a38eb82a54cc7e314a4f6a1b57f8728dea75f05950a9310f71f4068a57906020015b60405180910390a25050565b6000610acc338484611565565b6000546001600160a01b03163314610fea5760405162461bcd60e51b815260040161092b90612299565b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915591519182527f9f7d06cb9b03b01b6fb89199a37bd0825030434f6a9f909100d20dfeeb4770879101610fa7565b6000546001600160a01b0316331461106c5760405162461bcd60e51b815260040161092b90612299565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f16789932756b3e9ad3678ce73d5dccbe519b382cda6ac6ae21909510c316a2f39101610fa7565b6000546001600160a01b031633146110ee5760405162461bcd60e51b815260040161092b90612299565b601580546001600160a01b0319166001600160a01b0383169081179091556040517fd5f5b4d616f94f5e10b2955392470790b3fdde7c0c0b68bd1f3ea635e2caa8d790600090a250565b6000546001600160a01b031633146111625760405162461bcd60e51b815260040161092b90612299565b476001600160a01b0382166108fc606461117c868561230d565b6111869190612277565b6040518115909202916000818181858888f193505050501580156111ae573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146111de5760405162461bcd60e51b815260040161092b90612299565b601b5460ff16806111ef5750600a81115b1561120c57604051621ef9a960e21b815260040160405180910390fd5b601b8054601a9290925563ff0000ff19909116630100000117905543601955565b6000546001600160a01b031633146112575760405162461bcd60e51b815260040161092b90612299565b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915591519182527f65b985db66ed938ec9e38480d030ac6a175ffe7aaf389975ae0c333ca002d3539101610fa7565b6000546001600160a01b031633146112d95760405162461bcd60e51b815260040161092b90612299565b60648110806112e9575061271081115b15611337576040516310e59e8d60e11b815260206004820152601f60248201527f4d6178207468726573686f64203125202c206d696e696e756d20302e30312500604482015260640161092b565b601b805463ff000000191663010000008415150217905560035461135c908290612277565b6012555050565b600043601a5460195461137691906122ce565b10611388576108db60016103e86122e1565b811561139657505060115490565b5050600e5490565b6000546001600160a01b031633146113c85760405162461bcd60e51b815260040161092b90612299565b6001600160a01b03811661142d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161092b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114b25760405162461bcd60e51b815260040161092b90612299565b6001600160a01b0382166000908152601760205260409020805460ff19168215801591909117909155611507576001600160a01b0382166000908152600960205260409020805460ff19166001179055611528565b6001600160a01b0382166000908152600960205260409020805460ff191690555b816001600160a01b03167fb1e99c778afe37c48795fa4ca546217351f2f8f668639c904f7f3a1697dfd45e82604051610fa7911515815260200190565b60006001600160a01b0384166115be576040516341b02f3b60e01b815260206004820152601860248201527f45524332303a207472616e736665722066726f6d203078300000000000000000604482015260640161092b565b6000821161160f5760405163ecb60f7760e01b815260206004820152601a60248201527f416d6f756e74206d757374206265206d6f7265207468616e2030000000000000604482015260640161092b565b6001600160a01b03841660009081526007602052604090205482111561164857604051631e9acf1760e31b815260040160405180910390fd5b601b54640100000000900460ff166118e6576000546001600160a01b0385811691161480159061167b5750601b5460ff16155b156116c1576040516341b02f3b60e01b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b604482015260640161092b565b6116cc848484611c4e565b6001600160a01b0380841660009081526017602052604080822054928716825290205460ff918216911680156117da576117068585611d59565b6001600160a01b03851660009081526009602052604090205460ff161580156117365750601b54610100900460ff165b156117d55760006103e861174a8315611363565b611754908761230d565b61175e9190612277565b905061176a81866122e1565b3060009081526007602052604081208054929750839290919061178e9084906122ce565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b6118d9565b81156118d9576001600160a01b03861660009081526009602052604090205460ff161580156118115750601b5462010000900460ff165b156118af5760006103e861182484611363565b61182e908761230d565b6118389190612277565b905061184481866122e1565b306000908152600760205260408120805492975083929091906118689084906122ce565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b6118b882611deb565b156118c5576118c56118f1565b6118d0868686611e56565b92505050610acc565b6118e38585611d59565b50505b610ac9848484611e56565b601b805464ff000000001916640100000000179055601254306000908152600760205260409020548111156119325750306000908152600760205260409020545b6000601154600260105484611947919061230d565b6119519190612277565b61195b9190612277565b905061196781836122e1565b604080516002808252606082018352929450600092909160208301908036833701905050905030816000815181106119a1576119a1612341565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612357565b81600181518110611a3157611a31612341565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac94790611a7b908790600090879030904290600401612374565b600060405180830381600087803b158015611a9557600080fd5b505af1158015611aa9573d6000803e3d6000fd5b5050505060008147611abb91906122e1565b905060006002601054611ace9190612277565b601154611adb91906122e1565b9050600081600260105485611af0919061230d565b611afa9190612277565b611b049190612277565b90506000611b1282856122e1565b90508015611b56576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b54573d6000803e3d6000fd5b505b8615611bf55760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015611bcc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bf191906123e5565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a15050601b805464ff0000000019169055505050505050565b6001600160a01b0383166000908152600a602052604090205460ff16611d545760045481118015611c9757506001600160a01b03831660009081526017602052604090205460ff165b15611cdd576040516341b02f3b60e01b8152602060048201526015602482015274109d5e48151608131a5b5a5d08115e18d959591959605a1b604482015260640161092b565b60055481118015611d0657506001600160a01b03821660009081526017602052604090205460ff165b15611d54576040516341b02f3b60e01b815260206004820152601760248201527f53656c6c205458204c6974696d74204578636565646564000000000000000000604482015260640161092b565b505050565b6001600160a01b0382166000908152600b602052604090205460ff16611de7576006546001600160a01b0383166000908152600760205260409020548190611da29084906122ce565b1115611d54576040516341b02f3b60e01b815260206004820152601360248201527213585e0815d85b1b195d08195e18d959591959606a1b604482015260640161092b565b5050565b3360009081526017602052604081205460ff16158015611e165750601b54640100000000900460ff16155b8015611e2b5750601b546301000000900460ff165b8015611e345750815b80156108db575060125430600090815260076020526040902054101592915050565b6001600160a01b038316600090815260076020526040812054611e7a9083906122e1565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611eaa9083906122ce565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611efe9086815260200190565b60405180910390a35060019392505050565b600060208083528351808285015260005b81811015611f3d57858101830151858201604001528201611f21565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611f7357600080fd5b50565b600060208284031215611f8857600080fd5b8135610acc81611f5e565b60008060408385031215611fa657600080fd5b8235611fb181611f5e565b946020939093013593505050565b8015158114611f7357600080fd5b60008060008060008060c08789031215611fe657600080fd5b86359550602087013594506040870135935060608701359250608087013561200d81611fbf565b915060a087013561201d81611fbf565b809150509295509295509295565b60008060006060848603121561204057600080fd5b833561204b81611f5e565b9250602084013561205b81611f5e565b929592945050506040919091013590565b60006020828403121561207e57600080fd5b5035919050565b6000806040838503121561209857600080fd5b50508035926020909101359150565b600080604083850312156120ba57600080fd5b8235915060208301356120cc81611f5e565b809150509250929050565b600080604083850312156120ea57600080fd5b82356120f581611f5e565b915060208301356120cc81611f5e565b6000806040838503121561211857600080fd5b823561212381611f5e565b915060208301356120cc81611fbf565b6000806040838503121561214657600080fd5b8235611fb181611fbf565b60006020828403121561216357600080fd5b8135610acc81611fbf565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156121bf5781600019048211156121a5576121a561216e565b808516156121b257918102915b93841c9390800290612189565b509250929050565b6000826121d6575060016108db565b816121e3575060006108db565b81600181146121f957600281146122035761221f565b60019150506108db565b60ff8411156122145761221461216e565b50506001821b6108db565b5060208310610133831016604e8410600b8410161715612242575081810a6108db565b61224c8383612184565b80600019048211156122605761226061216e565b029392505050565b6000610acc60ff8416836121c7565b60008261229457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156108db576108db61216e565b818103818111156108db576108db61216e565b60006020828403121561230657600080fd5b5051919050565b80820281158282048414176108db576108db61216e565b60006020828403121561233657600080fd5b8151610acc81611fbf565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561236957600080fd5b8151610acc81611f5e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123c45784516001600160a01b03168352938301939183019160010161239f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123fa57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122009d486cbfe1889548d2c69830a84150bde3403ed624ab8cc5ad49536acc6b48064736f6c63430008110033
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.