Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 PINN
Holders
585
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
355,358,852.957140903374058318 PINNValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x798335D1...29f033046 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Pinnacle
Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.21; pragma experimental ABIEncoderV2; abstract contract Ownable { address private _owner; constructor() { _owner = msg.sender; } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == msg.sender, "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _owner = address(0); } } library SafeERC20 { function safeTransfer(address token, address to, uint256 value) internal { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED'); } } interface IERC20 { function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external; function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); } contract Pinnacle is Ownable { string private constant _name = unicode"Pinnacle"; string private constant _symbol = unicode"PINN"; uint256 private constant _totalSupply = 1_000_000_000 * 1e18; uint256 public maxTransactionAmount = 500_000 * 1e18; // ~0.05% uint256 public maxWallet = 15_000_000 * 1e18; // ~1.00% uint256 public swapTokensAtAmount = 200_000 * 1e18; // ~0.02% address private revWallet = 0xff5474EA021C43b9FEae3e298249f456ee96D921; address private treasuryWallet = 0xd215B27898bEf8D4F91DDB7D1717cb43192156a5; address private teamWallet = 0x21095e003816a91e1D8Ede82C6D30EBAa6bB9a86; address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; uint8 public buyTotalFees = 10; uint8 public sellTotalFees = 10; uint8 public revFee = 50; uint8 public treasuryFee = 50; bool private swapping; bool public limitsInEffect = true; bool private launched; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event SwapAndLiquify(uint256 tokensSwapped, uint256 revETH, uint256 TreasuryETH); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public immutable uniswapV2Pair; constructor() { uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH); automatedMarketMakerPairs[uniswapV2Pair] = true; address airdropWallet = 0x8Baddc5A65d39F090Ce0b527a4344304c127F8E2; setExcludedFromFees(owner(), true); setExcludedFromFees(address(0xdead), true); setExcludedFromFees(revWallet, true); setExcludedFromMaxTransaction(owner(), true); setExcludedFromMaxTransaction(address(uniswapV2Router), true); setExcludedFromMaxTransaction(address(0xdead), true); setExcludedFromMaxTransaction(address(uniswapV2Pair), true); setExcludedFromMaxTransaction(revWallet, true); // Treasury setExcludedFromFees(treasuryWallet, true); setExcludedFromMaxTransaction(treasuryWallet, true); _balances[treasuryWallet] = 50_000_000 * 1e18; emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]); // Team setExcludedFromFees(teamWallet, true); setExcludedFromMaxTransaction(teamWallet, true); _balances[teamWallet] = 50_000_000 * 1e18; emit Transfer(address(0), teamWallet, _balances[teamWallet]); // Airdrop setExcludedFromFees(airdropWallet, true); setExcludedFromMaxTransaction(airdropWallet, true); _balances[airdropWallet] = 25_000_000 * 1e18; emit Transfer(address(0), airdropWallet, _balances[airdropWallet]); // LP setExcludedFromFees(address(this), true); setExcludedFromMaxTransaction(address(this), true); _balances[address(this)] = 850_000_000 * 1e18; // ~85 emit Transfer(address(0), address(this), _balances[address(this)]); _approve(address(this), address(uniswapV2Router), type(uint256).max); } receive() external payable {} function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return 18; } function totalSupply() public pure returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { 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 transfer(address recipient, uint256 amount) external returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) { uint256 currentAllowance = _allowances[sender][msg.sender]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, msg.sender, currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (!launched && (from != owner() && from != address(this) && to != owner())) { revert("Trading not enabled"); } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx"); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx"); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 senderBalance = _balances[from]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = (amount * sellTotalFees) / 100; } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = (amount * buyTotalFees) / 100; } if (fees > 0) { unchecked { amount = amount - fees; _balances[from] -= fees; _balances[address(this)] += fees; } emit Transfer(from, address(this), fees); } } unchecked { _balances[from] -= amount; _balances[to] += amount; } emit Transfer(from, to, amount); } function removeLimits() external onlyOwner { limitsInEffect = false; } function setDistributionFees(uint8 _RevFee, uint8 _TreasuryFee) external onlyOwner { revFee = _RevFee; treasuryFee = _TreasuryFee; require((revFee + treasuryFee) == 100, "Distribution have to be equal to 100%"); } function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner { buyTotalFees = _buyTotalFees; sellTotalFees = _sellTotalFees; } function setExcludedFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner { _isExcludedMaxTransactionAmount[account] = excluded; } function airdropWallets(address[] memory addresses, uint256[] memory amounts) external onlyOwner { require(!launched, "Already launched"); for (uint256 i = 0; i < addresses.length; i++) { require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance"); _balances[addresses[i]] += amounts[i]; _balances[msg.sender] -= amounts[i]; emit Transfer(msg.sender, addresses[i], amounts[i]); } } function openTrade() external onlyOwner { require(!launched, "Already launched"); launched = true; } function Launch() external payable onlyOwner { require(!launched, "Already launched"); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), _balances[address(this)], 0, 0, teamWallet, block.timestamp ); } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed"); automatedMarketMakerPairs[pair] = value; } function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner { require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply"); require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply"); swapTokensAtAmount = newSwapAmount; } function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner { require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%"); maxTransactionAmount = newMaxTx * (10**18); } function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner { require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%"); maxWallet = newMaxWallet * (10**18); } function updateRevWallet(address newAddress) external onlyOwner { require(newAddress != address(0), "Address cannot be zero"); revWallet = newAddress; } function updateTreasuryWallet(address newAddress) external onlyOwner { require(newAddress != address(0), "Address cannot be zero"); treasuryWallet = newAddress; } function updateTeamWallet(address newAddress) external onlyOwner { require(newAddress != address(0), "Address cannot be zero"); teamWallet = newAddress; } function excludedFromFee(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function withdrawStuckToken(address token, address to) external onlyOwner { uint256 _contractBalance = IERC20(token).balanceOf(address(this)); SafeERC20.safeTransfer(token, to, _contractBalance); } function withdrawStuckETH(address addr) external onlyOwner { require(addr != address(0), "Invalid address"); (bool success, ) = addr.call{value: address(this).balance}(""); require(success, "Withdrawal failed"); } function swapBack() private { uint256 swapThreshold = swapTokensAtAmount; bool success; if (balanceOf(address(this)) > swapTokensAtAmount * 20) { swapThreshold = swapTokensAtAmount * 20; } address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp); uint256 ethBalance = address(this).balance; if (ethBalance > 0) { uint256 ethForRev = (ethBalance * revFee) / 100; uint256 ethForTreasury = ethBalance - ethForRev; (success, ) = address(treasuryWallet).call{value: ethForTreasury}(""); (success, ) = address(revWallet).call{value: ethForRev}(""); emit SwapAndLiquify(swapThreshold, ethForRev, ethForTreasury); } } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","outputs":[],"stateMutability":"nonpayable","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":[],"name":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526969e10de76676d08000006001556a0c685fa11e01ec6f000000600255692a5a058fc295ed000000600355600480546001600160a01b031990811673ff5474ea021c43b9feae3e298249f456ee96d921179091556005805490911673d215b27898bef8d4f91ddb7d1717cb43192156a51790556006805479010032320a0a21095e003816a91e1d8ede82c6d30ebaa6bb9a86600161ff0160c01b0319909116179055348015620000b2575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000113573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001399190620006f1565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af115801562000199573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001bf9190620006f1565b6001600160a01b031660808190525f908152600b60205260409020805460ff19166001179055738baddc5a65d39f090ce0b527a4344304c127f8e262000218620002105f546001600160a01b031690565b6001620004c0565b6200022761dead6001620004c0565b60045462000240906001600160a01b03166001620004c0565b6200025e620002565f546001600160a01b031690565b600162000547565b6200027f737a250d5630b4cf539739df2c5dacb4c659f2488d600162000547565b6200028e61dead600162000547565b6080516200029e90600162000547565b600454620002b7906001600160a01b0316600162000547565b600554620002d0906001600160a01b03166001620004c0565b600554620002e9906001600160a01b0316600162000547565b600580546001600160a01b039081165f908152600760205260408082206a295be96e640669720000009055925490911680825282822054925190925f8051602062002f31833981519152916200034191815260200190565b60405180910390a360065462000362906001600160a01b03166001620004c0565b6006546200037b906001600160a01b0316600162000547565b600680546001600160a01b039081165f908152600760205260408082206a295be96e640669720000009055925490911680825282822054925190925f8051602062002f3183398151915291620003d391815260200190565b60405180910390a3620003e8816001620004c0565b620003f581600162000547565b6001600160a01b0381165f8181526007602090815260408083206a14adf4b7320334b90000009081905590519081525f8051602062002f31833981519152910160405180910390a36200044a306001620004c0565b6200045730600162000547565b305f8181526007602090815260408083206b02bf1a8054a46d00920000009081905590519081525f8051602062002f31833981519152910160405180910390a3620004b930737a250d5630b4cf539739df2c5dacb4c659f2488d5f19620005ca565b5062000720565b33620004d35f546001600160a01b031690565b6001600160a01b0316146200051d5760405162461bcd60e51b815260206004820181905260248201525f8051602062002f1183398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b336200055a5f546001600160a01b031690565b6001600160a01b031614620005a05760405162461bcd60e51b815260206004820181905260248201525f8051602062002f11833981519152604482015260640162000514565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b0383166200062e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000514565b6001600160a01b038216620006915760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000514565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6020828403121562000702575f80fd5b81516001600160a01b038116811462000719575f80fd5b9392505050565b6080516127d1620007405f395f81816103ac0152610f7e01526127d15ff3fe60806040526004361061022b575f3560e01c8063751039fc11610129578063c8c8ebe4116100a8578063e2f456051161006d578063e2f45605146106f6578063e71079471461070b578063f5ec72341461072a578063f8b45b0514610749578063fb201b1d1461075e575f80fd5b8063c8c8ebe41461063e578063cc32d17614610653578063d201b01e14610673578063d85ba06314610692578063dd62ed3e146106b2575f80fd5b806395d89b41116100ee57806395d89b41146105965780639a7a23d6146105c2578063a9059cbb146105e1578063adfa29e514610600578063bc205ad31461061f575f80fd5b8063751039fc146104f15780637cb332bb14610505578063809d458d1461052457806385ecafd7146105435780638da5cb5b1461057a575f80fd5b806349bd5a5e116101b557806366650dae1161017a57806366650dae1461044b5780636a486a8e1461046a57806370a082311461048a578063715018a6146104be57806374010ece146104d2575f80fd5b806349bd5a5e1461039b5780634a62bb65146103ce5780634fcd2446146103ee578063590ffdce1461040d5780636402511e1461042c575f80fd5b806318160ddd116101fb57806318160ddd146102f057806321d37e391461031857806323b872dd1461034a57806327a14fc214610369578063313ce56714610388575f80fd5b806302ac81681461023657806306fdde0314610240578063095ea7b3146102825780631694505e146102b1575f80fd5b3661023257005b5f80fd5b61023e610772565b005b34801561024b575f80fd5b5060408051808201909152600881526750696e6e61636c6560c01b60208201525b604051610279919061221f565b60405180910390f35b34801561028d575f80fd5b506102a161029c36600461226c565b610893565b6040519015158152602001610279565b3480156102bc575f80fd5b506102d8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610279565b3480156102fb575f80fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610279565b348015610323575f80fd5b5060065461033890600160b01b900460ff1681565b60405160ff9091168152602001610279565b348015610355575f80fd5b506102a1610364366004612294565b6108a9565b348015610374575f80fd5b5061023e6103833660046122cd565b610958565b348015610393575f80fd5b506012610338565b3480156103a6575f80fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d9575f80fd5b506006546102a190600160c81b900460ff1681565b3480156103f9575f80fd5b5061023e6104083660046122f4565b610a3c565b348015610418575f80fd5b5061023e610427366004612335565b610aa8565b348015610437575f80fd5b5061023e6104463660046122cd565b610b0a565b348015610456575f80fd5b5061023e610465366004612335565b610c69565b348015610475575f80fd5b5060065461033890600160a81b900460ff1681565b348015610495575f80fd5b5061030a6104a436600461236a565b6001600160a01b03165f9081526007602052604090205490565b3480156104c9575f80fd5b5061023e610ccb565b3480156104dd575f80fd5b5061023e6104ec3660046122cd565b610d14565b3480156104fc575f80fd5b5061023e610dfd565b348015610510575f80fd5b5061023e61051f36600461236a565b610e44565b34801561052f575f80fd5b5061023e61053e36600461236a565b610ec4565b34801561054e575f80fd5b506102a161055d36600461236a565b6001600160a01b03165f9081526009602052604090205460ff1690565b348015610585575f80fd5b505f546001600160a01b03166102d8565b3480156105a1575f80fd5b506040805180820190915260048152632824a72760e11b602082015261026c565b3480156105cd575f80fd5b5061023e6105dc366004612335565b610f44565b3480156105ec575f80fd5b506102a16105fb36600461226c565b611027565b34801561060b575f80fd5b5061023e61061a36600461236a565b611033565b34801561062a575f80fd5b5061023e61063936600461238a565b6110b3565b348015610649575f80fd5b5061030a60015481565b34801561065e575f80fd5b5060065461033890600160b81b900460ff1681565b34801561067e575f80fd5b5061023e61068d36600461236a565b611160565b34801561069d575f80fd5b5060065461033890600160a01b900460ff1681565b3480156106bd575f80fd5b5061030a6106cc36600461238a565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610701575f80fd5b5061030a60035481565b348015610716575f80fd5b5061023e610725366004612486565b611277565b348015610735575f80fd5b5061023e6107443660046122f4565b611484565b348015610754575f80fd5b5061030a60025481565b348015610769575f80fd5b5061023e611564565b336107845f546001600160a01b031690565b6001600160a01b0316146107b35760405162461bcd60e51b81526004016107aa90612540565b60405180910390fd5b600654600160d01b900460ff16156107dd5760405162461bcd60e51b81526004016107aa90612575565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610869573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061088e919061259f565b505050565b5f61089f3384846115db565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461094257828110156109355760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107aa565b61094285338584036115db565b61094d8585856116fe565b506001949350505050565b3361096a5f546001600160a01b031690565b6001600160a01b0316146109905760405162461bcd60e51b81526004016107aa90612540565b670de0b6b3a76400006103e86109b36b033b2e3c9fd0803ce800000060016125de565b6109bd91906125f5565b6109c791906125f5565b811015610a245760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b60648201526084016107aa565b610a3681670de0b6b3a76400006125de565b60025550565b33610a4e5f546001600160a01b031690565b6001600160a01b031614610a745760405162461bcd60e51b81526004016107aa90612540565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610aba5f546001600160a01b031690565b6001600160a01b031614610ae05760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610b1c5f546001600160a01b031690565b6001600160a01b031614610b425760405162461bcd60e51b81526004016107aa90612540565b620186a0610b5d6b033b2e3c9fd0803ce800000060016125de565b610b6791906125f5565b811015610bd45760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016107aa565b6103e8610bee6b033b2e3c9fd0803ce800000060056125de565b610bf891906125f5565b811115610c645760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016107aa565b600355565b33610c7b5f546001600160a01b031690565b6001600160a01b031614610ca15760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610cdd5f546001600160a01b031690565b6001600160a01b031614610d035760405162461bcd60e51b81526004016107aa90612540565b5f80546001600160a01b0319169055565b33610d265f546001600160a01b031690565b6001600160a01b031614610d4c5760405162461bcd60e51b81526004016107aa90612540565b670de0b6b3a76400006103e8610d6f6b033b2e3c9fd0803ce800000060016125de565b610d7991906125f5565b610d8391906125f5565b811015610de55760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b60648201526084016107aa565b610df781670de0b6b3a76400006125de565b60015550565b33610e0f5f546001600160a01b031690565b6001600160a01b031614610e355760405162461bcd60e51b81526004016107aa90612540565b6006805460ff60c81b19169055565b33610e565f546001600160a01b031690565b6001600160a01b031614610e7c5760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b038116610ea25760405162461bcd60e51b81526004016107aa90612614565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b33610ed65f546001600160a01b031690565b6001600160a01b031614610efc5760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b038116610f225760405162461bcd60e51b81526004016107aa90612614565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b33610f565f546001600160a01b031690565b6001600160a01b031614610f7c5760405162461bcd60e51b81526004016107aa90612540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610ffd5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016107aa565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f61089f3384846116fe565b336110455f546001600160a01b031690565b6001600160a01b03161461106b5760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b0381166110915760405162461bcd60e51b81526004016107aa90612614565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336110c55f546001600160a01b031690565b6001600160a01b0316146110eb5760405162461bcd60e51b81526004016107aa90612540565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561112f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111539190612644565b905061088e838383611e75565b336111725f546001600160a01b031690565b6001600160a01b0316146111985760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b0381166111e05760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107aa565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611229576040519150601f19603f3d011682016040523d82523d5f602084013e61122e565b606091505b50509050806112735760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016107aa565b5050565b336112895f546001600160a01b031690565b6001600160a01b0316146112af5760405162461bcd60e51b81526004016107aa90612540565b600654600160d01b900460ff16156112d95760405162461bcd60e51b81526004016107aa90612575565b5f5b825181101561088e578181815181106112f6576112f661265b565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156113405760405162461bcd60e51b81526004016107aa9061266f565b8181815181106113525761135261265b565b602002602001015160075f85848151811061136f5761136f61265b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f8282546113a491906126b5565b925050819055508181815181106113bd576113bd61265b565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546113f691906126c8565b9250508190555082818151811061140f5761140f61265b565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061145d5761145d61265b565b602002602001015160405161147491815260200190565b60405180910390a36001016112db565b336114965f546001600160a01b031690565b6001600160a01b0316146114bc5760405162461bcd60e51b81526004016107aa90612540565b6006805461ffff60b01b1916600160b01b60ff858116820260ff60b81b191692909217600160b81b8584168102919091179384905561150493908104831692919004166126db565b60ff166064146112735760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b60648201526084016107aa565b336115765f546001600160a01b031690565b6001600160a01b03161461159c5760405162461bcd60e51b81526004016107aa90612540565b600654600160d01b900460ff16156115c65760405162461bcd60e51b81526004016107aa90612575565b6006805460ff60d01b1916600160d01b179055565b6001600160a01b03831661163d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107aa565b6001600160a01b03821661169e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107aa565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107aa565b6001600160a01b0382166117c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107aa565b5f81116118255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107aa565b600654600160d01b900460ff1615801561187957505f546001600160a01b0384811691161480159061186057506001600160a01b0383163014155b801561187957505f546001600160a01b03838116911614155b156118bc5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107aa565b600654600160c81b900460ff1615611b7d575f546001600160a01b038481169116148015906118f857505f546001600160a01b03838116911614155b801561190c57506001600160a01b03821615155b801561192357506001600160a01b03821661dead14155b80156119395750600654600160c01b900460ff16155b15611b7d576001600160a01b0383165f908152600b602052604090205460ff16801561197d57506001600160a01b0382165f908152600a602052604090205460ff16155b15611a50576001548111156119e25760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016107aa565b6002546001600160a01b0383165f90815260076020526040902054611a0790836126b5565b1115611a4b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107aa565b611b7d565b6001600160a01b0382165f908152600b602052604090205460ff168015611a8f57506001600160a01b0383165f908152600a602052604090205460ff16155b15611af557600154811115611a4b5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016107aa565b6001600160a01b0382165f908152600a602052604090205460ff16611b7d576002546001600160a01b0383165f90815260076020526040902054611b3990836126b5565b1115611b7d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107aa565b600354305f90815260076020526040902054108015908190611ba95750600654600160c01b900460ff16155b8015611bcd57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611bf157506001600160a01b0384165f9081526009602052604090205460ff16155b8015611c1557506001600160a01b0383165f9081526009602052604090205460ff16155b15611c43576006805460ff60c01b1916600160c01b179055611c35611f9c565b6006805460ff60c01b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c01b909204821615911680611c8f57506001600160a01b0384165f9081526009602052604090205460ff165b15611c9757505f5b6001600160a01b0385165f9081526007602052604090205483811015611ccf5760405162461bcd60e51b81526004016107aa9061266f565b5f8215611e03576001600160a01b0386165f908152600b602052604090205460ff168015611d085750600654600160a81b900460ff1615155b15611d3857600654606490611d2790600160a81b900460ff16876125de565b611d3191906125f5565b9050611d96565b6001600160a01b0387165f908152600b602052604090205460ff168015611d6a5750600654600160a01b900460ff1615155b15611d9657600654606490611d8990600160a01b900460ff16876125de565b611d9391906125f5565b90505b8015611e03576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e649089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611ed091906126f4565b5f604051808303815f865af19150503d805f8114611f09576040519150601f19603f3d011682016040523d82523d5f602084013e611f0e565b606091505b5091509150818015611f38575080511580611f38575080806020019051810190611f38919061270f565b611f955760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b60648201526084016107aa565b5050505050565b6003545f611fab8260146125de565b305f908152600760205260409020541115611fd157600354611fce9060146125de565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106120045761200461265b565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061204c5761204c61265b565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906120a39086905f9086903090429060040161272a565b5f604051808303815f87803b1580156120ba575f80fd5b505af11580156120cc573d5f803e3d5ffd5b5047925050811590506121f7576006545f906064906120f590600160b01b900460ff16846125de565b6120ff91906125f5565b90505f61210c82846126c8565b6005546040519192506001600160a01b03169082905f81818185875af1925050503d805f8114612157576040519150601f19603f3d011682016040523d82523d5f602084013e61215c565b606091505b50506004546040519196506001600160a01b03169083905f81818185875af1925050503d805f81146121a9576040519150601f19603f3d011682016040523d82523d5f602084013e6121ae565b606091505b505060408051888152602081018590529081018390529095507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150505b50505050565b5f5b838110156122175781810151838201526020016121ff565b50505f910152565b602081525f825180602084015261223d8160408501602087016121fd565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612267575f80fd5b919050565b5f806040838503121561227d575f80fd5b61228683612251565b946020939093013593505050565b5f805f606084860312156122a6575f80fd5b6122af84612251565b92506122bd60208501612251565b9150604084013590509250925092565b5f602082840312156122dd575f80fd5b5035919050565b803560ff81168114612267575f80fd5b5f8060408385031215612305575f80fd5b61230e836122e4565b915061231c602084016122e4565b90509250929050565b8015158114612332575f80fd5b50565b5f8060408385031215612346575f80fd5b61234f83612251565b9150602083013561235f81612325565b809150509250929050565b5f6020828403121561237a575f80fd5b61238382612251565b9392505050565b5f806040838503121561239b575f80fd5b6123a483612251565b915061231c60208401612251565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156123ef576123ef6123b2565b604052919050565b5f67ffffffffffffffff821115612410576124106123b2565b5060051b60200190565b5f82601f830112612429575f80fd5b8135602061243e612439836123f7565b6123c6565b8083825260208201915060208460051b87010193508684111561245f575f80fd5b602086015b8481101561247b5780358352918301918301612464565b509695505050505050565b5f8060408385031215612497575f80fd5b823567ffffffffffffffff808211156124ae575f80fd5b818501915085601f8301126124c1575f80fd5b813560206124d1612439836123f7565b82815260059290921b840181019181810190898411156124ef575f80fd5b948201945b838610156125145761250586612251565b825294820194908201906124f4565b96505086013592505080821115612529575f80fd5b506125368582860161241a565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b5f805f606084860312156125b1575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108a3576108a36125ca565b5f8261260f57634e487b7160e01b5f52601260045260245ffd5b500490565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f60208284031215612654575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156108a3576108a36125ca565b818103818111156108a3576108a36125ca565b60ff81811683821601908111156108a3576108a36125ca565b5f82516127058184602087016121fd565b9190910192915050565b5f6020828403121561271f575f80fd5b815161238381612325565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561277a5784516001600160a01b031683529383019391830191600101612755565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9e1e71cedce8a3148c1f55f0fb426338babb14fdf0e7862100f53bc0a9511e264736f6c634300081600334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x60806040526004361061022b575f3560e01c8063751039fc11610129578063c8c8ebe4116100a8578063e2f456051161006d578063e2f45605146106f6578063e71079471461070b578063f5ec72341461072a578063f8b45b0514610749578063fb201b1d1461075e575f80fd5b8063c8c8ebe41461063e578063cc32d17614610653578063d201b01e14610673578063d85ba06314610692578063dd62ed3e146106b2575f80fd5b806395d89b41116100ee57806395d89b41146105965780639a7a23d6146105c2578063a9059cbb146105e1578063adfa29e514610600578063bc205ad31461061f575f80fd5b8063751039fc146104f15780637cb332bb14610505578063809d458d1461052457806385ecafd7146105435780638da5cb5b1461057a575f80fd5b806349bd5a5e116101b557806366650dae1161017a57806366650dae1461044b5780636a486a8e1461046a57806370a082311461048a578063715018a6146104be57806374010ece146104d2575f80fd5b806349bd5a5e1461039b5780634a62bb65146103ce5780634fcd2446146103ee578063590ffdce1461040d5780636402511e1461042c575f80fd5b806318160ddd116101fb57806318160ddd146102f057806321d37e391461031857806323b872dd1461034a57806327a14fc214610369578063313ce56714610388575f80fd5b806302ac81681461023657806306fdde0314610240578063095ea7b3146102825780631694505e146102b1575f80fd5b3661023257005b5f80fd5b61023e610772565b005b34801561024b575f80fd5b5060408051808201909152600881526750696e6e61636c6560c01b60208201525b604051610279919061221f565b60405180910390f35b34801561028d575f80fd5b506102a161029c36600461226c565b610893565b6040519015158152602001610279565b3480156102bc575f80fd5b506102d8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610279565b3480156102fb575f80fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610279565b348015610323575f80fd5b5060065461033890600160b01b900460ff1681565b60405160ff9091168152602001610279565b348015610355575f80fd5b506102a1610364366004612294565b6108a9565b348015610374575f80fd5b5061023e6103833660046122cd565b610958565b348015610393575f80fd5b506012610338565b3480156103a6575f80fd5b506102d87f0000000000000000000000008777fed257c59a5e5ff92cfbd92d3beef15942b881565b3480156103d9575f80fd5b506006546102a190600160c81b900460ff1681565b3480156103f9575f80fd5b5061023e6104083660046122f4565b610a3c565b348015610418575f80fd5b5061023e610427366004612335565b610aa8565b348015610437575f80fd5b5061023e6104463660046122cd565b610b0a565b348015610456575f80fd5b5061023e610465366004612335565b610c69565b348015610475575f80fd5b5060065461033890600160a81b900460ff1681565b348015610495575f80fd5b5061030a6104a436600461236a565b6001600160a01b03165f9081526007602052604090205490565b3480156104c9575f80fd5b5061023e610ccb565b3480156104dd575f80fd5b5061023e6104ec3660046122cd565b610d14565b3480156104fc575f80fd5b5061023e610dfd565b348015610510575f80fd5b5061023e61051f36600461236a565b610e44565b34801561052f575f80fd5b5061023e61053e36600461236a565b610ec4565b34801561054e575f80fd5b506102a161055d36600461236a565b6001600160a01b03165f9081526009602052604090205460ff1690565b348015610585575f80fd5b505f546001600160a01b03166102d8565b3480156105a1575f80fd5b506040805180820190915260048152632824a72760e11b602082015261026c565b3480156105cd575f80fd5b5061023e6105dc366004612335565b610f44565b3480156105ec575f80fd5b506102a16105fb36600461226c565b611027565b34801561060b575f80fd5b5061023e61061a36600461236a565b611033565b34801561062a575f80fd5b5061023e61063936600461238a565b6110b3565b348015610649575f80fd5b5061030a60015481565b34801561065e575f80fd5b5060065461033890600160b81b900460ff1681565b34801561067e575f80fd5b5061023e61068d36600461236a565b611160565b34801561069d575f80fd5b5060065461033890600160a01b900460ff1681565b3480156106bd575f80fd5b5061030a6106cc36600461238a565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610701575f80fd5b5061030a60035481565b348015610716575f80fd5b5061023e610725366004612486565b611277565b348015610735575f80fd5b5061023e6107443660046122f4565b611484565b348015610754575f80fd5b5061030a60025481565b348015610769575f80fd5b5061023e611564565b336107845f546001600160a01b031690565b6001600160a01b0316146107b35760405162461bcd60e51b81526004016107aa90612540565b60405180910390fd5b600654600160d01b900460ff16156107dd5760405162461bcd60e51b81526004016107aa90612575565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610869573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061088e919061259f565b505050565b5f61089f3384846115db565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461094257828110156109355760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107aa565b61094285338584036115db565b61094d8585856116fe565b506001949350505050565b3361096a5f546001600160a01b031690565b6001600160a01b0316146109905760405162461bcd60e51b81526004016107aa90612540565b670de0b6b3a76400006103e86109b36b033b2e3c9fd0803ce800000060016125de565b6109bd91906125f5565b6109c791906125f5565b811015610a245760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b60648201526084016107aa565b610a3681670de0b6b3a76400006125de565b60025550565b33610a4e5f546001600160a01b031690565b6001600160a01b031614610a745760405162461bcd60e51b81526004016107aa90612540565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610aba5f546001600160a01b031690565b6001600160a01b031614610ae05760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610b1c5f546001600160a01b031690565b6001600160a01b031614610b425760405162461bcd60e51b81526004016107aa90612540565b620186a0610b5d6b033b2e3c9fd0803ce800000060016125de565b610b6791906125f5565b811015610bd45760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016107aa565b6103e8610bee6b033b2e3c9fd0803ce800000060056125de565b610bf891906125f5565b811115610c645760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016107aa565b600355565b33610c7b5f546001600160a01b031690565b6001600160a01b031614610ca15760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610cdd5f546001600160a01b031690565b6001600160a01b031614610d035760405162461bcd60e51b81526004016107aa90612540565b5f80546001600160a01b0319169055565b33610d265f546001600160a01b031690565b6001600160a01b031614610d4c5760405162461bcd60e51b81526004016107aa90612540565b670de0b6b3a76400006103e8610d6f6b033b2e3c9fd0803ce800000060016125de565b610d7991906125f5565b610d8391906125f5565b811015610de55760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b60648201526084016107aa565b610df781670de0b6b3a76400006125de565b60015550565b33610e0f5f546001600160a01b031690565b6001600160a01b031614610e355760405162461bcd60e51b81526004016107aa90612540565b6006805460ff60c81b19169055565b33610e565f546001600160a01b031690565b6001600160a01b031614610e7c5760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b038116610ea25760405162461bcd60e51b81526004016107aa90612614565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b33610ed65f546001600160a01b031690565b6001600160a01b031614610efc5760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b038116610f225760405162461bcd60e51b81526004016107aa90612614565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b33610f565f546001600160a01b031690565b6001600160a01b031614610f7c5760405162461bcd60e51b81526004016107aa90612540565b7f0000000000000000000000008777fed257c59a5e5ff92cfbd92d3beef15942b86001600160a01b0316826001600160a01b031603610ffd5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016107aa565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f61089f3384846116fe565b336110455f546001600160a01b031690565b6001600160a01b03161461106b5760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b0381166110915760405162461bcd60e51b81526004016107aa90612614565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336110c55f546001600160a01b031690565b6001600160a01b0316146110eb5760405162461bcd60e51b81526004016107aa90612540565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561112f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111539190612644565b905061088e838383611e75565b336111725f546001600160a01b031690565b6001600160a01b0316146111985760405162461bcd60e51b81526004016107aa90612540565b6001600160a01b0381166111e05760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107aa565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611229576040519150601f19603f3d011682016040523d82523d5f602084013e61122e565b606091505b50509050806112735760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016107aa565b5050565b336112895f546001600160a01b031690565b6001600160a01b0316146112af5760405162461bcd60e51b81526004016107aa90612540565b600654600160d01b900460ff16156112d95760405162461bcd60e51b81526004016107aa90612575565b5f5b825181101561088e578181815181106112f6576112f661265b565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156113405760405162461bcd60e51b81526004016107aa9061266f565b8181815181106113525761135261265b565b602002602001015160075f85848151811061136f5761136f61265b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f8282546113a491906126b5565b925050819055508181815181106113bd576113bd61265b565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546113f691906126c8565b9250508190555082818151811061140f5761140f61265b565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061145d5761145d61265b565b602002602001015160405161147491815260200190565b60405180910390a36001016112db565b336114965f546001600160a01b031690565b6001600160a01b0316146114bc5760405162461bcd60e51b81526004016107aa90612540565b6006805461ffff60b01b1916600160b01b60ff858116820260ff60b81b191692909217600160b81b8584168102919091179384905561150493908104831692919004166126db565b60ff166064146112735760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b60648201526084016107aa565b336115765f546001600160a01b031690565b6001600160a01b03161461159c5760405162461bcd60e51b81526004016107aa90612540565b600654600160d01b900460ff16156115c65760405162461bcd60e51b81526004016107aa90612575565b6006805460ff60d01b1916600160d01b179055565b6001600160a01b03831661163d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107aa565b6001600160a01b03821661169e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107aa565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107aa565b6001600160a01b0382166117c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107aa565b5f81116118255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107aa565b600654600160d01b900460ff1615801561187957505f546001600160a01b0384811691161480159061186057506001600160a01b0383163014155b801561187957505f546001600160a01b03838116911614155b156118bc5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107aa565b600654600160c81b900460ff1615611b7d575f546001600160a01b038481169116148015906118f857505f546001600160a01b03838116911614155b801561190c57506001600160a01b03821615155b801561192357506001600160a01b03821661dead14155b80156119395750600654600160c01b900460ff16155b15611b7d576001600160a01b0383165f908152600b602052604090205460ff16801561197d57506001600160a01b0382165f908152600a602052604090205460ff16155b15611a50576001548111156119e25760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016107aa565b6002546001600160a01b0383165f90815260076020526040902054611a0790836126b5565b1115611a4b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107aa565b611b7d565b6001600160a01b0382165f908152600b602052604090205460ff168015611a8f57506001600160a01b0383165f908152600a602052604090205460ff16155b15611af557600154811115611a4b5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016107aa565b6001600160a01b0382165f908152600a602052604090205460ff16611b7d576002546001600160a01b0383165f90815260076020526040902054611b3990836126b5565b1115611b7d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107aa565b600354305f90815260076020526040902054108015908190611ba95750600654600160c01b900460ff16155b8015611bcd57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611bf157506001600160a01b0384165f9081526009602052604090205460ff16155b8015611c1557506001600160a01b0383165f9081526009602052604090205460ff16155b15611c43576006805460ff60c01b1916600160c01b179055611c35611f9c565b6006805460ff60c01b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c01b909204821615911680611c8f57506001600160a01b0384165f9081526009602052604090205460ff165b15611c9757505f5b6001600160a01b0385165f9081526007602052604090205483811015611ccf5760405162461bcd60e51b81526004016107aa9061266f565b5f8215611e03576001600160a01b0386165f908152600b602052604090205460ff168015611d085750600654600160a81b900460ff1615155b15611d3857600654606490611d2790600160a81b900460ff16876125de565b611d3191906125f5565b9050611d96565b6001600160a01b0387165f908152600b602052604090205460ff168015611d6a5750600654600160a01b900460ff1615155b15611d9657600654606490611d8990600160a01b900460ff16876125de565b611d9391906125f5565b90505b8015611e03576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e649089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611ed091906126f4565b5f604051808303815f865af19150503d805f8114611f09576040519150601f19603f3d011682016040523d82523d5f602084013e611f0e565b606091505b5091509150818015611f38575080511580611f38575080806020019051810190611f38919061270f565b611f955760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b60648201526084016107aa565b5050505050565b6003545f611fab8260146125de565b305f908152600760205260409020541115611fd157600354611fce9060146125de565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106120045761200461265b565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061204c5761204c61265b565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906120a39086905f9086903090429060040161272a565b5f604051808303815f87803b1580156120ba575f80fd5b505af11580156120cc573d5f803e3d5ffd5b5047925050811590506121f7576006545f906064906120f590600160b01b900460ff16846125de565b6120ff91906125f5565b90505f61210c82846126c8565b6005546040519192506001600160a01b03169082905f81818185875af1925050503d805f8114612157576040519150601f19603f3d011682016040523d82523d5f602084013e61215c565b606091505b50506004546040519196506001600160a01b03169083905f81818185875af1925050503d805f81146121a9576040519150601f19603f3d011682016040523d82523d5f602084013e6121ae565b606091505b505060408051888152602081018590529081018390529095507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150505b50505050565b5f5b838110156122175781810151838201526020016121ff565b50505f910152565b602081525f825180602084015261223d8160408501602087016121fd565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612267575f80fd5b919050565b5f806040838503121561227d575f80fd5b61228683612251565b946020939093013593505050565b5f805f606084860312156122a6575f80fd5b6122af84612251565b92506122bd60208501612251565b9150604084013590509250925092565b5f602082840312156122dd575f80fd5b5035919050565b803560ff81168114612267575f80fd5b5f8060408385031215612305575f80fd5b61230e836122e4565b915061231c602084016122e4565b90509250929050565b8015158114612332575f80fd5b50565b5f8060408385031215612346575f80fd5b61234f83612251565b9150602083013561235f81612325565b809150509250929050565b5f6020828403121561237a575f80fd5b61238382612251565b9392505050565b5f806040838503121561239b575f80fd5b6123a483612251565b915061231c60208401612251565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156123ef576123ef6123b2565b604052919050565b5f67ffffffffffffffff821115612410576124106123b2565b5060051b60200190565b5f82601f830112612429575f80fd5b8135602061243e612439836123f7565b6123c6565b8083825260208201915060208460051b87010193508684111561245f575f80fd5b602086015b8481101561247b5780358352918301918301612464565b509695505050505050565b5f8060408385031215612497575f80fd5b823567ffffffffffffffff808211156124ae575f80fd5b818501915085601f8301126124c1575f80fd5b813560206124d1612439836123f7565b82815260059290921b840181019181810190898411156124ef575f80fd5b948201945b838610156125145761250586612251565b825294820194908201906124f4565b96505086013592505080821115612529575f80fd5b506125368582860161241a565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b5f805f606084860312156125b1575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108a3576108a36125ca565b5f8261260f57634e487b7160e01b5f52601260045260245ffd5b500490565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f60208284031215612654575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156108a3576108a36125ca565b818103818111156108a3576108a36125ca565b60ff81811683821601908111156108a3576108a36125ca565b5f82516127058184602087016121fd565b9190910192915050565b5f6020828403121561271f575f80fd5b815161238381612325565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561277a5784516001600160a01b031683529383019391830191600101612755565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9e1e71cedce8a3148c1f55f0fb426338babb14fdf0e7862100f53bc0a9511e264736f6c63430008160033
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.