Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 KEKINU
Holders
124
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1 KEKINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KEKINU
Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; 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 ); } abstract contract Auth { address internal owner; mapping(address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(owner); owner = address(0); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address liqPair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract KEKINU is IERC20, Auth { address public marketingFeeReceiver = 0xa5Ed5F601853E4Fe2cC4013d21720Be3117C9f93; address public auliquidityRatioReceiver = 0xa5Ed5F601853E4Fe2cC4013d21720Be3117C9f93; string constant _name = "KEKINU"; string constant _symbol = "KEKINU"; uint8 constant _decimals = 18; uint8 constant _zeros = 9; uint8 constant _maxTx = 5; uint8 constant _maxWallet = 10; uint8 constant _threshpct = 2; uint256 _totalSupply = 1 * 10**_zeros * 10**_decimals; uint256 public _maxTxAmount = (_totalSupply*_maxTx)/1000; uint256 public _maxWalletToken = (_totalSupply*_maxWallet)/1000; uint256 public swapThreshold = (_totalSupply*_threshpct)/10000; uint256 public buyFee = 700; uint256 public sellFee = 30; uint256 public liquidityRatio = 10; uint256 public marketingRatio = 90; uint256 public feeRatio = marketingRatio + liquidityRatio; uint256 public feeDenominator = 1000; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) isFeeExempt; mapping(address => bool) isTxLimitExempt; mapping(address => bool) isWalletLimitExempt; mapping(address => bool) private _isBlacklisted; IDEXRouter public Irouter02; address public liqPair; bool public tradingLive = false; bool public limitsEnabled = true; bool public swapEnabled = true; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor() Auth(msg.sender) { Irouter02 = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Contract will create a pair when you deploy it liqPair = IDEXFactory(Irouter02.factory()).createPair( Irouter02.WETH(), address(this) ); _allowances[address(this)][address(Irouter02)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[liqPair] = true; _approve(owner, address(Irouter02), type(uint256).max); _approve(address(this), address(Irouter02), type(uint256).max); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function totalSupply() external view override returns (uint256) { return _totalSupply; } 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 balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve( address sender, address spender, uint256 amount ) private { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function _transferFrom( address from, address to, uint256 amount ) internal returns (bool) { require( !_isBlacklisted[from] && !_isBlacklisted[to], "Blacklisted address" ); if (inSwap) { return _basicTransfer(from, to, amount); } if (!authorizations[from] && !authorizations[to]){ require(tradingLive, "Trading not open yet"); if (limitsEnabled) { if (!authorizations[from] && !isWalletLimitExempt[to]) { uint256 heldTokens = balanceOf(to); require( (heldTokens + amount) <= _maxWalletToken, "max wallet limit reached" ); } checkAmountTx(from, amount); } } if (shouldSwapBack(from)) { swapBack(swapThreshold); } _balances[from] -= amount; uint256 amountReceived; amountReceived = (!shouldTakeFee(from) || !shouldTakeFee(to)) ? amount : takeFee(from, amount); _balances[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] -= _balances[sender]; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } function checkAmountTx(address sender, uint256 amount) internal view { require( amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded" ); } function shouldSwapBack(address from) internal view returns (bool) { if ( !inSwap && swapEnabled && !isTxLimitExempt[from] && from != liqPair && _balances[address(this)] >= swapThreshold ) { return true; } else { return false; } } function swapbackEdit(bool _enabled) public onlyOwner { swapEnabled = _enabled; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 _fee; if (sender != liqPair) { _fee = sellFee; } else if (sender == liqPair) { _fee = buyFee; } else { return amount; } uint256 contractTokens = (amount * _fee) / 1000; _balances[address(this)] += contractTokens; emit Transfer(sender, address(this), contractTokens); return amount - contractTokens; } function swapBack(uint256 amountAsked) internal swapping { uint256 amountToLiquify = ((amountAsked*liquidityRatio)/feeRatio)/2; uint256 amountToSwap = amountAsked -amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = Irouter02.WETH(); uint256 balanceBefore = address(this).balance; Irouter02.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance - balanceBefore; uint256 totalETHFee = feeRatio - (liquidityRatio/2); uint256 amountETHLiquidity = ((amountETH*liquidityRatio)/ totalETHFee)/(2); uint256 amountETHMarketing = (amountETH*marketingRatio)/totalETHFee; (bool tmpSuccess, ) = payable(marketingFeeReceiver).call{ value: amountETHMarketing, gas: 30000 }(""); tmpSuccess = false; if (amountToLiquify > 0) { Irouter02.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, auliquidityRatioReceiver, block.timestamp ); } } function setLimits(uint256 maxWallPercent, uint256 maxTXPercent) external onlyOwner { require(maxWallPercent > 5, "Max wallet too low"); require(maxTXPercent > 1, "Max Tx too low"); _maxWalletToken = _totalSupply*maxWallPercent/1000; _maxTxAmount = _totalSupply*maxTXPercent/1000; } function setSwapThreshold(uint256 _swapThreshold) external onlyOwner { //require(_swapThreshold < 50, "threshold too high"); swapThreshold = _totalSupply*_swapThreshold/10000; } function blacklist(address[] calldata addrs) external onlyOwner { for (uint256 i = 0; i < addrs.length; i++) { _isBlacklisted[addrs[i]] = true; } } function unblacklist(address[] calldata addrs) external onlyOwner { for (uint256 i = 0; i < addrs.length; i++) { _isBlacklisted[addrs[i]] = true; } } // Input the amount of token you wish to swapback function sweepContingency(uint256 amount) external authorized { require(balanceOf(address(this)) >= amount, "not enought tokens"); swapBack(amount); } function clearStuckBalance() external authorized { uint256 amountETH = address(this).balance; payable(msg.sender).transfer(amountETH); } function enableTrading() external onlyOwner { require(!tradingLive, "already launched"); tradingLive = true; } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setFees( uint256 _buyFee, uint256 _sellFee ) external onlyOwner { buyFee = _buyFee; sellFee = _sellFee; require(sellFee < 100 && buyFee < 100, "Fees cannot be more than 10%"); } function setRatios( uint256 _marketingRatio, uint256 _liquidityRatio) external onlyOwner{ marketingRatio = _marketingRatio; liquidityRatio = _liquidityRatio; feeRatio = liquidityRatio + marketingRatio; } function enableLimits() external onlyOwner{ limitsEnabled = true; } function disableLimits() external onlyOwner{ limitsEnabled = false; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"Irouter02","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"auliquidityRatioReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRatio","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":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"},{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingRatio","type":"uint256"},{"internalType":"uint256","name":"_liquidityRatio","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"swapbackEdit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingLive","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"unblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526002805473a5ed5f601853e4fe2cc4013d21720be3117c9f936001600160a01b03199182168117909255600380549091169091179055620000486012600a6200062d565b620000566009600a6200062d565b6200006390600162000645565b6200006f919062000645565b60048190556103e890620000869060059062000645565b62000092919062000667565b6005556004546103e890620000aa90600a9062000645565b620000b6919062000667565b60065560045461271090620000ce9060029062000645565b620000da919062000667565b6007556102bc600855601e600955600a808055605a600b8190556200010091906200068a565b600c556103e8600d556015805462ffffff60a01b191661010160a81b1790553480156200012c57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560148054737a250d5630b4cf539739df2c5dacb4c659f2488d931683179055825163c45a015560e01b81529251919263c45a015592600480830193928290030181865afa158015620001b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d99190620006a0565b6001600160a01b031663c9c65396601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002619190620006a0565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d49190620006a0565b601580546001600160a01b0319166001600160a01b03928316178155306000818152600f602090815260408083206014805488168552908352818420600019908190553380865260108552838620805460ff199081166001908117909255888852858820805482168317905582885260118752858820805482168317905588885285882080548216831790559187526012909552838620805482168617905595855282852080548716851790559554871684529083208054909416909117909255549054620003aa939182169291169062000417565b601454620003c69030906001600160a01b031660001962000417565b600454336000818152600e6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006cb565b6001600160a01b038316620004695760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620004b75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000460565b6001600160a01b038381166000818152600f602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200056f57816000190482111562000553576200055362000518565b808516156200056157918102915b93841c939080029062000533565b509250929050565b600082620005885750600162000627565b81620005975750600062000627565b8160018114620005b05760028114620005bb57620005db565b600191505062000627565b60ff841115620005cf57620005cf62000518565b50506001821b62000627565b5060208310610133831016604e8410600b841016171562000600575081810a62000627565b6200060c83836200052e565b806000190482111562000623576200062362000518565b0290505b92915050565b60006200063e60ff84168362000577565b9392505050565b600081600019048311821515161562000662576200066262000518565b500290565b6000826200068557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000627576200062762000518565b600060208284031215620006b357600080fd5b81516001600160a01b03811681146200063e57600080fd5b611f7b80620006db6000396000f3fe60806040526004361061028c5760003560e01c806370a082311161015a578063b6a5d7de116100c1578063ef97212d1161007a578063ef97212d146107ab578063f0b37c04146107c1578063f2fde38b146107e1578063f84ba65d14610801578063f928364c14610821578063fe9fbb801461083657600080fd5b8063b6a5d7de146106c5578063bfab6535146106e5578063c4590d3f14610705578063cfd55dda14610725578063dd62ed3e14610745578063e96fada21461078b57600080fd5b80638de4f5ed116101135780638de4f5ed1461062f57806395d89b41146102e35780639d0014b11461064f578063a76293ea1461066f578063a83019fa1461068f578063a9059cbb146106a557600080fd5b806370a0823114610585578063715018a6146105bb57806378109e54146105d05780637d1db4a5146105e6578063893d20e8146105fc5780638a8c523c1461061a57600080fd5b80632f54bf6e116101fe5780635da55668116101b75780635da55668146104b757806361147c54146104d7578063658d4b7f1461050f5780636639dd931461052f5780636902ca611461054f5780636ddd17131461056457600080fd5b80632f54bf6e1461040a578063313ce567146104395780633582ad2314610455578063364333f41461047657806341744dd41461048b57806347062402146104a157600080fd5b806311704f521161025057806311704f5214610368578063180b0d7e1461038957806318160ddd1461039f5780632198cf6c146103b457806323b872dd146103d45780632b14ca56146103f457600080fd5b8063041f173f146102985780630445b667146102ba57806306fdde03146102e3578063095ea7b3146103185780630b78f9c01461034857600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102b86102b3366004611b62565b61086f565b005b3480156102c657600080fd5b506102d060075481565b6040519081526020015b60405180910390f35b3480156102ef57600080fd5b5060408051808201825260068152654b454b494e5560d01b602082015290516102da9190611bd7565b34801561032457600080fd5b50610338610333366004611c3a565b610919565b60405190151581526020016102da565b34801561035457600080fd5b506102b8610363366004611c66565b610930565b34801561037457600080fd5b5060155461033890600160a01b900460ff1681565b34801561039557600080fd5b506102d0600d5481565b3480156103ab57600080fd5b506004546102d0565b3480156103c057600080fd5b506102b86103cf366004611c98565b6109c6565b3480156103e057600080fd5b506103386103ef366004611ccd565b610a1b565b34801561040057600080fd5b506102d060095481565b34801561041657600080fd5b50610338610425366004611d0e565b6000546001600160a01b0391821691161490565b34801561044557600080fd5b50604051601281526020016102da565b34801561046157600080fd5b5060155461033890600160a81b900460ff1681565b34801561048257600080fd5b506102b8610ab0565b34801561049757600080fd5b506102d0600c5481565b3480156104ad57600080fd5b506102d060085481565b3480156104c357600080fd5b506102b86104d2366004611d2b565b610b0e565b3480156104e357600080fd5b506015546104f7906001600160a01b031681565b6040516001600160a01b0390911681526020016102da565b34801561051b57600080fd5b506102b861052a366004611c98565b610b56565b34801561053b57600080fd5b506102b861054a366004611c66565b610bb0565b34801561055b57600080fd5b506102b8610bf5565b34801561057057600080fd5b5060155461033890600160b01b900460ff1681565b34801561059157600080fd5b506102d06105a0366004611d0e565b6001600160a01b03166000908152600e602052604090205490565b3480156105c757600080fd5b506102b8610c34565b3480156105dc57600080fd5b506102d060065481565b3480156105f257600080fd5b506102d060055481565b34801561060857600080fd5b506000546001600160a01b03166104f7565b34801561062657600080fd5b506102b8610cb0565b34801561063b57600080fd5b506003546104f7906001600160a01b031681565b34801561065b57600080fd5b506102b861066a366004611d46565b610d3c565b34801561067b57600080fd5b506014546104f7906001600160a01b031681565b34801561069b57600080fd5b506102d0600a5481565b3480156106b157600080fd5b506103386106c0366004611c3a565b610d87565b3480156106d157600080fd5b506102b86106e0366004611d0e565b610d94565b3480156106f157600080fd5b506102b8610700366004611b62565b610de5565b34801561071157600080fd5b506102b8610720366004611c66565b610e81565b34801561073157600080fd5b506102b8610740366004611d46565b610f72565b34801561075157600080fd5b506102d0610760366004611d5f565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b34801561079757600080fd5b506002546104f7906001600160a01b031681565b3480156107b757600080fd5b506102d0600b5481565b3480156107cd57600080fd5b506102b86107dc366004611d0e565b611001565b3480156107ed57600080fd5b506102b86107fc366004611d0e565b61104c565b34801561080d57600080fd5b506102b861081c366004611c98565b6110e2565b34801561082d57600080fd5b506102b8611137565b34801561084257600080fd5b50610338610851366004611d0e565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b031633146108a25760405162461bcd60e51b815260040161089990611d98565b60405180910390fd5b60005b81811015610914576001601360008585858181106108c5576108c5611db8565b90506020020160208101906108da9190611d0e565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061090c81611de4565b9150506108a5565b505050565b6000610926338484611170565b5060015b92915050565b6000546001600160a01b0316331461095a5760405162461bcd60e51b815260040161089990611d98565b6008829055600981905560648110801561097657506064600854105b6109c25760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20313025000000006044820152606401610899565b5050565b6000546001600160a01b031633146109f05760405162461bcd60e51b815260040161089990611d98565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6001600160a01b0383166000908152600f6020908152604080832033845290915281205460001914610a9b576001600160a01b0384166000908152600f60209081526040808320338452909152902054610a76908390611dfd565b6001600160a01b0385166000908152600f602090815260408083203384529091529020555b610aa6848484611269565b90505b9392505050565b3360009081526001602052604090205460ff16610adf5760405162461bcd60e51b815260040161089990611e10565b6040514790339082156108fc029083906000818181858888f193505050501580156109c2573d6000803e3d6000fd5b6000546001600160a01b03163314610b385760405162461bcd60e51b815260040161089990611d98565b60158054911515600160b01b0260ff60b01b19909216919091179055565b3360009081526001602052604090205460ff16610b855760405162461bcd60e51b815260040161089990611e10565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610bda5760405162461bcd60e51b815260040161089990611d98565b600b829055600a819055610bee8282611e35565b600c555050565b6000546001600160a01b03163314610c1f5760405162461bcd60e51b815260040161089990611d98565b6015805460ff60a81b1916600160a81b179055565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161089990611d98565b6000546040516001600160a01b0390911681527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b6000546001600160a01b03163314610cda5760405162461bcd60e51b815260040161089990611d98565b601554600160a01b900460ff1615610d275760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b6044820152606401610899565b6015805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610d665760405162461bcd60e51b815260040161089990611d98565b61271081600454610d779190611e48565b610d819190611e67565b60075550565b6000610aa9338484611269565b6000546001600160a01b03163314610dbe5760405162461bcd60e51b815260040161089990611d98565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161089990611d98565b60005b8181101561091457600160136000858585818110610e3257610e32611db8565b9050602002016020810190610e479190611d0e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e7981611de4565b915050610e12565b6000546001600160a01b03163314610eab5760405162461bcd60e51b815260040161089990611d98565b60058211610ef05760405162461bcd60e51b81526020600482015260126024820152714d61782077616c6c657420746f6f206c6f7760701b6044820152606401610899565b60018111610f315760405162461bcd60e51b815260206004820152600e60248201526d4d617820547820746f6f206c6f7760901b6044820152606401610899565b6103e882600454610f429190611e48565b610f4c9190611e67565b6006556004546103e890610f61908390611e48565b610f6b9190611e67565b6005555050565b3360009081526001602052604090205460ff16610fa15760405162461bcd60e51b815260040161089990611e10565b306000908152600e6020526040902054811115610ff55760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f7567687420746f6b656e7360701b6044820152606401610899565b610ffe816115ab565b50565b6000546001600160a01b0316331461102b5760405162461bcd60e51b815260040161089990611d98565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146110765760405162461bcd60e51b815260040161089990611d98565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6000546001600160a01b0316331461110c5760405162461bcd60e51b815260040161089990611d98565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111615760405162461bcd60e51b815260040161089990611d98565b6015805460ff60a81b19169055565b6001600160a01b0383166111bc5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610899565b6001600160a01b0382166112085760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610899565b6001600160a01b038381166000818152600f602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526013602052604081205460ff161580156112ab57506001600160a01b03831660009081526013602052604090205460ff16155b6112ed5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610899565b601554600160b81b900460ff16156113115761130a8484846118cc565b9050610aa9565b6001600160a01b03841660009081526001602052604090205460ff1615801561135357506001600160a01b03831660009081526001602052604090205460ff16155b1561148157601554600160a01b900460ff166113a85760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610899565b601554600160a81b900460ff1615611481576001600160a01b03841660009081526001602052604090205460ff161580156113fc57506001600160a01b03831660009081526012602052604090205460ff16155b15611477576001600160a01b0383166000908152600e60205260409020546006546114278483611e35565b11156114755760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610899565b505b611481848361197d565b61148a846119e6565b1561149a5761149a6007546115ab565b6001600160a01b0384166000908152600e6020526040812080548492906114c2908490611dfd565b90915550506001600160a01b03841660009081526010602052604081205460ff1615158061150a57506001600160a01b03841660009081526010602052604090205460ff1615155b61151d576115188584611a82565b61151f565b825b6001600160a01b0385166000908152600e602052604081208054929350839290919061154c908490611e35565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159891815260200190565b60405180910390a3506001949350505050565b6015805460ff60b81b1916600160b81b179055600c54600a546000916002916115d49085611e48565b6115de9190611e67565b6115e89190611e67565b905060006115f68284611dfd565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061163057611630611db8565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ad9190611e89565b816001815181106116c0576116c0611db8565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b81524792919091169063791ac9479061170a908690600090879030904290600401611ea6565b600060405180830381600087803b15801561172457600080fd5b505af1158015611738573d6000803e3d6000fd5b505050506000814761174a9190611dfd565b905060006002600a5461175d9190611e67565b600c5461176a9190611dfd565b90506000600282600a548561177f9190611e48565b6117899190611e67565b6117939190611e67565b9050600082600b54856117a69190611e48565b6117b09190611e67565b6002546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611807576040519150601f19603f3d011682016040523d82523d6000602084013e61180c565b606091505b506000925050891590506118b35760145460035460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af115801561188a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118af9190611f17565b5050505b50506015805460ff60b81b191690555050505050505050565b6001600160a01b0383166000908152600e60205260408120805490826118f28380611dfd565b90915550506001600160a01b0383166000908152600e60205260408120805484929061191f908490611e35565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161196b91815260200190565b60405180910390a35060019392505050565b600554811115806119a657506001600160a01b03821660009081526011602052604090205460ff165b6109c25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610899565b601554600090600160b81b900460ff16158015611a0c5750601554600160b01b900460ff165b8015611a3157506001600160a01b03821660009081526011602052604090205460ff16155b8015611a4b57506015546001600160a01b03838116911614155b8015611a685750600754306000908152600e602052604090205410155b15611a7557506001919050565b506000919050565b919050565b60155460009081906001600160a01b03858116911614611aa55750600954611acd565b6015546001600160a01b0390811690851603611ac45750600854611acd565b8291505061092a565b60006103e8611adc8386611e48565b611ae69190611e67565b306000908152600e6020526040812080549293508392909190611b0a908490611e35565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611b598185611dfd565b95945050505050565b60008060208385031215611b7557600080fd5b823567ffffffffffffffff80821115611b8d57600080fd5b818501915085601f830112611ba157600080fd5b813581811115611bb057600080fd5b8660208260051b8501011115611bc557600080fd5b60209290920196919550909350505050565b600060208083528351808285015260005b81811015611c0457858101830151858201604001528201611be8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ffe57600080fd5b60008060408385031215611c4d57600080fd5b8235611c5881611c25565b946020939093013593505050565b60008060408385031215611c7957600080fd5b50508035926020909101359150565b80358015158114611a7d57600080fd5b60008060408385031215611cab57600080fd5b8235611cb681611c25565b9150611cc460208401611c88565b90509250929050565b600080600060608486031215611ce257600080fd5b8335611ced81611c25565b92506020840135611cfd81611c25565b929592945050506040919091013590565b600060208284031215611d2057600080fd5b8135610aa981611c25565b600060208284031215611d3d57600080fd5b610aa982611c88565b600060208284031215611d5857600080fd5b5035919050565b60008060408385031215611d7257600080fd5b8235611d7d81611c25565b91506020830135611d8d81611c25565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611df657611df6611dce565b5060010190565b8181038181111561092a5761092a611dce565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b8082018082111561092a5761092a611dce565b6000816000190483118215151615611e6257611e62611dce565b500290565b600082611e8457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e9b57600080fd5b8151610aa981611c25565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ef65784516001600160a01b031683529383019391830191600101611ed1565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611f2c57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d78c3639af85618af46c38ed18795f2ff7e4c0359a744deb966aab0a5cdc910064736f6c63430008100033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c806370a082311161015a578063b6a5d7de116100c1578063ef97212d1161007a578063ef97212d146107ab578063f0b37c04146107c1578063f2fde38b146107e1578063f84ba65d14610801578063f928364c14610821578063fe9fbb801461083657600080fd5b8063b6a5d7de146106c5578063bfab6535146106e5578063c4590d3f14610705578063cfd55dda14610725578063dd62ed3e14610745578063e96fada21461078b57600080fd5b80638de4f5ed116101135780638de4f5ed1461062f57806395d89b41146102e35780639d0014b11461064f578063a76293ea1461066f578063a83019fa1461068f578063a9059cbb146106a557600080fd5b806370a0823114610585578063715018a6146105bb57806378109e54146105d05780637d1db4a5146105e6578063893d20e8146105fc5780638a8c523c1461061a57600080fd5b80632f54bf6e116101fe5780635da55668116101b75780635da55668146104b757806361147c54146104d7578063658d4b7f1461050f5780636639dd931461052f5780636902ca611461054f5780636ddd17131461056457600080fd5b80632f54bf6e1461040a578063313ce567146104395780633582ad2314610455578063364333f41461047657806341744dd41461048b57806347062402146104a157600080fd5b806311704f521161025057806311704f5214610368578063180b0d7e1461038957806318160ddd1461039f5780632198cf6c146103b457806323b872dd146103d45780632b14ca56146103f457600080fd5b8063041f173f146102985780630445b667146102ba57806306fdde03146102e3578063095ea7b3146103185780630b78f9c01461034857600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102b86102b3366004611b62565b61086f565b005b3480156102c657600080fd5b506102d060075481565b6040519081526020015b60405180910390f35b3480156102ef57600080fd5b5060408051808201825260068152654b454b494e5560d01b602082015290516102da9190611bd7565b34801561032457600080fd5b50610338610333366004611c3a565b610919565b60405190151581526020016102da565b34801561035457600080fd5b506102b8610363366004611c66565b610930565b34801561037457600080fd5b5060155461033890600160a01b900460ff1681565b34801561039557600080fd5b506102d0600d5481565b3480156103ab57600080fd5b506004546102d0565b3480156103c057600080fd5b506102b86103cf366004611c98565b6109c6565b3480156103e057600080fd5b506103386103ef366004611ccd565b610a1b565b34801561040057600080fd5b506102d060095481565b34801561041657600080fd5b50610338610425366004611d0e565b6000546001600160a01b0391821691161490565b34801561044557600080fd5b50604051601281526020016102da565b34801561046157600080fd5b5060155461033890600160a81b900460ff1681565b34801561048257600080fd5b506102b8610ab0565b34801561049757600080fd5b506102d0600c5481565b3480156104ad57600080fd5b506102d060085481565b3480156104c357600080fd5b506102b86104d2366004611d2b565b610b0e565b3480156104e357600080fd5b506015546104f7906001600160a01b031681565b6040516001600160a01b0390911681526020016102da565b34801561051b57600080fd5b506102b861052a366004611c98565b610b56565b34801561053b57600080fd5b506102b861054a366004611c66565b610bb0565b34801561055b57600080fd5b506102b8610bf5565b34801561057057600080fd5b5060155461033890600160b01b900460ff1681565b34801561059157600080fd5b506102d06105a0366004611d0e565b6001600160a01b03166000908152600e602052604090205490565b3480156105c757600080fd5b506102b8610c34565b3480156105dc57600080fd5b506102d060065481565b3480156105f257600080fd5b506102d060055481565b34801561060857600080fd5b506000546001600160a01b03166104f7565b34801561062657600080fd5b506102b8610cb0565b34801561063b57600080fd5b506003546104f7906001600160a01b031681565b34801561065b57600080fd5b506102b861066a366004611d46565b610d3c565b34801561067b57600080fd5b506014546104f7906001600160a01b031681565b34801561069b57600080fd5b506102d0600a5481565b3480156106b157600080fd5b506103386106c0366004611c3a565b610d87565b3480156106d157600080fd5b506102b86106e0366004611d0e565b610d94565b3480156106f157600080fd5b506102b8610700366004611b62565b610de5565b34801561071157600080fd5b506102b8610720366004611c66565b610e81565b34801561073157600080fd5b506102b8610740366004611d46565b610f72565b34801561075157600080fd5b506102d0610760366004611d5f565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b34801561079757600080fd5b506002546104f7906001600160a01b031681565b3480156107b757600080fd5b506102d0600b5481565b3480156107cd57600080fd5b506102b86107dc366004611d0e565b611001565b3480156107ed57600080fd5b506102b86107fc366004611d0e565b61104c565b34801561080d57600080fd5b506102b861081c366004611c98565b6110e2565b34801561082d57600080fd5b506102b8611137565b34801561084257600080fd5b50610338610851366004611d0e565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b031633146108a25760405162461bcd60e51b815260040161089990611d98565b60405180910390fd5b60005b81811015610914576001601360008585858181106108c5576108c5611db8565b90506020020160208101906108da9190611d0e565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061090c81611de4565b9150506108a5565b505050565b6000610926338484611170565b5060015b92915050565b6000546001600160a01b0316331461095a5760405162461bcd60e51b815260040161089990611d98565b6008829055600981905560648110801561097657506064600854105b6109c25760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20313025000000006044820152606401610899565b5050565b6000546001600160a01b031633146109f05760405162461bcd60e51b815260040161089990611d98565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6001600160a01b0383166000908152600f6020908152604080832033845290915281205460001914610a9b576001600160a01b0384166000908152600f60209081526040808320338452909152902054610a76908390611dfd565b6001600160a01b0385166000908152600f602090815260408083203384529091529020555b610aa6848484611269565b90505b9392505050565b3360009081526001602052604090205460ff16610adf5760405162461bcd60e51b815260040161089990611e10565b6040514790339082156108fc029083906000818181858888f193505050501580156109c2573d6000803e3d6000fd5b6000546001600160a01b03163314610b385760405162461bcd60e51b815260040161089990611d98565b60158054911515600160b01b0260ff60b01b19909216919091179055565b3360009081526001602052604090205460ff16610b855760405162461bcd60e51b815260040161089990611e10565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610bda5760405162461bcd60e51b815260040161089990611d98565b600b829055600a819055610bee8282611e35565b600c555050565b6000546001600160a01b03163314610c1f5760405162461bcd60e51b815260040161089990611d98565b6015805460ff60a81b1916600160a81b179055565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161089990611d98565b6000546040516001600160a01b0390911681527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b6000546001600160a01b03163314610cda5760405162461bcd60e51b815260040161089990611d98565b601554600160a01b900460ff1615610d275760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b6044820152606401610899565b6015805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610d665760405162461bcd60e51b815260040161089990611d98565b61271081600454610d779190611e48565b610d819190611e67565b60075550565b6000610aa9338484611269565b6000546001600160a01b03163314610dbe5760405162461bcd60e51b815260040161089990611d98565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161089990611d98565b60005b8181101561091457600160136000858585818110610e3257610e32611db8565b9050602002016020810190610e479190611d0e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e7981611de4565b915050610e12565b6000546001600160a01b03163314610eab5760405162461bcd60e51b815260040161089990611d98565b60058211610ef05760405162461bcd60e51b81526020600482015260126024820152714d61782077616c6c657420746f6f206c6f7760701b6044820152606401610899565b60018111610f315760405162461bcd60e51b815260206004820152600e60248201526d4d617820547820746f6f206c6f7760901b6044820152606401610899565b6103e882600454610f429190611e48565b610f4c9190611e67565b6006556004546103e890610f61908390611e48565b610f6b9190611e67565b6005555050565b3360009081526001602052604090205460ff16610fa15760405162461bcd60e51b815260040161089990611e10565b306000908152600e6020526040902054811115610ff55760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f7567687420746f6b656e7360701b6044820152606401610899565b610ffe816115ab565b50565b6000546001600160a01b0316331461102b5760405162461bcd60e51b815260040161089990611d98565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146110765760405162461bcd60e51b815260040161089990611d98565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6000546001600160a01b0316331461110c5760405162461bcd60e51b815260040161089990611d98565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111615760405162461bcd60e51b815260040161089990611d98565b6015805460ff60a81b19169055565b6001600160a01b0383166111bc5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610899565b6001600160a01b0382166112085760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610899565b6001600160a01b038381166000818152600f602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526013602052604081205460ff161580156112ab57506001600160a01b03831660009081526013602052604090205460ff16155b6112ed5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610899565b601554600160b81b900460ff16156113115761130a8484846118cc565b9050610aa9565b6001600160a01b03841660009081526001602052604090205460ff1615801561135357506001600160a01b03831660009081526001602052604090205460ff16155b1561148157601554600160a01b900460ff166113a85760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610899565b601554600160a81b900460ff1615611481576001600160a01b03841660009081526001602052604090205460ff161580156113fc57506001600160a01b03831660009081526012602052604090205460ff16155b15611477576001600160a01b0383166000908152600e60205260409020546006546114278483611e35565b11156114755760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610899565b505b611481848361197d565b61148a846119e6565b1561149a5761149a6007546115ab565b6001600160a01b0384166000908152600e6020526040812080548492906114c2908490611dfd565b90915550506001600160a01b03841660009081526010602052604081205460ff1615158061150a57506001600160a01b03841660009081526010602052604090205460ff1615155b61151d576115188584611a82565b61151f565b825b6001600160a01b0385166000908152600e602052604081208054929350839290919061154c908490611e35565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159891815260200190565b60405180910390a3506001949350505050565b6015805460ff60b81b1916600160b81b179055600c54600a546000916002916115d49085611e48565b6115de9190611e67565b6115e89190611e67565b905060006115f68284611dfd565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061163057611630611db8565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ad9190611e89565b816001815181106116c0576116c0611db8565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b81524792919091169063791ac9479061170a908690600090879030904290600401611ea6565b600060405180830381600087803b15801561172457600080fd5b505af1158015611738573d6000803e3d6000fd5b505050506000814761174a9190611dfd565b905060006002600a5461175d9190611e67565b600c5461176a9190611dfd565b90506000600282600a548561177f9190611e48565b6117899190611e67565b6117939190611e67565b9050600082600b54856117a69190611e48565b6117b09190611e67565b6002546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611807576040519150601f19603f3d011682016040523d82523d6000602084013e61180c565b606091505b506000925050891590506118b35760145460035460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af115801561188a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118af9190611f17565b5050505b50506015805460ff60b81b191690555050505050505050565b6001600160a01b0383166000908152600e60205260408120805490826118f28380611dfd565b90915550506001600160a01b0383166000908152600e60205260408120805484929061191f908490611e35565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161196b91815260200190565b60405180910390a35060019392505050565b600554811115806119a657506001600160a01b03821660009081526011602052604090205460ff165b6109c25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610899565b601554600090600160b81b900460ff16158015611a0c5750601554600160b01b900460ff165b8015611a3157506001600160a01b03821660009081526011602052604090205460ff16155b8015611a4b57506015546001600160a01b03838116911614155b8015611a685750600754306000908152600e602052604090205410155b15611a7557506001919050565b506000919050565b919050565b60155460009081906001600160a01b03858116911614611aa55750600954611acd565b6015546001600160a01b0390811690851603611ac45750600854611acd565b8291505061092a565b60006103e8611adc8386611e48565b611ae69190611e67565b306000908152600e6020526040812080549293508392909190611b0a908490611e35565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611b598185611dfd565b95945050505050565b60008060208385031215611b7557600080fd5b823567ffffffffffffffff80821115611b8d57600080fd5b818501915085601f830112611ba157600080fd5b813581811115611bb057600080fd5b8660208260051b8501011115611bc557600080fd5b60209290920196919550909350505050565b600060208083528351808285015260005b81811015611c0457858101830151858201604001528201611be8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ffe57600080fd5b60008060408385031215611c4d57600080fd5b8235611c5881611c25565b946020939093013593505050565b60008060408385031215611c7957600080fd5b50508035926020909101359150565b80358015158114611a7d57600080fd5b60008060408385031215611cab57600080fd5b8235611cb681611c25565b9150611cc460208401611c88565b90509250929050565b600080600060608486031215611ce257600080fd5b8335611ced81611c25565b92506020840135611cfd81611c25565b929592945050506040919091013590565b600060208284031215611d2057600080fd5b8135610aa981611c25565b600060208284031215611d3d57600080fd5b610aa982611c88565b600060208284031215611d5857600080fd5b5035919050565b60008060408385031215611d7257600080fd5b8235611d7d81611c25565b91506020830135611d8d81611c25565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611df657611df6611dce565b5060010190565b8181038181111561092a5761092a611dce565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b8082018082111561092a5761092a611dce565b6000816000190483118215151615611e6257611e62611dce565b500290565b600082611e8457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e9b57600080fd5b8151610aa981611c25565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ef65784516001600160a01b031683529383019391830191600101611ed1565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611f2c57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d78c3639af85618af46c38ed18795f2ff7e4c0359a744deb966aab0a5cdc910064736f6c63430008100033
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.