ERC-20
Overview
Max Total Supply
100,000,000 RIADA
Holders
168
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
199.53 RIADAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ProofNonReflectionTokenCutter
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: None pragma solidity = 0.8.17; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import "../libraries/Ownable.sol"; import "../libraries/Context.sol"; import "../libraries/ProofNonReflectionTokenFees.sol"; import "../interfaces/IFACTORY.sol"; import "../interfaces/IDividendDistributor.sol"; import "../interfaces/IUniswapV2Router02.sol"; import "../interfaces/IUniswapV2Factory.sol"; //import "hardhat/console.sol"; contract ProofNonReflectionTokenCutter is Context, IERC20, IERC20Metadata { //This token was created with PROOF, and audited by Solidity Finance — https://proofpatform.io/discover mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; address payable public proofBurnerAddress; address public proofAdmin; bool public restrictWhales = true; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) public isDividendExempt; uint256 public launchedAt; uint256 public proofFee = 2; uint256 public mainFee; uint256 public lpFee; uint256 public devFee; uint256 public mainFeeOnSell; uint256 public lpFeeOnSell; uint256 public devFeeOnSell; uint256 public totalFee; uint256 public totalFeeIfSelling; IUniswapV2Router02 public router; address public pair; address public factory; address public tokenOwner; address payable public devWallet; address payable public mainWallet; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public tradingStatus = true; mapping(address => bool) public bots; uint256 public _maxTxAmount; uint256 public _walletMax; uint256 public swapThreshold; constructor() { factory = msg.sender; } modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } modifier onlyProofAdmin() { require( proofAdmin == _msgSender(), "Ownable: caller is not the proofAdmin" ); _; } modifier onlyOwner() { require(tokenOwner == _msgSender(), "Ownable: caller is not the owner"); _; } modifier onlyFactory() { require(factory == _msgSender(), "Ownable: caller is not the factory"); _; } function setBasicData( string memory tokenName, string memory tokenSymbol, uint256 initialSupply, uint percentToLP, address owner, address dev, address main, address routerAddress, address initialProofAdmin, ProofNonReflectionTokenFees.allFees memory fees ) external onlyFactory { _name = tokenName; _symbol = tokenSymbol; _totalSupply = initialSupply; //Tx & Wallet Limits require (percentToLP >= 70, "low lp percent"); _maxTxAmount = (initialSupply * 5) / 1000; _walletMax = (initialSupply * 1) / 100; swapThreshold = (initialSupply * 5) / 4000; router = IUniswapV2Router02(routerAddress); pair = IUniswapV2Factory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[address(this)] = true; isFeeExempt[factory] = true; isFeeExempt[owner] = true; isTxLimitExempt[owner] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[factory] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[ZERO] = true; //Fees lpFee = fees.lpFee; lpFeeOnSell = fees.lpFeeOnSell; devFee = fees.devFee; devFeeOnSell = fees.devFeeOnSell; mainFee = fees.mainFee; mainFeeOnSell = fees.mainFeeOnSell; totalFee = devFee + lpFee + mainFee + proofFee; totalFeeIfSelling = devFeeOnSell + lpFeeOnSell + mainFeeOnSell + proofFee; require(totalFee <= 12, "Too high fee"); require(totalFeeIfSelling <= 17, "Too high sell fee"); tokenOwner = owner; devWallet = payable(dev); mainWallet = payable(main); proofAdmin = initialProofAdmin; //Initial supply uint256 forLP = (initialSupply * percentToLP) / 100; //95% uint256 forOwner = initialSupply - forLP; //5% _balances[msg.sender] += forLP; _balances[owner] += forOwner; emit Transfer(address(0), msg.sender, forLP); emit Transfer(address(0), owner, forOwner); } //proofAdmin functions function updateProofAdmin(address newAdmin) external virtual onlyProofAdmin { proofAdmin = newAdmin; } function updateProofBurnerAddress(address newproofBurnerAddress) external onlyProofAdmin { proofBurnerAddress = payable(newproofBurnerAddress); } function setBots(address[] memory bots_) external onlyProofAdmin { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } //Factory functions function swapTradingStatus() external onlyFactory { tradingStatus = !tradingStatus; } function setLaunchedAt() external onlyFactory { require(launchedAt == 0, "already launched"); launchedAt = block.timestamp; } function cancelToken() external onlyFactory { isFeeExempt[address(router)] = true; isTxLimitExempt[address(router)] = true; isTxLimitExempt[tokenOwner] = true; tradingStatus = true; } //Owner functions function changeFees( uint256 initialMainFee, uint256 initialMainFeeOnSell, uint256 initialLpFee, uint256 initialLpFeeOnSell, uint256 initialDevFee, uint256 initialDevFeeOnSell ) external onlyOwner { mainFee = initialMainFee; lpFee = initialLpFee; devFee = initialDevFee; mainFeeOnSell = initialMainFeeOnSell; lpFeeOnSell = initialLpFeeOnSell; devFeeOnSell = initialDevFeeOnSell; totalFee = devFee + lpFee + proofFee + mainFee; totalFeeIfSelling = devFeeOnSell + lpFeeOnSell +proofFee + mainFeeOnSell; require(totalFee <= 12, "Too high fee"); require(totalFeeIfSelling <= 17, "Too high fee"); } function changeTxLimit(uint256 newLimit) external onlyOwner { require(launchedAt != 0, "!launched"); require(newLimit >= (_totalSupply * 5) / 1000, "Mmin 0.5% limit"); require(newLimit <= (_totalSupply * 3) / 100, "Max 3% limit"); _maxTxAmount = newLimit; } function changeWalletLimit(uint256 newLimit) external onlyOwner { require(launchedAt != 0, "!launched"); require(newLimit >= (_totalSupply * 5) / 1000, "Mmin 0.5% limit"); require(newLimit <= (_totalSupply * 3) / 100, "Max 3% limit"); _walletMax = newLimit; } function changeRestrictWhales(bool newValue) external onlyOwner { require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 24 hours, "too soon"); restrictWhales = newValue; } function changeIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner { require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 24 hours, "too soon"); isTxLimitExempt[holder] = exempt; } function reduceProofFee() external onlyOwner { require(proofFee == 2, "!already reduced"); require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 72 hours, "too soon"); proofFee = 1; totalFee = devFee + lpFee + proofFee + mainFee; totalFeeIfSelling = devFeeOnSell + lpFeeOnSell + proofFee + mainFeeOnSell; } function formatProofFee() external onlyProofAdmin { require (proofFee > 0, "already reduced"); require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 72 hours, "too soon"); totalFee -= proofFee; totalFeeIfSelling -= proofFee; proofFee = 0; } function setDevWallet(address payable newDevWallet) external onlyOwner { devWallet = payable(newDevWallet); } function setMainWallet(address payable newMainWallet) external onlyOwner { mainWallet = newMainWallet; } function setOwnerWallet(address payable newOwnerWallet) external onlyOwner { tokenOwner = newOwnerWallet; } function changeSwapBackSettings( bool enableSwapBack, uint256 newSwapBackLimit ) external onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function delBot(address notbot) external { address sender = _msgSender(); require (sender == proofAdmin || sender == tokenOwner, "Owanble: caller doesn't have permission"); bots[notbot] = false; } function getCirculatingSupply() external view returns (uint256) { return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO); } /** * @dev Returns the name of the token. */ function name() external view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() external view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() external view virtual override returns (uint8) { return 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() external view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) external virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) external virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) external virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, _allowances[owner][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = _allowances[owner][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal returns (bool) { require(tradingStatus, "Trading Closed"); require(!bots[sender] && !bots[recipient]); if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } require( amount <= _maxTxAmount || isTxLimitExempt[sender], "Max TX Amount" ); if (!isTxLimitExempt[recipient] && restrictWhales) { require( _balances[recipient] + amount <= _walletMax, "Max Wallet Amount" ); } if ( msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold ) { swapBack(); } _balances[sender] = _balances[sender] - amount; uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient] + finalAmount; // if (sender == pair && block.timestamp < launchedAt + 1 minutes) { // // 4-5 blocks // revert("Trading Closed"); // } emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "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); } /** * @dev Spend `amount` form the allowance of `owner` toward `spender`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount * feeApplicable / 100; _balances[address(this)] = _balances[address(this)] + feeAmount; emit Transfer(sender, address(this), feeAmount); return amount - feeAmount; } function swapBack() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify; uint256 devBalance; uint256 proofBalance; uint256 amountEthLiquidity; // Use sell ratios if buy tax too low if (totalFee <= 2) { amountToLiquify = tokensToLiquify * lpFeeOnSell / totalFeeIfSelling / 2; } else { amountToLiquify = tokensToLiquify * lpFee / totalFee / 2; } uint256 amountToSwap = tokensToLiquify - amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; // Use sell ratios if buy tax too low if (totalFee <= 2) { devBalance = amountETH * devFeeOnSell / totalFeeIfSelling; proofBalance = amountETH * proofFee / totalFeeIfSelling; amountEthLiquidity = amountETH * lpFeeOnSell / totalFeeIfSelling / 2; } else { devBalance = amountETH * devFee / totalFee; proofBalance = amountETH * proofFee / totalFee; amountEthLiquidity = amountETH * lpFee / totalFee / 2; } uint256 amountEthMain = amountETH - devBalance - proofBalance - amountEthLiquidity; if (amountETH > 0) { IFACTORY(factory).factoryRevenue{value: proofBalance}(); (bool sent,)=devWallet.call{value:devBalance}(""); require (sent, "ETH transfer failed"); (bool sent1,)=mainWallet.call{value:amountEthMain}(""); require (sent1, "ETH transfer failed"); } if (amountToLiquify > 0) { router.addLiquidityETH{value: amountEthLiquidity}( address(this), amountToLiquify, 0, 0, 0x000000000000000000000000000000000000dEaD, block.timestamp ); } } receive() external payable {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; import "../IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: None pragma solidity = 0.8.17; interface IDividendDistributor { function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; }
// SPDX-License-Identifier: None pragma solidity = 0.8.17; interface IFACTORY { function factoryRevenue() external payable; }
// SPDX-License-Identifier: None pragma solidity = 0.8.17; interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
// SPDX-License-Identifier: None pragma solidity = 0.8.17; interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); }
// SPDX-License-Identifier: None pragma solidity = 0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: None pragma solidity = 0.8.17; import "./Context.sol"; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: None pragma solidity = 0.8.17; library ProofNonReflectionTokenFees { struct allFees { uint256 mainFee; uint256 mainFeeOnSell; uint256 lpFee; uint256 lpFeeOnSell; uint256 devFee; uint256 devFeeOnSell; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"initialMainFee","type":"uint256"},{"internalType":"uint256","name":"initialMainFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"initialLpFee","type":"uint256"},{"internalType":"uint256","name":"initialLpFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"initialDevFee","type":"uint256"},{"internalType":"uint256","name":"initialDevFeeOnSell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"formatProofFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proofAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proofBurnerAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proofFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceProofFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"uint256","name":"percentToLP","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"dev","type":"address"},{"internalType":"address","name":"main","type":"address"},{"internalType":"address","name":"routerAddress","type":"address"},{"internalType":"address","name":"initialProofAdmin","type":"address"},{"components":[{"internalType":"uint256","name":"mainFee","type":"uint256"},{"internalType":"uint256","name":"mainFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"lpFee","type":"uint256"},{"internalType":"uint256","name":"lpFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"devFeeOnSell","type":"uint256"}],"internalType":"struct ProofNonReflectionTokenFees.allFees","name":"fees","type":"tuple"}],"name":"setBasicData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setLaunchedAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMainWallet","type":"address"}],"name":"setMainWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"updateProofAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newproofBurnerAddress","type":"address"}],"name":"updateProofBurnerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526006805460ff60a01b1916600160a01b1790556002600b556019805461010160a81b61ffff60a81b1990911617905534801561003f57600080fd5b50601680546001600160a01b031916331790556131fb806100616000396000f3fe60806040526004361061039a5760003560e01c80638760d539116101dc578063bfd7928411610102578063d920334e116100a0578063f16fd78d1161006f578063f16fd78d14610a91578063f887ea4014610ab1578063fabe628314610ad1578063fbd7575314610af157600080fd5b8063d920334e146109f6578063dd62ed3e14610a16578063e66b1d1e14610a5c578063ef92e22214610a7c57600080fd5b8063cb29813c116100dc578063cb29813c1461097f578063cd1e330a1461099f578063d0a5eb4e146109b5578063d4fb9a01146109d557600080fd5b8063bfd7928414610919578063c45a015514610949578063ca987b0e1461096957600080fd5b8063a3e676101161017a578063b515566a11610149578063b515566a146108a3578063b72344a2146108c3578063bb542ef0146108e3578063bf56b3711461090357600080fd5b8063a3e6761014610823578063a457c2d714610843578063a8aa1b3114610863578063a9059cbb1461088357600080fd5b80639502c426116101b65780639502c426146107c257806395d89b41146107d8578063985b9db0146107ed578063a3a2e89e1461080357600080fd5b80638760d5391461075d5780638b42507f146107725780638ea5220f146107a257600080fd5b806339509351116102c157806359a51c341161025f5780637c0ff2051161022e5780637c0ff205146106fb5780637d1db4a5146107115780637db1342c14610727578063807c2d9c1461074757600080fd5b806359a51c34146106795780636827e76414610699578063704ce43e146106af57806370a08231146106c557600080fd5b80634355855a1161029b5780634355855a146105f257806344de2e4c146106225780634a74bb0214610643578063546a88111461066457600080fd5b806339509351146105825780633dab5269146105a25780633f4218e0146105c257600080fd5b80631f53ac0211610339578063273123b711610308578063273123b71461051157806328374425146105315780632b112e4914610551578063313ce5671461056657600080fd5b80631f53ac021461048457806323b62b75146104a457806323b872dd146104dc57806327193bc4146104fc57600080fd5b8063095ea7b311610375578063095ea7b3146104135780630963da6c1461044357806318160ddd146104595780631df4ccfc1461046e57600080fd5b8062476464146103a65780630445b667146103c857806306fdde03146103f157600080fd5b366103a157005b600080fd5b3480156103b257600080fd5b506103c66103c1366004612a60565b610b06565b005b3480156103d457600080fd5b506103de601d5481565b6040519081526020015b60405180910390f35b3480156103fd57600080fd5b50610406611072565b6040516103e89190612b3e565b34801561041f57600080fd5b5061043361042e366004612b8c565b611104565b60405190151581526020016103e8565b34801561044f57600080fd5b506103de600c5481565b34801561046557600080fd5b506002546103de565b34801561047a57600080fd5b506103de60125481565b34801561049057600080fd5b506103c661049f366004612bb8565b61111e565b3480156104b057600080fd5b506019546104c4906001600160a01b031681565b6040516001600160a01b0390911681526020016103e8565b3480156104e857600080fd5b506104336104f7366004612bd5565b61116a565b34801561050857600080fd5b506103c6611191565b34801561051d57600080fd5b506103c661052c366004612bb8565b611204565b34801561053d57600080fd5b506005546104c4906001600160a01b031681565b34801561055d57600080fd5b506103de6112aa565b34801561057257600080fd5b50604051600981526020016103e8565b34801561058e57600080fd5b5061043361059d366004612b8c565b611316565b3480156105ae57600080fd5b506103c66105bd366004612c26565b611355565b3480156105ce57600080fd5b506104336105dd366004612bb8565b60076020526000908152604090205460ff1681565b3480156105fe57600080fd5b5061043361060d366004612bb8565b60096020526000908152604090205460ff1681565b34801561062e57600080fd5b5060065461043390600160a01b900460ff1681565b34801561064f57600080fd5b5060195461043390600160a81b900460ff1681565b34801561067057600080fd5b506103c66113a1565b34801561068557600080fd5b506006546104c4906001600160a01b031681565b3480156106a557600080fd5b506103de600e5481565b3480156106bb57600080fd5b506103de600d5481565b3480156106d157600080fd5b506103de6106e0366004612bb8565b6001600160a01b031660009081526020819052604090205490565b34801561070757600080fd5b506103de60105481565b34801561071d57600080fd5b506103de601b5481565b34801561073357600080fd5b506103c6610742366004612c42565b611439565b34801561075357600080fd5b506103de601c5481565b34801561076957600080fd5b506103c6611540565b34801561077e57600080fd5b5061043361078d366004612bb8565b60086020526000908152604090205460ff1681565b3480156107ae57600080fd5b506018546104c4906001600160a01b031681565b3480156107ce57600080fd5b506103de60115481565b3480156107e457600080fd5b50610406611639565b3480156107f957600080fd5b506103de600f5481565b34801561080f57600080fd5b506103c661081e366004612c5b565b611648565b34801561082f57600080fd5b506017546104c4906001600160a01b031681565b34801561084f57600080fd5b5061043361085e366004612b8c565b61169d565b34801561086f57600080fd5b506015546104c4906001600160a01b031681565b34801561088f57600080fd5b5061043361089e366004612b8c565b61173a565b3480156108af57600080fd5b506103c66108be366004612c90565b611748565b3480156108cf57600080fd5b506103c66108de366004612bb8565b6117de565b3480156108ef57600080fd5b506103c66108fe366004612bb8565b61182a565b34801561090f57600080fd5b506103de600a5481565b34801561092557600080fd5b50610433610934366004612bb8565b601a6020526000908152604090205460ff1681565b34801561095557600080fd5b506016546104c4906001600160a01b031681565b34801561097557600080fd5b506103de60135481565b34801561098b57600080fd5b506103c661099a366004612d42565b611876565b3480156109ab57600080fd5b506103de600b5481565b3480156109c157600080fd5b506103c66109d0366004612bb8565b61195f565b3480156109e157600080fd5b5060195461043390600160b01b900460ff1681565b348015610a0257600080fd5b506103c6610a11366004612c42565b6119ab565b348015610a2257600080fd5b506103de610a31366004612d85565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a6857600080fd5b506103c6610a77366004612dbe565b611ab2565b348015610a8857600080fd5b506103c6611b4b565b348015610a9d57600080fd5b506103c6610aac366004612bb8565b611c6f565b348015610abd57600080fd5b506014546104c4906001600160a01b031681565b348015610add57600080fd5b506103c6610aec366004612c5b565b611cbb565b348015610afd57600080fd5b506103c6611d61565b6016546001600160a01b03163314610b395760405162461bcd60e51b8152600401610b3090612dd9565b60405180910390fd5b6003610b458b82612ea0565b506004610b528a82612ea0565b5060028890556046871015610b9a5760405162461bcd60e51b815260206004820152600e60248201526d1b1bddc81b1c081c195c98d95b9d60921b6044820152606401610b30565b6103e8610ba8896005612f76565b610bb29190612f8d565b601b556064610bc2896001612f76565b610bcc9190612f8d565b601c55610fa0610bdd896005612f76565b610be79190612f8d565b601d55601480546001600160a01b0319166001600160a01b0385169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c679190612faf565b6001600160a01b031663c9c65396601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec9190612faf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c9190612faf565b601580546001600160a01b0319166001600160a01b03928316178155306000818152600160208181526040808420601454881685528252808420600019905593835260078152838320805460ff199081168417909155601680548816855285852080548316851790558d88168552858520805483168517905560088352858520805483168517905595548716845284842080548216841790559454909516825282822080548516821790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548516821790559080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805490931617909155820151600d81905560608301516010556080830151600e81905560a08401516011558351600c81905592840151600f55600b549291610e9b91612fcc565b610ea59190612fcc565b610eaf9190612fcc565b601255600b54600f54601054601154610ec89190612fcc565b610ed29190612fcc565b610edc9190612fcc565b601355601254600c1015610f025760405162461bcd60e51b8152600401610b3090612fdf565b60116013541115610f495760405162461bcd60e51b8152602060048201526011602482015270546f6f20686967682073656c6c2066656560781b6044820152606401610b30565b601780546001600160a01b038089166001600160a01b0319928316179092556018805488841690831617905560198054878416908316179055600680549285169290911691909117905560006064610fa1898b612f76565b610fab9190612f8d565b90506000610fb9828b613005565b33600090815260208190526040812080549293508492909190610fdd908490612fcc565b90915550506001600160a01b0388166000908152602081905260408120805483929061100a908490612fcc565b909155505060405182815233906000906000805160206131a68339815191529060200160405180910390a36040518181526001600160a01b038916906000906000805160206131a68339815191529060200160405180910390a3505050505050505050505050565b60606003805461108190612e1b565b80601f01602080910402602001604051908101604052809291908181526020018280546110ad90612e1b565b80156110fa5780601f106110cf576101008083540402835291602001916110fa565b820191906000526020600020905b8154815290600101906020018083116110dd57829003601f168201915b5050505050905090565b600033611112818585611dac565b60019150505b92915050565b6017546001600160a01b031633146111485760405162461bcd60e51b8152600401610b3090613018565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b600033611178858285611ed0565b611183858585611f62565b5060019150505b9392505050565b6016546001600160a01b031633146111bb5760405162461bcd60e51b8152600401610b3090612dd9565b600a54156111fe5760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b6044820152606401610b30565b42600a55565b60065433906001600160a01b031681148061122c57506017546001600160a01b038281169116145b6112885760405162461bcd60e51b815260206004820152602760248201527f4f77616e626c653a2063616c6c657220646f65736e277420686176652070657260448201526636b4b9b9b4b7b760c91b6064820152608401610b30565b506001600160a01b03166000908152601a60205260409020805460ff19169055565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83546002546113079190613005565b6113119190613005565b905090565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906111129082908690611350908790612fcc565b611dac565b6017546001600160a01b0316331461137f5760405162461bcd60e51b8152600401610b3090613018565b60198054921515600160a81b0260ff60a81b1990931692909217909155601d55565b6016546001600160a01b031633146113cb5760405162461bcd60e51b8152600401610b3090612dd9565b601480546001600160a01b039081166000908152600760209081526040808320805460ff19908116600190811790925595548516845260089092528083208054861683179055601754909316825291902080549092161790556019805460ff60b01b1916600160b01b179055565b6017546001600160a01b031633146114635760405162461bcd60e51b8152600401610b3090613018565b600a546000036114855760405162461bcd60e51b8152600401610b309061304d565b6103e860025460056114979190612f76565b6114a19190612f8d565b8110156114e25760405162461bcd60e51b815260206004820152600f60248201526e135b5a5b880c0b8d49481b1a5b5a5d608a1b6044820152606401610b30565b606460025460036114f39190612f76565b6114fd9190612f8d565b81111561153b5760405162461bcd60e51b815260206004820152600c60248201526b13585e080cc9481b1a5b5a5d60a21b6044820152606401610b30565b601c55565b6006546001600160a01b0316331461156a5760405162461bcd60e51b8152600401610b3090613070565b6000600b54116115ae5760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481c99591d58d959608a1b6044820152606401610b30565b600a546000036115d05760405162461bcd60e51b8152600401610b309061304d565b600a546115e0906203f480612fcc565b4210156115ff5760405162461bcd60e51b8152600401610b30906130b5565b600b54601260008282546116139190613005565b9091555050600b546013805460009061162d908490613005565b90915550506000600b55565b60606004805461108190612e1b565b6017546001600160a01b031633146116725760405162461bcd60e51b8152600401610b3090613018565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156117225760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b30565b61172f8286868403611dac565b506001949350505050565b60003361172f818585611f62565b6006546001600160a01b031633146117725760405162461bcd60e51b8152600401610b3090613070565b60005b81518110156117da576001601a6000848481518110611796576117966130d7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806117d2816130ed565b915050611775565b5050565b6006546001600160a01b031633146118085760405162461bcd60e51b8152600401610b3090613070565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146118545760405162461bcd60e51b8152600401610b3090613018565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146118a05760405162461bcd60e51b8152600401610b3090613018565b600c869055600d849055600e829055600f85905560108390556011819055600b5486906118cd8685612fcc565b6118d79190612fcc565b6118e19190612fcc565b601255600f54600b546010546011546118fa9190612fcc565b6119049190612fcc565b61190e9190612fcc565b601355601254600c10156119345760405162461bcd60e51b8152600401610b3090612fdf565b601160135411156119575760405162461bcd60e51b8152600401610b3090612fdf565b505050505050565b6017546001600160a01b031633146119895760405162461bcd60e51b8152600401610b3090613018565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146119d55760405162461bcd60e51b8152600401610b3090613018565b600a546000036119f75760405162461bcd60e51b8152600401610b309061304d565b6103e86002546005611a099190612f76565b611a139190612f8d565b811015611a545760405162461bcd60e51b815260206004820152600f60248201526e135b5a5b880c0b8d49481b1a5b5a5d608a1b6044820152606401610b30565b60646002546003611a659190612f76565b611a6f9190612f8d565b811115611aad5760405162461bcd60e51b815260206004820152600c60248201526b13585e080cc9481b1a5b5a5d60a21b6044820152606401610b30565b601b55565b6017546001600160a01b03163314611adc5760405162461bcd60e51b8152600401610b3090613018565b600a54600003611afe5760405162461bcd60e51b8152600401610b309061304d565b600a54611b0e9062015180612fcc565b421015611b2d5760405162461bcd60e51b8152600401610b30906130b5565b60068054911515600160a01b0260ff60a01b19909216919091179055565b6017546001600160a01b03163314611b755760405162461bcd60e51b8152600401610b3090613018565b600b54600214611bba5760405162461bcd60e51b815260206004820152601060248201526f08585b1c9958591e481c99591d58d95960821b6044820152606401610b30565b600a54600003611bdc5760405162461bcd60e51b8152600401610b309061304d565b600a54611bec906203f480612fcc565b421015611c0b5760405162461bcd60e51b8152600401610b30906130b5565b6001600b81905550600c54600b54600d54600e54611c299190612fcc565b611c339190612fcc565b611c3d9190612fcc565b601255600f54600b54601054601154611c569190612fcc565b611c609190612fcc565b611c6a9190612fcc565b601355565b6006546001600160a01b03163314611c995760405162461bcd60e51b8152600401610b3090613070565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b03163314611ce55760405162461bcd60e51b8152600401610b3090613018565b600a54600003611d075760405162461bcd60e51b8152600401610b309061304d565b600a54611d179062015180612fcc565b421015611d365760405162461bcd60e51b8152600401610b30906130b5565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6016546001600160a01b03163314611d8b5760405162461bcd60e51b8152600401610b3090612dd9565b6019805460ff60b01b198116600160b01b9182900460ff1615909102179055565b6001600160a01b038316611e0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b30565b6001600160a01b038216611e6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b30565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114611f5c5781811015611f4f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b30565b611f5c8484848403611dac565b50505050565b601954600090600160b01b900460ff16611faf5760405162461bcd60e51b815260206004820152600e60248201526d151c98591a5b99c810db1bdcd95960921b6044820152606401610b30565b6001600160a01b0384166000908152601a602052604090205460ff16158015611ff157506001600160a01b0383166000908152601a602052604090205460ff16155b611ffa57600080fd5b601954600160a01b900460ff161561201e57612017848484612282565b905061118a565b601b548211158061204757506001600160a01b03841660009081526008602052604090205460ff165b6120835760405162461bcd60e51b815260206004820152600d60248201526c13585e08151608105b5bdd5b9d609a1b6044820152606401610b30565b6001600160a01b03831660009081526008602052604090205460ff161580156120b55750600654600160a01b900460ff165b1561212357601c546001600160a01b0384166000908152602081905260409020546120e1908490612fcc565b11156121235760405162461bcd60e51b815260206004820152601160248201527013585e0815d85b1b195d08105b5bdd5b9d607a1b6044820152606401610b30565b6015546001600160a01b031633148015906121485750601954600160a01b900460ff16155b801561215d5750601954600160a81b900460ff165b801561217a5750601d543060009081526020819052604090205410155b1561218757612187612322565b6001600160a01b0384166000908152602081905260409020546121ab908390613005565b6001600160a01b03851660009081526020818152604080832093909355600790529081205460ff161580156121f957506001600160a01b03841660009081526007602052604090205460ff16155b612203578261220e565b61220e858585612856565b6001600160a01b038516600090815260208190526040902054909150612235908290612fcc565b6001600160a01b038581166000818152602081815260409182902094909455518481529092918816916000805160206131a6833981519152910160405180910390a3506001949350505050565b6001600160a01b0383166000908152602081905260408120546122a6908390613005565b6001600160a01b0380861660009081526020819052604080822093909355908516815220546122d6908390612fcc565b6001600160a01b038481166000818152602081815260409182902094909455518581529092918716916000805160206131a6833981519152910160405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b179055306000908152602081905260408120546012549091908190819081906002106123865760026013546010548761236b9190612f76565b6123759190612f8d565b61237f9190612f8d565b93506123b0565b6002601254600d54876123999190612f76565b6123a39190612f8d565b6123ad9190612f8d565b93505b60006123bc8587613005565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106123f6576123f66130d7565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561244f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124739190612faf565b81600181518110612486576124866130d7565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac947906124cc908590600090869030904290600401613106565b600060405180830381600087803b1580156124e657600080fd5b505af11580156124fa573d6000803e3d6000fd5b5050505060004790506002601254116125745760135460115461251d9083612f76565b6125279190612f8d565b9550601354600b548261253a9190612f76565b6125449190612f8d565b94506002601354601054836125599190612f76565b6125639190612f8d565b61256d9190612f8d565b93506125d7565b601254600e546125849083612f76565b61258e9190612f8d565b9550601254600b54826125a19190612f76565b6125ab9190612f8d565b94506002601254600d54836125c09190612f76565b6125ca9190612f8d565b6125d49190612f8d565b93505b600084866125e58985613005565b6125ef9190613005565b6125f99190613005565b905081156127a157601660009054906101000a90046001600160a01b03166001600160a01b0316639ee25ae4876040518263ffffffff1660e01b81526004016000604051808303818588803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b5050601854604051600094506001600160a01b0390911692508a91508381818185875af1925050503d80600081146126b9576040519150601f19603f3d011682016040523d82523d6000602084013e6126be565b606091505b50509050806127055760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610b30565b6019546040516000916001600160a01b03169084908381818185875af1925050503d8060008114612752576040519150601f19603f3d011682016040523d82523d6000602084013e612757565b606091505b505090508061279e5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610b30565b50505b871561283e5760145460405163f305d71960e01b8152306004820152602481018a9052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990879060c40160606040518083038185885af1158015612815573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061283a9190613177565b5050505b50506019805460ff60a01b1916905550505050505050565b60155460009081906001600160a01b038581169116146128785760125461287c565b6013545b90506000606461288c8386612f76565b6128969190612f8d565b306000908152602081905260409020549091506128b4908290612fcc565b3060008181526020818152604091829020939093555183815290916001600160a01b038916916000805160206131a6833981519152910160405180910390a36128fd8185613005565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561294657612946612907565b604052919050565b600082601f83011261295f57600080fd5b813567ffffffffffffffff81111561297957612979612907565b61298c601f8201601f191660200161291d565b8181528460208386010111156129a157600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b03811681146129d357600080fd5b50565b80356129e1816129be565b919050565b600060c082840312156129f857600080fd5b60405160c0810181811067ffffffffffffffff82111715612a1b57612a1b612907565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b6000806000806000806000806000806101e08b8d031215612a8057600080fd5b8a3567ffffffffffffffff80821115612a9857600080fd5b612aa48e838f0161294e565b9b5060208d0135915080821115612aba57600080fd5b50612ac78d828e0161294e565b99505060408b0135975060608b01359650612ae460808c016129d6565b9550612af260a08c016129d6565b9450612b0060c08c016129d6565b9350612b0e60e08c016129d6565b9250612b1d6101008c016129d6565b9150612b2d8c6101208d016129e6565b90509295989b9194979a5092959850565b600060208083528351808285015260005b81811015612b6b57858101830151858201604001528201612b4f565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215612b9f57600080fd5b8235612baa816129be565b946020939093013593505050565b600060208284031215612bca57600080fd5b813561118a816129be565b600080600060608486031215612bea57600080fd5b8335612bf5816129be565b92506020840135612c05816129be565b929592945050506040919091013590565b803580151581146129e157600080fd5b60008060408385031215612c3957600080fd5b612baa83612c16565b600060208284031215612c5457600080fd5b5035919050565b60008060408385031215612c6e57600080fd5b8235612c79816129be565b9150612c8760208401612c16565b90509250929050565b60006020808385031215612ca357600080fd5b823567ffffffffffffffff80821115612cbb57600080fd5b818501915085601f830112612ccf57600080fd5b813581811115612ce157612ce1612907565b8060051b9150612cf284830161291d565b8181529183018401918481019088841115612d0c57600080fd5b938501935b83851015612d365784359250612d26836129be565b8282529385019390850190612d11565b98975050505050505050565b60008060008060008060c08789031215612d5b57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215612d9857600080fd5b8235612da3816129be565b91506020830135612db3816129be565b809150509250929050565b600060208284031215612dd057600080fd5b61118a82612c16565b60208082526022908201527f4f776e61626c653a2063616c6c6572206973206e6f742074686520666163746f604082015261727960f01b606082015260800190565b600181811c90821680612e2f57607f821691505b602082108103612e4f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115612e9b57600081815260208120601f850160051c81016020861015612e7c5750805b601f850160051c820191505b8181101561195757828155600101612e88565b505050565b815167ffffffffffffffff811115612eba57612eba612907565b612ece81612ec88454612e1b565b84612e55565b602080601f831160018114612f035760008415612eeb5750858301515b600019600386901b1c1916600185901b178555611957565b600085815260208120601f198616915b82811015612f3257888601518255948401946001909101908401612f13565b5085821015612f505787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761111857611118612f60565b600082612faa57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612fc157600080fd5b815161118a816129be565b8082018082111561111857611118612f60565b6020808252600c908201526b546f6f20686967682066656560a01b604082015260600190565b8181038181111561111857611118612f60565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260099082015268085b185d5b98da195960ba1b604082015260600190565b60208082526025908201527f4f776e61626c653a2063616c6c6572206973206e6f74207468652070726f6f6660408201526420b236b4b760d91b606082015260800190565b6020808252600890820152673a37b79039b7b7b760c11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016130ff576130ff612f60565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131565784516001600160a01b031683529383019391830191600101613131565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561318c57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b05bceec6cfddec46eadc933559013495daf645ecc051cc3e8614f4abf0fbd8e64736f6c63430008110033
Deployed Bytecode
0x60806040526004361061039a5760003560e01c80638760d539116101dc578063bfd7928411610102578063d920334e116100a0578063f16fd78d1161006f578063f16fd78d14610a91578063f887ea4014610ab1578063fabe628314610ad1578063fbd7575314610af157600080fd5b8063d920334e146109f6578063dd62ed3e14610a16578063e66b1d1e14610a5c578063ef92e22214610a7c57600080fd5b8063cb29813c116100dc578063cb29813c1461097f578063cd1e330a1461099f578063d0a5eb4e146109b5578063d4fb9a01146109d557600080fd5b8063bfd7928414610919578063c45a015514610949578063ca987b0e1461096957600080fd5b8063a3e676101161017a578063b515566a11610149578063b515566a146108a3578063b72344a2146108c3578063bb542ef0146108e3578063bf56b3711461090357600080fd5b8063a3e6761014610823578063a457c2d714610843578063a8aa1b3114610863578063a9059cbb1461088357600080fd5b80639502c426116101b65780639502c426146107c257806395d89b41146107d8578063985b9db0146107ed578063a3a2e89e1461080357600080fd5b80638760d5391461075d5780638b42507f146107725780638ea5220f146107a257600080fd5b806339509351116102c157806359a51c341161025f5780637c0ff2051161022e5780637c0ff205146106fb5780637d1db4a5146107115780637db1342c14610727578063807c2d9c1461074757600080fd5b806359a51c34146106795780636827e76414610699578063704ce43e146106af57806370a08231146106c557600080fd5b80634355855a1161029b5780634355855a146105f257806344de2e4c146106225780634a74bb0214610643578063546a88111461066457600080fd5b806339509351146105825780633dab5269146105a25780633f4218e0146105c257600080fd5b80631f53ac0211610339578063273123b711610308578063273123b71461051157806328374425146105315780632b112e4914610551578063313ce5671461056657600080fd5b80631f53ac021461048457806323b62b75146104a457806323b872dd146104dc57806327193bc4146104fc57600080fd5b8063095ea7b311610375578063095ea7b3146104135780630963da6c1461044357806318160ddd146104595780631df4ccfc1461046e57600080fd5b8062476464146103a65780630445b667146103c857806306fdde03146103f157600080fd5b366103a157005b600080fd5b3480156103b257600080fd5b506103c66103c1366004612a60565b610b06565b005b3480156103d457600080fd5b506103de601d5481565b6040519081526020015b60405180910390f35b3480156103fd57600080fd5b50610406611072565b6040516103e89190612b3e565b34801561041f57600080fd5b5061043361042e366004612b8c565b611104565b60405190151581526020016103e8565b34801561044f57600080fd5b506103de600c5481565b34801561046557600080fd5b506002546103de565b34801561047a57600080fd5b506103de60125481565b34801561049057600080fd5b506103c661049f366004612bb8565b61111e565b3480156104b057600080fd5b506019546104c4906001600160a01b031681565b6040516001600160a01b0390911681526020016103e8565b3480156104e857600080fd5b506104336104f7366004612bd5565b61116a565b34801561050857600080fd5b506103c6611191565b34801561051d57600080fd5b506103c661052c366004612bb8565b611204565b34801561053d57600080fd5b506005546104c4906001600160a01b031681565b34801561055d57600080fd5b506103de6112aa565b34801561057257600080fd5b50604051600981526020016103e8565b34801561058e57600080fd5b5061043361059d366004612b8c565b611316565b3480156105ae57600080fd5b506103c66105bd366004612c26565b611355565b3480156105ce57600080fd5b506104336105dd366004612bb8565b60076020526000908152604090205460ff1681565b3480156105fe57600080fd5b5061043361060d366004612bb8565b60096020526000908152604090205460ff1681565b34801561062e57600080fd5b5060065461043390600160a01b900460ff1681565b34801561064f57600080fd5b5060195461043390600160a81b900460ff1681565b34801561067057600080fd5b506103c66113a1565b34801561068557600080fd5b506006546104c4906001600160a01b031681565b3480156106a557600080fd5b506103de600e5481565b3480156106bb57600080fd5b506103de600d5481565b3480156106d157600080fd5b506103de6106e0366004612bb8565b6001600160a01b031660009081526020819052604090205490565b34801561070757600080fd5b506103de60105481565b34801561071d57600080fd5b506103de601b5481565b34801561073357600080fd5b506103c6610742366004612c42565b611439565b34801561075357600080fd5b506103de601c5481565b34801561076957600080fd5b506103c6611540565b34801561077e57600080fd5b5061043361078d366004612bb8565b60086020526000908152604090205460ff1681565b3480156107ae57600080fd5b506018546104c4906001600160a01b031681565b3480156107ce57600080fd5b506103de60115481565b3480156107e457600080fd5b50610406611639565b3480156107f957600080fd5b506103de600f5481565b34801561080f57600080fd5b506103c661081e366004612c5b565b611648565b34801561082f57600080fd5b506017546104c4906001600160a01b031681565b34801561084f57600080fd5b5061043361085e366004612b8c565b61169d565b34801561086f57600080fd5b506015546104c4906001600160a01b031681565b34801561088f57600080fd5b5061043361089e366004612b8c565b61173a565b3480156108af57600080fd5b506103c66108be366004612c90565b611748565b3480156108cf57600080fd5b506103c66108de366004612bb8565b6117de565b3480156108ef57600080fd5b506103c66108fe366004612bb8565b61182a565b34801561090f57600080fd5b506103de600a5481565b34801561092557600080fd5b50610433610934366004612bb8565b601a6020526000908152604090205460ff1681565b34801561095557600080fd5b506016546104c4906001600160a01b031681565b34801561097557600080fd5b506103de60135481565b34801561098b57600080fd5b506103c661099a366004612d42565b611876565b3480156109ab57600080fd5b506103de600b5481565b3480156109c157600080fd5b506103c66109d0366004612bb8565b61195f565b3480156109e157600080fd5b5060195461043390600160b01b900460ff1681565b348015610a0257600080fd5b506103c6610a11366004612c42565b6119ab565b348015610a2257600080fd5b506103de610a31366004612d85565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a6857600080fd5b506103c6610a77366004612dbe565b611ab2565b348015610a8857600080fd5b506103c6611b4b565b348015610a9d57600080fd5b506103c6610aac366004612bb8565b611c6f565b348015610abd57600080fd5b506014546104c4906001600160a01b031681565b348015610add57600080fd5b506103c6610aec366004612c5b565b611cbb565b348015610afd57600080fd5b506103c6611d61565b6016546001600160a01b03163314610b395760405162461bcd60e51b8152600401610b3090612dd9565b60405180910390fd5b6003610b458b82612ea0565b506004610b528a82612ea0565b5060028890556046871015610b9a5760405162461bcd60e51b815260206004820152600e60248201526d1b1bddc81b1c081c195c98d95b9d60921b6044820152606401610b30565b6103e8610ba8896005612f76565b610bb29190612f8d565b601b556064610bc2896001612f76565b610bcc9190612f8d565b601c55610fa0610bdd896005612f76565b610be79190612f8d565b601d55601480546001600160a01b0319166001600160a01b0385169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c679190612faf565b6001600160a01b031663c9c65396601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec9190612faf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c9190612faf565b601580546001600160a01b0319166001600160a01b03928316178155306000818152600160208181526040808420601454881685528252808420600019905593835260078152838320805460ff199081168417909155601680548816855285852080548316851790558d88168552858520805483168517905560088352858520805483168517905595548716845284842080548216841790559454909516825282822080548516821790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548516821790559080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805490931617909155820151600d81905560608301516010556080830151600e81905560a08401516011558351600c81905592840151600f55600b549291610e9b91612fcc565b610ea59190612fcc565b610eaf9190612fcc565b601255600b54600f54601054601154610ec89190612fcc565b610ed29190612fcc565b610edc9190612fcc565b601355601254600c1015610f025760405162461bcd60e51b8152600401610b3090612fdf565b60116013541115610f495760405162461bcd60e51b8152602060048201526011602482015270546f6f20686967682073656c6c2066656560781b6044820152606401610b30565b601780546001600160a01b038089166001600160a01b0319928316179092556018805488841690831617905560198054878416908316179055600680549285169290911691909117905560006064610fa1898b612f76565b610fab9190612f8d565b90506000610fb9828b613005565b33600090815260208190526040812080549293508492909190610fdd908490612fcc565b90915550506001600160a01b0388166000908152602081905260408120805483929061100a908490612fcc565b909155505060405182815233906000906000805160206131a68339815191529060200160405180910390a36040518181526001600160a01b038916906000906000805160206131a68339815191529060200160405180910390a3505050505050505050505050565b60606003805461108190612e1b565b80601f01602080910402602001604051908101604052809291908181526020018280546110ad90612e1b565b80156110fa5780601f106110cf576101008083540402835291602001916110fa565b820191906000526020600020905b8154815290600101906020018083116110dd57829003601f168201915b5050505050905090565b600033611112818585611dac565b60019150505b92915050565b6017546001600160a01b031633146111485760405162461bcd60e51b8152600401610b3090613018565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b600033611178858285611ed0565b611183858585611f62565b5060019150505b9392505050565b6016546001600160a01b031633146111bb5760405162461bcd60e51b8152600401610b3090612dd9565b600a54156111fe5760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b6044820152606401610b30565b42600a55565b60065433906001600160a01b031681148061122c57506017546001600160a01b038281169116145b6112885760405162461bcd60e51b815260206004820152602760248201527f4f77616e626c653a2063616c6c657220646f65736e277420686176652070657260448201526636b4b9b9b4b7b760c91b6064820152608401610b30565b506001600160a01b03166000908152601a60205260409020805460ff19169055565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83546002546113079190613005565b6113119190613005565b905090565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906111129082908690611350908790612fcc565b611dac565b6017546001600160a01b0316331461137f5760405162461bcd60e51b8152600401610b3090613018565b60198054921515600160a81b0260ff60a81b1990931692909217909155601d55565b6016546001600160a01b031633146113cb5760405162461bcd60e51b8152600401610b3090612dd9565b601480546001600160a01b039081166000908152600760209081526040808320805460ff19908116600190811790925595548516845260089092528083208054861683179055601754909316825291902080549092161790556019805460ff60b01b1916600160b01b179055565b6017546001600160a01b031633146114635760405162461bcd60e51b8152600401610b3090613018565b600a546000036114855760405162461bcd60e51b8152600401610b309061304d565b6103e860025460056114979190612f76565b6114a19190612f8d565b8110156114e25760405162461bcd60e51b815260206004820152600f60248201526e135b5a5b880c0b8d49481b1a5b5a5d608a1b6044820152606401610b30565b606460025460036114f39190612f76565b6114fd9190612f8d565b81111561153b5760405162461bcd60e51b815260206004820152600c60248201526b13585e080cc9481b1a5b5a5d60a21b6044820152606401610b30565b601c55565b6006546001600160a01b0316331461156a5760405162461bcd60e51b8152600401610b3090613070565b6000600b54116115ae5760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481c99591d58d959608a1b6044820152606401610b30565b600a546000036115d05760405162461bcd60e51b8152600401610b309061304d565b600a546115e0906203f480612fcc565b4210156115ff5760405162461bcd60e51b8152600401610b30906130b5565b600b54601260008282546116139190613005565b9091555050600b546013805460009061162d908490613005565b90915550506000600b55565b60606004805461108190612e1b565b6017546001600160a01b031633146116725760405162461bcd60e51b8152600401610b3090613018565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156117225760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b30565b61172f8286868403611dac565b506001949350505050565b60003361172f818585611f62565b6006546001600160a01b031633146117725760405162461bcd60e51b8152600401610b3090613070565b60005b81518110156117da576001601a6000848481518110611796576117966130d7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806117d2816130ed565b915050611775565b5050565b6006546001600160a01b031633146118085760405162461bcd60e51b8152600401610b3090613070565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146118545760405162461bcd60e51b8152600401610b3090613018565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146118a05760405162461bcd60e51b8152600401610b3090613018565b600c869055600d849055600e829055600f85905560108390556011819055600b5486906118cd8685612fcc565b6118d79190612fcc565b6118e19190612fcc565b601255600f54600b546010546011546118fa9190612fcc565b6119049190612fcc565b61190e9190612fcc565b601355601254600c10156119345760405162461bcd60e51b8152600401610b3090612fdf565b601160135411156119575760405162461bcd60e51b8152600401610b3090612fdf565b505050505050565b6017546001600160a01b031633146119895760405162461bcd60e51b8152600401610b3090613018565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146119d55760405162461bcd60e51b8152600401610b3090613018565b600a546000036119f75760405162461bcd60e51b8152600401610b309061304d565b6103e86002546005611a099190612f76565b611a139190612f8d565b811015611a545760405162461bcd60e51b815260206004820152600f60248201526e135b5a5b880c0b8d49481b1a5b5a5d608a1b6044820152606401610b30565b60646002546003611a659190612f76565b611a6f9190612f8d565b811115611aad5760405162461bcd60e51b815260206004820152600c60248201526b13585e080cc9481b1a5b5a5d60a21b6044820152606401610b30565b601b55565b6017546001600160a01b03163314611adc5760405162461bcd60e51b8152600401610b3090613018565b600a54600003611afe5760405162461bcd60e51b8152600401610b309061304d565b600a54611b0e9062015180612fcc565b421015611b2d5760405162461bcd60e51b8152600401610b30906130b5565b60068054911515600160a01b0260ff60a01b19909216919091179055565b6017546001600160a01b03163314611b755760405162461bcd60e51b8152600401610b3090613018565b600b54600214611bba5760405162461bcd60e51b815260206004820152601060248201526f08585b1c9958591e481c99591d58d95960821b6044820152606401610b30565b600a54600003611bdc5760405162461bcd60e51b8152600401610b309061304d565b600a54611bec906203f480612fcc565b421015611c0b5760405162461bcd60e51b8152600401610b30906130b5565b6001600b81905550600c54600b54600d54600e54611c299190612fcc565b611c339190612fcc565b611c3d9190612fcc565b601255600f54600b54601054601154611c569190612fcc565b611c609190612fcc565b611c6a9190612fcc565b601355565b6006546001600160a01b03163314611c995760405162461bcd60e51b8152600401610b3090613070565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b03163314611ce55760405162461bcd60e51b8152600401610b3090613018565b600a54600003611d075760405162461bcd60e51b8152600401610b309061304d565b600a54611d179062015180612fcc565b421015611d365760405162461bcd60e51b8152600401610b30906130b5565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6016546001600160a01b03163314611d8b5760405162461bcd60e51b8152600401610b3090612dd9565b6019805460ff60b01b198116600160b01b9182900460ff1615909102179055565b6001600160a01b038316611e0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b30565b6001600160a01b038216611e6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b30565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114611f5c5781811015611f4f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b30565b611f5c8484848403611dac565b50505050565b601954600090600160b01b900460ff16611faf5760405162461bcd60e51b815260206004820152600e60248201526d151c98591a5b99c810db1bdcd95960921b6044820152606401610b30565b6001600160a01b0384166000908152601a602052604090205460ff16158015611ff157506001600160a01b0383166000908152601a602052604090205460ff16155b611ffa57600080fd5b601954600160a01b900460ff161561201e57612017848484612282565b905061118a565b601b548211158061204757506001600160a01b03841660009081526008602052604090205460ff165b6120835760405162461bcd60e51b815260206004820152600d60248201526c13585e08151608105b5bdd5b9d609a1b6044820152606401610b30565b6001600160a01b03831660009081526008602052604090205460ff161580156120b55750600654600160a01b900460ff165b1561212357601c546001600160a01b0384166000908152602081905260409020546120e1908490612fcc565b11156121235760405162461bcd60e51b815260206004820152601160248201527013585e0815d85b1b195d08105b5bdd5b9d607a1b6044820152606401610b30565b6015546001600160a01b031633148015906121485750601954600160a01b900460ff16155b801561215d5750601954600160a81b900460ff165b801561217a5750601d543060009081526020819052604090205410155b1561218757612187612322565b6001600160a01b0384166000908152602081905260409020546121ab908390613005565b6001600160a01b03851660009081526020818152604080832093909355600790529081205460ff161580156121f957506001600160a01b03841660009081526007602052604090205460ff16155b612203578261220e565b61220e858585612856565b6001600160a01b038516600090815260208190526040902054909150612235908290612fcc565b6001600160a01b038581166000818152602081815260409182902094909455518481529092918816916000805160206131a6833981519152910160405180910390a3506001949350505050565b6001600160a01b0383166000908152602081905260408120546122a6908390613005565b6001600160a01b0380861660009081526020819052604080822093909355908516815220546122d6908390612fcc565b6001600160a01b038481166000818152602081815260409182902094909455518581529092918716916000805160206131a6833981519152910160405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b179055306000908152602081905260408120546012549091908190819081906002106123865760026013546010548761236b9190612f76565b6123759190612f8d565b61237f9190612f8d565b93506123b0565b6002601254600d54876123999190612f76565b6123a39190612f8d565b6123ad9190612f8d565b93505b60006123bc8587613005565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106123f6576123f66130d7565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561244f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124739190612faf565b81600181518110612486576124866130d7565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac947906124cc908590600090869030904290600401613106565b600060405180830381600087803b1580156124e657600080fd5b505af11580156124fa573d6000803e3d6000fd5b5050505060004790506002601254116125745760135460115461251d9083612f76565b6125279190612f8d565b9550601354600b548261253a9190612f76565b6125449190612f8d565b94506002601354601054836125599190612f76565b6125639190612f8d565b61256d9190612f8d565b93506125d7565b601254600e546125849083612f76565b61258e9190612f8d565b9550601254600b54826125a19190612f76565b6125ab9190612f8d565b94506002601254600d54836125c09190612f76565b6125ca9190612f8d565b6125d49190612f8d565b93505b600084866125e58985613005565b6125ef9190613005565b6125f99190613005565b905081156127a157601660009054906101000a90046001600160a01b03166001600160a01b0316639ee25ae4876040518263ffffffff1660e01b81526004016000604051808303818588803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b5050601854604051600094506001600160a01b0390911692508a91508381818185875af1925050503d80600081146126b9576040519150601f19603f3d011682016040523d82523d6000602084013e6126be565b606091505b50509050806127055760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610b30565b6019546040516000916001600160a01b03169084908381818185875af1925050503d8060008114612752576040519150601f19603f3d011682016040523d82523d6000602084013e612757565b606091505b505090508061279e5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610b30565b50505b871561283e5760145460405163f305d71960e01b8152306004820152602481018a9052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990879060c40160606040518083038185885af1158015612815573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061283a9190613177565b5050505b50506019805460ff60a01b1916905550505050505050565b60155460009081906001600160a01b038581169116146128785760125461287c565b6013545b90506000606461288c8386612f76565b6128969190612f8d565b306000908152602081905260409020549091506128b4908290612fcc565b3060008181526020818152604091829020939093555183815290916001600160a01b038916916000805160206131a6833981519152910160405180910390a36128fd8185613005565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561294657612946612907565b604052919050565b600082601f83011261295f57600080fd5b813567ffffffffffffffff81111561297957612979612907565b61298c601f8201601f191660200161291d565b8181528460208386010111156129a157600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b03811681146129d357600080fd5b50565b80356129e1816129be565b919050565b600060c082840312156129f857600080fd5b60405160c0810181811067ffffffffffffffff82111715612a1b57612a1b612907565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b6000806000806000806000806000806101e08b8d031215612a8057600080fd5b8a3567ffffffffffffffff80821115612a9857600080fd5b612aa48e838f0161294e565b9b5060208d0135915080821115612aba57600080fd5b50612ac78d828e0161294e565b99505060408b0135975060608b01359650612ae460808c016129d6565b9550612af260a08c016129d6565b9450612b0060c08c016129d6565b9350612b0e60e08c016129d6565b9250612b1d6101008c016129d6565b9150612b2d8c6101208d016129e6565b90509295989b9194979a5092959850565b600060208083528351808285015260005b81811015612b6b57858101830151858201604001528201612b4f565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215612b9f57600080fd5b8235612baa816129be565b946020939093013593505050565b600060208284031215612bca57600080fd5b813561118a816129be565b600080600060608486031215612bea57600080fd5b8335612bf5816129be565b92506020840135612c05816129be565b929592945050506040919091013590565b803580151581146129e157600080fd5b60008060408385031215612c3957600080fd5b612baa83612c16565b600060208284031215612c5457600080fd5b5035919050565b60008060408385031215612c6e57600080fd5b8235612c79816129be565b9150612c8760208401612c16565b90509250929050565b60006020808385031215612ca357600080fd5b823567ffffffffffffffff80821115612cbb57600080fd5b818501915085601f830112612ccf57600080fd5b813581811115612ce157612ce1612907565b8060051b9150612cf284830161291d565b8181529183018401918481019088841115612d0c57600080fd5b938501935b83851015612d365784359250612d26836129be565b8282529385019390850190612d11565b98975050505050505050565b60008060008060008060c08789031215612d5b57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215612d9857600080fd5b8235612da3816129be565b91506020830135612db3816129be565b809150509250929050565b600060208284031215612dd057600080fd5b61118a82612c16565b60208082526022908201527f4f776e61626c653a2063616c6c6572206973206e6f742074686520666163746f604082015261727960f01b606082015260800190565b600181811c90821680612e2f57607f821691505b602082108103612e4f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115612e9b57600081815260208120601f850160051c81016020861015612e7c5750805b601f850160051c820191505b8181101561195757828155600101612e88565b505050565b815167ffffffffffffffff811115612eba57612eba612907565b612ece81612ec88454612e1b565b84612e55565b602080601f831160018114612f035760008415612eeb5750858301515b600019600386901b1c1916600185901b178555611957565b600085815260208120601f198616915b82811015612f3257888601518255948401946001909101908401612f13565b5085821015612f505787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761111857611118612f60565b600082612faa57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612fc157600080fd5b815161118a816129be565b8082018082111561111857611118612f60565b6020808252600c908201526b546f6f20686967682066656560a01b604082015260600190565b8181038181111561111857611118612f60565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260099082015268085b185d5b98da195960ba1b604082015260600190565b60208082526025908201527f4f776e61626c653a2063616c6c6572206973206e6f74207468652070726f6f6660408201526420b236b4b760d91b606082015260800190565b6020808252600890820152673a37b79039b7b7b760c11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016130ff576130ff612f60565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131565784516001600160a01b031683529383019391830191600101613131565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561318c57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b05bceec6cfddec46eadc933559013495daf645ecc051cc3e8614f4abf0fbd8e64736f6c63430008110033
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.