Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 TX
Holders
444
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TxWorx
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** https://txworx.com https://x.com/txworx https://t.me/txworx **/ // 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 TxWorx is Ownable { string private constant _name = unicode"TxWorx"; string private constant _symbol = unicode"TX"; uint256 private constant _totalSupply = 100_000_000 * 1e9; uint256 public maxTransactionAmount = 1_000_000 * 1e9; uint256 public maxWallet = 1_000_000 * 1e9; uint256 public swapTokensAtAmount = 200_000 * 1e9; address private revWallet = 0x93754d7edf28C88ee8112bEA1F06b45129a9a5a2; address private treasuryWallet = 0xEfF8884A5529B16f5A38956B606C7698142bD88a; address private teamWallet = 0x4Fd77Cf09094a017396e83ABD01F185a4Bea05AA; address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; uint16 public buyTotalFees = 200; uint16 public sellTotalFees = 500; uint8 public revFee = 50; uint8 public treasuryFee = 25; uint8 public teamFee = 25; 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 teamETH, 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; setExcludedFromFees(owner(), true); setExcludedFromFees(address(this), true); setExcludedFromFees(address(0xdead), true); setExcludedFromFees(teamWallet, true); setExcludedFromFees(revWallet, true); setExcludedFromFees(treasuryWallet, true); setExcludedFromMaxTransaction(owner(), true); setExcludedFromMaxTransaction(address(uniswapV2Router), true); setExcludedFromMaxTransaction(address(this), true); setExcludedFromMaxTransaction(address(0xdead), true); setExcludedFromMaxTransaction(address(uniswapV2Pair), true); setExcludedFromMaxTransaction(teamWallet, true); setExcludedFromMaxTransaction(revWallet, true); setExcludedFromMaxTransaction(treasuryWallet, true); _balances[msg.sender] = 3_000_000 * 1e9; emit Transfer(address(0), msg.sender, _balances[msg.sender]); _balances[treasuryWallet] = 7_000_000 * 1e9; emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]); _balances[address(this)] = 90_000_000 * 1e9; 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 9; } 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) / 1000; } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = (amount * buyTotalFees) / 1000; } 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, uint8 _teamFee) external onlyOwner { revFee = _RevFee; treasuryFee = _TreasuryFee; teamFee = _teamFee; require((revFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%"); } function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner { require(_buyTotalFees <= 900); require(_sellTotalFees <= 900); 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 addLP() external payable onlyOwner { require(!launched, "Already launched"); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), _balances[address(this)], 0, 0, teamWallet, block.timestamp ); launched = true; } 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) / 1e9, "Cannot set max transaction lower than 0.1%"); maxTransactionAmount = newMaxTx * (10**9); } function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner { require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e9, "Cannot set max wallet lower than 0.1%"); maxWallet = newMaxWallet * (10**9); } 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); // Use safeTransfer } 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 ethForTeam = (ethBalance * teamFee) / 100; uint256 ethForTreasury = ethBalance - ethForRev - ethForTeam; (success, ) = address(teamWallet).call{value: ethForTeam}(""); (success, ) = address(treasuryWallet).call{value: ethForTreasury}(""); (success, ) = address(revWallet).call{value: ethForRev}(""); emit SwapAndLiquify(swapThreshold, ethForTeam, 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":"teamETH","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":"addLP","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":"uint16","name":"","type":"uint16"}],"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":"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":"uint16","name":"","type":"uint16"}],"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"},{"internalType":"uint8","name":"_teamFee","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":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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
60a060405266038d7ea4c68000600181905560025565b5e620f48000600355600480546001600160a01b03199081167393754d7edf28c88ee8112bea1f06b45129a9a5a2179091556005805490911673eff8884a5529b16f5a38956b606c7698142bd88a179055600680547c010019193201f400c84fd77cf09094a017396e83abd01f185a4bea05aa600161ff0160d81b0319909116179055348015620000a4575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000105573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012b91906200063e565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af11580156200018b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b191906200063e565b6001600160a01b031660808190525f908152600b60205260409020805460ff19166001179055620001f5620001ed5f546001600160a01b031690565b60016200040d565b620002023060016200040d565b6200021161dead60016200040d565b6006546200022a906001600160a01b031660016200040d565b60045462000243906001600160a01b031660016200040d565b6005546200025c906001600160a01b031660016200040d565b6200027a620002725f546001600160a01b031690565b600162000494565b6200029b737a250d5630b4cf539739df2c5dacb4c659f2488d600162000494565b620002a830600162000494565b620002b761dead600162000494565b608051620002c790600162000494565b600654620002e0906001600160a01b0316600162000494565b600454620002f9906001600160a01b0316600162000494565b60055462000312906001600160a01b0316600162000494565b335f818152600760209081526040808320660aa87bee5380009081905590519081525f8051602062002f62833981519152910160405180910390a3600580546001600160a01b039081165f908152600760205260408082206618de76816d80009055925490911680825282822054925190925f8051602062002f6283398151915291620003a191815260200190565b60405180910390a3305f81815260076020908152604080832067013fbe85edc900009081905590519081525f8051602062002f62833981519152910160405180910390a36200040730737a250d5630b4cf539739df2c5dacb4c659f2488d5f1962000517565b6200066d565b33620004205f546001600160a01b031690565b6001600160a01b0316146200046a5760405162461bcd60e51b815260206004820181905260248201525f8051602062002f4283398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33620004a75f546001600160a01b031690565b6001600160a01b031614620004ed5760405162461bcd60e51b815260206004820181905260248201525f8051602062002f42833981519152604482015260640162000461565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b0383166200057b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000461565b6001600160a01b038216620005de5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000461565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f602082840312156200064f575f80fd5b81516001600160a01b038116811462000666575f80fd5b9392505050565b6080516128b56200068d5f395f81816103bd0152610f8201526128b55ff3fe60806040526004361061022b575f3560e01c8063751039fc11610129578063bc37e1a3116100a8578063d85ba0631161006d578063d85ba063146106dd578063dd62ed3e146106fe578063e2f4560514610742578063e710794714610757578063f8b45b0514610776575f80fd5b8063bc37e1a314610661578063c8c8ebe414610669578063cc32d1761461067e578063d201b01e1461069e578063d7c94efd146106bd575f80fd5b806395d89b41116100ee57806395d89b41146105bb5780639a7a23d6146105e5578063a9059cbb14610604578063adfa29e514610623578063bc205ad314610642575f80fd5b8063751039fc146105165780637cb332bb1461052a578063809d458d1461054957806385ecafd7146105685780638da5cb5b1461059f575f80fd5b806349bd5a5e116101b557806366650dae1161017a57806366650dae1461045c5780636a486a8e1461047b57806370a08231146104af578063715018a6146104e357806374010ece146104f7575f80fd5b806349bd5a5e146103ac5780634a62bb65146103df5780634fcd2446146103ff578063590ffdce1461041e5780636402511e1461043d575f80fd5b806321d37e39116101fb57806321d37e391461030857806323b872dd1461033a57806327a14fc214610359578063313ce5671461037a5780633c090c461461038d575f80fd5b806306fdde0314610236578063095ea7b3146102765780631694505e146102a557806318160ddd146102e4575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b506040805180820190915260068152650a8f0aedee4f60d31b60208201525b60405161026d91906122db565b60405180910390f35b348015610281575f80fd5b50610295610290366004612328565b61078b565b604051901515815260200161026d565b3480156102b0575f80fd5b506102cc737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161026d565b3480156102ef575f80fd5b5067016345785d8a00005b60405190815260200161026d565b348015610313575f80fd5b5060065461032890600160c01b900460ff1681565b60405160ff909116815260200161026d565b348015610345575f80fd5b50610295610354366004612350565b6107a1565b348015610364575f80fd5b50610378610373366004612389565b610855565b005b348015610385575f80fd5b506009610328565b348015610398575f80fd5b506103786103a73660046123b0565b61092d565b3480156103b7575f80fd5b506102cc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ea575f80fd5b5060065461029590600160e01b900460ff1681565b34801561040a575f80fd5b506103786104193660046123f0565b610a35565b348015610429575f80fd5b50610378610438366004612431565b610ac0565b348015610448575f80fd5b50610378610457366004612389565b610b22565b348015610467575f80fd5b50610378610476366004612431565b610c79565b348015610486575f80fd5b5060065461049c90600160b01b900461ffff1681565b60405161ffff909116815260200161026d565b3480156104ba575f80fd5b506102fa6104c9366004612466565b6001600160a01b03165f9081526007602052604090205490565b3480156104ee575f80fd5b50610378610cdb565b348015610502575f80fd5b50610378610511366004612389565b610d24565b348015610521575f80fd5b50610378610e01565b348015610535575f80fd5b50610378610544366004612466565b610e48565b348015610554575f80fd5b50610378610563366004612466565b610ec8565b348015610573575f80fd5b50610295610582366004612466565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105aa575f80fd5b505f546001600160a01b03166102cc565b3480156105c6575f80fd5b506040805180820190915260028152610a8b60f31b6020820152610260565b3480156105f0575f80fd5b506103786105ff366004612431565b610f48565b34801561060f575f80fd5b5061029561061e366004612328565b61102b565b34801561062e575f80fd5b5061037861063d366004612466565b611037565b34801561064d575f80fd5b5061037861065c366004612486565b6110b7565b610378611164565b348015610674575f80fd5b506102fa60015481565b348015610689575f80fd5b5060065461032890600160c81b900460ff1681565b3480156106a9575f80fd5b506103786106b8366004612466565b6112b2565b3480156106c8575f80fd5b5060065461032890600160d01b900460ff1681565b3480156106e8575f80fd5b5060065461049c90600160a01b900461ffff1681565b348015610709575f80fd5b506102fa610718366004612486565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561074d575f80fd5b506102fa60035481565b348015610762575f80fd5b5061037861077136600461257e565b6113c9565b348015610781575f80fd5b506102fa60025481565b5f610797338484611603565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461083f57828110156108325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61083f8533858403611603565b61084a858585611726565b506001949350505050565b336108675f546001600160a01b031690565b6001600160a01b03161461088d5760405162461bcd60e51b815260040161082990612638565b633b9aca006103e86108a867016345785d8a00006001612681565b6108b29190612698565b6108bc9190612698565b8110156109195760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b6064820152608401610829565b61092781633b9aca00612681565b60025550565b3361093f5f546001600160a01b031690565b6001600160a01b0316146109655760405162461bcd60e51b815260040161082990612638565b6006805461ffff60c01b1916600160c01b60ff868116820260ff60c81b191692909217600160c81b86841681029190911760ff60d01b1916600160d01b8685168102919091179485905584048316936109c6939181048216929004166126b7565b6109d091906126b7565b60ff16606414610a305760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b6064820152608401610829565b505050565b33610a475f546001600160a01b031690565b6001600160a01b031614610a6d5760405162461bcd60e51b815260040161082990612638565b6103848260ff161115610a7e575f80fd5b6103848160ff161115610a8f575f80fd5b6006805463ffffffff60a01b191660ff938416600160a01b0261ffff60b01b19161791909216600160b01b02179055565b33610ad25f546001600160a01b031690565b6001600160a01b031614610af85760405162461bcd60e51b815260040161082990612638565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610b345f546001600160a01b031690565b6001600160a01b031614610b5a5760405162461bcd60e51b815260040161082990612638565b620186a0610b7167016345785d8a00006001612681565b610b7b9190612698565b811015610be85760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b6064820152608401610829565b6103e8610bfe67016345785d8a00006005612681565b610c089190612698565b811115610c745760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b6064820152608401610829565b600355565b33610c8b5f546001600160a01b031690565b6001600160a01b031614610cb15760405162461bcd60e51b815260040161082990612638565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610ced5f546001600160a01b031690565b6001600160a01b031614610d135760405162461bcd60e51b815260040161082990612638565b5f80546001600160a01b0319169055565b33610d365f546001600160a01b031690565b6001600160a01b031614610d5c5760405162461bcd60e51b815260040161082990612638565b633b9aca006103e8610d7767016345785d8a00006001612681565b610d819190612698565b610d8b9190612698565b811015610ded5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b6064820152608401610829565b610dfb81633b9aca00612681565b60015550565b33610e135f546001600160a01b031690565b6001600160a01b031614610e395760405162461bcd60e51b815260040161082990612638565b6006805460ff60e01b19169055565b33610e5a5f546001600160a01b031690565b6001600160a01b031614610e805760405162461bcd60e51b815260040161082990612638565b6001600160a01b038116610ea65760405162461bcd60e51b8152600401610829906126d0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b33610eda5f546001600160a01b031690565b6001600160a01b031614610f005760405162461bcd60e51b815260040161082990612638565b6001600160a01b038116610f265760405162461bcd60e51b8152600401610829906126d0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b33610f5a5f546001600160a01b031690565b6001600160a01b031614610f805760405162461bcd60e51b815260040161082990612638565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110015760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610829565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f610797338484611726565b336110495f546001600160a01b031690565b6001600160a01b03161461106f5760405162461bcd60e51b815260040161082990612638565b6001600160a01b0381166110955760405162461bcd60e51b8152600401610829906126d0565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336110c95f546001600160a01b031690565b6001600160a01b0316146110ef5760405162461bcd60e51b815260040161082990612638565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611133573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111579190612700565b9050610a30838383611ea3565b336111765f546001600160a01b031690565b6001600160a01b03161461119c5760405162461bcd60e51b815260040161082990612638565b600654600160e81b900460ff16156111e95760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610829565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015611275573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061129a9190612717565b50506006805460ff60e81b1916600160e81b17905550565b336112c45f546001600160a01b031690565b6001600160a01b0316146112ea5760405162461bcd60e51b815260040161082990612638565b6001600160a01b0381166113325760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610829565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f811461137b576040519150601f19603f3d011682016040523d82523d5f602084013e611380565b606091505b50509050806113c55760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b6044820152606401610829565b5050565b336113db5f546001600160a01b031690565b6001600160a01b0316146114015760405162461bcd60e51b815260040161082990612638565b600654600160e81b900460ff161561144e5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610829565b5f5b8251811015610a305781818151811061146b5761146b612742565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156114b55760405162461bcd60e51b815260040161082990612756565b8181815181106114c7576114c7612742565b602002602001015160075f8584815181106114e4576114e4612742565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254611519919061279c565b9250508190555081818151811061153257611532612742565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f82825461156b91906127af565b9250508190555082818151811061158457611584612742565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106115d2576115d2612742565b60200260200101516040516115e991815260200190565b60405180910390a3806115fb816127c2565b915050611450565b6001600160a01b0383166116655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610829565b6001600160a01b0382166116c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610829565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661178a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610829565b6001600160a01b0382166117ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610829565b5f811161184d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610829565b600654600160e81b900460ff161580156118a157505f546001600160a01b0384811691161480159061188857506001600160a01b0383163014155b80156118a157505f546001600160a01b03838116911614155b156118e45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610829565b600654600160e01b900460ff1615611ba5575f546001600160a01b0384811691161480159061192057505f546001600160a01b03838116911614155b801561193457506001600160a01b03821615155b801561194b57506001600160a01b03821661dead14155b80156119615750600654600160d81b900460ff16155b15611ba5576001600160a01b0383165f908152600b602052604090205460ff1680156119a557506001600160a01b0382165f908152600a602052604090205460ff16155b15611a7857600154811115611a0a5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b6064820152608401610829565b6002546001600160a01b0383165f90815260076020526040902054611a2f908361279c565b1115611a735760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610829565b611ba5565b6001600160a01b0382165f908152600b602052604090205460ff168015611ab757506001600160a01b0383165f908152600a602052604090205460ff16155b15611b1d57600154811115611a735760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b6064820152608401610829565b6001600160a01b0382165f908152600a602052604090205460ff16611ba5576002546001600160a01b0383165f90815260076020526040902054611b61908361279c565b1115611ba55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610829565b600354305f90815260076020526040902054108015908190611bd15750600654600160d81b900460ff16155b8015611bf557506001600160a01b0384165f908152600b602052604090205460ff16155b8015611c1957506001600160a01b0384165f9081526009602052604090205460ff16155b8015611c3d57506001600160a01b0383165f9081526009602052604090205460ff16155b15611c6b576006805460ff60d81b1916600160d81b179055611c5d611fca565b6006805460ff60d81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160d81b909204821615911680611cb757506001600160a01b0384165f9081526009602052604090205460ff165b15611cbf57505f5b6001600160a01b0385165f9081526007602052604090205483811015611cf75760405162461bcd60e51b815260040161082990612756565b5f8215611e31576001600160a01b0386165f908152600b602052604090205460ff168015611d315750600654600160b01b900461ffff1615155b15611d63576006546103e890611d5290600160b01b900461ffff1687612681565b611d5c9190612698565b9050611dc4565b6001600160a01b0387165f908152600b602052604090205460ff168015611d965750600654600160a01b900461ffff1615155b15611dc4576006546103e890611db790600160a01b900461ffff1687612681565b611dc19190612698565b90505b8015611e31576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e929089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611efe91906127da565b5f604051808303815f865af19150503d805f8114611f37576040519150601f19603f3d011682016040523d82523d5f602084013e611f3c565b606091505b5091509150818015611f66575080511580611f66575080806020019051810190611f6691906127f5565b611fc35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b6064820152608401610829565b5050505050565b6003545f611fd9826014612681565b305f908152600760205260409020541115611fff57600354611ffc906014612681565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061203257612032612742565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061207a5761207a612742565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906120d19086905f90869030904290600401612810565b5f604051808303815f87803b1580156120e8575f80fd5b505af11580156120fa573d5f803e3d5ffd5b5047925050811590506122b3576006545f9060649061212390600160c01b900460ff1684612681565b61212d9190612698565b6006549091505f9060649061214c90600160d01b900460ff1685612681565b6121569190612698565b90505f8161216484866127af565b61216e91906127af565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146121b9576040519150601f19603f3d011682016040523d82523d5f602084013e6121be565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f811461220b576040519150601f19603f3d011682016040523d82523d5f602084013e612210565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f811461225d576040519150601f19603f3d011682016040523d82523d5f602084013e612262565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156122d35781810151838201526020016122bb565b50505f910152565b602081525f82518060208401526122f98160408501602087016122b9565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612323575f80fd5b919050565b5f8060408385031215612339575f80fd5b6123428361230d565b946020939093013593505050565b5f805f60608486031215612362575f80fd5b61236b8461230d565b92506123796020850161230d565b9150604084013590509250925092565b5f60208284031215612399575f80fd5b5035919050565b803560ff81168114612323575f80fd5b5f805f606084860312156123c2575f80fd5b6123cb846123a0565b92506123d9602085016123a0565b91506123e7604085016123a0565b90509250925092565b5f8060408385031215612401575f80fd5b61240a836123a0565b9150612418602084016123a0565b90509250929050565b801515811461242e575f80fd5b50565b5f8060408385031215612442575f80fd5b61244b8361230d565b9150602083013561245b81612421565b809150509250929050565b5f60208284031215612476575f80fd5b61247f8261230d565b9392505050565b5f8060408385031215612497575f80fd5b6124a08361230d565b91506124186020840161230d565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156124eb576124eb6124ae565b604052919050565b5f67ffffffffffffffff82111561250c5761250c6124ae565b5060051b60200190565b5f82601f830112612525575f80fd5b8135602061253a612535836124f3565b6124c2565b82815260059290921b84018101918181019086841115612558575f80fd5b8286015b84811015612573578035835291830191830161255c565b509695505050505050565b5f806040838503121561258f575f80fd5b823567ffffffffffffffff808211156125a6575f80fd5b818501915085601f8301126125b9575f80fd5b813560206125c9612535836124f3565b82815260059290921b840181019181810190898411156125e7575f80fd5b948201945b8386101561260c576125fd8661230d565b825294820194908201906125ec565b96505086013592505080821115612621575f80fd5b5061262e85828601612516565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761079b5761079b61266d565b5f826126b257634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561079b5761079b61266d565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f60208284031215612710575f80fd5b5051919050565b5f805f60608486031215612729575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561079b5761079b61266d565b8181038181111561079b5761079b61266d565b5f600182016127d3576127d361266d565b5060010190565b5f82516127eb8184602087016122b9565b9190910192915050565b5f60208284031215612805575f80fd5b815161247f81612421565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561285e5784516001600160a01b031683529383019391830191600101612839565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209d7efe8925e8262ed085794774ddda0ecfe78f95b9e60a366dc7b0923b97af8a64736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x60806040526004361061022b575f3560e01c8063751039fc11610129578063bc37e1a3116100a8578063d85ba0631161006d578063d85ba063146106dd578063dd62ed3e146106fe578063e2f4560514610742578063e710794714610757578063f8b45b0514610776575f80fd5b8063bc37e1a314610661578063c8c8ebe414610669578063cc32d1761461067e578063d201b01e1461069e578063d7c94efd146106bd575f80fd5b806395d89b41116100ee57806395d89b41146105bb5780639a7a23d6146105e5578063a9059cbb14610604578063adfa29e514610623578063bc205ad314610642575f80fd5b8063751039fc146105165780637cb332bb1461052a578063809d458d1461054957806385ecafd7146105685780638da5cb5b1461059f575f80fd5b806349bd5a5e116101b557806366650dae1161017a57806366650dae1461045c5780636a486a8e1461047b57806370a08231146104af578063715018a6146104e357806374010ece146104f7575f80fd5b806349bd5a5e146103ac5780634a62bb65146103df5780634fcd2446146103ff578063590ffdce1461041e5780636402511e1461043d575f80fd5b806321d37e39116101fb57806321d37e391461030857806323b872dd1461033a57806327a14fc214610359578063313ce5671461037a5780633c090c461461038d575f80fd5b806306fdde0314610236578063095ea7b3146102765780631694505e146102a557806318160ddd146102e4575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b506040805180820190915260068152650a8f0aedee4f60d31b60208201525b60405161026d91906122db565b60405180910390f35b348015610281575f80fd5b50610295610290366004612328565b61078b565b604051901515815260200161026d565b3480156102b0575f80fd5b506102cc737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161026d565b3480156102ef575f80fd5b5067016345785d8a00005b60405190815260200161026d565b348015610313575f80fd5b5060065461032890600160c01b900460ff1681565b60405160ff909116815260200161026d565b348015610345575f80fd5b50610295610354366004612350565b6107a1565b348015610364575f80fd5b50610378610373366004612389565b610855565b005b348015610385575f80fd5b506009610328565b348015610398575f80fd5b506103786103a73660046123b0565b61092d565b3480156103b7575f80fd5b506102cc7f0000000000000000000000007f095edd7745fa3c471736dae4874211dea9ed3581565b3480156103ea575f80fd5b5060065461029590600160e01b900460ff1681565b34801561040a575f80fd5b506103786104193660046123f0565b610a35565b348015610429575f80fd5b50610378610438366004612431565b610ac0565b348015610448575f80fd5b50610378610457366004612389565b610b22565b348015610467575f80fd5b50610378610476366004612431565b610c79565b348015610486575f80fd5b5060065461049c90600160b01b900461ffff1681565b60405161ffff909116815260200161026d565b3480156104ba575f80fd5b506102fa6104c9366004612466565b6001600160a01b03165f9081526007602052604090205490565b3480156104ee575f80fd5b50610378610cdb565b348015610502575f80fd5b50610378610511366004612389565b610d24565b348015610521575f80fd5b50610378610e01565b348015610535575f80fd5b50610378610544366004612466565b610e48565b348015610554575f80fd5b50610378610563366004612466565b610ec8565b348015610573575f80fd5b50610295610582366004612466565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105aa575f80fd5b505f546001600160a01b03166102cc565b3480156105c6575f80fd5b506040805180820190915260028152610a8b60f31b6020820152610260565b3480156105f0575f80fd5b506103786105ff366004612431565b610f48565b34801561060f575f80fd5b5061029561061e366004612328565b61102b565b34801561062e575f80fd5b5061037861063d366004612466565b611037565b34801561064d575f80fd5b5061037861065c366004612486565b6110b7565b610378611164565b348015610674575f80fd5b506102fa60015481565b348015610689575f80fd5b5060065461032890600160c81b900460ff1681565b3480156106a9575f80fd5b506103786106b8366004612466565b6112b2565b3480156106c8575f80fd5b5060065461032890600160d01b900460ff1681565b3480156106e8575f80fd5b5060065461049c90600160a01b900461ffff1681565b348015610709575f80fd5b506102fa610718366004612486565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561074d575f80fd5b506102fa60035481565b348015610762575f80fd5b5061037861077136600461257e565b6113c9565b348015610781575f80fd5b506102fa60025481565b5f610797338484611603565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461083f57828110156108325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61083f8533858403611603565b61084a858585611726565b506001949350505050565b336108675f546001600160a01b031690565b6001600160a01b03161461088d5760405162461bcd60e51b815260040161082990612638565b633b9aca006103e86108a867016345785d8a00006001612681565b6108b29190612698565b6108bc9190612698565b8110156109195760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b6064820152608401610829565b61092781633b9aca00612681565b60025550565b3361093f5f546001600160a01b031690565b6001600160a01b0316146109655760405162461bcd60e51b815260040161082990612638565b6006805461ffff60c01b1916600160c01b60ff868116820260ff60c81b191692909217600160c81b86841681029190911760ff60d01b1916600160d01b8685168102919091179485905584048316936109c6939181048216929004166126b7565b6109d091906126b7565b60ff16606414610a305760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b6064820152608401610829565b505050565b33610a475f546001600160a01b031690565b6001600160a01b031614610a6d5760405162461bcd60e51b815260040161082990612638565b6103848260ff161115610a7e575f80fd5b6103848160ff161115610a8f575f80fd5b6006805463ffffffff60a01b191660ff938416600160a01b0261ffff60b01b19161791909216600160b01b02179055565b33610ad25f546001600160a01b031690565b6001600160a01b031614610af85760405162461bcd60e51b815260040161082990612638565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610b345f546001600160a01b031690565b6001600160a01b031614610b5a5760405162461bcd60e51b815260040161082990612638565b620186a0610b7167016345785d8a00006001612681565b610b7b9190612698565b811015610be85760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b6064820152608401610829565b6103e8610bfe67016345785d8a00006005612681565b610c089190612698565b811115610c745760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b6064820152608401610829565b600355565b33610c8b5f546001600160a01b031690565b6001600160a01b031614610cb15760405162461bcd60e51b815260040161082990612638565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610ced5f546001600160a01b031690565b6001600160a01b031614610d135760405162461bcd60e51b815260040161082990612638565b5f80546001600160a01b0319169055565b33610d365f546001600160a01b031690565b6001600160a01b031614610d5c5760405162461bcd60e51b815260040161082990612638565b633b9aca006103e8610d7767016345785d8a00006001612681565b610d819190612698565b610d8b9190612698565b811015610ded5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b6064820152608401610829565b610dfb81633b9aca00612681565b60015550565b33610e135f546001600160a01b031690565b6001600160a01b031614610e395760405162461bcd60e51b815260040161082990612638565b6006805460ff60e01b19169055565b33610e5a5f546001600160a01b031690565b6001600160a01b031614610e805760405162461bcd60e51b815260040161082990612638565b6001600160a01b038116610ea65760405162461bcd60e51b8152600401610829906126d0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b33610eda5f546001600160a01b031690565b6001600160a01b031614610f005760405162461bcd60e51b815260040161082990612638565b6001600160a01b038116610f265760405162461bcd60e51b8152600401610829906126d0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b33610f5a5f546001600160a01b031690565b6001600160a01b031614610f805760405162461bcd60e51b815260040161082990612638565b7f0000000000000000000000007f095edd7745fa3c471736dae4874211dea9ed356001600160a01b0316826001600160a01b0316036110015760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610829565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f610797338484611726565b336110495f546001600160a01b031690565b6001600160a01b03161461106f5760405162461bcd60e51b815260040161082990612638565b6001600160a01b0381166110955760405162461bcd60e51b8152600401610829906126d0565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336110c95f546001600160a01b031690565b6001600160a01b0316146110ef5760405162461bcd60e51b815260040161082990612638565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611133573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111579190612700565b9050610a30838383611ea3565b336111765f546001600160a01b031690565b6001600160a01b03161461119c5760405162461bcd60e51b815260040161082990612638565b600654600160e81b900460ff16156111e95760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610829565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015611275573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061129a9190612717565b50506006805460ff60e81b1916600160e81b17905550565b336112c45f546001600160a01b031690565b6001600160a01b0316146112ea5760405162461bcd60e51b815260040161082990612638565b6001600160a01b0381166113325760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610829565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f811461137b576040519150601f19603f3d011682016040523d82523d5f602084013e611380565b606091505b50509050806113c55760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b6044820152606401610829565b5050565b336113db5f546001600160a01b031690565b6001600160a01b0316146114015760405162461bcd60e51b815260040161082990612638565b600654600160e81b900460ff161561144e5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610829565b5f5b8251811015610a305781818151811061146b5761146b612742565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156114b55760405162461bcd60e51b815260040161082990612756565b8181815181106114c7576114c7612742565b602002602001015160075f8584815181106114e4576114e4612742565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254611519919061279c565b9250508190555081818151811061153257611532612742565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f82825461156b91906127af565b9250508190555082818151811061158457611584612742565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106115d2576115d2612742565b60200260200101516040516115e991815260200190565b60405180910390a3806115fb816127c2565b915050611450565b6001600160a01b0383166116655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610829565b6001600160a01b0382166116c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610829565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661178a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610829565b6001600160a01b0382166117ec5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610829565b5f811161184d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610829565b600654600160e81b900460ff161580156118a157505f546001600160a01b0384811691161480159061188857506001600160a01b0383163014155b80156118a157505f546001600160a01b03838116911614155b156118e45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610829565b600654600160e01b900460ff1615611ba5575f546001600160a01b0384811691161480159061192057505f546001600160a01b03838116911614155b801561193457506001600160a01b03821615155b801561194b57506001600160a01b03821661dead14155b80156119615750600654600160d81b900460ff16155b15611ba5576001600160a01b0383165f908152600b602052604090205460ff1680156119a557506001600160a01b0382165f908152600a602052604090205460ff16155b15611a7857600154811115611a0a5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b6064820152608401610829565b6002546001600160a01b0383165f90815260076020526040902054611a2f908361279c565b1115611a735760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610829565b611ba5565b6001600160a01b0382165f908152600b602052604090205460ff168015611ab757506001600160a01b0383165f908152600a602052604090205460ff16155b15611b1d57600154811115611a735760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b6064820152608401610829565b6001600160a01b0382165f908152600a602052604090205460ff16611ba5576002546001600160a01b0383165f90815260076020526040902054611b61908361279c565b1115611ba55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610829565b600354305f90815260076020526040902054108015908190611bd15750600654600160d81b900460ff16155b8015611bf557506001600160a01b0384165f908152600b602052604090205460ff16155b8015611c1957506001600160a01b0384165f9081526009602052604090205460ff16155b8015611c3d57506001600160a01b0383165f9081526009602052604090205460ff16155b15611c6b576006805460ff60d81b1916600160d81b179055611c5d611fca565b6006805460ff60d81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160d81b909204821615911680611cb757506001600160a01b0384165f9081526009602052604090205460ff165b15611cbf57505f5b6001600160a01b0385165f9081526007602052604090205483811015611cf75760405162461bcd60e51b815260040161082990612756565b5f8215611e31576001600160a01b0386165f908152600b602052604090205460ff168015611d315750600654600160b01b900461ffff1615155b15611d63576006546103e890611d5290600160b01b900461ffff1687612681565b611d5c9190612698565b9050611dc4565b6001600160a01b0387165f908152600b602052604090205460ff168015611d965750600654600160a01b900461ffff1615155b15611dc4576006546103e890611db790600160a01b900461ffff1687612681565b611dc19190612698565b90505b8015611e31576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e929089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611efe91906127da565b5f604051808303815f865af19150503d805f8114611f37576040519150601f19603f3d011682016040523d82523d5f602084013e611f3c565b606091505b5091509150818015611f66575080511580611f66575080806020019051810190611f6691906127f5565b611fc35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b6064820152608401610829565b5050505050565b6003545f611fd9826014612681565b305f908152600760205260409020541115611fff57600354611ffc906014612681565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061203257612032612742565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061207a5761207a612742565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906120d19086905f90869030904290600401612810565b5f604051808303815f87803b1580156120e8575f80fd5b505af11580156120fa573d5f803e3d5ffd5b5047925050811590506122b3576006545f9060649061212390600160c01b900460ff1684612681565b61212d9190612698565b6006549091505f9060649061214c90600160d01b900460ff1685612681565b6121569190612698565b90505f8161216484866127af565b61216e91906127af565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146121b9576040519150601f19603f3d011682016040523d82523d5f602084013e6121be565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f811461220b576040519150601f19603f3d011682016040523d82523d5f602084013e612210565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f811461225d576040519150601f19603f3d011682016040523d82523d5f602084013e612262565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156122d35781810151838201526020016122bb565b50505f910152565b602081525f82518060208401526122f98160408501602087016122b9565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612323575f80fd5b919050565b5f8060408385031215612339575f80fd5b6123428361230d565b946020939093013593505050565b5f805f60608486031215612362575f80fd5b61236b8461230d565b92506123796020850161230d565b9150604084013590509250925092565b5f60208284031215612399575f80fd5b5035919050565b803560ff81168114612323575f80fd5b5f805f606084860312156123c2575f80fd5b6123cb846123a0565b92506123d9602085016123a0565b91506123e7604085016123a0565b90509250925092565b5f8060408385031215612401575f80fd5b61240a836123a0565b9150612418602084016123a0565b90509250929050565b801515811461242e575f80fd5b50565b5f8060408385031215612442575f80fd5b61244b8361230d565b9150602083013561245b81612421565b809150509250929050565b5f60208284031215612476575f80fd5b61247f8261230d565b9392505050565b5f8060408385031215612497575f80fd5b6124a08361230d565b91506124186020840161230d565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156124eb576124eb6124ae565b604052919050565b5f67ffffffffffffffff82111561250c5761250c6124ae565b5060051b60200190565b5f82601f830112612525575f80fd5b8135602061253a612535836124f3565b6124c2565b82815260059290921b84018101918181019086841115612558575f80fd5b8286015b84811015612573578035835291830191830161255c565b509695505050505050565b5f806040838503121561258f575f80fd5b823567ffffffffffffffff808211156125a6575f80fd5b818501915085601f8301126125b9575f80fd5b813560206125c9612535836124f3565b82815260059290921b840181019181810190898411156125e7575f80fd5b948201945b8386101561260c576125fd8661230d565b825294820194908201906125ec565b96505086013592505080821115612621575f80fd5b5061262e85828601612516565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761079b5761079b61266d565b5f826126b257634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561079b5761079b61266d565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f60208284031215612710575f80fd5b5051919050565b5f805f60608486031215612729575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561079b5761079b61266d565b8181038181111561079b5761079b61266d565b5f600182016127d3576127d361266d565b5060010190565b5f82516127eb8184602087016122b9565b9190910192915050565b5f60208284031215612805575f80fd5b815161247f81612421565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561285e5784516001600160a01b031683529383019391830191600101612839565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209d7efe8925e8262ed085794774ddda0ecfe78f95b9e60a366dc7b0923b97af8a64736f6c63430008150033
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.