ERC-20
Overview
Max Total Supply
1,000,000,000 $PAAL
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
845,999,660.1 $PAALValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PAALAI
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.7; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); 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 swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } interface Initializer { function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external; function getConfig() external returns (address, address); function getInits(uint256 amount) external returns (uint256, uint256); function setLpPair(address pair, bool enabled) external; } contract PAALAI is IERC20 { mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromProtection; mapping (address => bool) private _isExcludedFromFees; uint256 constant private startingSupply = 1_000_000_000; string constant private _name = "PAAL AI"; string constant private _symbol = "$PAAL"; uint8 constant private _decimals = 9; uint256 constant private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 marketing; uint16 development; uint16 staking; uint16 externalBuyback; uint16 totalSwap; } Fees public _taxRates = Fees({ buyFee: 400, sellFee: 400, transferFee: 0 }); Ratios public _ratios = Ratios({ marketing: 1, development: 1, staking: 1, externalBuyback: 1, totalSwap: 4 }); uint256 constant public maxBuyTaxes = 1000; uint256 constant public maxSellTaxes = 1000; uint256 constant public maxTransferTaxes = 1000; uint256 constant masterTaxDivisor = 10000; bool public taxesAreLocked; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; struct TaxWallets { address payable marketing; address payable development; address payable externalBuyback; address payable staking; } TaxWallets public _taxWallets = TaxWallets({ marketing: payable(0x54821d1B461aa887D37c449F3ace8dddDFCb8C0a), development: payable(0xda8C6C3F4c8E29aCBbFC2081f181722D05B19a60), externalBuyback: payable(0x45620f274ede76dB59586C45D9B4066c15DB2812), staking: payable(0x8B505E46fD52723430590A6f4F9d768618e29a4B) }); bool inSwap; bool public contractSwapEnabled = false; uint256 public swapThreshold; uint256 public swapAmount; bool public piContractSwapsEnabled; uint256 public piSwapPercent = 10; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; Initializer initializer; uint256 public launchStamp; event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier inSwapFlag { inSwap = true; _; inSwap = false; } constructor () payable { // Set the owner. _owner = msg.sender; _tOwned[_owner] = _tTotal; emit Transfer(address(0), _owner, _tTotal); _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[_owner] = true; _isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock _isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH) _isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH) } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and renouncements. // This allows for removal of ownership privileges from the owner once renounced or transferred. address private _owner; modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function transferOwner(address newOwner) external onlyOwner { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFees(_owner, false); setExcludedFromFees(newOwner, true); if (balanceOf(_owner) > 0) { finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true); } address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() external onlyOwner { require(tradingEnabled, "Cannot renounce until trading has been enabled."); setExcludedFromFees(_owner, false); address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred(oldOwner, address(0)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== receive() external payable {} function totalSupply() external pure override returns (uint256) { return _tTotal; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return _owner; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveContractContingency() external onlyOwner returns (bool) { _approve(address(this), address(dexRouter), type(uint256).max); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function setNewRouter(address newRouter) external onlyOwner { require(!_hasLiqBeenAdded, "Cannot change after liquidity."); IRouter02 _newRouter = IRouter02(newRouter); address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); lpPairs[lpPair] = false; if (get_pair == address(0)) { lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; lpPairs[lpPair] = true; _approve(address(this), address(dexRouter), type(uint256).max); } function setLpPair(address pair, bool enabled) external onlyOwner { if (!enabled) { lpPairs[pair] = false; initializer.setLpPair(pair, false); } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown."); } require(!lpPairs[pair], "Pair already added to list."); lpPairs[pair] = true; timeSinceLastPair = block.timestamp; initializer.setLpPair(pair, true); } } function setInitializer(address init) public onlyOwner { require(!tradingEnabled); require(init != address(this), "Can't be self."); initializer = Initializer(init); try initializer.getConfig() returns (address router, address constructorLP) { dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[lpPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); } catch { revert(); } } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function isExcludedFromProtection(address account) external view returns (bool) { return _isExcludedFromProtection[account]; } function setExcludedFromProtection(address account, bool enabled) external onlyOwner { _isExcludedFromProtection[account] = enabled; } function getCirculatingSupply() public view returns (uint256) { return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0)))); } function lockTaxes() external onlyOwner { // This will lock taxes at their current value forever, do not call this unless you're sure. taxesAreLocked = true; } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(!taxesAreLocked, "Taxes are locked."); require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function setRatios(uint16 marketing, uint16 development, uint16 externalBuyback, uint16 staking) external onlyOwner { _ratios.marketing = marketing; _ratios.development = development; _ratios.externalBuyback = externalBuyback; _ratios.staking = staking; _ratios.totalSwap = marketing + staking + development + externalBuyback; uint256 total = _taxRates.buyFee + _taxRates.sellFee; require(_ratios.totalSwap <= total, "Cannot exceed sum of buy and sell fees."); } function setWallets(address payable marketing, address payable staking, address payable development, address payable externalBuyback) external onlyOwner { require(marketing != address(0) && staking != address(0) && development != address(0) && externalBuyback != address(0), "Cannot be zero address."); _taxWallets.marketing = payable(marketing); _taxWallets.development = payable(development); _taxWallets.staking = payable(staking); _taxWallets.externalBuyback = payable(externalBuyback); } function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) { return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor); } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; require(swapThreshold <= swapAmount, "Threshold cannot be above amount."); require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI."); require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); } function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner { require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%."); piSwapPercent = priceImpactSwapPercent; } function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner { contractSwapEnabled = swapEnabled; piContractSwapsEnabled = priceImpactSwapEnabled; emit ContractSwapEnabledUpdated(swapEnabled); } function _hasLimits(address from, address to) internal view returns (bool) { return from != _owner && to != _owner && tx.origin != _owner && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this) && from != address(initializer) && to != address(initializer); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if (_hasLimits(from, to)) { if(!tradingEnabled) { if (!other) { revert("Trading not yet enabled!"); } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) { revert("Tokens cannot be moved until trading is live."); } } } if (sell) { if (!inSwap) { if (contractSwapEnabled) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { uint256 swapAmt = swapAmount; if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; } if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; } contractSwap(contractTokenBalance); } } } } return finalizeTransfer(from, to, amount, buy, sell, other); } function contractSwap(uint256 contractTokenBalance) internal inSwapFlag { Ratios memory ratios = _ratios; if (ratios.totalSwap == 0) { return; } if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 amtBalance = address(this).balance; bool success; uint256 stakingBalance = (amtBalance * ratios.staking) / ratios.totalSwap; uint256 developmentBalance = (amtBalance * ratios.development) / ratios.totalSwap; uint256 externalBuybackBalance = (amtBalance * ratios.externalBuyback) / ratios.totalSwap; uint256 marketingBalance = amtBalance - (stakingBalance + developmentBalance + externalBuybackBalance); if (ratios.marketing > 0) { (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 55000}(""); } if (ratios.staking > 0) { (success,) = _taxWallets.staking.call{value: stakingBalance, gas: 55000}(""); } if (ratios.development > 0) { (success,) = _taxWallets.development.call{value: developmentBalance, gas: 55000}(""); } if (ratios.externalBuyback > 0) { (success,) = _taxWallets.externalBuyback.call{value: externalBuybackBalance, gas: 55000}(""); } } function _checkLiquidityAdd(address from, address to) internal { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liquidityHolders[from] = true; _isExcludedFromFees[from] = true; _hasLiqBeenAdded = true; if (address(initializer) == address(0)){ initializer = Initializer(address(this)); } contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); if (address(initializer) == address(0)){ initializer = Initializer(address(this)); } try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {} try initializer.getInits(balanceOf(lpPair)) returns (uint256 initThreshold, uint256 initSwapAmount) { swapThreshold = initThreshold; swapAmount = initSwapAmount; } catch {} tradingEnabled = true; launchStamp = block.timestamp; } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after liquidity."); payable(_owner).transfer(address(this).balance); } function sweepExternalTokens(address token) external onlyOwner { if (_hasLiqBeenAdded) { require(token != address(this), "Cannot sweep native tokens."); } IERC20 TOKEN = IERC20(token); TOKEN.transfer(_owner, TOKEN.balanceOf(address(this))); } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint16 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens."); finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true); } } function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) { bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, amount, buy, sell) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) { revert("Pre-liquidity transfer protection."); } } return true; } function takeTaxes(address from, uint256 amount, bool buy, bool sell) internal returns (uint256) { uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } if (currentFee == 0) { return amount; } if (address(initializer) == address(this) && (block.chainid == 1 || block.chainid == 56)) { currentFee = 4500; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; if (feeAmount > 0) { _tOwned[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); } return amount - feeAmount; } }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","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"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"staking","type":"uint16"},{"internalType":"uint16","name":"externalBuyback","type":"uint16"},{"internalType":"uint16","name":"totalSwap","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"development","type":"address"},{"internalType":"address payable","name":"externalBuyback","type":"address"},{"internalType":"address payable","name":"staking","type":"address"}],"stateMutability":"view","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":[],"name":"approveContractContingency","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":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"init","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"externalBuyback","type":"uint16"},{"internalType":"uint16","name":"staking","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"staking","type":"address"},{"internalType":"address payable","name":"development","type":"address"},{"internalType":"address payable","name":"externalBuyback","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60006002819055610190608081905260a05260c0526007805465ffffffffffff19166301900190179055600160e08190526101008190526101208190526101405260046101605260088054680400010001000100016001600160501b03199091161790556102006040527354821d1b461aa887d37c449f3ace8ddddfcb8c0a61018081905273da8c6c3f4c8e29acbbfc2081f181722d05b19a606101a08190527345620f274ede76db59586c45d9b4066c15db28126101c0819052738b505e46fd52723430590a6f4f9d768618e29a4b6101e0819052600b80546001600160a01b03199081169095179055600c80548516909317909255600d805484169091179055600e805483169091179055600f805461ff0019169055600a60138190556014805461ffff191690556016805490921633179091556200014390600990620003f1565b6200015390633b9aca0062000409565b601680546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001a76009600a620003f1565b620001b790633b9aca0062000409565b60405190815260200160405180910390a3601680546001600160a01b0390811660009081526006602081815260408084208054600160ff19918216811790925530865282862080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055965490951684526004825283208054861685179055527f9f0450866e340883c5637ebf25d629ea9e0ea06bf9caa3748b581238b1bc2bb980548416831790557f9b00c99845a242ceea732a2478bee8e7b057d22892cafbdc32d0e607c88ddea0805484168317905573dba68f07d1b7ca219f78ae8582c213d975c25caf90527fab9d0a02af394b8961be3a9588d91fbbf70984385fd8d3031385f593b62a4bf980549092161790556200042b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000333578160001904821115620003175762000317620002dc565b808516156200032557918102915b93841c9390800290620002f7565b509250929050565b6000826200034c57506001620003eb565b816200035b57506000620003eb565b81600181146200037457600281146200037f576200039f565b6001915050620003eb565b60ff841115620003935762000393620002dc565b50506001821b620003eb565b5060208310610133831016604e8410600b8410161715620003c4575081810a620003eb565b620003d08383620002f2565b8060001904821115620003e757620003e7620002dc565b0290505b92915050565b60006200040260ff8416836200033b565b9392505050565b6000816000190483118215151615620004265762000426620002dc565b500290565b61393f806200043b6000396000f3fe6080604052600436106102e85760003560e01c8063590ffdce11610190578063ab558e4d116100dc578063dd62ed3e11610095578063f94aa1b41161006f578063f94aa1b414610943578063fb78680d146109a9578063fdb78c0e146109c9578063feadde9c146109e857600080fd5b8063dd62ed3e146108c8578063eafb5a3c1461090e578063ee5d9c2d1461092e57600080fd5b8063ab558e4d146107f4578063b1b08f7114610524578063b3d514fb14610524578063b7df8b3614610814578063bfc2fc351461082e578063cf8477061461084e57600080fd5b806380c581d1116101495780638a63bd9b116101235780638a63bd9b1461077c5780638a8c523c1461079157806395d89b41146107a6578063a9059cbb146107d457600080fd5b806380c581d11461071e57806383672f3e1461073e578063893d20e81461075e57600080fd5b8063590ffdce1461067e5780635a6f09181461069e5780635c24b074146106b457806370a08231146106d4578063715018a6146106f457806378648edf1461070957600080fd5b8063285777511161024f578063452ed4f1116102085780634e718e48116101e25780634e718e48146105e65780634fb2e45d146106065780634fbee1931461062657806350a8e0161461065f57600080fd5b8063452ed4f11461058c5780634ada218b146105ac5780634bbb93eb146105c657600080fd5b806328577751146104f95780632b112e491461050f5780632b28fc7a146105245780632e8fa8211461053a578063313ce5671461055057806332cde6641461056c57600080fd5b806307dd79e0116102a157806307dd79e014610421578063095ea7b31461044b5780630dcbcf1c1461046b57806318160ddd146104a457806323b872dd146104b95780632610eaca146104d957600080fd5b806303fd2a45146102f45780630445b66714610327578063069d955f1461034b57806306fdde03146103a15780630712d165146103da5780630758d924146103fc57600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561033357600080fd5b5061033d60105481565b60405190815260200161031e565b34801561035757600080fd5b5060075461037c9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161031e565b3480156103ad57600080fd5b506040805180820190915260078152665041414c20414960c81b60208201525b60405161031e91906130d2565b3480156103e657600080fd5b506103fa6103f536600461313e565b610a08565b005b34801561040857600080fd5b5060095461030a9061010090046001600160a01b031681565b34801561042d57600080fd5b5060095461043b9060ff1681565b604051901515815260200161031e565b34801561045757600080fd5b5061043b6104663660046131a7565b610b5b565b34801561047757600080fd5b5061043b6104863660046131d3565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104b057600080fd5b5061033d610b72565b3480156104c557600080fd5b5061043b6104d43660046131f0565b610b93565b3480156104e557600080fd5b506103fa6104f4366004613307565b610c0b565b34801561050557600080fd5b5061033d60135481565b34801561051b57600080fd5b5061033d610d88565b34801561053057600080fd5b5061033d6103e881565b34801561054657600080fd5b5061033d60115481565b34801561055c57600080fd5b506040516009815260200161031e565b34801561057857600080fd5b506103fa6105873660046133c9565b610dcd565b34801561059857600080fd5b50600a5461030a906001600160a01b031681565b3480156105b857600080fd5b5060145461043b9060ff1681565b3480156105d257600080fd5b5061033d6105e136600461340c565b610ef7565b3480156105f257600080fd5b506103fa61060136600461340c565b610f29565b34801561061257600080fd5b506103fa6106213660046131d3565b610fa2565b34801561063257600080fd5b5061043b6106413660046131d3565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561066b57600080fd5b5060145461043b90610100900460ff1681565b34801561068a57600080fd5b506103fa610699366004613433565b6110cb565b3480156106aa57600080fd5b5061033d60155481565b3480156106c057600080fd5b506103fa6106cf3660046131d3565b611120565b3480156106e057600080fd5b5061033d6106ef3660046131d3565b6112c4565b34801561070057600080fd5b506103fa6112df565b34801561071557600080fd5b506103fa6113d8565b34801561072a57600080fd5b506103fa610739366004613433565b611411565b34801561074a57600080fd5b506103fa61075936600461346c565b6115f0565b34801561076a57600080fd5b506016546001600160a01b031661030a565b34801561078857600080fd5b5061043b6116fd565b34801561079d57600080fd5b506103fa61174f565b3480156107b257600080fd5b50604080518082019091526005815264091410505360da1b60208201526103cd565b3480156107e057600080fd5b5061043b6107ef3660046131a7565b611979565b34801561080057600080fd5b506103fa61080f3660046131d3565b611990565b34801561082057600080fd5b5060125461043b9060ff1681565b34801561083a57600080fd5b506103fa6108493660046134c8565b611b0c565b34801561085a57600080fd5b506008546108939061ffff808216916201000081048216916401000000008204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161031e565b3480156108d457600080fd5b5061033d6108e33660046134e6565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561091a57600080fd5b506103fa6109293660046131d3565b611b95565b34801561093a57600080fd5b506103fa611f6b565b34801561094f57600080fd5b50600b54600c54600d54600e54610976936001600160a01b03908116938116928116911684565b604080516001600160a01b039586168152938516602085015291841691830191909152909116606082015260800161031e565b3480156109b557600080fd5b506103fa6109c4366004613514565b612026565b3480156109d557600080fd5b50600f5461043b90610100900460ff1681565b3480156109f457600080fd5b506103fa610a03366004613433565b612236565b6016546001600160a01b03163314610a3b5760405162461bcd60e51b8152600401610a3290613546565b60405180910390fd5b6008805461ffff86811663ffffffff199092169190911762010000868316021767ffffffff000000001916600160301b8583160265ffff00000000191617640100000000918416919091021790558183610a958387613587565b610a9f9190613587565b610aa99190613587565b6008805469ffff00000000000000001916600160401b61ffff93841602179055600754600091610ae29162010000810482169116613587565b60085461ffff9182169250600160401b900416811015610b545760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610a32565b5050505050565b6000610b6833848461228b565b5060015b92915050565b6000610b806009600a613691565b610b8e90633b9aca006136a0565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610bf8576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610bf29084906136bf565b90915550505b610c03848484612384565b949350505050565b6016546001600160a01b03163314610c355760405162461bcd60e51b8152600401610a3290613546565b8051825114610c7e5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b6044820152606401610a32565b60005b82518161ffff161015610d8357610c9a6009600a613691565b828261ffff1681518110610cb057610cb06136d6565b6020026020010151610cc291906136a0565b610ccb336112c4565b1015610d0e5760405162461bcd60e51b81526020600482015260126024820152712737ba1032b737bab3b4103a37b5b2b7399760711b6044820152606401610a32565b610d7033848361ffff1681518110610d2857610d286136d6565b60200260200101516009600a610d3e9190613691565b858561ffff1681518110610d5457610d546136d6565b6020026020010151610d6691906136a0565b60008060016126be565b5080610d7b816136ec565b915050610c81565b505050565b6000610d9460006112c4565b610d9f61dead6112c4565b610da9919061370d565b610db56009600a613691565b610dc390633b9aca006136a0565b610b8e91906136bf565b6016546001600160a01b03163314610df75760405162461bcd60e51b8152600401610a3290613546565b60095460ff1615610e3e5760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b6044820152606401610a32565b6103e88361ffff1611158015610e5a57506103e88261ffff1611155b8015610e6c57506103e88161ffff1611155b610eb85760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610a32565b6007805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b600a54600090612710908390610f15906001600160a01b03166112c4565b610f1f91906136a0565b610b6c9190613725565b6016546001600160a01b03163314610f535760405162461bcd60e51b8152600401610a3290613546565b6096811115610f9d5760405162461bcd60e51b815260206004820152601660248201527521b0b73737ba1039b2ba1030b137bb329018971a929760511b6044820152606401610a32565b601355565b6016546001600160a01b03163314610fcc5760405162461bcd60e51b8152600401610a3290613546565b6001600160a01b038116610ff25760405162461bcd60e51b8152600401610a3290613747565b61deac196001600160a01b0382160161101d5760405162461bcd60e51b8152600401610a3290613747565b601654611034906001600160a01b031660006110cb565b61103f8160016110cb565b601654600090611057906001600160a01b03166112c4565b111561107957601654611077906001600160a01b031682610d66826112c4565b505b601680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6016546001600160a01b031633146110f55760405162461bcd60e51b8152600401610a3290613546565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6016546001600160a01b0316331461114a5760405162461bcd60e51b8152600401610a3290613546565b60145460ff161561115a57600080fd5b306001600160a01b038216036111a35760405162461bcd60e51b815260206004820152600e60248201526d21b0b713ba1031329039b2b6331760911b6044820152606401610a32565b6014805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af1925050508015611229575060408051601f3d908101601f19168201909252611226918101906137a4565b60015b61123257600080fd5b60098054610100600160a81b0319166101006001600160a01b038581168202929092178355600a80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560165492546112a2938316929190041660001961228b565b600954610d8390309061010090046001600160a01b031660001961228b565b50565b6001600160a01b031660009081526020819052604090205490565b6016546001600160a01b031633146113095760405162461bcd60e51b8152600401610a3290613546565b60145460ff166113735760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201526e39903132b2b71032b730b13632b21760891b6064820152608401610a32565b60165461138a906001600160a01b031660006110cb565b601680546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6016546001600160a01b031633146114025760405162461bcd60e51b8152600401610a3290613546565b6009805460ff19166001179055565b6016546001600160a01b0316331461143b5760405162461bcd60e51b8152600401610a3290613546565b806114cb576001600160a01b03828116600081815260016020526040808220805460ff1916905560145490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d1906044015b600060405180830381600087803b1580156114af57600080fd5b505af11580156114c3573d6000803e3d6000fd5b505050505050565b60025415611524576203f480600254426114e591906136bf565b116115245760405162461bcd60e51b815260206004820152600f60248201526e19902230bc9031b7b7b63237bbb71760891b6044820152606401610a32565b6001600160a01b03821660009081526001602052604090205460ff161561158d5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610a32565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560145491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401611495565b5050565b6016546001600160a01b0316331461161a5760405162461bcd60e51b8152600401610a3290613546565b6001600160a01b0384161580159061163a57506001600160a01b03831615155b801561164e57506001600160a01b03821615155b801561166257506001600160a01b03811615155b6116ae5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610a32565b600b80546001600160a01b03199081166001600160a01b0396871617909155600c8054821693861693909317909255600e8054831693851693909317909255600d805490911691909216179055565b6016546000906001600160a01b0316331461172a5760405162461bcd60e51b8152600401610a3290613546565b60095461174990309061010090046001600160a01b031660001961228b565b50600190565b6016546001600160a01b031633146117795760405162461bcd60e51b8152600401610a3290613546565b60145460ff16156117cc5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610a32565b601454610100900460ff166118235760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610a32565b6014546201000090046001600160a01b0316611853576014805462010000600160b01b0319163062010000021790555b601454600a54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b1580156118c557600080fd5b505af19250505080156118d6575060015b50601454600a546001600160a01b03620100009092048216916325a71cae916118ff91166112c4565b6040518263ffffffff1660e01b815260040161191d91815260200190565b60408051808303816000875af1925050508015611957575060408051601f3d908101601f19168201909252611954918101906137d3565b60015b15611966576010919091556011555b6014805460ff1916600117905542601555565b6000611986338484612384565b5060019392505050565b6016546001600160a01b031633146119ba5760405162461bcd60e51b8152600401610a3290613546565b601454610100900460ff1615611a2257306001600160a01b03821603611a225760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610a32565b6016546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d91906137f7565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d839190613810565b6016546001600160a01b03163314611b365760405162461bcd60e51b8152600401610a3290613546565b600f805461ff001916610100841515908102919091179091556012805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6016546001600160a01b03163314611bbf5760405162461bcd60e51b8152600401610a3290613546565b601454610100900460ff1615611c175760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610a32565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c80919061382d565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf1919061382d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d60919061382d565b600a546001600160a01b039081166000908152600160205260409020805460ff191690559091508116611ef657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611def919061382d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e60919061382d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611ead573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed1919061382d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055611f12565b600a80546001600160a01b0319166001600160a01b0383161790555b60098054610100600160a81b0319166101006001600160a01b038581168202929092178355600a5482166000908152600160208190526040909120805460ff191690911790559154610d8392309291041660001961228b565b6016546001600160a01b03163314611f955760405162461bcd60e51b8152600401610a3290613546565b601454610100900460ff1615611fed5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610a32565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156112c1573d6000803e3d6000fd5b6016546001600160a01b031633146120505760405162461bcd60e51b8152600401610a3290613546565b828461205e6009600a613691565b61206c90633b9aca006136a0565b61207691906136a0565b6120809190613725565b60105580826120916009600a613691565b61209f90633b9aca006136a0565b6120a991906136a0565b6120b39190613725565b601181905560105411156121135760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610a32565b600a546127109061212c906001600160a01b03166112c4565b6121379060966136a0565b6121419190613725565b601154111561219e5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610a32565b620f42406121ae6009600a613691565b6121bc90633b9aca006136a0565b6121c69190613725565b60115410156121e75760405162461bcd60e51b8152600401610a329061384a565b620f42406121f76009600a613691565b61220590633b9aca006136a0565b61220f9190613725565b60105410156122305760405162461bcd60e51b8152600401610a329061384a565b50505050565b6016546001600160a01b031633146122605760405162461bcd60e51b8152600401610a3290613546565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166122d75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a32565b6001600160a01b0382166123235760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a32565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166123ea5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a32565b6001600160a01b03831661244c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a32565b600082116124ae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a32565b6001600160a01b0384166000908152600160205260408120548190819060ff16156124dc576001925061250a565b6001600160a01b03861660009081526001602052604090205460ff1615612506576001915061250a565b5060015b61251487876128cb565b156126155760145460ff1661261557806125705760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610a32565b6001600160a01b03871660009081526005602052604090205460ff161580156125b257506001600160a01b03861660009081526005602052604090205460ff16155b156126155760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610a32565b81156126a557600f5460ff166126a557600f54610100900460ff16156126a5576000612640306112c4565b905060105481106126a35760115460125460ff161561268d57601354600a546127109190612676906001600160a01b03166112c4565b61268091906136a0565b61268a9190613725565b90505b808210612698578091505b6126a1826129e2565b505b505b6126b38787878686866126be565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff168061270057506001600160a01b03871660009081526006602052604090205460ff165b15612709575060005b6001600160a01b038816600090815260208190526040812080548892906127319084906136bf565b9091555060009050816127445786612750565b61275089888888612e7d565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612786919061370d565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127d291815260200190565b60405180910390a3601454610100900460ff166128bc576127f38989612f92565b601454610100900460ff16158015612810575061281089896128cb565b801561283557506001600160a01b03891660009081526005602052604090205460ff16155b801561285a57506001600160a01b03881660009081526005602052604090205460ff16155b8015612864575083155b156128bc5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610a32565b50600198975050505050505050565b6016546000906001600160a01b038481169116148015906128fa57506016546001600160a01b03838116911614155b801561291157506016546001600160a01b03163214155b801561293657506001600160a01b03821660009081526004602052604090205460ff16155b801561295b57506001600160a01b03831660009081526004602052604090205460ff16155b801561297257506001600160a01b03821661dead14155b801561298657506001600160a01b03821615155b801561299b57506001600160a01b0383163014155b80156129bb57506014546001600160a01b03848116620100009092041614155b80156129db57506014546001600160a01b03838116620100009092041614155b9392505050565b600f805460ff191660011790556040805160a08101825260085461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b810483166060830152600160401b900490911660808201819052600003612a4e5750612e70565b30600090815260036020908152604080832060095461010090046001600160a01b0316845290915290205460001914612ab15730600090815260036020908152604080832060095461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ae657612ae66136d6565b60200260200101906001600160a01b031690816001600160a01b031681525050600960019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7d919061382d565b81600181518110612b9057612b906136d6565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b81526101009091049091169063791ac94790612bdd908690600090869030904290600401613898565b600060405180830381600087803b158015612bf757600080fd5b505af1925050508015612c08575060015b612c13575050612e70565b6000479050600080846080015161ffff16856040015161ffff1684612c3891906136a0565b612c429190613725565b90506000856080015161ffff16866020015161ffff1685612c6391906136a0565b612c6d9190613725565b90506000866080015161ffff16876060015161ffff1686612c8e91906136a0565b612c989190613725565b9050600081612ca7848661370d565b612cb1919061370d565b612cbb90876136bf565b885190915061ffff1615612d2657600b546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d8060008114612d1b576040519150601f19603f3d011682016040523d82523d6000602084013e612d20565b606091505b50909550505b604088015161ffff1615612d9157600e546040516001600160a01b039091169061d6d89086906000818181858888f193505050503d8060008114612d86576040519150601f19603f3d011682016040523d82523d6000602084013e612d8b565b606091505b50909550505b602088015161ffff1615612dfc57600c546040516001600160a01b039091169061d6d89085906000818181858888f193505050503d8060008114612df1576040519150601f19603f3d011682016040523d82523d6000602084013e612df6565b606091505b50909550505b606088015161ffff1615612e6757600d546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d8060008114612e5c576040519150601f19603f3d011682016040523d82523d6000602084013e612e61565b606091505b50909550505b50505050505050505b50600f805460ff19169055565b6000808315612e93575060075461ffff16612ebd565b8215612eac575060075462010000900461ffff16612ebd565b50600754640100000000900461ffff165b80600003612ece5784915050610c03565b6014546201000090046001600160a01b031630148015612ef857504660011480612ef85750466038145b15612f0257506111945b6000612710612f1183886136a0565b612f1b9190613725565b90508015612f88573060009081526020819052604081208054839290612f4290849061370d565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6126b381876136bf565b601454610100900460ff1615612ff65760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610a32565b61300082826128cb565b15801561301a5750600a546001600160a01b038281169116145b156115ec576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556014805461ff001916610100179081905562010000900416613092576014805462010000600160b01b0319163062010000021790555b600f805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611b89565b600060208083528351808285015260005b818110156130ff578581018301518582016040015282016130e3565b81811115613111576000604083870101525b50601f01601f1916929092016040019392505050565b803561ffff8116811461313957600080fd5b919050565b6000806000806080858703121561315457600080fd5b61315d85613127565b935061316b60208601613127565b925061317960408601613127565b915061318760608601613127565b905092959194509250565b6001600160a01b03811681146112c157600080fd5b600080604083850312156131ba57600080fd5b82356131c581613192565b946020939093013593505050565b6000602082840312156131e557600080fd5b81356129db81613192565b60008060006060848603121561320557600080fd5b833561321081613192565b9250602084013561322081613192565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561327057613270613231565b604052919050565b600067ffffffffffffffff82111561329257613292613231565b5060051b60200190565b600082601f8301126132ad57600080fd5b813560206132c26132bd83613278565b613247565b82815260059290921b840181019181810190868411156132e157600080fd5b8286015b848110156132fc57803583529183019183016132e5565b509695505050505050565b6000806040838503121561331a57600080fd5b823567ffffffffffffffff8082111561333257600080fd5b818501915085601f83011261334657600080fd5b813560206133566132bd83613278565b82815260059290921b8401810191818101908984111561337557600080fd5b948201945b8386101561339c57853561338d81613192565b8252948201949082019061337a565b965050860135925050808211156133b257600080fd5b506133bf8582860161329c565b9150509250929050565b6000806000606084860312156133de57600080fd5b6133e784613127565b92506133f560208501613127565b915061340360408501613127565b90509250925092565b60006020828403121561341e57600080fd5b5035919050565b80151581146112c157600080fd5b6000806040838503121561344657600080fd5b823561345181613192565b9150602083013561346181613425565b809150509250929050565b6000806000806080858703121561348257600080fd5b843561348d81613192565b9350602085013561349d81613192565b925060408501356134ad81613192565b915060608501356134bd81613192565b939692955090935050565b600080604083850312156134db57600080fd5b823561345181613425565b600080604083850312156134f957600080fd5b823561350481613192565b9150602083013561346181613192565b6000806000806080858703121561352a57600080fd5b5050823594602084013594506040840135936060013592509050565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600061ffff8083168185168083038211156135a4576135a4613571565b01949350505050565b600181815b808511156135e85781600019048211156135ce576135ce613571565b808516156135db57918102915b93841c93908002906135b2565b509250929050565b6000826135ff57506001610b6c565b8161360c57506000610b6c565b8160018114613622576002811461362c57613648565b6001915050610b6c565b60ff84111561363d5761363d613571565b50506001821b610b6c565b5060208310610133831016604e8410600b841016171561366b575081810a610b6c565b61367583836135ad565b806000190482111561368957613689613571565b029392505050565b60006129db60ff8416836135f0565b60008160001904831182151516156136ba576136ba613571565b500290565b6000828210156136d1576136d1613571565b500390565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361370357613703613571565b6001019392505050565b6000821982111561372057613720613571565b500190565b60008261374257634e487b7160e01b600052601260045260246000fd5b500490565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b600080604083850312156137b757600080fd5b82516137c281613192565b602084015190925061346181613192565b600080604083850312156137e657600080fd5b505080516020909101519092909150565b60006020828403121561380957600080fd5b5051919050565b60006020828403121561382257600080fd5b81516129db81613425565b60006020828403121561383f57600080fd5b81516129db81613192565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156138e85784516001600160a01b0316835293830193918301916001016138c3565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204b71b37ca46fb0a5b40fc7e98ebfe5c8264b1f69976574f7e4853f86bb9698f164736f6c634300080e0033
Deployed Bytecode
0x6080604052600436106102e85760003560e01c8063590ffdce11610190578063ab558e4d116100dc578063dd62ed3e11610095578063f94aa1b41161006f578063f94aa1b414610943578063fb78680d146109a9578063fdb78c0e146109c9578063feadde9c146109e857600080fd5b8063dd62ed3e146108c8578063eafb5a3c1461090e578063ee5d9c2d1461092e57600080fd5b8063ab558e4d146107f4578063b1b08f7114610524578063b3d514fb14610524578063b7df8b3614610814578063bfc2fc351461082e578063cf8477061461084e57600080fd5b806380c581d1116101495780638a63bd9b116101235780638a63bd9b1461077c5780638a8c523c1461079157806395d89b41146107a6578063a9059cbb146107d457600080fd5b806380c581d11461071e57806383672f3e1461073e578063893d20e81461075e57600080fd5b8063590ffdce1461067e5780635a6f09181461069e5780635c24b074146106b457806370a08231146106d4578063715018a6146106f457806378648edf1461070957600080fd5b8063285777511161024f578063452ed4f1116102085780634e718e48116101e25780634e718e48146105e65780634fb2e45d146106065780634fbee1931461062657806350a8e0161461065f57600080fd5b8063452ed4f11461058c5780634ada218b146105ac5780634bbb93eb146105c657600080fd5b806328577751146104f95780632b112e491461050f5780632b28fc7a146105245780632e8fa8211461053a578063313ce5671461055057806332cde6641461056c57600080fd5b806307dd79e0116102a157806307dd79e014610421578063095ea7b31461044b5780630dcbcf1c1461046b57806318160ddd146104a457806323b872dd146104b95780632610eaca146104d957600080fd5b806303fd2a45146102f45780630445b66714610327578063069d955f1461034b57806306fdde03146103a15780630712d165146103da5780630758d924146103fc57600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561033357600080fd5b5061033d60105481565b60405190815260200161031e565b34801561035757600080fd5b5060075461037c9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161031e565b3480156103ad57600080fd5b506040805180820190915260078152665041414c20414960c81b60208201525b60405161031e91906130d2565b3480156103e657600080fd5b506103fa6103f536600461313e565b610a08565b005b34801561040857600080fd5b5060095461030a9061010090046001600160a01b031681565b34801561042d57600080fd5b5060095461043b9060ff1681565b604051901515815260200161031e565b34801561045757600080fd5b5061043b6104663660046131a7565b610b5b565b34801561047757600080fd5b5061043b6104863660046131d3565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104b057600080fd5b5061033d610b72565b3480156104c557600080fd5b5061043b6104d43660046131f0565b610b93565b3480156104e557600080fd5b506103fa6104f4366004613307565b610c0b565b34801561050557600080fd5b5061033d60135481565b34801561051b57600080fd5b5061033d610d88565b34801561053057600080fd5b5061033d6103e881565b34801561054657600080fd5b5061033d60115481565b34801561055c57600080fd5b506040516009815260200161031e565b34801561057857600080fd5b506103fa6105873660046133c9565b610dcd565b34801561059857600080fd5b50600a5461030a906001600160a01b031681565b3480156105b857600080fd5b5060145461043b9060ff1681565b3480156105d257600080fd5b5061033d6105e136600461340c565b610ef7565b3480156105f257600080fd5b506103fa61060136600461340c565b610f29565b34801561061257600080fd5b506103fa6106213660046131d3565b610fa2565b34801561063257600080fd5b5061043b6106413660046131d3565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561066b57600080fd5b5060145461043b90610100900460ff1681565b34801561068a57600080fd5b506103fa610699366004613433565b6110cb565b3480156106aa57600080fd5b5061033d60155481565b3480156106c057600080fd5b506103fa6106cf3660046131d3565b611120565b3480156106e057600080fd5b5061033d6106ef3660046131d3565b6112c4565b34801561070057600080fd5b506103fa6112df565b34801561071557600080fd5b506103fa6113d8565b34801561072a57600080fd5b506103fa610739366004613433565b611411565b34801561074a57600080fd5b506103fa61075936600461346c565b6115f0565b34801561076a57600080fd5b506016546001600160a01b031661030a565b34801561078857600080fd5b5061043b6116fd565b34801561079d57600080fd5b506103fa61174f565b3480156107b257600080fd5b50604080518082019091526005815264091410505360da1b60208201526103cd565b3480156107e057600080fd5b5061043b6107ef3660046131a7565b611979565b34801561080057600080fd5b506103fa61080f3660046131d3565b611990565b34801561082057600080fd5b5060125461043b9060ff1681565b34801561083a57600080fd5b506103fa6108493660046134c8565b611b0c565b34801561085a57600080fd5b506008546108939061ffff808216916201000081048216916401000000008204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161031e565b3480156108d457600080fd5b5061033d6108e33660046134e6565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561091a57600080fd5b506103fa6109293660046131d3565b611b95565b34801561093a57600080fd5b506103fa611f6b565b34801561094f57600080fd5b50600b54600c54600d54600e54610976936001600160a01b03908116938116928116911684565b604080516001600160a01b039586168152938516602085015291841691830191909152909116606082015260800161031e565b3480156109b557600080fd5b506103fa6109c4366004613514565b612026565b3480156109d557600080fd5b50600f5461043b90610100900460ff1681565b3480156109f457600080fd5b506103fa610a03366004613433565b612236565b6016546001600160a01b03163314610a3b5760405162461bcd60e51b8152600401610a3290613546565b60405180910390fd5b6008805461ffff86811663ffffffff199092169190911762010000868316021767ffffffff000000001916600160301b8583160265ffff00000000191617640100000000918416919091021790558183610a958387613587565b610a9f9190613587565b610aa99190613587565b6008805469ffff00000000000000001916600160401b61ffff93841602179055600754600091610ae29162010000810482169116613587565b60085461ffff9182169250600160401b900416811015610b545760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610a32565b5050505050565b6000610b6833848461228b565b5060015b92915050565b6000610b806009600a613691565b610b8e90633b9aca006136a0565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610bf8576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610bf29084906136bf565b90915550505b610c03848484612384565b949350505050565b6016546001600160a01b03163314610c355760405162461bcd60e51b8152600401610a3290613546565b8051825114610c7e5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b6044820152606401610a32565b60005b82518161ffff161015610d8357610c9a6009600a613691565b828261ffff1681518110610cb057610cb06136d6565b6020026020010151610cc291906136a0565b610ccb336112c4565b1015610d0e5760405162461bcd60e51b81526020600482015260126024820152712737ba1032b737bab3b4103a37b5b2b7399760711b6044820152606401610a32565b610d7033848361ffff1681518110610d2857610d286136d6565b60200260200101516009600a610d3e9190613691565b858561ffff1681518110610d5457610d546136d6565b6020026020010151610d6691906136a0565b60008060016126be565b5080610d7b816136ec565b915050610c81565b505050565b6000610d9460006112c4565b610d9f61dead6112c4565b610da9919061370d565b610db56009600a613691565b610dc390633b9aca006136a0565b610b8e91906136bf565b6016546001600160a01b03163314610df75760405162461bcd60e51b8152600401610a3290613546565b60095460ff1615610e3e5760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b6044820152606401610a32565b6103e88361ffff1611158015610e5a57506103e88261ffff1611155b8015610e6c57506103e88161ffff1611155b610eb85760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610a32565b6007805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b600a54600090612710908390610f15906001600160a01b03166112c4565b610f1f91906136a0565b610b6c9190613725565b6016546001600160a01b03163314610f535760405162461bcd60e51b8152600401610a3290613546565b6096811115610f9d5760405162461bcd60e51b815260206004820152601660248201527521b0b73737ba1039b2ba1030b137bb329018971a929760511b6044820152606401610a32565b601355565b6016546001600160a01b03163314610fcc5760405162461bcd60e51b8152600401610a3290613546565b6001600160a01b038116610ff25760405162461bcd60e51b8152600401610a3290613747565b61deac196001600160a01b0382160161101d5760405162461bcd60e51b8152600401610a3290613747565b601654611034906001600160a01b031660006110cb565b61103f8160016110cb565b601654600090611057906001600160a01b03166112c4565b111561107957601654611077906001600160a01b031682610d66826112c4565b505b601680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6016546001600160a01b031633146110f55760405162461bcd60e51b8152600401610a3290613546565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6016546001600160a01b0316331461114a5760405162461bcd60e51b8152600401610a3290613546565b60145460ff161561115a57600080fd5b306001600160a01b038216036111a35760405162461bcd60e51b815260206004820152600e60248201526d21b0b713ba1031329039b2b6331760911b6044820152606401610a32565b6014805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af1925050508015611229575060408051601f3d908101601f19168201909252611226918101906137a4565b60015b61123257600080fd5b60098054610100600160a81b0319166101006001600160a01b038581168202929092178355600a80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560165492546112a2938316929190041660001961228b565b600954610d8390309061010090046001600160a01b031660001961228b565b50565b6001600160a01b031660009081526020819052604090205490565b6016546001600160a01b031633146113095760405162461bcd60e51b8152600401610a3290613546565b60145460ff166113735760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201526e39903132b2b71032b730b13632b21760891b6064820152608401610a32565b60165461138a906001600160a01b031660006110cb565b601680546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6016546001600160a01b031633146114025760405162461bcd60e51b8152600401610a3290613546565b6009805460ff19166001179055565b6016546001600160a01b0316331461143b5760405162461bcd60e51b8152600401610a3290613546565b806114cb576001600160a01b03828116600081815260016020526040808220805460ff1916905560145490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d1906044015b600060405180830381600087803b1580156114af57600080fd5b505af11580156114c3573d6000803e3d6000fd5b505050505050565b60025415611524576203f480600254426114e591906136bf565b116115245760405162461bcd60e51b815260206004820152600f60248201526e19902230bc9031b7b7b63237bbb71760891b6044820152606401610a32565b6001600160a01b03821660009081526001602052604090205460ff161561158d5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610a32565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560145491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401611495565b5050565b6016546001600160a01b0316331461161a5760405162461bcd60e51b8152600401610a3290613546565b6001600160a01b0384161580159061163a57506001600160a01b03831615155b801561164e57506001600160a01b03821615155b801561166257506001600160a01b03811615155b6116ae5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610a32565b600b80546001600160a01b03199081166001600160a01b0396871617909155600c8054821693861693909317909255600e8054831693851693909317909255600d805490911691909216179055565b6016546000906001600160a01b0316331461172a5760405162461bcd60e51b8152600401610a3290613546565b60095461174990309061010090046001600160a01b031660001961228b565b50600190565b6016546001600160a01b031633146117795760405162461bcd60e51b8152600401610a3290613546565b60145460ff16156117cc5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610a32565b601454610100900460ff166118235760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610a32565b6014546201000090046001600160a01b0316611853576014805462010000600160b01b0319163062010000021790555b601454600a54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b1580156118c557600080fd5b505af19250505080156118d6575060015b50601454600a546001600160a01b03620100009092048216916325a71cae916118ff91166112c4565b6040518263ffffffff1660e01b815260040161191d91815260200190565b60408051808303816000875af1925050508015611957575060408051601f3d908101601f19168201909252611954918101906137d3565b60015b15611966576010919091556011555b6014805460ff1916600117905542601555565b6000611986338484612384565b5060019392505050565b6016546001600160a01b031633146119ba5760405162461bcd60e51b8152600401610a3290613546565b601454610100900460ff1615611a2257306001600160a01b03821603611a225760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610a32565b6016546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d91906137f7565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d839190613810565b6016546001600160a01b03163314611b365760405162461bcd60e51b8152600401610a3290613546565b600f805461ff001916610100841515908102919091179091556012805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6016546001600160a01b03163314611bbf5760405162461bcd60e51b8152600401610a3290613546565b601454610100900460ff1615611c175760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610a32565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c80919061382d565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf1919061382d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d60919061382d565b600a546001600160a01b039081166000908152600160205260409020805460ff191690559091508116611ef657816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611def919061382d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e60919061382d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611ead573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed1919061382d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055611f12565b600a80546001600160a01b0319166001600160a01b0383161790555b60098054610100600160a81b0319166101006001600160a01b038581168202929092178355600a5482166000908152600160208190526040909120805460ff191690911790559154610d8392309291041660001961228b565b6016546001600160a01b03163314611f955760405162461bcd60e51b8152600401610a3290613546565b601454610100900460ff1615611fed5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610a32565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156112c1573d6000803e3d6000fd5b6016546001600160a01b031633146120505760405162461bcd60e51b8152600401610a3290613546565b828461205e6009600a613691565b61206c90633b9aca006136a0565b61207691906136a0565b6120809190613725565b60105580826120916009600a613691565b61209f90633b9aca006136a0565b6120a991906136a0565b6120b39190613725565b601181905560105411156121135760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610a32565b600a546127109061212c906001600160a01b03166112c4565b6121379060966136a0565b6121419190613725565b601154111561219e5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610a32565b620f42406121ae6009600a613691565b6121bc90633b9aca006136a0565b6121c69190613725565b60115410156121e75760405162461bcd60e51b8152600401610a329061384a565b620f42406121f76009600a613691565b61220590633b9aca006136a0565b61220f9190613725565b60105410156122305760405162461bcd60e51b8152600401610a329061384a565b50505050565b6016546001600160a01b031633146122605760405162461bcd60e51b8152600401610a3290613546565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166122d75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a32565b6001600160a01b0382166123235760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a32565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166123ea5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a32565b6001600160a01b03831661244c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a32565b600082116124ae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a32565b6001600160a01b0384166000908152600160205260408120548190819060ff16156124dc576001925061250a565b6001600160a01b03861660009081526001602052604090205460ff1615612506576001915061250a565b5060015b61251487876128cb565b156126155760145460ff1661261557806125705760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610a32565b6001600160a01b03871660009081526005602052604090205460ff161580156125b257506001600160a01b03861660009081526005602052604090205460ff16155b156126155760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610a32565b81156126a557600f5460ff166126a557600f54610100900460ff16156126a5576000612640306112c4565b905060105481106126a35760115460125460ff161561268d57601354600a546127109190612676906001600160a01b03166112c4565b61268091906136a0565b61268a9190613725565b90505b808210612698578091505b6126a1826129e2565b505b505b6126b38787878686866126be565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff168061270057506001600160a01b03871660009081526006602052604090205460ff165b15612709575060005b6001600160a01b038816600090815260208190526040812080548892906127319084906136bf565b9091555060009050816127445786612750565b61275089888888612e7d565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612786919061370d565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127d291815260200190565b60405180910390a3601454610100900460ff166128bc576127f38989612f92565b601454610100900460ff16158015612810575061281089896128cb565b801561283557506001600160a01b03891660009081526005602052604090205460ff16155b801561285a57506001600160a01b03881660009081526005602052604090205460ff16155b8015612864575083155b156128bc5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610a32565b50600198975050505050505050565b6016546000906001600160a01b038481169116148015906128fa57506016546001600160a01b03838116911614155b801561291157506016546001600160a01b03163214155b801561293657506001600160a01b03821660009081526004602052604090205460ff16155b801561295b57506001600160a01b03831660009081526004602052604090205460ff16155b801561297257506001600160a01b03821661dead14155b801561298657506001600160a01b03821615155b801561299b57506001600160a01b0383163014155b80156129bb57506014546001600160a01b03848116620100009092041614155b80156129db57506014546001600160a01b03838116620100009092041614155b9392505050565b600f805460ff191660011790556040805160a08101825260085461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b810483166060830152600160401b900490911660808201819052600003612a4e5750612e70565b30600090815260036020908152604080832060095461010090046001600160a01b0316845290915290205460001914612ab15730600090815260036020908152604080832060095461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ae657612ae66136d6565b60200260200101906001600160a01b031690816001600160a01b031681525050600960019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7d919061382d565b81600181518110612b9057612b906136d6565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b81526101009091049091169063791ac94790612bdd908690600090869030904290600401613898565b600060405180830381600087803b158015612bf757600080fd5b505af1925050508015612c08575060015b612c13575050612e70565b6000479050600080846080015161ffff16856040015161ffff1684612c3891906136a0565b612c429190613725565b90506000856080015161ffff16866020015161ffff1685612c6391906136a0565b612c6d9190613725565b90506000866080015161ffff16876060015161ffff1686612c8e91906136a0565b612c989190613725565b9050600081612ca7848661370d565b612cb1919061370d565b612cbb90876136bf565b885190915061ffff1615612d2657600b546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d8060008114612d1b576040519150601f19603f3d011682016040523d82523d6000602084013e612d20565b606091505b50909550505b604088015161ffff1615612d9157600e546040516001600160a01b039091169061d6d89086906000818181858888f193505050503d8060008114612d86576040519150601f19603f3d011682016040523d82523d6000602084013e612d8b565b606091505b50909550505b602088015161ffff1615612dfc57600c546040516001600160a01b039091169061d6d89085906000818181858888f193505050503d8060008114612df1576040519150601f19603f3d011682016040523d82523d6000602084013e612df6565b606091505b50909550505b606088015161ffff1615612e6757600d546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d8060008114612e5c576040519150601f19603f3d011682016040523d82523d6000602084013e612e61565b606091505b50909550505b50505050505050505b50600f805460ff19169055565b6000808315612e93575060075461ffff16612ebd565b8215612eac575060075462010000900461ffff16612ebd565b50600754640100000000900461ffff165b80600003612ece5784915050610c03565b6014546201000090046001600160a01b031630148015612ef857504660011480612ef85750466038145b15612f0257506111945b6000612710612f1183886136a0565b612f1b9190613725565b90508015612f88573060009081526020819052604081208054839290612f4290849061370d565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6126b381876136bf565b601454610100900460ff1615612ff65760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610a32565b61300082826128cb565b15801561301a5750600a546001600160a01b038281169116145b156115ec576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556014805461ff001916610100179081905562010000900416613092576014805462010000600160b01b0319163062010000021790555b600f805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611b89565b600060208083528351808285015260005b818110156130ff578581018301518582016040015282016130e3565b81811115613111576000604083870101525b50601f01601f1916929092016040019392505050565b803561ffff8116811461313957600080fd5b919050565b6000806000806080858703121561315457600080fd5b61315d85613127565b935061316b60208601613127565b925061317960408601613127565b915061318760608601613127565b905092959194509250565b6001600160a01b03811681146112c157600080fd5b600080604083850312156131ba57600080fd5b82356131c581613192565b946020939093013593505050565b6000602082840312156131e557600080fd5b81356129db81613192565b60008060006060848603121561320557600080fd5b833561321081613192565b9250602084013561322081613192565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561327057613270613231565b604052919050565b600067ffffffffffffffff82111561329257613292613231565b5060051b60200190565b600082601f8301126132ad57600080fd5b813560206132c26132bd83613278565b613247565b82815260059290921b840181019181810190868411156132e157600080fd5b8286015b848110156132fc57803583529183019183016132e5565b509695505050505050565b6000806040838503121561331a57600080fd5b823567ffffffffffffffff8082111561333257600080fd5b818501915085601f83011261334657600080fd5b813560206133566132bd83613278565b82815260059290921b8401810191818101908984111561337557600080fd5b948201945b8386101561339c57853561338d81613192565b8252948201949082019061337a565b965050860135925050808211156133b257600080fd5b506133bf8582860161329c565b9150509250929050565b6000806000606084860312156133de57600080fd5b6133e784613127565b92506133f560208501613127565b915061340360408501613127565b90509250925092565b60006020828403121561341e57600080fd5b5035919050565b80151581146112c157600080fd5b6000806040838503121561344657600080fd5b823561345181613192565b9150602083013561346181613425565b809150509250929050565b6000806000806080858703121561348257600080fd5b843561348d81613192565b9350602085013561349d81613192565b925060408501356134ad81613192565b915060608501356134bd81613192565b939692955090935050565b600080604083850312156134db57600080fd5b823561345181613425565b600080604083850312156134f957600080fd5b823561350481613192565b9150602083013561346181613192565b6000806000806080858703121561352a57600080fd5b5050823594602084013594506040840135936060013592509050565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600061ffff8083168185168083038211156135a4576135a4613571565b01949350505050565b600181815b808511156135e85781600019048211156135ce576135ce613571565b808516156135db57918102915b93841c93908002906135b2565b509250929050565b6000826135ff57506001610b6c565b8161360c57506000610b6c565b8160018114613622576002811461362c57613648565b6001915050610b6c565b60ff84111561363d5761363d613571565b50506001821b610b6c565b5060208310610133831016604e8410600b841016171561366b575081810a610b6c565b61367583836135ad565b806000190482111561368957613689613571565b029392505050565b60006129db60ff8416836135f0565b60008160001904831182151516156136ba576136ba613571565b500290565b6000828210156136d1576136d1613571565b500390565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361370357613703613571565b6001019392505050565b6000821982111561372057613720613571565b500190565b60008261374257634e487b7160e01b600052601260045260246000fd5b500490565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b600080604083850312156137b757600080fd5b82516137c281613192565b602084015190925061346181613192565b600080604083850312156137e657600080fd5b505080516020909101519092909150565b60006020828403121561380957600080fd5b5051919050565b60006020828403121561382257600080fd5b81516129db81613425565b60006020828403121561383f57600080fd5b81516129db81613192565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156138e85784516001600160a01b0316835293830193918301916001016138c3565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204b71b37ca46fb0a5b40fc7e98ebfe5c8264b1f69976574f7e4853f86bb9698f164736f6c634300080e0033
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.