ERC-20
Overview
Max Total Supply
1,000,000,000 LEVINU
Holders
136
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,069,160.321554723 LEVINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
JackLevinInu
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; 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 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 IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function getAmountsIn(uint amountOut, address[] memory path) external view returns (uint[] memory amounts); function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function factory() external pure returns (address); function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity); } abstract contract OWNED { address internal _owner; event OwnershipTransferred(address owner); constructor(address contractOwner) { _owner = contractOwner; } modifier onlyOwner() { require(msg.sender == _owner, "Not the owner"); _; } // function owner() external view returns (address) { return _owner; } // moved into addressList() function function renounceOwnership() external onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) external onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address _newOwner) internal { _owner = _newOwner; emit OwnershipTransferred(_newOwner); } } contract LEVINU_Sidecar { address private immutable _owner; constructor() { _owner = msg.sender; } function owner() external view returns (address) { return _owner; } function recoverErc20Tokens(address tokenCA) external returns (uint256) { require(msg.sender == _owner, "Not authorized"); uint256 balance = IERC20(tokenCA).balanceOf(address(this)); if (balance > 0) { IERC20(tokenCA).transfer(msg.sender, balance); } return balance; } } contract JackLevinInu is IERC20, OWNED { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 1_000_000_000 * 10**_decimals; string private constant _name = "Jack Levin Inu"; string private constant _symbol = "LEVINU"; uint256 private _thresholdUSDC = 1000; // tax tokens USD value threshold to trigger tax token swap, transfer and adding liquidity uint256 private _maxTx; uint256 private _maxWallet; uint8 private immutable _usdcDecimals; uint256 private constant taxMcBracket1 = 100_000; // PROMOTION: below 100k MC tax is 5% (1 XENLP, 4 Marketing) uint256 private constant taxMcBracket2 = 250_000; // SUPPORT: below 250k MC tax is 4% (1 XENLP, 3 Marketing) uint256 private constant taxMcBracket3 = 1_000_000; // COMMUNITY: below 1m MC tax is 2% (1 XENLP, 1 Marketing), above it tax is 0% DEXENTRALIZED: mapping(address => bool) private _excluded; address private _marketingWallet = address(0x40F693a958C96241aB0281f120c878ACC664e1D3); address private constant _xen = address(0x06450dEe7FD2Fb8E39061434BAbCFC05599a6Fb8); address private constant _usdc = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); address private immutable _sidecarAddress; LEVINU_Sidecar private immutable _sidecarContract; address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Uniswap V2 Router IUniswapV2Router02 private constant _swapRouter = IUniswapV2Router02(_swapRouterAddress); address private _primaryLP; mapping(address => bool) private _isLP; uint256 private _openAt; uint256 private _addTime = 0; uint256 private _protected; bool private swapLocked; modifier lockSwap { swapLocked = true; _; swapLocked = false; } constructor() OWNED(msg.sender) { _balances[address(this)] = _totalSupply; emit Transfer(address(0), address(this), _balances[address(this)]); _sidecarContract = new LEVINU_Sidecar(); _sidecarAddress = address(_sidecarContract); _usdcDecimals = IERC20(_usdc).decimals(); _changeLimits(10,20); //set max TX to 1%, max wallet 2% _excluded[_owner] = true; _excluded[address(this)] = true; _excluded[_swapRouterAddress] = true; _excluded[_marketingWallet] = true; _excluded[_sidecarAddress] = true; } function addressList() external view returns (address owner, address sidecar, address marketing, address xen, address usdc, address swapRouter, address primaryLP) { return (_owner, _sidecarAddress, _marketingWallet, _xen, _usdc, _swapRouterAddress, _primaryLP); } function totalSupply() external pure 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 balanceOf(address account) external view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(_balances[msg.sender] > 0,"ERC20: Zero balance"); _approve(msg.sender, spender, amount); return true; } function _approve(address owner, address spender, uint256 amount ) private { require(owner != address(0) && spender != address(0), "ERC20: Zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _checkAndApproveRouter(uint256 tokenAmount) private { if (_allowances[address(this)][_swapRouterAddress] < tokenAmount) { _approve(address(this), _swapRouterAddress, type(uint256).max); } } function _checkAndApproveRouterForToken(address _token, uint256 amount) internal { uint256 tokenAllowance; if (_token == address(this)) { tokenAllowance = _allowances[address(this)][_swapRouterAddress]; if (amount > tokenAllowance) { _allowances[address(this)][_swapRouterAddress] = type(uint256).max; } } else { tokenAllowance = IERC20(_token).allowance(address(this), _swapRouterAddress); if (amount > tokenAllowance) { IERC20(_token).approve(_swapRouterAddress, type(uint256).max); } } } function transfer(address to, uint256 amount) public returns (bool) { _transfer(msg.sender, to, amount); return true; } function transferFrom(address from, address to, uint256 amount) public returns (bool) { require(_allowances[from][msg.sender] >= amount,"ERC20: amount exceeds allowance"); _allowances[from][msg.sender] -= amount; _transfer(from, to, amount); return true; } function _transfer(address from, address to, uint256 amount) private { require(from != address(0) && to != address(0), "ERC20: Zero address"); require(_balances[from] >= amount, "ERC20: amount exceeds balance"); require(_limitCheck(from, to, amount), "Limits exceeded"); require(block.timestamp>_openAt, "Not enabled"); if (block.timestamp>_openAt && block.timestamp<_protected && tx.gasprice>block.basefee) { uint256 _gpb = tx.gasprice - block.basefee; uint256 _gpm = 10 * (10**9); require(_gpb<_gpm,"Not enabled"); } if ( !swapLocked && !_excluded[from] && _isLP[to] ) { _processTaxTokens(); } (uint256 xenLP, uint256 levinuLP, uint256 marketing) = _getTaxTokens(from, to, amount); uint256 taxTokens = xenLP + levinuLP + marketing; _balances[from] -= amount; _balances[address(this)] += taxTokens; _balances[to] += (amount - taxTokens); emit Transfer(from, to, amount); } function _limitCheck(address from, address to, uint256 amount) private view returns (bool) { bool txSize = true; if ( amount > _maxTx && !_excluded[from] && !_excluded[to] ) { txSize = false; } bool walletSize = true; uint256 newBalanceTo = _balances[to] + amount; if ( newBalanceTo > _maxWallet && !_excluded[from] && !_excluded[to] && !_isLP[to] ) { walletSize = false; } return (txSize && walletSize); } function _getCurrentDilutedMcUSD() private view returns (uint256) { uint256 marketCap; if (_primaryLP != address(0)) { uint256 tokensInLP = _balances[_primaryLP]; uint256 usdcInLP = IERC20(_usdc).balanceOf(_primaryLP) / (10**_usdcDecimals); marketCap = (usdcInLP * _totalSupply / tokensInLP); } return marketCap; } function _getTaxRates() private view returns (uint8 xenRate, uint8 levinuRate, uint8 marketingRate) { uint8 _xenRate; uint8 _levinuRate; uint8 _marketingRate; uint256 currentDilutedUsdMC = _getCurrentDilutedMcUSD(); if (currentDilutedUsdMC < taxMcBracket1 ) { _xenRate = 1; _levinuRate = 0; _marketingRate = 4; } else if (currentDilutedUsdMC >= taxMcBracket1 && currentDilutedUsdMC < taxMcBracket2) { _xenRate = 1; _levinuRate = 0; _marketingRate = 3; } else if (currentDilutedUsdMC >= taxMcBracket2 && currentDilutedUsdMC < taxMcBracket3) { _xenRate = 1; _levinuRate = 0; _marketingRate = 1; } else { _xenRate = 0; _levinuRate = 0; _marketingRate = 0; } return (_xenRate, _levinuRate, _marketingRate); } function _getTaxTokens(address from, address to, uint256 amount) private view returns (uint256 xenLP, uint256 levinuLP, uint256 marketing) { uint256 _xenLP; uint256 _levinuLP; uint256 _marketing; if ( (_isLP[from] && !_excluded[to]) || (_isLP[to] && !_excluded[from]) ) { (uint8 xenRate, uint8 levinuRate, uint8 marketingRate) = _getTaxRates(); _xenLP = amount * xenRate / 100; _levinuLP = amount * levinuRate / 100; _marketing = amount * marketingRate / 100; } else { _xenLP = 0; _levinuLP = 0; _marketing = 0; } return (_xenLP, _levinuLP, _marketing); } function addInitialLiquidity() external onlyOwner { require(IERC20(_usdc).balanceOf(address(this))>0, "USDC value zero"); require(_primaryLP == address(0), "LP exists"); _primaryLP = IUniswapV2Factory(_swapRouter.factory()).createPair(address(this), _usdc); _isLP[_primaryLP] = true; _addLiquidity(address(this), _balances[address(this)], IERC20(_usdc).balanceOf(address(this)), false); _openAt = block.timestamp + _addTime; _protected = _openAt + 0; } function _addLiquidity(address _token, uint256 tokenAmount, uint256 usdcAmount, bool burnLpTokens) internal { require(IERC20(_token).balanceOf(address(this)) >= tokenAmount, "Not enough tokens"); require(IERC20(_usdc).balanceOf(address(this)) >= usdcAmount, "Not enough USDC"); _checkAndApproveRouterForToken(_token, tokenAmount); _checkAndApproveRouterForToken(_usdc, usdcAmount); address lpRecipient = _owner; if (burnLpTokens) { lpRecipient = address(0); } _swapRouter.addLiquidity( _usdc, // tokenA _token, // tokenB usdcAmount, // amountADesired tokenAmount, // amountBDesired 0, // amountAMin -- allowing slippage 0, // amountBMin -- allowing slippage lpRecipient, // to -- who gets the LP tokens block.timestamp // deadline ); } function stats() external view returns (uint256 currentUsdMC, uint256 currentTaxUSD, uint256 swapThresholdUSD) { uint256 currentMc = _getCurrentDilutedMcUSD(); uint256 currentTaxValue = currentMc * _balances[address(this)] / _totalSupply; return (currentMc, currentTaxValue, _thresholdUSDC); } function tax() external view returns (uint8 Liquidityxen, uint8 LiquidityLEVINU, uint8 Marketing) { (uint8 xenRate, uint8 levinuRate, uint8 marketingRate) = _getTaxRates(); return (xenRate, levinuRate, marketingRate); } function limits() external view returns (uint256 maxTransaction, uint256 maxWallet) { return (_maxTx, _maxWallet); } function isExcluded(address wallet) external view returns (bool) { return _excluded[wallet]; } function changeLimits(uint16 maxTxPermille, uint16 maxWalletPermille) public onlyOwner { _changeLimits(maxTxPermille, maxWalletPermille); } function _changeLimits(uint16 _maxTxPermille, uint16 _maxWalletPermille) private { uint256 newMaxTx = (_totalSupply * _maxTxPermille / 1000) + (10 * 10**_decimals); //add 10 tokens to avoid rounding issues uint256 newMaxWallet = (_totalSupply * _maxWalletPermille / 1000) + (10 * 10**_decimals); //add 10 tokens to avoid rounding issues require(newMaxTx >= _maxTx && newMaxWallet >= _maxWallet, "Cannot decrease limits"); if (newMaxTx > _totalSupply) { newMaxTx = _totalSupply; } if (newMaxWallet > _totalSupply) { newMaxWallet = _totalSupply; } _maxTx = newMaxTx; _maxWallet = newMaxWallet; } function changeTaxWallet(address walletMarketing) external onlyOwner { require(!_isLP[walletMarketing] && walletMarketing != _swapRouterAddress && walletMarketing != address(this) && walletMarketing != address(0)); _excluded[walletMarketing] = true; _marketingWallet = walletMarketing; } function _getThresholdTokenAmount() private view returns (uint256) { address[] memory path = new address[](2); path[0] = address(this); path[1] = _usdc; uint256[] memory amounts = _swapRouter.getAmountsIn(_thresholdUSDC * 10**_usdcDecimals, path); return amounts[0]; } function _processTaxTokens() private lockSwap { uint256 thresholdTokens = _getThresholdTokenAmount(); (uint8 xenRate, uint8 levinuRate, uint8 marketingRate) = _getTaxRates(); uint8 totalRate = xenRate + levinuRate + marketingRate; uint256 swapAmount = _balances[address(this)]; if (totalRate>0 && swapAmount >= thresholdTokens) { swapAmount = thresholdTokens; uint256 tokensForxen = (swapAmount * xenRate / totalRate); uint256 tokensForlevinuLP = (swapAmount * levinuRate / totalRate)/2; uint256 tokensForMarketing = swapAmount * marketingRate / totalRate; uint256 tokensToSwap = tokensForxen + tokensForMarketing + tokensForlevinuLP; if (tokensToSwap >= 10**_decimals) { uint256 swappedOutputUSDC = _swapTokens(address(this), _usdc, tokensToSwap, true); //swap LEVINU for USDC, use sidecar contract uint256 usdcForlevinuLP = swappedOutputUSDC * tokensForlevinuLP / tokensToSwap; //calc USDC for LEVINU liquidity uint256 usdcToSpendOnxen = (swappedOutputUSDC * tokensForxen / tokensToSwap) / 2; //calc USDC for xen liquidity uint256 usdcForMarketing = swappedOutputUSDC * tokensForMarketing / tokensToSwap; //calc USDC for marketing if (levinuRate>0) { _addLiquidity(address(this), tokensForlevinuLP, usdcForlevinuLP, true); } //add LEVINU liquidity and burn LP tokens if (xenRate>0) { uint256 xenPurchased = _swapTokens(_usdc, _xen, usdcToSpendOnxen, false); //purchase xen for liquidity, sidecar not used _addLiquidity(_xen, xenPurchased, usdcToSpendOnxen, true); //add xen liquidity and burn LP tokens } if (marketingRate>0) { uint256 remainingUsdcBalance = IERC20(_usdc).balanceOf(address(this)); if (usdcForMarketing > remainingUsdcBalance) { usdcForMarketing = remainingUsdcBalance; } //added check to avoid risk of having insufficient balance if (usdcForMarketing > 0) { IERC20(_usdc).transfer(_marketingWallet, usdcForMarketing); } //transfer USDC to marketing wallet } } } } function _swapTokens(address inputToken, address outputToken, uint256 inputAmount, bool useSidecar) private returns(uint256 outputAmount) { address swapFunctionRecipient = address(this); uint256 balanceBefore; uint256 swappedOutputTokens; if (useSidecar == true) { swapFunctionRecipient = _sidecarAddress; } else { balanceBefore = IERC20(outputToken).balanceOf(address(this)); } _checkAndApproveRouterForToken(inputToken, inputAmount); address[] memory path = new address[](2); path[0] = inputToken; path[1] = outputToken; _swapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( inputAmount, 0, path, swapFunctionRecipient, block.timestamp ); if (useSidecar == true) { swappedOutputTokens = _sidecarContract.recoverErc20Tokens(outputToken); } else { uint256 balanceAfter = IERC20(outputToken).balanceOf(address(this)); swappedOutputTokens = (balanceAfter - balanceBefore); } return swappedOutputTokens; } function recoverTokens(address tokenCa) external onlyOwner { require(tokenCa != address(this),"Not allowed"); uint256 tokenBalance = IERC20(tokenCa).balanceOf(address(this)); IERC20(tokenCa).transfer(msg.sender, tokenBalance); } function manualSwap() external onlyOwner { _processTaxTokens(); } function setExcluded(address wallet, bool exclude) external onlyOwner { string memory notAllowedError = "Not allowed"; require(!_isLP[wallet], notAllowedError); require(wallet != address(this), notAllowedError); require(wallet != _sidecarAddress, notAllowedError); require(wallet != _swapRouterAddress, notAllowedError); _excluded[wallet] = exclude; } function setThreshold(uint256 amountUSD) external onlyOwner { require(amountUSD > 0, "Threshold cannot be 0"); _thresholdUSDC = amountUSD; } function burn(uint256 amount) external { require(_balances[msg.sender] >= amount, "Low balance"); _balances[msg.sender] -= amount; _balances[address(0)] += amount; emit Transfer(msg.sender, address(0), amount); } function setAdditionalLP(address lpAddress, bool isLiqPool) external onlyOwner { string memory notAllowedError = "Not allowed"; require(!_excluded[lpAddress], notAllowedError); require(lpAddress != _primaryLP, notAllowedError); require(lpAddress != address(this), notAllowedError); require(lpAddress != _sidecarAddress, notAllowedError); require(lpAddress != _swapRouterAddress, notAllowedError); _isLP[lpAddress] = isLiqPool; } function isLP(address ca) external view returns (bool) { return _isLP[ca]; } }
{ "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":"addInitialLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addressList","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"sidecar","type":"address"},{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"xen","type":"address"},{"internalType":"address","name":"usdc","type":"address"},{"internalType":"address","name":"swapRouter","type":"address"},{"internalType":"address","name":"primaryLP","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"changeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletMarketing","type":"address"}],"name":"changeTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ca","type":"address"}],"name":"isLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits","outputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenCa","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lpAddress","type":"address"},{"internalType":"bool","name":"isLiqPool","type":"bool"}],"name":"setAdditionalLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountUSD","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stats","outputs":[{"internalType":"uint256","name":"currentUsdMC","type":"uint256"},{"internalType":"uint256","name":"currentTaxUSD","type":"uint256"},{"internalType":"uint256","name":"swapThresholdUSD","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint8","name":"Liquidityxen","type":"uint8"},{"internalType":"uint8","name":"LiquidityLEVINU","type":"uint8"},{"internalType":"uint8","name":"Marketing","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e06040526103e8600355600780546001600160a01b0319167340f693a958c96241ab0281f120c878acc664e1d31790556000600b553480156200004257600080fd5b50600080546001600160a01b03191633179055620000636009600a62000506565b6200007390633b9aca006200051e565b30600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3604051620000c990620003e3565b604051809103906000f080158015620000e6573d6000803e3d6000fd5b506001600160a01b031660c081905260a0526040805163313ce56760e01b8152905173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489163313ce5679160048083019260209291908290030181865afa15801562000149573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016f919062000538565b60ff1660805262000183600a601462000210565b600080546001600160a01b039081168252600660205260408083208054600160ff19918216811790925530855282852080548216831790557f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b4805482168317905560075484168552828520805482168317905560a051909316845292208054909116909117905562000596565b6000620002206009600a62000506565b6200022d90600a6200051e565b6103e861ffff8516620002436009600a62000506565b6200025390633b9aca006200051e565b6200025f91906200051e565b6200026b91906200055d565b62000277919062000580565b90506000620002896009600a62000506565b6200029690600a6200051e565b6103e861ffff8516620002ac6009600a62000506565b620002bc90633b9aca006200051e565b620002c891906200051e565b620002d491906200055d565b620002e0919062000580565b90506004548210158015620002f757506005548110155b620003485760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74206465637265617365206c696d69747300000000000000000000604482015260640160405180910390fd5b620003566009600a62000506565b6200036690633b9aca006200051e565b8211156200038f576200037c6009600a62000506565b6200038c90633b9aca006200051e565b91505b6200039d6009600a62000506565b620003ad90633b9aca006200051e565b811115620003d657620003c36009600a62000506565b620003d390633b9aca006200051e565b90505b6004919091556005555050565b6102c9806200320983390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004485781600019048211156200042c576200042c620003f1565b808516156200043a57918102915b93841c93908002906200040c565b509250929050565b600082620004615750600162000500565b81620004705750600062000500565b81600181146200048957600281146200049457620004b4565b600191505062000500565b60ff841115620004a857620004a8620003f1565b50506001821b62000500565b5060208310610133831016604e8410600b8410161715620004d9575081810a62000500565b620004e5838362000407565b8060001904821115620004fc57620004fc620003f1565b0290505b92915050565b60006200051760ff84168362000450565b9392505050565b8082028115828204841417620005005762000500620003f1565b6000602082840312156200054b57600080fd5b815160ff811681146200051757600080fd5b6000826200057b57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005005762000500620003f1565b60805160a05160c051612c27620005e2600039600061255b0152600081816103a30152818161092901528181610cd701526123a4015260008181611d7301526122d90152612c276000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a9059cbb11610097578063cba0e99611610071578063cba0e9961461043c578063d80528ae14610468578063dd62ed3e1461048b578063f2fde38b146104c457600080fd5b8063a9059cbb14610374578063c1eb6dfd14610387578063cb7115951461042957600080fd5b8063715018a6146102c45780637df0f767146102cc578063860aefcf146102f857806395d89b4114610313578063960bfe041461033557806399c8d5561461034857600080fd5b806323b872dd1161014b57806342966c681161012557806342966c681461026d57806351bc3c85146102805780635c07c9931461028857806370a082311461029b57600080fd5b806323b872dd146102385780632836be241461024b578063313ce5671461025e57600080fd5b80630210a83d1461019357806306fdde031461019d578063095ea7b3146101d95780630a6a52b9146101fc57806316114acd1461020f57806318160ddd14610222575b600080fd5b61019b6104d7565b005b60408051808201909152600e81526d4a61636b204c6576696e20496e7560901b60208201525b6040516101d09190612656565b60405180910390f35b6101ec6101e73660046126b9565b6107d8565b60405190151581526020016101d0565b61019b61020a3660046126f3565b61083f565b61019b61021d36600461272c565b6109e8565b61022a610b3c565b6040519081526020016101d0565b6101ec610246366004612750565b610b5d565b61019b6102593660046126f3565b610c1e565b604051600981526020016101d0565b61019b61027b366004612791565b610d96565b61019b610e82565b61019b6102963660046127bc565b610eb6565b61022a6102a936600461272c565b6001600160a01b031660009081526001602052604090205490565b61019b610eee565b6101ec6102da36600461272c565b6001600160a01b031660009081526009602052604090205460ff1690565b600454600554604080519283526020830191909152016101d0565b6040805180820190915260068152654c4556494e5560d01b60208201526101c3565b61019b610343366004612791565b610f22565b610350610f99565b6040805160ff948516815292841660208401529216918101919091526060016101d0565b6101ec6103823660046126b9565b610fb9565b600054600754600854604080516001600160a01b0394851681527f000000000000000000000000000000000000000000000000000000000000000085166020820152928416908301527306450dee7fd2fb8e39061434babcfc05599a6fb86060830152600080516020612bd28339815191526080830152737a250d5630b4cf539739df2c5dacb4c659f2488d60a08301529190911660c082015260e0016101d0565b61019b61043736600461272c565b610fc6565b6101ec61044a36600461272c565b6001600160a01b031660009081526006602052604090205460ff1690565b61047061109f565b604080519384526020840192909252908201526060016101d0565b61022a6104993660046127ef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61019b6104d236600461272c565b611100565b6000546001600160a01b0316331461050a5760405162461bcd60e51b81526004016105019061281d565b60405180910390fd5b6040516370a0823160e01b8152306004820152600090600080516020612bd2833981519152906370a0823190602401602060405180830381865afa158015610556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190612844565b116105b95760405162461bcd60e51b815260206004820152600f60248201526e555344432076616c7565207a65726f60881b6044820152606401610501565b6008546001600160a01b0316156105fe5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b6044820152606401610501565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610674919061285d565b6040516364e329cb60e11b8152306004820152600080516020612bd283398151915260248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af11580156106d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f4919061285d565b600880546001600160a01b0319166001600160a01b039290921691821790556000908152600960209081526040808320805460ff19166001908117909155308085529252918290205491516370a0823160e01b8152600481018290526107b69290600080516020612bd2833981519152906370a0823190602401602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af9190612844565b6000611136565b600b546107c39042612890565b600a8190556107d3906000612890565b600c55565b3360009081526001602052604081205461082a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f2062616c616e636560681b6044820152606401610501565b61083533848461138f565b5060015b92915050565b6000546001600160a01b031633146108695760405162461bcd60e51b81526004016105019061281d565b604080518082018252600b81526a139bdd08185b1b1bddd95960aa1b6020808301919091526001600160a01b038516600090815260069091529190912054819060ff16156108ca5760405162461bcd60e51b81526004016105019190612656565b5060085481906001600160a01b038581169116036108fb5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b03841630036109265760405162461bcd60e51b81526004016105019190612656565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415819061097c5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d036109bb5760405162461bcd60e51b81526004016105019190612656565b50506001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a125760405162461bcd60e51b81526004016105019061281d565b306001600160a01b03821603610a585760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610501565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac39190612844565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3791906128a3565b505050565b6000610b4a6009600a6129a4565b610b5890633b9aca006129b3565b905090565b6001600160a01b0383166000908152600260209081526040808320338452909152812054821115610bd05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a20616d6f756e74206578636565647320616c6c6f77616e6365006044820152606401610501565b6001600160a01b038416600090815260026020908152604080832033845290915281208054849290610c039084906129ca565b90915550610c149050848484611452565b5060019392505050565b6000546001600160a01b03163314610c485760405162461bcd60e51b81526004016105019061281d565b604080518082018252600b81526a139bdd08185b1b1bddd95960aa1b6020808301919091526001600160a01b038516600090815260099091529190912054819060ff1615610ca95760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b0384163003610cd45760405162461bcd60e51b81526004016105019190612656565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158190610d2a5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d03610d695760405162461bcd60e51b81526004016105019190612656565b50506001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b33600090815260016020526040902054811115610de35760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b6044820152606401610501565b3360009081526001602052604081208054839290610e029084906129ca565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498054839290610e42908490612890565b909155505060405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b6000546001600160a01b03163314610eac5760405162461bcd60e51b81526004016105019061281d565b610eb461178b565b565b6000546001600160a01b03163314610ee05760405162461bcd60e51b81526004016105019061281d565b610eea8282611aaf565b5050565b6000546001600160a01b03163314610f185760405162461bcd60e51b81526004016105019061281d565b610eb46000611c47565b6000546001600160a01b03163314610f4c5760405162461bcd60e51b81526004016105019061281d565b60008111610f945760405162461bcd60e51b815260206004820152601560248201527405468726573686f6c642063616e6e6f74206265203605c1b6044820152606401610501565b600355565b600080600080600080610faa611c9b565b91989097509095509350505050565b6000610835338484611452565b6000546001600160a01b03163314610ff05760405162461bcd60e51b81526004016105019061281d565b6001600160a01b03811660009081526009602052604090205460ff1615801561103657506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b801561104b57506001600160a01b0381163014155b801561105f57506001600160a01b03811615155b61106857600080fd5b6001600160a01b03166000818152600660205260409020805460ff19166001179055600780546001600160a01b0319169091179055565b6000806000806110ad611d3c565b905060006110bd6009600a6129a4565b6110cb90633b9aca006129b3565b306000908152600160205260409020546110e590846129b3565b6110ef91906129dd565b600354929690955091935090915050565b6000546001600160a01b0316331461112a5760405162461bcd60e51b81526004016105019061281d565b61113381611c47565b50565b6040516370a0823160e01b815230600482015283906001600160a01b038616906370a0823190602401602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190612844565b10156111e25760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b6044820152606401610501565b6040516370a0823160e01b81523060048201528290600080516020612bd2833981519152906370a0823190602401602060405180830381865afa15801561122d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112519190612844565b10156112915760405162461bcd60e51b815260206004820152600f60248201526e4e6f7420656e6f756768205553444360881b6044820152606401610501565b61129b8484611e58565b6112b3600080516020612bd283398151915283611e58565b6000546001600160a01b031681156112c9575060005b60405162e8e33760e81b8152600080516020612bd283398151915260048201526001600160a01b038087166024830152604482018590526064820186905260006084830181905260a4830152821660c48201524260e4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063e8e3370090610104016060604051808303816000875af1158015611361573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138591906129ff565b5050505050505050565b6001600160a01b038316158015906113af57506001600160a01b03821615155b6113f15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f206164647265737360681b6044820152606401610501565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383161580159061147257506001600160a01b03821615155b6114b45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f206164647265737360681b6044820152606401610501565b6001600160a01b03831660009081526001602052604090205481111561151c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20616d6f756e7420657863656564732062616c616e63650000006044820152606401610501565b611527838383611ff2565b6115655760405162461bcd60e51b815260206004820152600f60248201526e131a5b5a5d1cc8195e18d959591959608a1b6044820152606401610501565b600a5442116115a45760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b6044820152606401610501565b600a54421180156115b65750600c5442105b80156115c15750483a115b1561161a5760006115d2483a6129ca565b90506402540be4008082106116175760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b6044820152606401610501565b50505b600d5460ff1615801561164657506001600160a01b03831660009081526006602052604090205460ff16155b801561166a57506001600160a01b03821660009081526009602052604090205460ff165b156116775761167761178b565b600080600061168786868661210e565b9194509250905060008161169b8486612890565b6116a59190612890565b6001600160a01b0388166000908152600160205260408120805492935087929091906116d29084906129ca565b909155505030600090815260016020526040812080548392906116f6908490612890565b90915550611706905081866129ca565b6001600160a01b0387166000908152600160205260408120805490919061172e908490612890565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161177a91815260200190565b60405180910390a350505050505050565b600d805460ff1916600117905560006117a2612225565b905060008060006117b1611c9b565b919450925090506000816117c58486612a2d565b6117cf9190612a2d565b3060009081526001602052604090205490915060ff8216158015906117f45750858110155b15611a9d575084600060ff8084169061180f908816846129b3565b61181991906129dd565b9050600060028460ff168760ff168561183291906129b3565b61183c91906129dd565b61184691906129dd565b905060008460ff168660ff168561185d91906129b3565b61186791906129dd565b90506000826118768386612890565b6118809190612890565b905061188e6009600a6129a4565b8110611a985760006118b130600080516020612bd2833981519152846001612393565b90506000826118c086846129b3565b6118ca91906129dd565b905060006002846118db89866129b3565b6118e591906129dd565b6118ef91906129dd565b90506000846118fe87866129b3565b61190891906129dd565b905060ff8c1615611920576119203088856001611136565b60ff8d161561197f57600061195a600080516020612bd28339815191527306450dee7fd2fb8e39061434babcfc05599a6fb8856000612393565b905061197d7306450dee7fd2fb8e39061434babcfc05599a6fb882856001611136565b505b60ff8b1615611a93576040516370a0823160e01b8152306004820152600090600080516020612bd2833981519152906370a0823190602401602060405180830381865afa1580156119d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f89190612844565b905080821115611a06578091505b8115611a915760075460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101839052600080516020612bd28339815191529063a9059cbb906044016020604051808303816000875af1158015611a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8f91906128a3565b505b505b505050505b505050505b5050600d805460ff1916905550505050565b6000611abd6009600a6129a4565b611ac890600a6129b3565b6103e861ffff8516611adc6009600a6129a4565b611aea90633b9aca006129b3565b611af491906129b3565b611afe91906129dd565b611b089190612890565b90506000611b186009600a6129a4565b611b2390600a6129b3565b6103e861ffff8516611b376009600a6129a4565b611b4590633b9aca006129b3565b611b4f91906129b3565b611b5991906129dd565b611b639190612890565b90506004548210158015611b7957506005548110155b611bbe5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206465637265617365206c696d69747360501b6044820152606401610501565b611bca6009600a6129a4565b611bd890633b9aca006129b3565b821115611bfc57611beb6009600a6129a4565b611bf990633b9aca006129b3565b91505b611c086009600a6129a4565b611c1690633b9aca006129b3565b811115611c3a57611c296009600a6129a4565b611c3790633b9aca006129b3565b90505b6004919091556005555050565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000806000806000806000611cae611d3c565b9050620186a0811015611ccc57600193506000925060049150611d2f565b620186a08110158015611ce157506203d09081105b15611cf757600193506000925060039150611d2f565b6203d0908110158015611d0c5750620f424081105b15611d2257600193506000925060019150611d2f565b6000935060009250600091505b5091959094509092509050565b60085460009081906001600160a01b031615611e53576008546001600160a01b031660009081526001602052604081205490611d997f0000000000000000000000000000000000000000000000000000000000000000600a6129a4565b6008546040516370a0823160e01b81526001600160a01b039091166004820152600080516020612bd2833981519152906370a0823190602401602060405180830381865afa158015611def573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e139190612844565b611e1d91906129dd565b905081611e2c6009600a6129a4565b611e3a90633b9aca006129b3565b611e4490836129b3565b611e4e91906129dd565b925050505b919050565b6000306001600160a01b03841603611eda5750306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205480821115610b3757306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290206000199055505050565b604051636eb1769f60e11b8152306004820152737a250d5630b4cf539739df2c5dacb4c659f2488d60248201526001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5c9190612844565b905080821115610b375760405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d600482015260001960248201526001600160a01b0384169063095ea7b3906044016020604051808303816000875af1158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fec91906128a3565b50505050565b6004546000906001908311801561202257506001600160a01b03851660009081526006602052604090205460ff16155b801561204757506001600160a01b03841660009081526006602052604090205460ff16155b15612050575060005b6001600160a01b0384166000908152600160208190526040822054909190612079908690612890565b9050600554811180156120a557506001600160a01b03871660009081526006602052604090205460ff16155b80156120ca57506001600160a01b03861660009081526006602052604090205460ff16155b80156120ef57506001600160a01b03861660009081526009602052604090205460ff16155b156120f957600091505b8280156121035750815b979650505050505050565b6001600160a01b0383166000908152600960205260408120548190819081908190819060ff16801561215957506001600160a01b03881660009081526006602052604090205460ff16155b806121a057506001600160a01b03881660009081526009602052604090205460ff1680156121a057506001600160a01b03891660009081526006602052604090205460ff16155b156122125760008060006121b2611c9b565b9194509250905060646121c860ff85168c6129b3565b6121d291906129dd565b955060646121e360ff84168c6129b3565b6121ed91906129dd565b945060646121fe60ff83168c6129b3565b61220891906129dd565b9350505050610faa565b5060009889985088975095505050505050565b60408051600280825260608201835260009283929190602083019080368337019050509050308160008151811061225e5761225e612a5c565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020612bd2833981519152816001815181106122a0576122a0612a5c565b6001600160a01b03909216602092830291909101909101526000737a250d5630b4cf539739df2c5dacb4c659f2488d631f00ca746122ff7f0000000000000000000000000000000000000000000000000000000000000000600a6129a4565b60035461230c91906129b3565b846040518363ffffffff1660e01b815260040161232a929190612ab6565b600060405180830381865afa158015612347573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261236f9190810190612ad7565b90508060008151811061238457612384612a5c565b60200260200101519250505090565b60003081808415156001036123ca577f00000000000000000000000000000000000000000000000000000000000000009250612435565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa15801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190612844565b91505b61243f8887611e58565b604080516002808252606082018352600092602083019080368337019050509050888160008151811061247457612474612a5c565b60200260200101906001600160a01b031690816001600160a01b03168152505087816001815181106124a8576124a8612a5c565b6001600160a01b0390921660209283029190910190910152604051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d79590612500908a9060009086908a904290600401612b95565b600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050508515156001036125cf57604051636433bbd760e01b81526001600160a01b0389811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636433bbd7906024016020604051808303816000875af11580156125a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c89190612844565b915061264a565b6040516370a0823160e01b81523060048201526000906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612616573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263a9190612844565b905061264684826129ca565b9250505b50979650505050505050565b600060208083528351808285015260005b8181101561268357858101830151858201604001528201612667565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113357600080fd5b600080604083850312156126cc57600080fd5b82356126d7816126a4565b946020939093013593505050565b801515811461113357600080fd5b6000806040838503121561270657600080fd5b8235612711816126a4565b91506020830135612721816126e5565b809150509250929050565b60006020828403121561273e57600080fd5b8135612749816126a4565b9392505050565b60008060006060848603121561276557600080fd5b8335612770816126a4565b92506020840135612780816126a4565b929592945050506040919091013590565b6000602082840312156127a357600080fd5b5035919050565b803561ffff81168114611e5357600080fd5b600080604083850312156127cf57600080fd5b6127d8836127aa565b91506127e6602084016127aa565b90509250929050565b6000806040838503121561280257600080fd5b823561280d816126a4565b91506020830135612721816126a4565b6020808252600d908201526c2737ba103a34329037bbb732b960991b604082015260600190565b60006020828403121561285657600080fd5b5051919050565b60006020828403121561286f57600080fd5b8151612749816126a4565b634e487b7160e01b600052601160045260246000fd5b808201808211156108395761083961287a565b6000602082840312156128b557600080fd5b8151612749816126e5565b600181815b808511156128fb5781600019048211156128e1576128e161287a565b808516156128ee57918102915b93841c93908002906128c5565b509250929050565b60008261291257506001610839565b8161291f57506000610839565b8160018114612935576002811461293f5761295b565b6001915050610839565b60ff8411156129505761295061287a565b50506001821b610839565b5060208310610133831016604e8410600b841016171561297e575081810a610839565b61298883836128c0565b806000190482111561299c5761299c61287a565b029392505050565b600061274960ff841683612903565b80820281158282048414176108395761083961287a565b818103818111156108395761083961287a565b6000826129fa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215612a1457600080fd5b8351925060208401519150604084015190509250925092565b60ff81811683821601908111156108395761083961287a565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612aab5781516001600160a01b031687529582019590820190600101612a86565b509495945050505050565b828152604060208201526000612acf6040830184612a72565b949350505050565b60006020808385031215612aea57600080fd5b825167ffffffffffffffff80821115612b0257600080fd5b818501915085601f830112612b1657600080fd5b815181811115612b2857612b28612a46565b8060051b604051601f19603f83011681018181108582111715612b4d57612b4d612a46565b604052918252848201925083810185019188831115612b6b57600080fd5b938501935b82851015612b8957845184529385019392850192612b70565b98975050505050505050565b85815284602082015260a060408201526000612bb460a0830186612a72565b6001600160a01b039490941660608301525060800152939250505056fe000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48a2646970667358221220849b20ef69bfbe88704ebfc95fcb8931f7db7ab21db4fe87b1bbde560ca4fdbd64736f6c6343000811003360a060405234801561001057600080fd5b503360805260805161029461003560003960008181606e015260a501526102946000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636433bbd71461003b5780638da5cb5b14610061575b600080fd5b61004e6100493660046101f3565b610098565b6040519081526020015b60405180910390f35b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152602001610058565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101075760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561014e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101729190610223565b905080156101ed5760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156101c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101eb919061023c565b505b92915050565b60006020828403121561020557600080fd5b81356001600160a01b038116811461021c57600080fd5b9392505050565b60006020828403121561023557600080fd5b5051919050565b60006020828403121561024e57600080fd5b8151801515811461021c57600080fdfea264697066735822122083fd5823e5938e236d03e754df8735ec50ff59f1e16f97c597433c3c2d52254064736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a9059cbb11610097578063cba0e99611610071578063cba0e9961461043c578063d80528ae14610468578063dd62ed3e1461048b578063f2fde38b146104c457600080fd5b8063a9059cbb14610374578063c1eb6dfd14610387578063cb7115951461042957600080fd5b8063715018a6146102c45780637df0f767146102cc578063860aefcf146102f857806395d89b4114610313578063960bfe041461033557806399c8d5561461034857600080fd5b806323b872dd1161014b57806342966c681161012557806342966c681461026d57806351bc3c85146102805780635c07c9931461028857806370a082311461029b57600080fd5b806323b872dd146102385780632836be241461024b578063313ce5671461025e57600080fd5b80630210a83d1461019357806306fdde031461019d578063095ea7b3146101d95780630a6a52b9146101fc57806316114acd1461020f57806318160ddd14610222575b600080fd5b61019b6104d7565b005b60408051808201909152600e81526d4a61636b204c6576696e20496e7560901b60208201525b6040516101d09190612656565b60405180910390f35b6101ec6101e73660046126b9565b6107d8565b60405190151581526020016101d0565b61019b61020a3660046126f3565b61083f565b61019b61021d36600461272c565b6109e8565b61022a610b3c565b6040519081526020016101d0565b6101ec610246366004612750565b610b5d565b61019b6102593660046126f3565b610c1e565b604051600981526020016101d0565b61019b61027b366004612791565b610d96565b61019b610e82565b61019b6102963660046127bc565b610eb6565b61022a6102a936600461272c565b6001600160a01b031660009081526001602052604090205490565b61019b610eee565b6101ec6102da36600461272c565b6001600160a01b031660009081526009602052604090205460ff1690565b600454600554604080519283526020830191909152016101d0565b6040805180820190915260068152654c4556494e5560d01b60208201526101c3565b61019b610343366004612791565b610f22565b610350610f99565b6040805160ff948516815292841660208401529216918101919091526060016101d0565b6101ec6103823660046126b9565b610fb9565b600054600754600854604080516001600160a01b0394851681527f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f85166020820152928416908301527306450dee7fd2fb8e39061434babcfc05599a6fb86060830152600080516020612bd28339815191526080830152737a250d5630b4cf539739df2c5dacb4c659f2488d60a08301529190911660c082015260e0016101d0565b61019b61043736600461272c565b610fc6565b6101ec61044a36600461272c565b6001600160a01b031660009081526006602052604090205460ff1690565b61047061109f565b604080519384526020840192909252908201526060016101d0565b61022a6104993660046127ef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61019b6104d236600461272c565b611100565b6000546001600160a01b0316331461050a5760405162461bcd60e51b81526004016105019061281d565b60405180910390fd5b6040516370a0823160e01b8152306004820152600090600080516020612bd2833981519152906370a0823190602401602060405180830381865afa158015610556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190612844565b116105b95760405162461bcd60e51b815260206004820152600f60248201526e555344432076616c7565207a65726f60881b6044820152606401610501565b6008546001600160a01b0316156105fe5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b6044820152606401610501565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610674919061285d565b6040516364e329cb60e11b8152306004820152600080516020612bd283398151915260248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af11580156106d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f4919061285d565b600880546001600160a01b0319166001600160a01b039290921691821790556000908152600960209081526040808320805460ff19166001908117909155308085529252918290205491516370a0823160e01b8152600481018290526107b69290600080516020612bd2833981519152906370a0823190602401602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af9190612844565b6000611136565b600b546107c39042612890565b600a8190556107d3906000612890565b600c55565b3360009081526001602052604081205461082a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f2062616c616e636560681b6044820152606401610501565b61083533848461138f565b5060015b92915050565b6000546001600160a01b031633146108695760405162461bcd60e51b81526004016105019061281d565b604080518082018252600b81526a139bdd08185b1b1bddd95960aa1b6020808301919091526001600160a01b038516600090815260069091529190912054819060ff16156108ca5760405162461bcd60e51b81526004016105019190612656565b5060085481906001600160a01b038581169116036108fb5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b03841630036109265760405162461bcd60e51b81526004016105019190612656565b507f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f6001600160a01b0316836001600160a01b03161415819061097c5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d036109bb5760405162461bcd60e51b81526004016105019190612656565b50506001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a125760405162461bcd60e51b81526004016105019061281d565b306001600160a01b03821603610a585760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610501565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac39190612844565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3791906128a3565b505050565b6000610b4a6009600a6129a4565b610b5890633b9aca006129b3565b905090565b6001600160a01b0383166000908152600260209081526040808320338452909152812054821115610bd05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a20616d6f756e74206578636565647320616c6c6f77616e6365006044820152606401610501565b6001600160a01b038416600090815260026020908152604080832033845290915281208054849290610c039084906129ca565b90915550610c149050848484611452565b5060019392505050565b6000546001600160a01b03163314610c485760405162461bcd60e51b81526004016105019061281d565b604080518082018252600b81526a139bdd08185b1b1bddd95960aa1b6020808301919091526001600160a01b038516600090815260099091529190912054819060ff1615610ca95760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b0384163003610cd45760405162461bcd60e51b81526004016105019190612656565b507f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f6001600160a01b0316836001600160a01b031614158190610d2a5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d03610d695760405162461bcd60e51b81526004016105019190612656565b50506001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b33600090815260016020526040902054811115610de35760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b6044820152606401610501565b3360009081526001602052604081208054839290610e029084906129ca565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498054839290610e42908490612890565b909155505060405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b6000546001600160a01b03163314610eac5760405162461bcd60e51b81526004016105019061281d565b610eb461178b565b565b6000546001600160a01b03163314610ee05760405162461bcd60e51b81526004016105019061281d565b610eea8282611aaf565b5050565b6000546001600160a01b03163314610f185760405162461bcd60e51b81526004016105019061281d565b610eb46000611c47565b6000546001600160a01b03163314610f4c5760405162461bcd60e51b81526004016105019061281d565b60008111610f945760405162461bcd60e51b815260206004820152601560248201527405468726573686f6c642063616e6e6f74206265203605c1b6044820152606401610501565b600355565b600080600080600080610faa611c9b565b91989097509095509350505050565b6000610835338484611452565b6000546001600160a01b03163314610ff05760405162461bcd60e51b81526004016105019061281d565b6001600160a01b03811660009081526009602052604090205460ff1615801561103657506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b801561104b57506001600160a01b0381163014155b801561105f57506001600160a01b03811615155b61106857600080fd5b6001600160a01b03166000818152600660205260409020805460ff19166001179055600780546001600160a01b0319169091179055565b6000806000806110ad611d3c565b905060006110bd6009600a6129a4565b6110cb90633b9aca006129b3565b306000908152600160205260409020546110e590846129b3565b6110ef91906129dd565b600354929690955091935090915050565b6000546001600160a01b0316331461112a5760405162461bcd60e51b81526004016105019061281d565b61113381611c47565b50565b6040516370a0823160e01b815230600482015283906001600160a01b038616906370a0823190602401602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190612844565b10156111e25760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b6044820152606401610501565b6040516370a0823160e01b81523060048201528290600080516020612bd2833981519152906370a0823190602401602060405180830381865afa15801561122d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112519190612844565b10156112915760405162461bcd60e51b815260206004820152600f60248201526e4e6f7420656e6f756768205553444360881b6044820152606401610501565b61129b8484611e58565b6112b3600080516020612bd283398151915283611e58565b6000546001600160a01b031681156112c9575060005b60405162e8e33760e81b8152600080516020612bd283398151915260048201526001600160a01b038087166024830152604482018590526064820186905260006084830181905260a4830152821660c48201524260e4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063e8e3370090610104016060604051808303816000875af1158015611361573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138591906129ff565b5050505050505050565b6001600160a01b038316158015906113af57506001600160a01b03821615155b6113f15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f206164647265737360681b6044820152606401610501565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383161580159061147257506001600160a01b03821615155b6114b45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f206164647265737360681b6044820152606401610501565b6001600160a01b03831660009081526001602052604090205481111561151c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20616d6f756e7420657863656564732062616c616e63650000006044820152606401610501565b611527838383611ff2565b6115655760405162461bcd60e51b815260206004820152600f60248201526e131a5b5a5d1cc8195e18d959591959608a1b6044820152606401610501565b600a5442116115a45760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b6044820152606401610501565b600a54421180156115b65750600c5442105b80156115c15750483a115b1561161a5760006115d2483a6129ca565b90506402540be4008082106116175760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b6044820152606401610501565b50505b600d5460ff1615801561164657506001600160a01b03831660009081526006602052604090205460ff16155b801561166a57506001600160a01b03821660009081526009602052604090205460ff165b156116775761167761178b565b600080600061168786868661210e565b9194509250905060008161169b8486612890565b6116a59190612890565b6001600160a01b0388166000908152600160205260408120805492935087929091906116d29084906129ca565b909155505030600090815260016020526040812080548392906116f6908490612890565b90915550611706905081866129ca565b6001600160a01b0387166000908152600160205260408120805490919061172e908490612890565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161177a91815260200190565b60405180910390a350505050505050565b600d805460ff1916600117905560006117a2612225565b905060008060006117b1611c9b565b919450925090506000816117c58486612a2d565b6117cf9190612a2d565b3060009081526001602052604090205490915060ff8216158015906117f45750858110155b15611a9d575084600060ff8084169061180f908816846129b3565b61181991906129dd565b9050600060028460ff168760ff168561183291906129b3565b61183c91906129dd565b61184691906129dd565b905060008460ff168660ff168561185d91906129b3565b61186791906129dd565b90506000826118768386612890565b6118809190612890565b905061188e6009600a6129a4565b8110611a985760006118b130600080516020612bd2833981519152846001612393565b90506000826118c086846129b3565b6118ca91906129dd565b905060006002846118db89866129b3565b6118e591906129dd565b6118ef91906129dd565b90506000846118fe87866129b3565b61190891906129dd565b905060ff8c1615611920576119203088856001611136565b60ff8d161561197f57600061195a600080516020612bd28339815191527306450dee7fd2fb8e39061434babcfc05599a6fb8856000612393565b905061197d7306450dee7fd2fb8e39061434babcfc05599a6fb882856001611136565b505b60ff8b1615611a93576040516370a0823160e01b8152306004820152600090600080516020612bd2833981519152906370a0823190602401602060405180830381865afa1580156119d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f89190612844565b905080821115611a06578091505b8115611a915760075460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101839052600080516020612bd28339815191529063a9059cbb906044016020604051808303816000875af1158015611a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8f91906128a3565b505b505b505050505b505050505b5050600d805460ff1916905550505050565b6000611abd6009600a6129a4565b611ac890600a6129b3565b6103e861ffff8516611adc6009600a6129a4565b611aea90633b9aca006129b3565b611af491906129b3565b611afe91906129dd565b611b089190612890565b90506000611b186009600a6129a4565b611b2390600a6129b3565b6103e861ffff8516611b376009600a6129a4565b611b4590633b9aca006129b3565b611b4f91906129b3565b611b5991906129dd565b611b639190612890565b90506004548210158015611b7957506005548110155b611bbe5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206465637265617365206c696d69747360501b6044820152606401610501565b611bca6009600a6129a4565b611bd890633b9aca006129b3565b821115611bfc57611beb6009600a6129a4565b611bf990633b9aca006129b3565b91505b611c086009600a6129a4565b611c1690633b9aca006129b3565b811115611c3a57611c296009600a6129a4565b611c3790633b9aca006129b3565b90505b6004919091556005555050565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000806000806000806000611cae611d3c565b9050620186a0811015611ccc57600193506000925060049150611d2f565b620186a08110158015611ce157506203d09081105b15611cf757600193506000925060039150611d2f565b6203d0908110158015611d0c5750620f424081105b15611d2257600193506000925060019150611d2f565b6000935060009250600091505b5091959094509092509050565b60085460009081906001600160a01b031615611e53576008546001600160a01b031660009081526001602052604081205490611d997f0000000000000000000000000000000000000000000000000000000000000006600a6129a4565b6008546040516370a0823160e01b81526001600160a01b039091166004820152600080516020612bd2833981519152906370a0823190602401602060405180830381865afa158015611def573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e139190612844565b611e1d91906129dd565b905081611e2c6009600a6129a4565b611e3a90633b9aca006129b3565b611e4490836129b3565b611e4e91906129dd565b925050505b919050565b6000306001600160a01b03841603611eda5750306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205480821115610b3757306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290206000199055505050565b604051636eb1769f60e11b8152306004820152737a250d5630b4cf539739df2c5dacb4c659f2488d60248201526001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5c9190612844565b905080821115610b375760405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d600482015260001960248201526001600160a01b0384169063095ea7b3906044016020604051808303816000875af1158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fec91906128a3565b50505050565b6004546000906001908311801561202257506001600160a01b03851660009081526006602052604090205460ff16155b801561204757506001600160a01b03841660009081526006602052604090205460ff16155b15612050575060005b6001600160a01b0384166000908152600160208190526040822054909190612079908690612890565b9050600554811180156120a557506001600160a01b03871660009081526006602052604090205460ff16155b80156120ca57506001600160a01b03861660009081526006602052604090205460ff16155b80156120ef57506001600160a01b03861660009081526009602052604090205460ff16155b156120f957600091505b8280156121035750815b979650505050505050565b6001600160a01b0383166000908152600960205260408120548190819081908190819060ff16801561215957506001600160a01b03881660009081526006602052604090205460ff16155b806121a057506001600160a01b03881660009081526009602052604090205460ff1680156121a057506001600160a01b03891660009081526006602052604090205460ff16155b156122125760008060006121b2611c9b565b9194509250905060646121c860ff85168c6129b3565b6121d291906129dd565b955060646121e360ff84168c6129b3565b6121ed91906129dd565b945060646121fe60ff83168c6129b3565b61220891906129dd565b9350505050610faa565b5060009889985088975095505050505050565b60408051600280825260608201835260009283929190602083019080368337019050509050308160008151811061225e5761225e612a5c565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020612bd2833981519152816001815181106122a0576122a0612a5c565b6001600160a01b03909216602092830291909101909101526000737a250d5630b4cf539739df2c5dacb4c659f2488d631f00ca746122ff7f0000000000000000000000000000000000000000000000000000000000000006600a6129a4565b60035461230c91906129b3565b846040518363ffffffff1660e01b815260040161232a929190612ab6565b600060405180830381865afa158015612347573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261236f9190810190612ad7565b90508060008151811061238457612384612a5c565b60200260200101519250505090565b60003081808415156001036123ca577f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f9250612435565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa15801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190612844565b91505b61243f8887611e58565b604080516002808252606082018352600092602083019080368337019050509050888160008151811061247457612474612a5c565b60200260200101906001600160a01b031690816001600160a01b03168152505087816001815181106124a8576124a8612a5c565b6001600160a01b0390921660209283029190910190910152604051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d79590612500908a9060009086908a904290600401612b95565b600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050508515156001036125cf57604051636433bbd760e01b81526001600160a01b0389811660048301527f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f1690636433bbd7906024016020604051808303816000875af11580156125a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c89190612844565b915061264a565b6040516370a0823160e01b81523060048201526000906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612616573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263a9190612844565b905061264684826129ca565b9250505b50979650505050505050565b600060208083528351808285015260005b8181101561268357858101830151858201604001528201612667565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113357600080fd5b600080604083850312156126cc57600080fd5b82356126d7816126a4565b946020939093013593505050565b801515811461113357600080fd5b6000806040838503121561270657600080fd5b8235612711816126a4565b91506020830135612721816126e5565b809150509250929050565b60006020828403121561273e57600080fd5b8135612749816126a4565b9392505050565b60008060006060848603121561276557600080fd5b8335612770816126a4565b92506020840135612780816126a4565b929592945050506040919091013590565b6000602082840312156127a357600080fd5b5035919050565b803561ffff81168114611e5357600080fd5b600080604083850312156127cf57600080fd5b6127d8836127aa565b91506127e6602084016127aa565b90509250929050565b6000806040838503121561280257600080fd5b823561280d816126a4565b91506020830135612721816126a4565b6020808252600d908201526c2737ba103a34329037bbb732b960991b604082015260600190565b60006020828403121561285657600080fd5b5051919050565b60006020828403121561286f57600080fd5b8151612749816126a4565b634e487b7160e01b600052601160045260246000fd5b808201808211156108395761083961287a565b6000602082840312156128b557600080fd5b8151612749816126e5565b600181815b808511156128fb5781600019048211156128e1576128e161287a565b808516156128ee57918102915b93841c93908002906128c5565b509250929050565b60008261291257506001610839565b8161291f57506000610839565b8160018114612935576002811461293f5761295b565b6001915050610839565b60ff8411156129505761295061287a565b50506001821b610839565b5060208310610133831016604e8410600b841016171561297e575081810a610839565b61298883836128c0565b806000190482111561299c5761299c61287a565b029392505050565b600061274960ff841683612903565b80820281158282048414176108395761083961287a565b818103818111156108395761083961287a565b6000826129fa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215612a1457600080fd5b8351925060208401519150604084015190509250925092565b60ff81811683821601908111156108395761083961287a565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612aab5781516001600160a01b031687529582019590820190600101612a86565b509495945050505050565b828152604060208201526000612acf6040830184612a72565b949350505050565b60006020808385031215612aea57600080fd5b825167ffffffffffffffff80821115612b0257600080fd5b818501915085601f830112612b1657600080fd5b815181811115612b2857612b28612a46565b8060051b604051601f19603f83011681018181108582111715612b4d57612b4d612a46565b604052918252848201925083810185019188831115612b6b57600080fd5b938501935b82851015612b8957845184529385019392850192612b70565b98975050505050505050565b85815284602082015260a060408201526000612bb460a0830186612a72565b6001600160a01b039490941660608301525060800152939250505056fe000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48a2646970667358221220849b20ef69bfbe88704ebfc95fcb8931f7db7ab21db4fe87b1bbde560ca4fdbd64736f6c63430008110033
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.