ERC-20
Overview
Max Total Supply
1,000,000,000 DOGELON2.0
Holders
220
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Dogelon2
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 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 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ 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; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {BEP20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IBEP20-balanceOf} and {IBEP20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IBEP20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IBEP20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IBEP20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IBEP20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IBEP20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IBEP20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {BEP20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ 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, 'BEP20: transfer amount exceeds allowance'); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IBEP20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IBEP20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, 'BEP20: decreased allowance below zero'); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), 'BEP20: transfer from the zero address'); require(recipient != address(0), 'BEP20: transfer to the zero address'); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, 'BEP20: transfer amount exceeds balance'); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** This function will be used to generate the total supply * while deploying the contract * * This function can never be called again after deploying contract */ function _tokenGeneration(address account, uint256 amount) internal virtual { _totalSupply = amount; _balances[account] = amount; emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), 'BEP20: approve from the zero address'); require(spender != address(0), 'BEP20: approve to the zero address'); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } 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 IUniswapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract Dogelon2 is ERC20, Ownable { using Address for address payable; IUniswapRouter public router; address public pair; bool private _interlock = false; bool public providingLiquidity = false; bool public tradingEnabled = false; uint256 public tokenSwapThreshold = (1_000_000_000 * 10 ** 18) / 100; // 1% of total supply // Launching uint256 public genesisBlock; uint256 private deadline = 3; uint256 private launchtax = 99; // Addresses address public constant DEAD_WALLET = 0x000000000000000000000000000000000000dEaD; address private _marketingWallet = 0x13Cb6Bd3d25D8764fBdbb9c503CEF63a2B746155; uint8 public buyTax = 2; uint8 public sellTax = 2; mapping(address => bool) public exemptFee; // Anti Dump mapping(address => uint256) private _lastSell; modifier lockTheSwap() { if (!_interlock) { _interlock = true; _; _interlock = false; } } constructor() ERC20('Dogelon 2.0', 'DOGELON2.0') { _tokenGeneration(msg.sender, 1_000_000_000 * 10 ** decimals()); exemptFee[msg.sender] = true; IUniswapRouter _router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a pancake pair for this new token address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; exemptFee[address(this)] = true; exemptFee[_marketingWallet] = true; exemptFee[msg.sender] = true; exemptFee[DEAD_WALLET] = true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, 'BEP20: transfer amount exceeds allowance'); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance( address spender, uint256 addedValue ) public override returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public override returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, 'BEP20: decreased allowance below zero'); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal override { require(amount > 0, 'Transfer amount must be greater than zero'); if (!exemptFee[sender] && !exemptFee[recipient]) { require(tradingEnabled, 'Trading not enabled'); } uint256 feeswap; uint256 feesum; uint256 fee; uint8 currentTax; bool useLaunchFee = !exemptFee[sender] && !exemptFee[recipient] && block.number < genesisBlock + deadline; // Set fee to zero if fees in contract are handled or exempted if (_interlock || exemptFee[sender] || exemptFee[recipient]) { fee = 0; } else if (recipient == pair && !useLaunchFee) { feeswap = sellTax; feesum = feeswap; currentTax = sellTax; } else if (!useLaunchFee) { feeswap = buyTax; feesum = feeswap; currentTax = buyTax; } else if (useLaunchFee) { feeswap = launchtax; feesum = launchtax; } fee = (amount * feesum) / 100; // Send fees if threshold has been reached // Don't do this on buys, swaps etc if (providingLiquidity && sender != pair) sendFees(feeswap); // Rest to recipient super._transfer(sender, recipient, amount - fee); if (fee > 0) { // Send the fee to the contract if (feeswap > 0) { uint256 feeAmount = (amount * feeswap) / 100; super._transfer(sender, address(this), feeAmount); } } } function sendFees(uint256 feeswap) private lockTheSwap { if (feeswap == 0) { return; } uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= tokenSwapThreshold) { uint256 initialBalance = address(this).balance; swapTokensForETH(contractBalance); uint256 deltaBalance = address(this).balance - initialBalance; if (deltaBalance > 0) { payable(_marketingWallet).sendValue(deltaBalance); } } } function swapTokensForETH(uint256 tokenAmount) private { // Generate the pancake pair path of (token/weth) address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // Do the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function updateLiquidityProvide(bool state) external onlyOwner { // Update liquidity providing state providingLiquidity = state; } function updateLiquidityTreshhold(uint256 newAmount) external onlyOwner { // Update the treshhold (with limitations) require( newAmount <= totalSupply() / 100, 'Swap threshold amount should be lower or equal to 1% of tokens' ); tokenSwapThreshold = newAmount * 10 ** decimals(); } function setBuyTax(uint8 _buyTax) external onlyOwner { require(_buyTax <= 10, 'Buy tax must be less than 10%'); buyTax = _buyTax; } function setSellTax(uint8 _sellTax) external onlyOwner { require(_sellTax <= 10, 'Sell tax must be less than 10%'); sellTax = _sellTax; } // Once trade enabled, can't disable function enableTrading() external onlyOwner { require(!tradingEnabled, 'Cannot re-enable trading'); tradingEnabled = true; providingLiquidity = true; genesisBlock = block.number; } function updateDeadline(uint256 _deadline) external onlyOwner { require(!tradingEnabled, "Can't change when trading has started"); require(_deadline < 5, 'Deadline should be less than 5 Blocks'); deadline = _deadline; } function updateMarketingWallet(address newWallet) external onlyOwner { require(newWallet != address(0), 'Fee Address cannot be zero address'); _marketingWallet = newWallet; } function updateExemptFee(address _address, bool state) external onlyOwner { exemptFee[_address] = state; } function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { exemptFee[accounts[i]] = state; } } function rescueETH(uint256 weiAmount) external onlyOwner { payable(owner()).transfer(weiAmount); } function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner { require( tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens" ); IERC20(tokenAdd).transfer(owner(), amount); } // fallbacks receive() external payable {} }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
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":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD_WALLET","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesisBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTax","type":"uint8"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_sellTax","type":"uint8"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updateDeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526007805462ffffff60a01b191690556a084595161401484a0000006008556003600a556063600b55600c80546001600160b01b03191675020213cb6bd3d25d8764fbdbb9c503cef63a2b7461551790553480156200006157600080fd5b506040518060400160405280600b81526020016a0446f67656c6f6e20322e360ac1b8152506040518060400160405280600a8152602001690444f47454c4f4e322e360b41b8152508160039081620000ba91906200047d565b506004620000c982826200047d565b505050620000e6620000e06200032e60201b60201c565b62000332565b6200010f33620000f96012600a6200065e565b6200010990633b9aca0062000676565b62000384565b336000908152600d60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa1580156200017a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a0919062000690565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000214919062000690565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000288919062000690565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550306000908152600d6020526040808220805460ff199081166001908117909255600c5490941683528183208054851682179055338352908220805484168217905561dead9091527fdc7fafdc41998a74ecacb8f8bd877011aba1f1d03a3a0d37a2e7879a393b1d6a8054909216179055620006bb565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200040357607f821691505b6020821081036200042457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200047857600081815260208120601f850160051c81016020861015620004535750805b601f850160051c820191505b8181101562000474578281556001016200045f565b5050505b505050565b81516001600160401b03811115620004995762000499620003d8565b620004b181620004aa8454620003ee565b846200042a565b602080601f831160018114620004e95760008415620004d05750858301515b600019600386901b1c1916600185901b17855562000474565b600085815260208120601f198616915b828110156200051a57888601518255948401946001909101908401620004f9565b5085821015620005395787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005a057816000190482111562000584576200058462000549565b808516156200059257918102915b93841c939080029062000564565b509250929050565b600082620005b95750600162000658565b81620005c85750600062000658565b8160018114620005e15760028114620005ec576200060c565b600191505062000658565b60ff84111562000600576200060062000549565b50506001821b62000658565b5060208310610133831016604e8410600b841016171562000631575081810a62000658565b6200063d83836200055f565b806000190482111562000654576200065462000549565b0290505b92915050565b60006200066f60ff841683620005a8565b9392505050565b808202811582820484141762000658576200065862000549565b600060208284031215620006a357600080fd5b81516001600160a01b03811681146200066f57600080fd5b611fbb80620006cb6000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063a8aa1b31116100a0578063cc1776d31161006f578063cc1776d3146105f1578063dd62ed3e14610612578063f2fde38b14610658578063f887ea4014610678578063fbe6324e1461069857600080fd5b8063a8aa1b3114610561578063a9059cbb14610581578063aacebbe3146105a1578063c5d32bb2146105c157600080fd5b80638da5cb5b116100e75780638da5cb5b146104c457806395d89b41146104f65780639e252f001461050b578063a01c34831461052b578063a457c2d71461054157600080fd5b806370a0823114610444578063715018a61461047a5780638a8c523c1461048f5780638cd4426d146104a457600080fd5b8063355496ca1161019b57806349abdc141161016a57806349abdc14146103ac5780634ada218b146103cc5780634cdc9c63146103ed5780634f7041a5146104035780636081752b1461042457600080fd5b8063355496ca1461032c578063395093511461034c57806342af18841461036c57806342b6fa111461038c57600080fd5b80631340538f116101d75780631340538f146102b557806318160ddd146102d557806323b872dd146102ea578063313ce5671461030a57600080fd5b806306fdde0314610214578063095ea7b31461023f5780630e3000991461026f5780630e375a5c1461029357600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506102296106b9565b6040516102369190611a0a565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611a7d565b61074b565b6040519015158152602001610236565b34801561027b57600080fd5b5061028560085481565b604051908152602001610236565b34801561029f57600080fd5b506102b36102ae366004611ad8565b610762565b005b3480156102c157600080fd5b506102b36102d0366004611baf565b610801565b3480156102e157600080fd5b50600254610285565b3480156102f657600080fd5b5061025f610305366004611bd3565b610849565b34801561031657600080fd5b5060125b60405160ff9091168152602001610236565b34801561033857600080fd5b506102b3610347366004611c14565b6108fa565b34801561035857600080fd5b5061025f610367366004611a7d565b61094f565b34801561037857600080fd5b506102b3610387366004611c4d565b610986565b34801561039857600080fd5b506102b36103a7366004611c4d565b610a7b565b3480156103b857600080fd5b506102b36103c7366004611c66565b610b4b565b3480156103d857600080fd5b5060075461025f90600160b01b900460ff1681565b3480156103f957600080fd5b5061028560095481565b34801561040f57600080fd5b50600c5461031a90600160a01b900460ff1681565b34801561043057600080fd5b506102b361043f366004611c66565b610be9565b34801561045057600080fd5b5061028561045f366004611c89565b6001600160a01b031660009081526020819052604090205490565b34801561048657600080fd5b506102b3610c87565b34801561049b57600080fd5b506102b3610cbd565b3480156104b057600080fd5b506102b36104bf366004611a7d565b610d5c565b3480156104d057600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610236565b34801561050257600080fd5b50610229610e8f565b34801561051757600080fd5b506102b3610526366004611c4d565b610e9e565b34801561053757600080fd5b506104de61dead81565b34801561054d57600080fd5b5061025f61055c366004611a7d565b610f06565b34801561056d57600080fd5b506007546104de906001600160a01b031681565b34801561058d57600080fd5b5061025f61059c366004611a7d565b610fa1565b3480156105ad57600080fd5b506102b36105bc366004611c89565b610fae565b3480156105cd57600080fd5b5061025f6105dc366004611c89565b600d6020526000908152604090205460ff1681565b3480156105fd57600080fd5b50600c5461031a90600160a81b900460ff1681565b34801561061e57600080fd5b5061028561062d366004611ca6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561066457600080fd5b506102b3610673366004611c89565b61105b565b34801561068457600080fd5b506006546104de906001600160a01b031681565b3480156106a457600080fd5b5060075461025f90600160a81b900460ff1681565b6060600380546106c890611cd4565b80601f01602080910402602001604051908101604052809291908181526020018280546106f490611cd4565b80156107415780601f1061071657610100808354040283529160200191610741565b820191906000526020600020905b81548152906001019060200180831161072457829003601f168201915b5050505050905090565b60006107583384846110f6565b5060015b92915050565b6005546001600160a01b031633146107955760405162461bcd60e51b815260040161078c90611d0e565b60405180910390fd5b60005b82518110156107fc5781600d60008584815181106107b8576107b8611d43565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107f481611d6f565b915050610798565b505050565b6005546001600160a01b0316331461082b5760405162461bcd60e51b815260040161078c90611d0e565b60078054911515600160a81b0260ff60a81b19909216919091179055565b600061085684848461121a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108db5760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161078c565b6108ef85336108ea8685611d88565b6110f6565b506001949350505050565b6005546001600160a01b031633146109245760405162461bcd60e51b815260040161078c90611d0e565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107589185906108ea908690611d9b565b6005546001600160a01b031633146109b05760405162461bcd60e51b815260040161078c90611d0e565b600754600160b01b900460ff1615610a185760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161078c565b60058110610a765760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b606482015260840161078c565b600a55565b6005546001600160a01b03163314610aa55760405162461bcd60e51b815260040161078c90611d0e565b6064610ab060025490565b610aba9190611dae565b811115610b2f5760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000606482015260840161078c565b610b3b6012600a611eb4565b610b459082611ec3565b60085550565b6005546001600160a01b03163314610b755760405162461bcd60e51b815260040161078c90611d0e565b600a8160ff161115610bc95760405162461bcd60e51b815260206004820152601e60248201527f53656c6c20746178206d757374206265206c657373207468616e203130250000604482015260640161078c565b600c805460ff909216600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c135760405162461bcd60e51b815260040161078c90611d0e565b600a8160ff161115610c675760405162461bcd60e51b815260206004820152601d60248201527f42757920746178206d757374206265206c657373207468616e20313025000000604482015260640161078c565b600c805460ff909216600160a01b0260ff60a01b19909216919091179055565b6005546001600160a01b03163314610cb15760405162461bcd60e51b815260040161078c90611d0e565b610cbb60006114e1565b565b6005546001600160a01b03163314610ce75760405162461bcd60e51b815260040161078c90611d0e565b600754600160b01b900460ff1615610d415760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161078c565b6007805461ffff60a81b191661010160a81b17905543600955565b6005546001600160a01b03163314610d865760405162461bcd60e51b815260040161078c90611d0e565b306001600160a01b03831603610dfd5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b606482015260840161078c565b816001600160a01b031663a9059cbb610e1e6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610e6b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fc9190611eda565b6060600480546106c890611cd4565b6005546001600160a01b03163314610ec85760405162461bcd60e51b815260040161078c90611d0e565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f02573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f885760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161078c565b610f9733856108ea8685611d88565b5060019392505050565b600061075833848461121a565b6005546001600160a01b03163314610fd85760405162461bcd60e51b815260040161078c90611d0e565b6001600160a01b0381166110395760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b606482015260840161078c565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110855760405162461bcd60e51b815260040161078c90611d0e565b6001600160a01b0381166110ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161078c565b6110f3816114e1565b50565b6001600160a01b0383166111585760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078c565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161078c565b6001600160a01b0383166000908152600d602052604090205460ff161580156112be57506001600160a01b0382166000908152600d602052604090205460ff16155b1561131257600754600160b01b900460ff166113125760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161078c565b6001600160a01b0383166000908152600d6020526040812054819081908190819060ff1615801561135c57506001600160a01b0387166000908152600d602052604090205460ff16155b80156113765750600a546009546113739190611d9b565b43105b600754909150600160a01b900460ff16806113a957506001600160a01b0388166000908152600d602052604090205460ff165b806113cc57506001600160a01b0387166000908152600d602052604090205460ff165b156113da5760009250611442565b6007546001600160a01b0388811691161480156113f5575080155b1561141457600c54600160a81b900460ff169450849350839150611442565b8061143357600c54600160a01b900460ff169450849350839150611442565b801561144257600b5494508493505b606461144e8588611ec3565b6114589190611dae565b600754909350600160a81b900460ff16801561148257506007546001600160a01b03898116911614155b156114905761149085611533565b6114a4888861149f868a611d88565b6115bf565b82156114d75784156114d757600060646114be8789611ec3565b6114c89190611dae565b90506114d58930836115bf565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff166110f3576007805460ff60a01b1916600160a01b17905580156115af573060009081526020819052604090205460085481106115ad574761158082611797565b600061158c8247611d88565b905080156115aa57600c546115aa906001600160a01b0316826118f1565b50505b505b6007805460ff60a01b1916905550565b6001600160a01b0383166116235760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161078c565b6001600160a01b0382166116855760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078c565b6001600160a01b038316600090815260208190526040902054818110156116fd5760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161078c565b6117078282611d88565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061173d908490611d9b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161178991815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117cc576117cc611d43565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118499190611ef7565b8160018151811061185c5761185c611d43565b6001600160a01b03928316602091820292909201015260065461188291309116846110f6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906118bb908590600090869030904290600401611f14565b600060405180830381600087803b1580156118d557600080fd5b505af11580156118e9573d6000803e3d6000fd5b505050505050565b804710156119415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161078c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461198e576040519150601f19603f3d011682016040523d82523d6000602084013e611993565b606091505b50509050806107fc5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161078c565b600060208083528351808285015260005b81811015611a3757858101830151858201604001528201611a1b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110f357600080fd5b8035611a7881611a58565b919050565b60008060408385031215611a9057600080fd5b8235611a9b81611a58565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146110f357600080fd5b8035611a7881611abf565b60008060408385031215611aeb57600080fd5b823567ffffffffffffffff80821115611b0357600080fd5b818501915085601f830112611b1757600080fd5b8135602082821115611b2b57611b2b611aa9565b8160051b604051601f19603f83011681018181108682111715611b5057611b50611aa9565b604052928352818301935084810182019289841115611b6e57600080fd5b948201945b83861015611b9357611b8486611a6d565b85529482019493820193611b73565b9650611ba29050878201611acd565b9450505050509250929050565b600060208284031215611bc157600080fd5b8135611bcc81611abf565b9392505050565b600080600060608486031215611be857600080fd5b8335611bf381611a58565b92506020840135611c0381611a58565b929592945050506040919091013590565b60008060408385031215611c2757600080fd5b8235611c3281611a58565b91506020830135611c4281611abf565b809150509250929050565b600060208284031215611c5f57600080fd5b5035919050565b600060208284031215611c7857600080fd5b813560ff81168114611bcc57600080fd5b600060208284031215611c9b57600080fd5b8135611bcc81611a58565b60008060408385031215611cb957600080fd5b8235611cc481611a58565b91506020830135611c4281611a58565b600181811c90821680611ce857607f821691505b602082108103611d0857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611d8157611d81611d59565b5060010190565b8181038181111561075c5761075c611d59565b8082018082111561075c5761075c611d59565b600082611dcb57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611e0b578160001904821115611df157611df1611d59565b80851615611dfe57918102915b93841c9390800290611dd5565b509250929050565b600082611e225750600161075c565b81611e2f5750600061075c565b8160018114611e455760028114611e4f57611e6b565b600191505061075c565b60ff841115611e6057611e60611d59565b50506001821b61075c565b5060208310610133831016604e8410600b8410161715611e8e575081810a61075c565b611e988383611dd0565b8060001904821115611eac57611eac611d59565b029392505050565b6000611bcc60ff841683611e13565b808202811582820484141761075c5761075c611d59565b600060208284031215611eec57600080fd5b8151611bcc81611abf565b600060208284031215611f0957600080fd5b8151611bcc81611a58565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f645784516001600160a01b031683529383019391830191600101611f3f565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201b0d689e29e2ef58d4d8181b2f13380ef7bd0ee93d18e19e582789f8f28ca49c64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102085760003560e01c806370a0823111610118578063a8aa1b31116100a0578063cc1776d31161006f578063cc1776d3146105f1578063dd62ed3e14610612578063f2fde38b14610658578063f887ea4014610678578063fbe6324e1461069857600080fd5b8063a8aa1b3114610561578063a9059cbb14610581578063aacebbe3146105a1578063c5d32bb2146105c157600080fd5b80638da5cb5b116100e75780638da5cb5b146104c457806395d89b41146104f65780639e252f001461050b578063a01c34831461052b578063a457c2d71461054157600080fd5b806370a0823114610444578063715018a61461047a5780638a8c523c1461048f5780638cd4426d146104a457600080fd5b8063355496ca1161019b57806349abdc141161016a57806349abdc14146103ac5780634ada218b146103cc5780634cdc9c63146103ed5780634f7041a5146104035780636081752b1461042457600080fd5b8063355496ca1461032c578063395093511461034c57806342af18841461036c57806342b6fa111461038c57600080fd5b80631340538f116101d75780631340538f146102b557806318160ddd146102d557806323b872dd146102ea578063313ce5671461030a57600080fd5b806306fdde0314610214578063095ea7b31461023f5780630e3000991461026f5780630e375a5c1461029357600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506102296106b9565b6040516102369190611a0a565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611a7d565b61074b565b6040519015158152602001610236565b34801561027b57600080fd5b5061028560085481565b604051908152602001610236565b34801561029f57600080fd5b506102b36102ae366004611ad8565b610762565b005b3480156102c157600080fd5b506102b36102d0366004611baf565b610801565b3480156102e157600080fd5b50600254610285565b3480156102f657600080fd5b5061025f610305366004611bd3565b610849565b34801561031657600080fd5b5060125b60405160ff9091168152602001610236565b34801561033857600080fd5b506102b3610347366004611c14565b6108fa565b34801561035857600080fd5b5061025f610367366004611a7d565b61094f565b34801561037857600080fd5b506102b3610387366004611c4d565b610986565b34801561039857600080fd5b506102b36103a7366004611c4d565b610a7b565b3480156103b857600080fd5b506102b36103c7366004611c66565b610b4b565b3480156103d857600080fd5b5060075461025f90600160b01b900460ff1681565b3480156103f957600080fd5b5061028560095481565b34801561040f57600080fd5b50600c5461031a90600160a01b900460ff1681565b34801561043057600080fd5b506102b361043f366004611c66565b610be9565b34801561045057600080fd5b5061028561045f366004611c89565b6001600160a01b031660009081526020819052604090205490565b34801561048657600080fd5b506102b3610c87565b34801561049b57600080fd5b506102b3610cbd565b3480156104b057600080fd5b506102b36104bf366004611a7d565b610d5c565b3480156104d057600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610236565b34801561050257600080fd5b50610229610e8f565b34801561051757600080fd5b506102b3610526366004611c4d565b610e9e565b34801561053757600080fd5b506104de61dead81565b34801561054d57600080fd5b5061025f61055c366004611a7d565b610f06565b34801561056d57600080fd5b506007546104de906001600160a01b031681565b34801561058d57600080fd5b5061025f61059c366004611a7d565b610fa1565b3480156105ad57600080fd5b506102b36105bc366004611c89565b610fae565b3480156105cd57600080fd5b5061025f6105dc366004611c89565b600d6020526000908152604090205460ff1681565b3480156105fd57600080fd5b50600c5461031a90600160a81b900460ff1681565b34801561061e57600080fd5b5061028561062d366004611ca6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561066457600080fd5b506102b3610673366004611c89565b61105b565b34801561068457600080fd5b506006546104de906001600160a01b031681565b3480156106a457600080fd5b5060075461025f90600160a81b900460ff1681565b6060600380546106c890611cd4565b80601f01602080910402602001604051908101604052809291908181526020018280546106f490611cd4565b80156107415780601f1061071657610100808354040283529160200191610741565b820191906000526020600020905b81548152906001019060200180831161072457829003601f168201915b5050505050905090565b60006107583384846110f6565b5060015b92915050565b6005546001600160a01b031633146107955760405162461bcd60e51b815260040161078c90611d0e565b60405180910390fd5b60005b82518110156107fc5781600d60008584815181106107b8576107b8611d43565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107f481611d6f565b915050610798565b505050565b6005546001600160a01b0316331461082b5760405162461bcd60e51b815260040161078c90611d0e565b60078054911515600160a81b0260ff60a81b19909216919091179055565b600061085684848461121a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108db5760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161078c565b6108ef85336108ea8685611d88565b6110f6565b506001949350505050565b6005546001600160a01b031633146109245760405162461bcd60e51b815260040161078c90611d0e565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107589185906108ea908690611d9b565b6005546001600160a01b031633146109b05760405162461bcd60e51b815260040161078c90611d0e565b600754600160b01b900460ff1615610a185760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161078c565b60058110610a765760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b606482015260840161078c565b600a55565b6005546001600160a01b03163314610aa55760405162461bcd60e51b815260040161078c90611d0e565b6064610ab060025490565b610aba9190611dae565b811115610b2f5760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000606482015260840161078c565b610b3b6012600a611eb4565b610b459082611ec3565b60085550565b6005546001600160a01b03163314610b755760405162461bcd60e51b815260040161078c90611d0e565b600a8160ff161115610bc95760405162461bcd60e51b815260206004820152601e60248201527f53656c6c20746178206d757374206265206c657373207468616e203130250000604482015260640161078c565b600c805460ff909216600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c135760405162461bcd60e51b815260040161078c90611d0e565b600a8160ff161115610c675760405162461bcd60e51b815260206004820152601d60248201527f42757920746178206d757374206265206c657373207468616e20313025000000604482015260640161078c565b600c805460ff909216600160a01b0260ff60a01b19909216919091179055565b6005546001600160a01b03163314610cb15760405162461bcd60e51b815260040161078c90611d0e565b610cbb60006114e1565b565b6005546001600160a01b03163314610ce75760405162461bcd60e51b815260040161078c90611d0e565b600754600160b01b900460ff1615610d415760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161078c565b6007805461ffff60a81b191661010160a81b17905543600955565b6005546001600160a01b03163314610d865760405162461bcd60e51b815260040161078c90611d0e565b306001600160a01b03831603610dfd5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b606482015260840161078c565b816001600160a01b031663a9059cbb610e1e6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610e6b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fc9190611eda565b6060600480546106c890611cd4565b6005546001600160a01b03163314610ec85760405162461bcd60e51b815260040161078c90611d0e565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f02573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f885760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161078c565b610f9733856108ea8685611d88565b5060019392505050565b600061075833848461121a565b6005546001600160a01b03163314610fd85760405162461bcd60e51b815260040161078c90611d0e565b6001600160a01b0381166110395760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b606482015260840161078c565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110855760405162461bcd60e51b815260040161078c90611d0e565b6001600160a01b0381166110ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161078c565b6110f3816114e1565b50565b6001600160a01b0383166111585760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078c565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161078c565b6001600160a01b0383166000908152600d602052604090205460ff161580156112be57506001600160a01b0382166000908152600d602052604090205460ff16155b1561131257600754600160b01b900460ff166113125760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161078c565b6001600160a01b0383166000908152600d6020526040812054819081908190819060ff1615801561135c57506001600160a01b0387166000908152600d602052604090205460ff16155b80156113765750600a546009546113739190611d9b565b43105b600754909150600160a01b900460ff16806113a957506001600160a01b0388166000908152600d602052604090205460ff165b806113cc57506001600160a01b0387166000908152600d602052604090205460ff165b156113da5760009250611442565b6007546001600160a01b0388811691161480156113f5575080155b1561141457600c54600160a81b900460ff169450849350839150611442565b8061143357600c54600160a01b900460ff169450849350839150611442565b801561144257600b5494508493505b606461144e8588611ec3565b6114589190611dae565b600754909350600160a81b900460ff16801561148257506007546001600160a01b03898116911614155b156114905761149085611533565b6114a4888861149f868a611d88565b6115bf565b82156114d75784156114d757600060646114be8789611ec3565b6114c89190611dae565b90506114d58930836115bf565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff166110f3576007805460ff60a01b1916600160a01b17905580156115af573060009081526020819052604090205460085481106115ad574761158082611797565b600061158c8247611d88565b905080156115aa57600c546115aa906001600160a01b0316826118f1565b50505b505b6007805460ff60a01b1916905550565b6001600160a01b0383166116235760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161078c565b6001600160a01b0382166116855760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078c565b6001600160a01b038316600090815260208190526040902054818110156116fd5760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161078c565b6117078282611d88565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061173d908490611d9b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161178991815260200190565b60405180910390a350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117cc576117cc611d43565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118499190611ef7565b8160018151811061185c5761185c611d43565b6001600160a01b03928316602091820292909201015260065461188291309116846110f6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906118bb908590600090869030904290600401611f14565b600060405180830381600087803b1580156118d557600080fd5b505af11580156118e9573d6000803e3d6000fd5b505050505050565b804710156119415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161078c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461198e576040519150601f19603f3d011682016040523d82523d6000602084013e611993565b606091505b50509050806107fc5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161078c565b600060208083528351808285015260005b81811015611a3757858101830151858201604001528201611a1b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110f357600080fd5b8035611a7881611a58565b919050565b60008060408385031215611a9057600080fd5b8235611a9b81611a58565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146110f357600080fd5b8035611a7881611abf565b60008060408385031215611aeb57600080fd5b823567ffffffffffffffff80821115611b0357600080fd5b818501915085601f830112611b1757600080fd5b8135602082821115611b2b57611b2b611aa9565b8160051b604051601f19603f83011681018181108682111715611b5057611b50611aa9565b604052928352818301935084810182019289841115611b6e57600080fd5b948201945b83861015611b9357611b8486611a6d565b85529482019493820193611b73565b9650611ba29050878201611acd565b9450505050509250929050565b600060208284031215611bc157600080fd5b8135611bcc81611abf565b9392505050565b600080600060608486031215611be857600080fd5b8335611bf381611a58565b92506020840135611c0381611a58565b929592945050506040919091013590565b60008060408385031215611c2757600080fd5b8235611c3281611a58565b91506020830135611c4281611abf565b809150509250929050565b600060208284031215611c5f57600080fd5b5035919050565b600060208284031215611c7857600080fd5b813560ff81168114611bcc57600080fd5b600060208284031215611c9b57600080fd5b8135611bcc81611a58565b60008060408385031215611cb957600080fd5b8235611cc481611a58565b91506020830135611c4281611a58565b600181811c90821680611ce857607f821691505b602082108103611d0857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611d8157611d81611d59565b5060010190565b8181038181111561075c5761075c611d59565b8082018082111561075c5761075c611d59565b600082611dcb57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611e0b578160001904821115611df157611df1611d59565b80851615611dfe57918102915b93841c9390800290611dd5565b509250929050565b600082611e225750600161075c565b81611e2f5750600061075c565b8160018114611e455760028114611e4f57611e6b565b600191505061075c565b60ff841115611e6057611e60611d59565b50506001821b61075c565b5060208310610133831016604e8410600b8410161715611e8e575081810a61075c565b611e988383611dd0565b8060001904821115611eac57611eac611d59565b029392505050565b6000611bcc60ff841683611e13565b808202811582820484141761075c5761075c611d59565b600060208284031215611eec57600080fd5b8151611bcc81611abf565b600060208284031215611f0957600080fd5b8151611bcc81611a58565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f645784516001600160a01b031683529383019391830191600101611f3f565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201b0d689e29e2ef58d4d8181b2f13380ef7bd0ee93d18e19e582789f8f28ca49c64736f6c63430008110033
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.