ERC-20
Overview
Max Total Supply
1,000,000,000 AID
Holders
347
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
29,306,206.563985293 AIDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
AIDEV
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//=============================================================================================================== // _____ _____ ______ __ __ // /\ |_ _| | __ \ | ____|\ \ / / // / \ | | | | | || |__ \ \ / / // / /\ \ | | | | | || __| \ \/ / // / ____ \ _| |_ | |__| || |____ \ / // /_/ \_\|_____| |_____/ |______| \/ //=============================================================================================================== //=============================================================================================================== /** * @title AI DEV * @dev ERC20 Token Contract * * @notice This contract implements the standard ERC20 token with additional features. * * @author * * @links * - Website: [https://aidev.bot/](https://aidev.bot/) * - Telegram: [https://t.me/Aidev_bots](https://t.me/Aidev_bots) * - Twitter: [https://x.com/AiDevbots](https://x.com/AiDevbots) * * @description * This token is developed and maintained by the AiDev team. For more information, updates, and support, please visit our official channels listed above. */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; //--- Context ---// abstract contract Context { constructor() { } function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } //--- Ownable ---// abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } //--- Interface for ERC20 ---// 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); } //=============================================================================================================== // _____ _____ ______ __ __ // /\ |_ _| | __ \ | ____|\ \ / / // / \ | | | | | || |__ \ \ / / // / /\ \ | | | | | || __| \ \/ / // / ____ \ _| |_ | |__| || |____ \ / // /_/ \_\|_____| |_____/ |______| \/ //=============================================================================================================== //=============================================================================================================== //--- Contract v3 ---// contract AIDEV is Context, Ownable,IERC20 { function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; } function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return balance[account]; } mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _noFee; mapping (address => bool) private liquidityAdd; mapping (address => bool) private isLpPair; mapping (address => bool) private isPresaleAddress; mapping (address => uint256) private balance; uint256 constant public _totalSupply = 1_000_000_000 * 10**9; uint256 constant public swapFee = _totalSupply / 1_000; uint256 constant public buyTax = 50; uint256 constant public sellTax = 50; uint256 constant public transferfee = 0; uint256 constant public fee_denominator = 1_000; bool private canSwapFees = false; address payable private marketingAddress = payable(0x690060E470EA5851Fd975aE4F00Ec33073C12699); address payable private devAddress = payable(0xECA200364B509aF71a36285713F368E89b66FDC9); IRouter02 public swapRouter; string constant private _name = "AI DEV"; string constant private _symbol = "AID"; uint8 constant private _decimals = 9; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; address public lpPair; bool public tradingEnable = false; bool private inSwap; modifier inSwapFlag { inSwap = true; _; inSwap = false; } event _enableTrading(); event _setPresaleAddress(address account, bool enabled); event _toggleCanSwapFees(bool enabled); event _changePair(address newLpPair); event _changeThreshold(uint256 newThreshold); event _changeWallets(address indexed newBuy, address indexed newDev); event SwapAndLiquify(); constructor () { _noFee[msg.sender] = true; if (block.chainid == 56) { swapRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if (block.chainid == 97) { swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) { swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } else { revert("Chain not valid"); } liquidityAdd[msg.sender] = true; balance[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); canSwapFees = true; lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this)); isLpPair[lpPair] = true; _approve(msg.sender, address(swapRouter), type(uint256).max); _approve(address(this), address(swapRouter), type(uint256).max); } receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function isNoFeeWallet(address account) external view returns(bool) { return _noFee[account]; } function setNoFeeWallet(address account, bool enabled) public onlyOwner { require(account != address(0),"AIDEV: Account is zero address"); _noFee[account] = enabled; } function isLimitedAddress(address ins, address out) internal view returns (bool) { bool isLimited = ins != owner() && out != owner() && msg.sender != owner() && !liquidityAdd[ins] && !liquidityAdd[out] && out != address(0) && out != address(this); return isLimited; } function is_buy(address ins, address out) internal view returns (bool) { bool _is_buy = !isLpPair[out] && isLpPair[ins]; return _is_buy; } function is_sell(address ins, address out) internal view returns (bool) { bool _is_sell = isLpPair[out] && !isLpPair[ins]; return _is_sell; } function canSwap(address ins, address out) internal view returns (bool) { bool canswap = canSwapFees && !isPresaleAddress[ins] && !isPresaleAddress[out]; return canswap; } function toggleCanSwapFees(bool yesno) external onlyOwner { require(canSwapFees != yesno,"Bool is the same"); canSwapFees = yesno; emit _toggleCanSwapFees(yesno); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { bool takeFee = true; require(to != address(0), "ERC20: transfer to the zero address"); require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (isLimitedAddress(from,to)) { require(tradingEnable,"Trading is not enabled"); } if(is_sell(from, to) && !inSwap && canSwap(from, to)) { uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= swapFee) { uint256 toLiq = contractTokenBalance / 5; if(toLiq > 0) swapAndLiquify(toLiq); contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > 0) internalSwap(contractTokenBalance); } } if (_noFee[from] || _noFee[to]){ takeFee = false; } balance[from] -= amount; uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount) : amount; balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee); return true; } function changeWallets(address newBuy, address newDev) external onlyOwner { require(newBuy != address(0),"AIDEV: Marketing address cannot be zero"); require(newDev != address(0),"AIDEV: Dev address cannot be zero"); marketingAddress = payable(newBuy); devAddress = payable(newDev); emit _changeWallets(newBuy, newDev); } function takeTaxes(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) { uint256 fee; if (isbuy) fee = buyTax; else if (issell) fee = sellTax; else fee = transferfee; if (fee == 0) return amount; uint256 feeAmount = amount * fee / fee_denominator; if (feeAmount > 0) { balance[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); } return amount - feeAmount; } function swapAndLiquify(uint256 contractTokenBalance) internal inSwapFlag { uint256 firstmath = contractTokenBalance / 2; uint256 secondMath = contractTokenBalance - firstmath; uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = swapRouter.WETH(); if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) { _allowances[address(this)][address(swapRouter)] = type(uint256).max; } try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( firstmath, 0, path, address(this), block.timestamp) {} catch {return;} uint256 newBalance = address(this).balance - initialBalance; try swapRouter.addLiquidityETH{value: newBalance}( address(this), secondMath, 0, 0, DEAD, block.timestamp ){} catch {return;} emit SwapAndLiquify(); } function internalSwap(uint256 contractTokenBalance) internal inSwapFlag { address[] memory path = new address[](2); path[0] = address(this); path[1] = swapRouter.WETH(); if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) { _allowances[address(this)][address(swapRouter)] = type(uint256).max; } try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ) {} catch { return; } bool success; uint256 toMarketing = address(this).balance / 2; if(toMarketing > 0) (success,) = marketingAddress.call{value: toMarketing, gas: 35000}(""); if(address(this).balance > 0) (success,) = devAddress.call{value: address(this).balance, gas: 35000}(""); } function setPresaleAddress(address presale, bool yesno) external onlyOwner { require(isPresaleAddress[presale] != yesno,"Same bool"); isPresaleAddress[presale] = yesno; _noFee[presale] = yesno; liquidityAdd[presale] = yesno; emit _setPresaleAddress(presale, yesno); } function enableTrading() external onlyOwner { require(!tradingEnable, "Trading already enabled"); tradingEnable = true; emit _enableTrading(); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "remappings": [] }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpPair","type":"address"}],"name":"_changePair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"_changeThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newBuy","type":"address"},{"indexed":true,"internalType":"address","name":"newDev","type":"address"}],"name":"_changeWallets","type":"event"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_setPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_toggleCanSwapFees","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newBuy","type":"address"},{"internalType":"address","name":"newDev","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","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":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presale","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"setPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"toggleCanSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526007805474690060e470ea5851fd975ae4f00ec33073c12699006001600160a81b0319909116179055600880546001600160a01b03191673eca200364b509af71a36285713f368e89b66fdc9179055600a805460ff60a01b191690553480156200006c575f80fd5b506200007833620003c4565b335f908152600260205260409020805460ff1916600117905546603803620000c657600980546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000188565b46606103620000fb57600980546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d117905562000188565b46600114806200010b5750466004145b80620001175750466003145b156200014957600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000188565b60405162461bcd60e51b815260206004820152600f60248201526e10da185a5b881b9bdd081d985b1a59608a1b60448201526064015b60405180910390fd5b335f818152600360209081526040808320805460ff1916600117905560068252808320670de0b6b3a76400009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36007805460ff191660011790556009546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156200023e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026491906200050f565b6001600160a01b031663c9c6539660095f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e991906200050f565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af115801562000333573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035991906200050f565b600a80546001600160a01b0319166001600160a01b039283169081179091555f908152600460205260409020805460ff19166001179055600954620003a3913391165f1962000413565b600954620003be9030906001600160a01b03165f1962000413565b6200053e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004615760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016200017f565b6001600160a01b038216620004af5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016200017f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6020828403121562000520575f80fd5b81516001600160a01b038116811462000537575f80fd5b9392505050565b611ae9806200054c5f395ff3fe6080604052600436106101bd575f3560e01c806354cf2aeb116100f257806395d89b4111610092578063cc1776d311610062578063cc1776d3146103ae578063dc9d75b0146104e9578063dd62ed3e146104fe578063f2fde38b14610542575f80fd5b806395d89b4114610461578063a61699c41461048c578063a9059cbb146104ab578063c31c9c07146104ca575f80fd5b8063715018a6116100cd578063715018a61461041d578063893d20e8146104315780638a8c523c1461044d5780638da5cb5b14610431575f80fd5b806354cf2aeb146103c257806354de7bee146103d657806370a08231146103e9575f80fd5b806323b872dd1161015d5780633cd17c96116101385780633cd17c96146103555780633eaaf86b14610374578063452ed4f11461038f5780634f7041a5146103ae575f80fd5b806323b872dd146102e45780632788986214610303578063313ce5671461033a575f80fd5b80630faba554116101985780630faba55414610260578063111a60b0146102815780631693e8d4146102a057806318160ddd146102c0575f80fd5b806303fd2a45146101c857806306fdde03146101fa578063095ea7b314610231575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101dd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610205575f80fd5b5060408051808201909152600681526520a4902222ab60d11b60208201525b6040516101f191906117c2565b34801561023c575f80fd5b5061025061024b366004611822565b610561565b60405190151581526020016101f1565b34801561026b575f80fd5b5061027f61027a366004611860565b610577565b005b34801561028c575f80fd5b5061027f61029b366004611893565b610629565b3480156102ab575f80fd5b50600a5461025090600160a01b900460ff1681565b3480156102cb575f80fd5b50670de0b6b3a76400005b6040519081526020016101f1565b3480156102ef575f80fd5b506102506102fe3660046118b3565b6106e6565b34801561030e575f80fd5b5061025061031d3660046118f1565b6001600160a01b03165f9081526002602052604090205460ff1690565b348015610345575f80fd5b50604051600981526020016101f1565b348015610360575f80fd5b5061027f61036f366004611860565b61075b565b34801561037f575f80fd5b506102d6670de0b6b3a764000081565b34801561039a575f80fd5b50600a546101dd906001600160a01b031681565b3480156103b9575f80fd5b506102d6603281565b3480156103cd575f80fd5b506102d6610865565b3480156103e1575f80fd5b506102d65f81565b3480156103f4575f80fd5b506102d66104033660046118f1565b6001600160a01b03165f9081526006602052604090205490565b348015610428575f80fd5b5061027f61087c565b34801561043c575f80fd5b505f546001600160a01b03166101dd565b348015610458575f80fd5b5061027f6108b0565b34801561046c575f80fd5b5060408051808201909152600381526210525160ea1b6020820152610224565b348015610497575f80fd5b5061027f6104a636600461190c565b610970565b3480156104b6575f80fd5b506102506104c5366004611822565b610aca565b3480156104d5575f80fd5b506009546101dd906001600160a01b031681565b3480156104f4575f80fd5b506102d66103e881565b348015610509575f80fd5b506102d661051836600461190c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561054d575f80fd5b5061027f61055c3660046118f1565b610ae0565b5f61056d338484610b7a565b5060015b92915050565b5f546001600160a01b031633146105a95760405162461bcd60e51b81526004016105a090611943565b60405180910390fd5b6001600160a01b0382166105ff5760405162461bcd60e51b815260206004820152601e60248201527f41494445563a204163636f756e74206973207a65726f2061646472657373000060448201526064016105a0565b6001600160a01b03919091165f908152600260205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146106525760405162461bcd60e51b81526004016105a090611943565b60075481151560ff90911615150361069f5760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b60448201526064016105a0565b6007805460ff19168215159081179091556040519081527f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e89060200160405180910390a150565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f1914610748576001600160a01b0384165f9081526001602090815260408083203384529091528120805484929061074290849061198c565b90915550505b610753848484610c72565b949350505050565b5f546001600160a01b031633146107845760405162461bcd60e51b81526004016105a090611943565b6001600160a01b0382165f9081526005602052604090205481151560ff9091161515036107df5760405162461bcd60e51b815260206004820152600960248201526814d85b5948189bdbdb60ba1b60448201526064016105a0565b6001600160a01b0382165f818152600560209081526040808320805486151560ff1991821681179092556002845282852080548216831790556003845293829020805490941681179093558051938452908301919091527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b764513910160405180910390a15050565b6108796103e8670de0b6b3a764000061199f565b81565b5f546001600160a01b031633146108a55760405162461bcd60e51b81526004016105a090611943565b6108ae5f610fc5565b565b5f546001600160a01b031633146108d95760405162461bcd60e51b81526004016105a090611943565b600a54600160a01b900460ff16156109335760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016105a0565b600a805460ff60a01b1916600160a01b1790556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad6868905f90a1565b5f546001600160a01b031633146109995760405162461bcd60e51b81526004016105a090611943565b6001600160a01b0382166109ff5760405162461bcd60e51b815260206004820152602760248201527f41494445563a204d61726b6574696e6720616464726573732063616e6e6f74206044820152666265207a65726f60c81b60648201526084016105a0565b6001600160a01b038116610a5f5760405162461bcd60e51b815260206004820152602160248201527f41494445563a2044657620616464726573732063616e6e6f74206265207a65726044820152606f60f81b60648201526084016105a0565b600780546001600160a01b038085166101008102610100600160a81b031990931692909217909255600880549284166001600160a01b0319909316831790556040517fb7dbb12e3d7d2f1359cb61a83553096a35374fe4c0b5624717a5c59b853e77c1905f90a35050565b5f610ad6338484610c72565b5060019392505050565b5f546001600160a01b03163314610b095760405162461bcd60e51b81526004016105a090611943565b6001600160a01b038116610b6e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a0565b610b7781610fc5565b50565b6001600160a01b038316610bc65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016105a0565b6001600160a01b038216610c125760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016105a0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f60016001600160a01b038416610cd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a0565b6001600160a01b038516610d3b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a0565b5f8311610d9c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105a0565b610da68585611014565b15610dfd57600a54600160a01b900460ff16610dfd5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016105a0565b610e0785856110e3565b8015610e1d5750600a54600160a81b900460ff16155b8015610e2e5750610e2e8585611128565b15610e9d57305f90815260066020526040902054610e566103e8670de0b6b3a764000061199f565b8110610e9b575f610e6860058361199f565b90508015610e7957610e798161117f565b305f9081526006602052604090205491508115610e9957610e9982611429565b505b505b6001600160a01b0385165f9081526002602052604090205460ff1680610eda57506001600160a01b0384165f9081526002602052604090205460ff165b15610ee257505f5b6001600160a01b0385165f9081526006602052604081208054859290610f0990849061198c565b909155505f905081610f1b5783610f39565b610f3986610f2988886116b3565b610f3389896110e3565b876116f8565b6001600160a01b0386165f90815260066020526040812080549293508392909190610f659084906119be565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fb191815260200190565b60405180910390a350600195945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f806110275f546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561105557505f546001600160a01b03848116911614155b801561106b57505f546001600160a01b03163314155b801561108f57506001600160a01b0384165f9081526003602052604090205460ff16155b80156110b357506001600160a01b0383165f9081526003602052604090205460ff16155b80156110c757506001600160a01b03831615155b801561075357506001600160a01b038316301415949350505050565b6001600160a01b0381165f90815260046020526040812054819060ff16801561075357505050506001600160a01b03165f9081526004602052604090205460ff161590565b6007545f90819060ff16801561115657506001600160a01b0384165f9081526005602052604090205460ff16155b8015610753575050506001600160a01b03165f9081526005602052604090205460ff1615919050565b600a805460ff60a81b1916600160a81b1790555f61119e60028361199f565b90505f6111ab828461198c565b60408051600280825260608201835292935047925f9260208301908036833701905050905030815f815181106111e3576111e36119d1565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561123a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125e91906119e5565b81600181518110611271576112716119d1565b6001600160a01b03928316602091820292909201810191909152305f90815260018252604080822060095490941682529290915220545f19146112d757305f9081526001602090815260408083206009546001600160a01b0316845290915290205f1990555b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061130f9087905f90869030904290600401611a00565b5f604051808303815f87803b158015611326575f80fd5b505af1925050508015611337575060015b6113445750505050611419565b5f61134f834761198c565b60095460405163f305d71960e01b8152306004820152602481018790525f60448201819052606482015261dead60848201524260a48201529192506001600160a01b03169063f305d71990839060c40160606040518083038185885af1935050505080156113da575060408051601f3d908101601f191682019092526113d791810190611a71565b60015b6113e8575050505050611419565b5050506040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb70030905f90a150505050505b50600a805460ff60a81b19169055565b600a805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061146f5761146f6119d1565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ea91906119e5565b816001815181106114fd576114fd6119d1565b6001600160a01b03928316602091820292909201810191909152305f90815260018252604080822060095490941682529290915220545f191461156357305f9081526001602090815260408083206009546001600160a01b0316845290915290205f1990555b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061159b9085905f90869030904290600401611a00565b5f604051808303815f87803b1580156115b2575f80fd5b505af19250505080156115c3575060015b6115cd5750611419565b5f806115da60024761199f565b90508015611640576007546040516101009091046001600160a01b0316906188b89083905f818181858888f193505050503d805f8114611635576040519150601f19603f3d011682016040523d82523d5f602084013e61163a565b606091505b50909250505b47156116a0576008546040516001600160a01b03909116906188b89047905f818181858888f193505050503d805f8114611695576040519150601f19603f3d011682016040523d82523d5f602084013e61169a565b606091505b50909250505b50505050600a805460ff60a81b19169055565b6001600160a01b0381165f90815260046020526040812054819060ff1615801561075357505050506001600160a01b03165f9081526004602052604090205460ff1690565b5f80841561170857506032611719565b831561171657506032611719565b505f5b805f036117295782915050610753565b5f6103e86117378386611a9c565b611741919061199f565b905080156117ad57305f90815260066020526040812080548392906117679084906119be565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6117b7818561198c565b979650505050505050565b5f602080835283518060208501525f5b818110156117ee578581018301518582016040015282016117d2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b77575f80fd5b5f8060408385031215611833575f80fd5b823561183e8161180e565b946020939093013593505050565b8035801515811461185b575f80fd5b919050565b5f8060408385031215611871575f80fd5b823561187c8161180e565b915061188a6020840161184c565b90509250929050565b5f602082840312156118a3575f80fd5b6118ac8261184c565b9392505050565b5f805f606084860312156118c5575f80fd5b83356118d08161180e565b925060208401356118e08161180e565b929592945050506040919091013590565b5f60208284031215611901575f80fd5b81356118ac8161180e565b5f806040838503121561191d575f80fd5b82356119288161180e565b915060208301356119388161180e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561057157610571611978565b5f826119b957634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561057157610571611978565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119f5575f80fd5b81516118ac8161180e565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a505784516001600160a01b031683529383019391830191600101611a2b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611a83575f80fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176105715761057161197856fea2646970667358221220f682c2402c11567c92b27fab284970d8c55924ead84608f57e40f14e748af6ed64736f6c63430008170033
Deployed Bytecode
0x6080604052600436106101bd575f3560e01c806354cf2aeb116100f257806395d89b4111610092578063cc1776d311610062578063cc1776d3146103ae578063dc9d75b0146104e9578063dd62ed3e146104fe578063f2fde38b14610542575f80fd5b806395d89b4114610461578063a61699c41461048c578063a9059cbb146104ab578063c31c9c07146104ca575f80fd5b8063715018a6116100cd578063715018a61461041d578063893d20e8146104315780638a8c523c1461044d5780638da5cb5b14610431575f80fd5b806354cf2aeb146103c257806354de7bee146103d657806370a08231146103e9575f80fd5b806323b872dd1161015d5780633cd17c96116101385780633cd17c96146103555780633eaaf86b14610374578063452ed4f11461038f5780634f7041a5146103ae575f80fd5b806323b872dd146102e45780632788986214610303578063313ce5671461033a575f80fd5b80630faba554116101985780630faba55414610260578063111a60b0146102815780631693e8d4146102a057806318160ddd146102c0575f80fd5b806303fd2a45146101c857806306fdde03146101fa578063095ea7b314610231575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101dd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610205575f80fd5b5060408051808201909152600681526520a4902222ab60d11b60208201525b6040516101f191906117c2565b34801561023c575f80fd5b5061025061024b366004611822565b610561565b60405190151581526020016101f1565b34801561026b575f80fd5b5061027f61027a366004611860565b610577565b005b34801561028c575f80fd5b5061027f61029b366004611893565b610629565b3480156102ab575f80fd5b50600a5461025090600160a01b900460ff1681565b3480156102cb575f80fd5b50670de0b6b3a76400005b6040519081526020016101f1565b3480156102ef575f80fd5b506102506102fe3660046118b3565b6106e6565b34801561030e575f80fd5b5061025061031d3660046118f1565b6001600160a01b03165f9081526002602052604090205460ff1690565b348015610345575f80fd5b50604051600981526020016101f1565b348015610360575f80fd5b5061027f61036f366004611860565b61075b565b34801561037f575f80fd5b506102d6670de0b6b3a764000081565b34801561039a575f80fd5b50600a546101dd906001600160a01b031681565b3480156103b9575f80fd5b506102d6603281565b3480156103cd575f80fd5b506102d6610865565b3480156103e1575f80fd5b506102d65f81565b3480156103f4575f80fd5b506102d66104033660046118f1565b6001600160a01b03165f9081526006602052604090205490565b348015610428575f80fd5b5061027f61087c565b34801561043c575f80fd5b505f546001600160a01b03166101dd565b348015610458575f80fd5b5061027f6108b0565b34801561046c575f80fd5b5060408051808201909152600381526210525160ea1b6020820152610224565b348015610497575f80fd5b5061027f6104a636600461190c565b610970565b3480156104b6575f80fd5b506102506104c5366004611822565b610aca565b3480156104d5575f80fd5b506009546101dd906001600160a01b031681565b3480156104f4575f80fd5b506102d66103e881565b348015610509575f80fd5b506102d661051836600461190c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561054d575f80fd5b5061027f61055c3660046118f1565b610ae0565b5f61056d338484610b7a565b5060015b92915050565b5f546001600160a01b031633146105a95760405162461bcd60e51b81526004016105a090611943565b60405180910390fd5b6001600160a01b0382166105ff5760405162461bcd60e51b815260206004820152601e60248201527f41494445563a204163636f756e74206973207a65726f2061646472657373000060448201526064016105a0565b6001600160a01b03919091165f908152600260205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146106525760405162461bcd60e51b81526004016105a090611943565b60075481151560ff90911615150361069f5760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b60448201526064016105a0565b6007805460ff19168215159081179091556040519081527f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e89060200160405180910390a150565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f1914610748576001600160a01b0384165f9081526001602090815260408083203384529091528120805484929061074290849061198c565b90915550505b610753848484610c72565b949350505050565b5f546001600160a01b031633146107845760405162461bcd60e51b81526004016105a090611943565b6001600160a01b0382165f9081526005602052604090205481151560ff9091161515036107df5760405162461bcd60e51b815260206004820152600960248201526814d85b5948189bdbdb60ba1b60448201526064016105a0565b6001600160a01b0382165f818152600560209081526040808320805486151560ff1991821681179092556002845282852080548216831790556003845293829020805490941681179093558051938452908301919091527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b764513910160405180910390a15050565b6108796103e8670de0b6b3a764000061199f565b81565b5f546001600160a01b031633146108a55760405162461bcd60e51b81526004016105a090611943565b6108ae5f610fc5565b565b5f546001600160a01b031633146108d95760405162461bcd60e51b81526004016105a090611943565b600a54600160a01b900460ff16156109335760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c656400000000000000000060448201526064016105a0565b600a805460ff60a01b1916600160a01b1790556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad6868905f90a1565b5f546001600160a01b031633146109995760405162461bcd60e51b81526004016105a090611943565b6001600160a01b0382166109ff5760405162461bcd60e51b815260206004820152602760248201527f41494445563a204d61726b6574696e6720616464726573732063616e6e6f74206044820152666265207a65726f60c81b60648201526084016105a0565b6001600160a01b038116610a5f5760405162461bcd60e51b815260206004820152602160248201527f41494445563a2044657620616464726573732063616e6e6f74206265207a65726044820152606f60f81b60648201526084016105a0565b600780546001600160a01b038085166101008102610100600160a81b031990931692909217909255600880549284166001600160a01b0319909316831790556040517fb7dbb12e3d7d2f1359cb61a83553096a35374fe4c0b5624717a5c59b853e77c1905f90a35050565b5f610ad6338484610c72565b5060019392505050565b5f546001600160a01b03163314610b095760405162461bcd60e51b81526004016105a090611943565b6001600160a01b038116610b6e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a0565b610b7781610fc5565b50565b6001600160a01b038316610bc65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016105a0565b6001600160a01b038216610c125760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016105a0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f60016001600160a01b038416610cd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a0565b6001600160a01b038516610d3b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a0565b5f8311610d9c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105a0565b610da68585611014565b15610dfd57600a54600160a01b900460ff16610dfd5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016105a0565b610e0785856110e3565b8015610e1d5750600a54600160a81b900460ff16155b8015610e2e5750610e2e8585611128565b15610e9d57305f90815260066020526040902054610e566103e8670de0b6b3a764000061199f565b8110610e9b575f610e6860058361199f565b90508015610e7957610e798161117f565b305f9081526006602052604090205491508115610e9957610e9982611429565b505b505b6001600160a01b0385165f9081526002602052604090205460ff1680610eda57506001600160a01b0384165f9081526002602052604090205460ff165b15610ee257505f5b6001600160a01b0385165f9081526006602052604081208054859290610f0990849061198c565b909155505f905081610f1b5783610f39565b610f3986610f2988886116b3565b610f3389896110e3565b876116f8565b6001600160a01b0386165f90815260066020526040812080549293508392909190610f659084906119be565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fb191815260200190565b60405180910390a350600195945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f806110275f546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561105557505f546001600160a01b03848116911614155b801561106b57505f546001600160a01b03163314155b801561108f57506001600160a01b0384165f9081526003602052604090205460ff16155b80156110b357506001600160a01b0383165f9081526003602052604090205460ff16155b80156110c757506001600160a01b03831615155b801561075357506001600160a01b038316301415949350505050565b6001600160a01b0381165f90815260046020526040812054819060ff16801561075357505050506001600160a01b03165f9081526004602052604090205460ff161590565b6007545f90819060ff16801561115657506001600160a01b0384165f9081526005602052604090205460ff16155b8015610753575050506001600160a01b03165f9081526005602052604090205460ff1615919050565b600a805460ff60a81b1916600160a81b1790555f61119e60028361199f565b90505f6111ab828461198c565b60408051600280825260608201835292935047925f9260208301908036833701905050905030815f815181106111e3576111e36119d1565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561123a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125e91906119e5565b81600181518110611271576112716119d1565b6001600160a01b03928316602091820292909201810191909152305f90815260018252604080822060095490941682529290915220545f19146112d757305f9081526001602090815260408083206009546001600160a01b0316845290915290205f1990555b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061130f9087905f90869030904290600401611a00565b5f604051808303815f87803b158015611326575f80fd5b505af1925050508015611337575060015b6113445750505050611419565b5f61134f834761198c565b60095460405163f305d71960e01b8152306004820152602481018790525f60448201819052606482015261dead60848201524260a48201529192506001600160a01b03169063f305d71990839060c40160606040518083038185885af1935050505080156113da575060408051601f3d908101601f191682019092526113d791810190611a71565b60015b6113e8575050505050611419565b5050506040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb70030905f90a150505050505b50600a805460ff60a81b19169055565b600a805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061146f5761146f6119d1565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ea91906119e5565b816001815181106114fd576114fd6119d1565b6001600160a01b03928316602091820292909201810191909152305f90815260018252604080822060095490941682529290915220545f191461156357305f9081526001602090815260408083206009546001600160a01b0316845290915290205f1990555b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061159b9085905f90869030904290600401611a00565b5f604051808303815f87803b1580156115b2575f80fd5b505af19250505080156115c3575060015b6115cd5750611419565b5f806115da60024761199f565b90508015611640576007546040516101009091046001600160a01b0316906188b89083905f818181858888f193505050503d805f8114611635576040519150601f19603f3d011682016040523d82523d5f602084013e61163a565b606091505b50909250505b47156116a0576008546040516001600160a01b03909116906188b89047905f818181858888f193505050503d805f8114611695576040519150601f19603f3d011682016040523d82523d5f602084013e61169a565b606091505b50909250505b50505050600a805460ff60a81b19169055565b6001600160a01b0381165f90815260046020526040812054819060ff1615801561075357505050506001600160a01b03165f9081526004602052604090205460ff1690565b5f80841561170857506032611719565b831561171657506032611719565b505f5b805f036117295782915050610753565b5f6103e86117378386611a9c565b611741919061199f565b905080156117ad57305f90815260066020526040812080548392906117679084906119be565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6117b7818561198c565b979650505050505050565b5f602080835283518060208501525f5b818110156117ee578581018301518582016040015282016117d2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b77575f80fd5b5f8060408385031215611833575f80fd5b823561183e8161180e565b946020939093013593505050565b8035801515811461185b575f80fd5b919050565b5f8060408385031215611871575f80fd5b823561187c8161180e565b915061188a6020840161184c565b90509250929050565b5f602082840312156118a3575f80fd5b6118ac8261184c565b9392505050565b5f805f606084860312156118c5575f80fd5b83356118d08161180e565b925060208401356118e08161180e565b929592945050506040919091013590565b5f60208284031215611901575f80fd5b81356118ac8161180e565b5f806040838503121561191d575f80fd5b82356119288161180e565b915060208301356119388161180e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561057157610571611978565b5f826119b957634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561057157610571611978565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119f5575f80fd5b81516118ac8161180e565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a505784516001600160a01b031683529383019391830191600101611a2b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611a83575f80fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176105715761057161197856fea2646970667358221220f682c2402c11567c92b27fab284970d8c55924ead84608f57e40f14e748af6ed64736f6c63430008170033
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.