ERC-20
Overview
Max Total Supply
69,000,000 doosh
Holders
1,143
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
394 dooshValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
dooshes
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** The digital haven where the odd, the awkward, and the cringe converge. It's not just art, it's the vibe of the underbelly come to life, where every weirdo is a masterpiece and every cringe is a cause for celebration. Join the movement that's redefining the quirks into cool. TG: https://t.me/dooshesportal Twitter: https://twitter.com/dooshesNFT Website: https://dooshes.wtf/ Opensea: https://opensea.io/collection/d00sh3s */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } 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 IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { 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 swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract dooshes is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled; bool public launched; modifier lockSwapping() { swapping = true; _; swapping = false; } event TransferForeignToken(address token, uint256 amount); event Launched(); event SwapEnabled(); event SwapThresholdUpdated(); event BuyTaxesUpdated(); event SellTaxesUpdated(); event MarketingWalletUpdated(); event DevelopmentWalletUpdated(); event dooshesTeamWalletUpdated(); event ExcludedFromFeesUpdated(); event MaxTxAmountUpdated(); event MaxWalletAmountUpdated(); event StuckEthersCleared(); uint256 public swapThreshold = 1000000 * 10**18; //0.1% of total supply uint256 public maxTxAmount = 345_000 * 10**18; uint256 public maxWalletAmount = 345_000 * 10**18; address public marketingWallet = 0x86c04CafC7e0d4e8566e983A7B0024D83b4006C4; address public developmentWallet = 0x86c04CafC7e0d4e8566e983A7B0024D83b4006C4; address public dooshesTeamWallet = 0x86c04CafC7e0d4e8566e983A7B0024D83b4006C4; struct Taxes { uint256 marketing; uint256 liquidity; uint256 development; uint256 dooshesTeam; uint256 burn; } Taxes public buyTaxes = Taxes(10,0,10,10,0); Taxes public sellTaxes = Taxes(10,0,10,10,0); uint256 private totBuyTax = 30; uint256 private totSellTax = 30; mapping (address => bool) public excludedFromFees; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("Dooshes", "doosh") { _mint(msg.sender, 69_000_000 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[developmentWallet] = true; excludedFromFees[dooshesTeamWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ require(launched, "Trading not active yet"); require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; else{ if(recipient == pair) fee = amount * totSellTax / 100; else if(sender == pair) fee = amount * totBuyTax / 100; else fee = 0; } if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); uint256 tokensForBurn = 0; tokensForBurn = fee * sellTaxes.burn / totSellTax; if(tokensForBurn > 0) { super._transfer(address(this), address(0xdead), tokensForBurn); } } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(tokensToAddLiquidityWith > 0 && ethToAddLiquidityWith > 0){ // Add liquidity to dex addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 developmentAmt = unitBalance * 2 * sellTaxes.development; if(developmentAmt > 0){ payable(developmentWallet).sendValue(developmentAmt); } uint256 dooshesTeamAmt = unitBalance * 2 * sellTaxes.dooshesTeam; if(dooshesTeamAmt > 0){ payable(dooshesTeamWallet).sendValue(dooshesTeamAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0xdead), block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { // to be used only in case of dire emergency swapEnabled = state; emit SwapEnabled(); } function setSwapThreshold(uint256 new_amount) external onlyOwner { require(new_amount >= 10000, "Swap amount cannot be lower than 0.001% total supply."); require(new_amount <= 30000000, "Swap amount cannot be higher than 3% total supply."); swapThreshold = new_amount * (10**18); emit SwapThresholdUpdated(); } function launch() external onlyOwner{ require(!launched, "Trading already active"); launched = true; swapEnabled = true; emit Launched(); } function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _dooshesTeam, uint256 _burn) external onlyOwner{ buyTaxes = Taxes(_marketing, _liquidity, _development, _dooshesTeam, _burn); totBuyTax = _marketing + _liquidity + _development + _dooshesTeam + _burn; require(totBuyTax <= 30,"Total buy fees cannot be greater than 30%"); emit BuyTaxesUpdated(); } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _dooshesTeam, uint256 _burn) external onlyOwner{ sellTaxes = Taxes(_marketing, _liquidity, _development, _dooshesTeam, _burn); totSellTax = _marketing + _liquidity + _development + _dooshesTeam + _burn; require(totSellTax <= 30, "Total sell fees cannot be greater than 30%"); emit SellTaxesUpdated(); } function setMarketingWallet(address newWallet) external onlyOwner{ excludedFromFees[marketingWallet] = false; require(newWallet != address(0), "Marketing Wallet cannot be zero address"); marketingWallet = newWallet; emit MarketingWalletUpdated(); } function setDevelopmentWallet(address newWallet) external onlyOwner{ excludedFromFees[developmentWallet] = false; require(newWallet != address(0), "Development Wallet cannot be zero address"); developmentWallet = newWallet; emit DevelopmentWalletUpdated(); } function setDooshesTeamWallet(address newWallet) external onlyOwner{ excludedFromFees[dooshesTeamWallet] = false; require(newWallet != address(0), "DooshesTeam Wallet cannot be zero address"); dooshesTeamWallet = newWallet; emit dooshesTeamWalletUpdated(); } function setExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; emit ExcludedFromFeesUpdated(); } function setMaxTxAmount(uint256 amount) external onlyOwner{ require(amount >= 2500000, "Cannot set maxSell lower than 0.25%"); maxTxAmount = amount * (10**18); emit MaxTxAmountUpdated(); } function setMaxWalletAmount(uint256 amount) external onlyOwner{ require(amount >= 2500000, "Cannot set maxSell lower than 0.25%"); maxWalletAmount = amount * (10**18); emit MaxWalletAmountUpdated(); } function withdrawStuckTokens(address _token, address _to) external onlyOwner returns (bool _sent) { uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); emit TransferForeignToken(_token, _contractBalance); } function clearStuckEthers(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer((amountETH * amountPercentage) / 100); emit StuckEthersCleared(); } function unclog() public onlyOwner lockSwapping { swapTokensForETH( balanceOf(address(this)) ); uint256 ethBalance = address(this).balance; uint256 ethMarketing = ethBalance / 2; uint256 ethDevelopment = ethBalance - ethMarketing; bool success; (success, ) = address(marketingWallet).call{value: ethMarketing}(""); (success, ) = address(developmentWallet).call{value: ethDevelopment}( "" ); } // fallbacks receive() external payable {} }
{ "optimizer": { "enabled": true, "runs": 10000 }, "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":[],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"DevelopmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"ExcludedFromFeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountUpdated","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":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapThresholdUpdated","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":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[],"name":"dooshesTeamWalletUpdated","type":"event"},{"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":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"dooshesTeam","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEthers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dooshesTeamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"dooshesTeam","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_dooshesTeam","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setDooshesTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_dooshesTeam","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
69d3c21bcecceda100000060085569490e7ccb2fa905a000006009819055600a908155600b80547386c04cafc7e0d4e8566e983a7b0024d83b4006c46001600160a01b03199182168117909255600c8054821683179055600d8054909116909117905560808190525f60a081905260c082905260e0829052610100819052600e829055600f8190556010829055601182905560128190556101c06040526101208290526101408190526101608290526101808290526101a0819052601382905560148190556015829055601691909155601755601e6018819055601955348015620000e8575f80fd5b5060405180604001604052806007815260200166446f6f7368657360c81b815250604051806040016040528060058152602001640c8dedee6d60db1b815250816003908162000138919062000567565b50600462000147828262000567565b505050620001646200015e6200038960201b60201c565b6200038d565b6200018d33620001776012600a6200073e565b620001879063041cdb4062000755565b620003de565b335f908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021b91906200076f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000267573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028d91906200076f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002d8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fe91906200076f565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f908152601a6020526040808220805460ff199081166001908117909255600b54851684528284208054821683179055600c54851684528284208054821683179055600d54909416835291208054909216179055620007ad565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004395760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546200044c919062000797565b90915550506001600160a01b0382165f90815260208190526040812080548392906200047a90849062000797565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004f157607f821691505b6020821081036200051057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004c3575f81815260208120601f850160051c810160208610156200053e5750805b601f850160051c820191505b818110156200055f578281556001016200054a565b505050505050565b81516001600160401b03811115620005835762000583620004c8565b6200059b81620005948454620004dc565b8462000516565b602080601f831160018114620005d1575f8415620005b95750858301515b5f19600386901b1c1916600185901b1785556200055f565b5f85815260208120601f198616915b828110156200060157888601518255948401946001909101908401620005e0565b50858210156200061f57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200068357815f19048211156200066757620006676200062f565b808516156200067557918102915b93841c939080029062000648565b509250929050565b5f826200069b5750600162000738565b81620006a957505f62000738565b8160018114620006c25760028114620006cd57620006ed565b600191505062000738565b60ff841115620006e157620006e16200062f565b50506001821b62000738565b5060208310610133831016604e8410600b841016171562000712575081810a62000738565b6200071e838362000643565b805f19048211156200073457620007346200062f565b0290505b92915050565b5f6200074e60ff8416836200068b565b9392505050565b80820281158282048414176200073857620007386200062f565b5f6020828403121562000780575f80fd5b81516001600160a01b03811681146200074e575f80fd5b808201808211156200073857620007386200062f565b612f0d80620007bb5f395ff3fe6080604052600436106102b9575f3560e01c806375f0a87411610170578063a9059cbb116100d1578063dd62ed3e11610087578063f2fde38b11610062578063f2fde38b146107e1578063f66895a314610800578063f887ea4014610826575f80fd5b8063dd62ed3e1461075f578063e01af92c146107a3578063ec28438a146107c2575f80fd5b8063c04a5414116100b7578063c04a5414146106f3578063c791fc5414610712578063dbe66ca014610731575f80fd5b8063a9059cbb146106bf578063aa4bde28146106de575f80fd5b806395d89b41116101265780639d0014b11161010c5780639d0014b114610662578063a457c2d714610681578063a8aa1b31146106a0575f80fd5b806395d89b411461062f5780639aed737014610643575f80fd5b8063864701a511610156578063864701a5146105af5780638c0b5e22146105fd5780638da5cb5b14610612575f80fd5b806375f0a8741461055d5780638091f3bf1461057c575f80fd5b8063395093511161021a57806367c45349116101d057806370a08231116101b657806370a08231146104f6578063715018a61461052a57806372ac24861461053e575f80fd5b806367c45349146104b05780636ddd1713146104c4575f80fd5b8063590ffdce11610200578063590ffdce146104535780635d098b38146104725780636043429a14610491575f80fd5b8063395093511461041557806340ac48d314610434575f80fd5b806318160ddd1161026f57806325b86edf1161025557806325b86edf146103bc57806327a14fc2146103db578063313ce567146103fa575f80fd5b806318160ddd1461038957806323b872dd1461039d575f80fd5b806306fdde031161029f57806306fdde0314610302578063095ea7b3146103235780630973db2114610352575f80fd5b806301339c21146102c45780630445b667146102da575f80fd5b366102c057005b5f80fd5b3480156102cf575f80fd5b506102d8610845565b005b3480156102e5575f80fd5b506102ef60085481565b6040519081526020015b60405180910390f35b34801561030d575f80fd5b5061031661097c565b6040516102f99190612af0565b34801561032e575f80fd5b5061034261033d366004612b6d565b610a0c565b60405190151581526020016102f9565b34801561035d575f80fd5b50600d54610371906001600160a01b031681565b6040516001600160a01b0390911681526020016102f9565b348015610394575f80fd5b506002546102ef565b3480156103a8575f80fd5b506103426103b7366004612b97565b610a22565b3480156103c7575f80fd5b506103426103d6366004612bd5565b610ae6565b3480156103e6575f80fd5b506102d86103f5366004612c0c565b610c9c565b348015610405575f80fd5b50604051601281526020016102f9565b348015610420575f80fd5b5061034261042f366004612b6d565b610daf565b34801561043f575f80fd5b506102d861044e366004612c23565b610de5565b34801561045e575f80fd5b506102d861046d366004612c67565b610f54565b34801561047d575f80fd5b506102d861048c366004612c93565b611019565b34801561049c575f80fd5b506102d86104ab366004612c93565b611186565b3480156104bb575f80fd5b506102d86112f3565b3480156104cf575f80fd5b50600754610342907501000000000000000000000000000000000000000000900460ff1681565b348015610501575f80fd5b506102ef610510366004612c93565b6001600160a01b03165f9081526020819052604090205490565b348015610535575f80fd5b506102d86114a3565b348015610549575f80fd5b506102d8610558366004612c93565b611508565b348015610568575f80fd5b50600b54610371906001600160a01b031681565b348015610587575f80fd5b5060075461034290760100000000000000000000000000000000000000000000900460ff1681565b3480156105ba575f80fd5b50600e54600f546010546011546012546105d5949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016102f9565b348015610608575f80fd5b506102ef60095481565b34801561061d575f80fd5b506005546001600160a01b0316610371565b34801561063a575f80fd5b50610316611675565b34801561064e575f80fd5b506102d861065d366004612c0c565b611684565b34801561066d575f80fd5b506102d861067c366004612c0c565b61174b565b34801561068c575f80fd5b5061034261069b366004612b6d565b6118d6565b3480156106ab575f80fd5b50600754610371906001600160a01b031681565b3480156106ca575f80fd5b506103426106d9366004612b6d565b611988565b3480156106e9575f80fd5b506102ef600a5481565b3480156106fe575f80fd5b50600c54610371906001600160a01b031681565b34801561071d575f80fd5b506102d861072c366004612c23565b611994565b34801561073c575f80fd5b5061034261074b366004612c93565b601a6020525f908152604090205460ff1681565b34801561076a575f80fd5b506102ef610779366004612bd5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107ae575f80fd5b506102d86107bd366004612cb5565b611b03565b3480156107cd575f80fd5b506102d86107dc366004612c0c565b611bcc565b3480156107ec575f80fd5b506102d86107fb366004612c93565b611cdf565b34801561080b575f80fd5b506013546014546015546016546017546105d5949392919085565b348015610831575f80fd5b50600654610371906001600160a01b031681565b6005546001600160a01b031633146108a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600754760100000000000000000000000000000000000000000000900460ff16156109115760405162461bcd60e51b815260206004820152601660248201527f54726164696e6720616c72656164792061637469766500000000000000000000604482015260640161089b565b600780547fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff167601010000000000000000000000000000000000000000001790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1565b60606003805461098b90612cd0565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790612cd0565b8015610a025780601f106109d957610100808354040283529160200191610a02565b820191905f5260205f20905b8154815290600101906020018083116109e557829003601f168201915b5050505050905090565b5f610a18338484611dc1565b5060015b92915050565b5f610a2e848484611f18565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ac75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606482015260840161089b565b610adb8533610ad68685612d4e565b611dc1565b506001949350505050565b6005545f906001600160a01b03163314610b425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc39190612d61565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610c2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190612d78565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610cf65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b622625a0811015610d6f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201527f3235250000000000000000000000000000000000000000000000000000000000606482015260840161089b565b610d8181670de0b6b3a7640000612d93565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a18918590610ad6908690612daa565b6005546001600160a01b03163314610e3f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052600e859055600f849055601083905560118290556012819055808284610e8c8789612daa565b610e969190612daa565b610ea09190612daa565b610eaa9190612daa565b6018819055601e1015610f255760405162461bcd60e51b815260206004820152602960248201527f546f74616c2062757920666565732063616e6e6f74206265206772656174657260448201527f207468616e203330250000000000000000000000000000000000000000000000606482015260840161089b565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a15050505050565b6005546001600160a01b03163314610fae5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6001600160a01b0382165f908152601a602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b031633146110735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600b546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166111285760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f2060448201527f6164647265737300000000000000000000000000000000000000000000000000606482015260840161089b565b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b031633146111e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600d546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166112955760405162461bcd60e51b815260206004820152602960248201527f446f6f736865735465616d2057616c6c65742063616e6e6f74206265207a657260448201527f6f20616464726573730000000000000000000000000000000000000000000000606482015260840161089b565b600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f68e993f3e343980937c417fde0ea6733de0bca75da62f19649ecee2e13fd2e5b905f90a150565b6005546001600160a01b0316331461134d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556113b26113ad306001600160a01b03165f9081526020819052604090205490565b612312565b475f6113bf600283612dbd565b90505f6113cc8284612d4e565b600b546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f811461141b576040519150601f19603f3d011682016040523d82523d5f602084013e611420565b606091505b5050600c546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461146d576040519150601f19603f3d011682016040523d82523d5f602084013e611472565b606091505b5050600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690555050505050565b6005546001600160a01b031633146114fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6115065f612494565b565b6005546001600160a01b031633146115625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600c546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166116175760405162461bcd60e51b815260206004820152602960248201527f446576656c6f706d656e742057616c6c65742063616e6e6f74206265207a657260448201527f6f20616464726573730000000000000000000000000000000000000000000000606482015260840161089b565b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f56c050a659ad3741e0a2373000420a1c3c060f7f39c95458be197a36a6e61ec2905f90a150565b60606004805461098b90612cd0565b6005546001600160a01b031633146116de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b47336108fc60646116ef8585612d93565b6116f99190612dbd565b6040518115909202915f818181858888f1935050505015801561171e573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b031633146117a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b61271081101561181d5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000606482015260840161089b565b6301c9c3808111156118975760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20332520746f74616c20737570706c792e0000000000000000000000000000606482015260840161089b565b6118a981670de0b6b3a7640000612d93565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561196f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161089b565b61197e3385610ad68685612d4e565b5060019392505050565b5f610a18338484611f18565b6005546001600160a01b031633146119ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040805160a081018252868152602081018690529081018490526060810183905260800181905260138590556014849055601583905560168290556017819055808284611a3b8789612daa565b611a459190612daa565b611a4f9190612daa565b611a599190612daa565b6019819055601e1015611ad45760405162461bcd60e51b815260206004820152602a60248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201527f72207468616e2033302500000000000000000000000000000000000000000000606482015260840161089b565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a15050505050565b6005546001600160a01b03163314611b5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600780547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b03163314611c265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b622625a0811015611c9f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201527f3235250000000000000000000000000000000000000000000000000000000000606482015260840161089b565b611cb181670de0b6b3a7640000612d93565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b03163314611d395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6001600160a01b038116611db55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161089b565b611dbe81612494565b50565b6001600160a01b038316611e3c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b038216611eb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111611f8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0383165f908152601a602052604090205460ff16158015611fcd57506001600160a01b0382165f908152601a602052604090205460ff16155b8015611ff4575060075474010000000000000000000000000000000000000000900460ff16155b1561216c57600754760100000000000000000000000000000000000000000000900460ff166120655760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206e6f74206163746976652079657400000000000000000000604482015260640161089b565b6009548111156120b75760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015260640161089b565b6007546001600160a01b0383811691161461216c57600a54816120ee846001600160a01b03165f9081526020819052604090205490565b6120f89190612daa565b111561216c5760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6007545f9074010000000000000000000000000000000000000000900460ff16806121ae57506001600160a01b0384165f908152601a602052604090205460ff165b806121d057506001600160a01b0383165f908152601a602052604090205460ff165b156121dc57505f61223c565b6007546001600160a01b0390811690841603612213576064601954836122029190612d93565b61220c9190612dbd565b905061223c565b6007546001600160a01b0390811690851603612239576064601854836122029190612d93565b505f5b6007547501000000000000000000000000000000000000000000900460ff168015612282575060075474010000000000000000000000000000000000000000900460ff16155b801561229c57506007546001600160a01b03858116911614155b80156122a757505f81115b156122b4576122b46124fd565b6122c884846122c38486612d4e565b6126f6565b80156122d9576122d98430836126f6565b6019546017545f91906122ec9084612d93565b6122f69190612dbd565b9050801561230b5761230b3061dead836126f6565b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061234557612345612df5565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156123b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d99190612e22565b816001815181106123ec576123ec612df5565b6001600160a01b0392831660209182029290920101526006546124129130911684611dc1565b6006546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906124639085905f90869030904290600401612e3d565b5f604051808303815f87803b15801561247a575f80fd5b505af115801561248c573d5f803e3d5ffd5b505050505050565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60075474010000000000000000000000000000000000000000900460ff1661150657600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055305f90815260208190526040812054905060085481106126cb575f60195460026125889190612d93565b90505f816013600101548461259d9190612d93565b6125a79190612dbd565b90505f6125b48285612d4e565b9050476125c082612312565b5f6125cb8247612d4e565b6014549091505f906125dd9087612d4e565b6125e79083612dbd565b6014549091505f906125f99083612d93565b90505f8611801561260957505f81115b15612618576126188682612915565b6013545f90612628846002612d93565b6126329190612d93565b9050801561265057600b54612650906001600160a01b0316826129d6565b6015545f90612660856002612d93565b61266a9190612d93565b9050801561268857600c54612688906001600160a01b0316826129d6565b6016545f90612698866002612d93565b6126a29190612d93565b905080156126c057600d546126c0906001600160a01b0316826129d6565b505050505050505050505b50600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6001600160a01b0383166127725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0382166127ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0383165f908152602081905260409020548181101561287c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161089b565b6128868282612d4e565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906128bb908490612daa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161290791815260200190565b60405180910390a350505050565b60065461292d9030906001600160a01b031684611dc1565b6006546040517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156129b1573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061230b9190612eac565b80471015612a265760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161089b565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114612a6f576040519150601f19603f3d011682016040523d82523d5f602084013e612a74565b606091505b5050905080612aeb5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161089b565b505050565b5f6020808352835180828501525f5b81811015612b1b57858101830151858201604001528201612aff565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b0381168114611dbe575f80fd5b5f8060408385031215612b7e575f80fd5b8235612b8981612b59565b946020939093013593505050565b5f805f60608486031215612ba9575f80fd5b8335612bb481612b59565b92506020840135612bc481612b59565b929592945050506040919091013590565b5f8060408385031215612be6575f80fd5b8235612bf181612b59565b91506020830135612c0181612b59565b809150509250929050565b5f60208284031215612c1c575f80fd5b5035919050565b5f805f805f60a08688031215612c37575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b8015158114611dbe575f80fd5b5f8060408385031215612c78575f80fd5b8235612c8381612b59565b91506020830135612c0181612c5a565b5f60208284031215612ca3575f80fd5b8135612cae81612b59565b9392505050565b5f60208284031215612cc5575f80fd5b8135612cae81612c5a565b600181811c90821680612ce457607f821691505b602082108103612d1b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610a1c57610a1c612d21565b5f60208284031215612d71575f80fd5b5051919050565b5f60208284031215612d88575f80fd5b8151612cae81612c5a565b8082028115828204841417610a1c57610a1c612d21565b80820180821115610a1c57610a1c612d21565b5f82612df0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612e32575f80fd5b8151612cae81612b59565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612e8b5784516001600160a01b031683529383019391830191600101612e66565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612ebe575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122014592d70b0fc0a75796045b643b2c89a9a81f61519295d9b973efaf749aed7fd64736f6c63430008140033
Deployed Bytecode
0x6080604052600436106102b9575f3560e01c806375f0a87411610170578063a9059cbb116100d1578063dd62ed3e11610087578063f2fde38b11610062578063f2fde38b146107e1578063f66895a314610800578063f887ea4014610826575f80fd5b8063dd62ed3e1461075f578063e01af92c146107a3578063ec28438a146107c2575f80fd5b8063c04a5414116100b7578063c04a5414146106f3578063c791fc5414610712578063dbe66ca014610731575f80fd5b8063a9059cbb146106bf578063aa4bde28146106de575f80fd5b806395d89b41116101265780639d0014b11161010c5780639d0014b114610662578063a457c2d714610681578063a8aa1b31146106a0575f80fd5b806395d89b411461062f5780639aed737014610643575f80fd5b8063864701a511610156578063864701a5146105af5780638c0b5e22146105fd5780638da5cb5b14610612575f80fd5b806375f0a8741461055d5780638091f3bf1461057c575f80fd5b8063395093511161021a57806367c45349116101d057806370a08231116101b657806370a08231146104f6578063715018a61461052a57806372ac24861461053e575f80fd5b806367c45349146104b05780636ddd1713146104c4575f80fd5b8063590ffdce11610200578063590ffdce146104535780635d098b38146104725780636043429a14610491575f80fd5b8063395093511461041557806340ac48d314610434575f80fd5b806318160ddd1161026f57806325b86edf1161025557806325b86edf146103bc57806327a14fc2146103db578063313ce567146103fa575f80fd5b806318160ddd1461038957806323b872dd1461039d575f80fd5b806306fdde031161029f57806306fdde0314610302578063095ea7b3146103235780630973db2114610352575f80fd5b806301339c21146102c45780630445b667146102da575f80fd5b366102c057005b5f80fd5b3480156102cf575f80fd5b506102d8610845565b005b3480156102e5575f80fd5b506102ef60085481565b6040519081526020015b60405180910390f35b34801561030d575f80fd5b5061031661097c565b6040516102f99190612af0565b34801561032e575f80fd5b5061034261033d366004612b6d565b610a0c565b60405190151581526020016102f9565b34801561035d575f80fd5b50600d54610371906001600160a01b031681565b6040516001600160a01b0390911681526020016102f9565b348015610394575f80fd5b506002546102ef565b3480156103a8575f80fd5b506103426103b7366004612b97565b610a22565b3480156103c7575f80fd5b506103426103d6366004612bd5565b610ae6565b3480156103e6575f80fd5b506102d86103f5366004612c0c565b610c9c565b348015610405575f80fd5b50604051601281526020016102f9565b348015610420575f80fd5b5061034261042f366004612b6d565b610daf565b34801561043f575f80fd5b506102d861044e366004612c23565b610de5565b34801561045e575f80fd5b506102d861046d366004612c67565b610f54565b34801561047d575f80fd5b506102d861048c366004612c93565b611019565b34801561049c575f80fd5b506102d86104ab366004612c93565b611186565b3480156104bb575f80fd5b506102d86112f3565b3480156104cf575f80fd5b50600754610342907501000000000000000000000000000000000000000000900460ff1681565b348015610501575f80fd5b506102ef610510366004612c93565b6001600160a01b03165f9081526020819052604090205490565b348015610535575f80fd5b506102d86114a3565b348015610549575f80fd5b506102d8610558366004612c93565b611508565b348015610568575f80fd5b50600b54610371906001600160a01b031681565b348015610587575f80fd5b5060075461034290760100000000000000000000000000000000000000000000900460ff1681565b3480156105ba575f80fd5b50600e54600f546010546011546012546105d5949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016102f9565b348015610608575f80fd5b506102ef60095481565b34801561061d575f80fd5b506005546001600160a01b0316610371565b34801561063a575f80fd5b50610316611675565b34801561064e575f80fd5b506102d861065d366004612c0c565b611684565b34801561066d575f80fd5b506102d861067c366004612c0c565b61174b565b34801561068c575f80fd5b5061034261069b366004612b6d565b6118d6565b3480156106ab575f80fd5b50600754610371906001600160a01b031681565b3480156106ca575f80fd5b506103426106d9366004612b6d565b611988565b3480156106e9575f80fd5b506102ef600a5481565b3480156106fe575f80fd5b50600c54610371906001600160a01b031681565b34801561071d575f80fd5b506102d861072c366004612c23565b611994565b34801561073c575f80fd5b5061034261074b366004612c93565b601a6020525f908152604090205460ff1681565b34801561076a575f80fd5b506102ef610779366004612bd5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107ae575f80fd5b506102d86107bd366004612cb5565b611b03565b3480156107cd575f80fd5b506102d86107dc366004612c0c565b611bcc565b3480156107ec575f80fd5b506102d86107fb366004612c93565b611cdf565b34801561080b575f80fd5b506013546014546015546016546017546105d5949392919085565b348015610831575f80fd5b50600654610371906001600160a01b031681565b6005546001600160a01b031633146108a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600754760100000000000000000000000000000000000000000000900460ff16156109115760405162461bcd60e51b815260206004820152601660248201527f54726164696e6720616c72656164792061637469766500000000000000000000604482015260640161089b565b600780547fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff167601010000000000000000000000000000000000000000001790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1565b60606003805461098b90612cd0565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790612cd0565b8015610a025780601f106109d957610100808354040283529160200191610a02565b820191905f5260205f20905b8154815290600101906020018083116109e557829003601f168201915b5050505050905090565b5f610a18338484611dc1565b5060015b92915050565b5f610a2e848484611f18565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ac75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606482015260840161089b565b610adb8533610ad68685612d4e565b611dc1565b506001949350505050565b6005545f906001600160a01b03163314610b425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc39190612d61565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610c2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190612d78565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610cf65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b622625a0811015610d6f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201527f3235250000000000000000000000000000000000000000000000000000000000606482015260840161089b565b610d8181670de0b6b3a7640000612d93565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a18918590610ad6908690612daa565b6005546001600160a01b03163314610e3f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052600e859055600f849055601083905560118290556012819055808284610e8c8789612daa565b610e969190612daa565b610ea09190612daa565b610eaa9190612daa565b6018819055601e1015610f255760405162461bcd60e51b815260206004820152602960248201527f546f74616c2062757920666565732063616e6e6f74206265206772656174657260448201527f207468616e203330250000000000000000000000000000000000000000000000606482015260840161089b565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a15050505050565b6005546001600160a01b03163314610fae5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6001600160a01b0382165f908152601a602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b031633146110735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600b546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166111285760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f2060448201527f6164647265737300000000000000000000000000000000000000000000000000606482015260840161089b565b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b031633146111e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600d546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166112955760405162461bcd60e51b815260206004820152602960248201527f446f6f736865735465616d2057616c6c65742063616e6e6f74206265207a657260448201527f6f20616464726573730000000000000000000000000000000000000000000000606482015260840161089b565b600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f68e993f3e343980937c417fde0ea6733de0bca75da62f19649ecee2e13fd2e5b905f90a150565b6005546001600160a01b0316331461134d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556113b26113ad306001600160a01b03165f9081526020819052604090205490565b612312565b475f6113bf600283612dbd565b90505f6113cc8284612d4e565b600b546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f811461141b576040519150601f19603f3d011682016040523d82523d5f602084013e611420565b606091505b5050600c546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461146d576040519150601f19603f3d011682016040523d82523d5f602084013e611472565b606091505b5050600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690555050505050565b6005546001600160a01b031633146114fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6115065f612494565b565b6005546001600160a01b031633146115625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600c546001600160a01b039081165f908152601a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581166116175760405162461bcd60e51b815260206004820152602960248201527f446576656c6f706d656e742057616c6c65742063616e6e6f74206265207a657260448201527f6f20616464726573730000000000000000000000000000000000000000000000606482015260840161089b565b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f56c050a659ad3741e0a2373000420a1c3c060f7f39c95458be197a36a6e61ec2905f90a150565b60606004805461098b90612cd0565b6005546001600160a01b031633146116de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b47336108fc60646116ef8585612d93565b6116f99190612dbd565b6040518115909202915f818181858888f1935050505015801561171e573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b031633146117a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b61271081101561181d5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000606482015260840161089b565b6301c9c3808111156118975760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20332520746f74616c20737570706c792e0000000000000000000000000000606482015260840161089b565b6118a981670de0b6b3a7640000612d93565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561196f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161089b565b61197e3385610ad68685612d4e565b5060019392505050565b5f610a18338484611f18565b6005546001600160a01b031633146119ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6040805160a081018252868152602081018690529081018490526060810183905260800181905260138590556014849055601583905560168290556017819055808284611a3b8789612daa565b611a459190612daa565b611a4f9190612daa565b611a599190612daa565b6019819055601e1015611ad45760405162461bcd60e51b815260206004820152602a60248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201527f72207468616e2033302500000000000000000000000000000000000000000000606482015260840161089b565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a15050505050565b6005546001600160a01b03163314611b5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b600780547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b03163314611c265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b622625a0811015611c9f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201527f3235250000000000000000000000000000000000000000000000000000000000606482015260840161089b565b611cb181670de0b6b3a7640000612d93565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b03163314611d395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089b565b6001600160a01b038116611db55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161089b565b611dbe81612494565b50565b6001600160a01b038316611e3c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b038216611eb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111611f8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0383165f908152601a602052604090205460ff16158015611fcd57506001600160a01b0382165f908152601a602052604090205460ff16155b8015611ff4575060075474010000000000000000000000000000000000000000900460ff16155b1561216c57600754760100000000000000000000000000000000000000000000900460ff166120655760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206e6f74206163746976652079657400000000000000000000604482015260640161089b565b6009548111156120b75760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015260640161089b565b6007546001600160a01b0383811691161461216c57600a54816120ee846001600160a01b03165f9081526020819052604090205490565b6120f89190612daa565b111561216c5760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6007545f9074010000000000000000000000000000000000000000900460ff16806121ae57506001600160a01b0384165f908152601a602052604090205460ff165b806121d057506001600160a01b0383165f908152601a602052604090205460ff165b156121dc57505f61223c565b6007546001600160a01b0390811690841603612213576064601954836122029190612d93565b61220c9190612dbd565b905061223c565b6007546001600160a01b0390811690851603612239576064601854836122029190612d93565b505f5b6007547501000000000000000000000000000000000000000000900460ff168015612282575060075474010000000000000000000000000000000000000000900460ff16155b801561229c57506007546001600160a01b03858116911614155b80156122a757505f81115b156122b4576122b46124fd565b6122c884846122c38486612d4e565b6126f6565b80156122d9576122d98430836126f6565b6019546017545f91906122ec9084612d93565b6122f69190612dbd565b9050801561230b5761230b3061dead836126f6565b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061234557612345612df5565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156123b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d99190612e22565b816001815181106123ec576123ec612df5565b6001600160a01b0392831660209182029290920101526006546124129130911684611dc1565b6006546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906124639085905f90869030904290600401612e3d565b5f604051808303815f87803b15801561247a575f80fd5b505af115801561248c573d5f803e3d5ffd5b505050505050565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60075474010000000000000000000000000000000000000000900460ff1661150657600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055305f90815260208190526040812054905060085481106126cb575f60195460026125889190612d93565b90505f816013600101548461259d9190612d93565b6125a79190612dbd565b90505f6125b48285612d4e565b9050476125c082612312565b5f6125cb8247612d4e565b6014549091505f906125dd9087612d4e565b6125e79083612dbd565b6014549091505f906125f99083612d93565b90505f8611801561260957505f81115b15612618576126188682612915565b6013545f90612628846002612d93565b6126329190612d93565b9050801561265057600b54612650906001600160a01b0316826129d6565b6015545f90612660856002612d93565b61266a9190612d93565b9050801561268857600c54612688906001600160a01b0316826129d6565b6016545f90612698866002612d93565b6126a29190612d93565b905080156126c057600d546126c0906001600160a01b0316826129d6565b505050505050505050505b50600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6001600160a01b0383166127725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0382166127ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161089b565b6001600160a01b0383165f908152602081905260409020548181101561287c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161089b565b6128868282612d4e565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906128bb908490612daa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161290791815260200190565b60405180910390a350505050565b60065461292d9030906001600160a01b031684611dc1565b6006546040517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156129b1573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061230b9190612eac565b80471015612a265760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161089b565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114612a6f576040519150601f19603f3d011682016040523d82523d5f602084013e612a74565b606091505b5050905080612aeb5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161089b565b505050565b5f6020808352835180828501525f5b81811015612b1b57858101830151858201604001528201612aff565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b0381168114611dbe575f80fd5b5f8060408385031215612b7e575f80fd5b8235612b8981612b59565b946020939093013593505050565b5f805f60608486031215612ba9575f80fd5b8335612bb481612b59565b92506020840135612bc481612b59565b929592945050506040919091013590565b5f8060408385031215612be6575f80fd5b8235612bf181612b59565b91506020830135612c0181612b59565b809150509250929050565b5f60208284031215612c1c575f80fd5b5035919050565b5f805f805f60a08688031215612c37575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b8015158114611dbe575f80fd5b5f8060408385031215612c78575f80fd5b8235612c8381612b59565b91506020830135612c0181612c5a565b5f60208284031215612ca3575f80fd5b8135612cae81612b59565b9392505050565b5f60208284031215612cc5575f80fd5b8135612cae81612c5a565b600181811c90821680612ce457607f821691505b602082108103612d1b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610a1c57610a1c612d21565b5f60208284031215612d71575f80fd5b5051919050565b5f60208284031215612d88575f80fd5b8151612cae81612c5a565b8082028115828204841417610a1c57610a1c612d21565b80820180821115610a1c57610a1c612d21565b5f82612df0577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612e32575f80fd5b8151612cae81612b59565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612e8b5784516001600160a01b031683529383019391830191600101612e66565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612ebe575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122014592d70b0fc0a75796045b643b2c89a9a81f61519295d9b973efaf749aed7fd64736f6c63430008140033
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.