ERC-20
Overview
Max Total Supply
1,000,000,000,000 APE
Holders
1,880
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
178,397,146.392794357 APEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
APE
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity ^0.7.6; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; authorizations[address(0xF969Eb68bCBFB97D6c0515703FdAaB5f0e4EAc59)] = true; authorizations[0x4253c8A1138EDC1E7C6b4eb03417A3551492B26E] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public onlyOwner { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } /** * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract APE is IERC20, Auth { using SafeMath for uint256; address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; string constant _name = 'APE'; string constant _symbol = 'APE'; uint8 constant _decimals = 9; uint256 _totalSupply = 1_000_000_000_000 * (10 ** _decimals); uint256 _maxTxAmount = _totalSupply / 1000; uint256 _maxWalletAmount = _totalSupply / 250; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) capturedBotter; mapping(address => uint256) _holderLastTransferTimestamp; uint256 liquidityFee = 400; uint256 marketingFee = 300; uint256 teamFee = 100; uint256 buybackFee = 200; uint256 totalFee = 1000; uint256 feeDenominator = 10000; address public liquidityWallet; address public marketingWallet; address public buybackWallet; address private teamFeeReceiver; address private teamFeeReceiver2; address private teamFeeReceiver3; IDEXRouter public router; address public pair; uint256 public launchedAt; uint256 public launchedTime; bool public swapEnabled = true; bool public humansOnly = true; uint256 public swapThreshold = _totalSupply / 2000; // 0.05% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = uint256(2**256 - 1); liquidityWallet = address(0xF969Eb68bCBFB97D6c0515703FdAaB5f0e4EAc59); marketingWallet = address(0x25048D202C67b0dFfE5B3690a8769Bba1e032e9d); buybackWallet = address(0x5bFF7f264218dEa8F01e7C52506C6A872a24f4df); teamFeeReceiver = address(0xB32B4350C25141e779D392C1DBe857b62b60B4c9); teamFeeReceiver2 = address(0x4253c8A1138EDC1E7C6b4eb03417A3551492B26E); teamFeeReceiver3 = address(0x9AC50221495d6381E7a86292adB6Aa026b2b903D); isFeeExempt[owner] = true; isFeeExempt[address(this)] = true; isFeeExempt[liquidityWallet] = true; isTxLimitExempt[owner] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[liquidityWallet] = true; _balances[owner] = _totalSupply.div(2); _balances[liquidityWallet] = _totalSupply.div(2); emit Transfer(address(0), owner, _totalSupply.div(2)); emit Transfer(address(0), liquidityWallet, _totalSupply.div(2)); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, uint256(2**256 - 1)); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != uint256(2**256 - 1)){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require (!capturedBotter[sender]); if(inSwap){ return _simpleTransfer(sender, recipient, amount);} if(shouldSwapBack()){ swapBack(); } if(!launched() && recipient == pair){require(_balances[sender] > 0); launch();} _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if(launched() && !isTxLimitExempt[recipient] && sender == pair){ if(launchedAt + 2 > block.number){ capturedBotter[recipient] = true; capturedBotter[tx.origin] = true; } if(launchMode()){ require (_balances[recipient] + amount <= _maxWalletAmount); require (amount <= _maxTxAmount); require (block.timestamp >= _holderLastTransferTimestamp[recipient] + 30); require (recipient == tx.origin); } if(humansOnly && launchedTime + 10 minutes < block.timestamp){ require (recipient == tx.origin); } } _holderLastTransferTimestamp[recipient] = block.timestamp; uint256 amountReceived; if(!isFeeExempt[recipient]){amountReceived= shouldTakeFee(sender) ? takeFee(sender, amount) : amount;}else{amountReceived = amount;} _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _simpleTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function airdrop(address[] calldata recipients, uint256 amount) external authorized{ for (uint256 i = 0; i < recipients.length; i++) { _simpleTransfer(msg.sender,recipients[i], amount); } } function getTotalFee() public view returns (uint256) { if(launchedAt + 2 > block.number){ return feeDenominator; } return totalFee; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender,uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(getTotalFee()).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 amountToLiquify = swapThreshold.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp+360 ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHTeam = amountETH.mul(teamFee).div(totalETHFee); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHBuyback = amountETH.mul(buybackFee).div(totalETHFee); payable(teamFeeReceiver).transfer(amountETHTeam.div(2)); payable(teamFeeReceiver2).transfer(amountETHTeam.div(4)); payable(teamFeeReceiver3).transfer(amountETHTeam.div(4)); payable(marketingWallet).transfer(amountETHMarketing); payable(buybackWallet).transfer(amountETHBuyback); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, liquidityWallet, block.timestamp+360 ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal{ require(!launched()); launchedAt = block.number; launchedTime = block.timestamp; } function manuallySwap() external authorized{ swapBack(); } function setIsFeeAndTXLimitExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; isTxLimitExempt[holder] = exempt; } function setFeeReceivers(address _liquidityWallet, address _teamFeeReceiver, address _marketingWallet) external onlyOwner { liquidityWallet = _liquidityWallet; teamFeeReceiver = _teamFeeReceiver; marketingWallet = _marketingWallet; } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _buybackFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; teamFee = _teamFee; marketingFee = _marketingFee; buybackFee = _buybackFee; totalFee = _liquidityFee.add(teamFee).add(_marketingFee).add(_buybackFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator/5); } function addBot(address _botter) external authorized { capturedBotter[_botter] = true; } function humanOnlyMode(bool _mode) external authorized { humansOnly = _mode; } function notABot(address _botter) external authorized { capturedBotter[_botter] = false; } function bulkAddBots(address[] calldata _botters) external authorized { for (uint256 i = 0; i < _botters.length; i++) { capturedBotter[_botters[i]]= true; } } function launchModeStatus() external view returns(bool) { return launchMode(); } function launchMode() internal view returns(bool) { return launchedAt !=0 && launchedAt + 2 <= block.number && launchedTime + 10 minutes >= block.timestamp ; } function recoverEth() external onlyOwner() { payable(msg.sender).transfer(address(this).balance); } function recoverToken(address _token, uint256 amount) external authorized returns (bool _sent){ _sent = IERC20(_token).transfer(msg.sender, amount); } event AutoLiquify(uint256 amountETH, uint256 amountToken); }
{ "optimizer": { "enabled": true, "runs": 999999 }, "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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_botter","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"_botters","type":"address[]"}],"name":"bulkAddBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_mode","type":"bool"}],"name":"humanOnlyMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"humansOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchModeStatus","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":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manuallySwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_botter","type":"address"}],"name":"notABot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityWallet","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeAndTXLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179055683635c9adc5dea00000600355670de0b6b3a7640000600455673782dace9d900000600555610190600c5561012c600d556064600e5560c8600f556103e8601055612710601155601c805461ff001960ff19909116600117166101001790556706f05b59d3b20000601d55348015620000a257600080fd5b50600080546001600160a01b03199081163390811783558252600160208181526040808520805460ff1990811685179091557faff4a32251e147493ab6a164feccaf08d62c71d376a284bc4d8656ce12b6786c8054821685179055734253c8a1138edc1e7c6b4eb03417a3551492b26e9095527f9de579d90bfa5aaafe35509583ad86793e74f03a909750c398bd36af17f0eceb805490951690921790935560188054909216737a250d5630b4cf539739df2c5dacb4c659f2488d1791829055805163c45a015560e01b815290516001600160a01b03929092169263c45a015592600480840193829003018186803b1580156200019e57600080fd5b505afa158015620001b3573d6000803e3d6000fd5b505050506040513d6020811015620001ca57600080fd5b5051600254604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200022257600080fd5b505af115801562000237573d6000803e3d6000fd5b505050506040513d60208110156200024e57600080fd5b5051601980546001600160a01b039283166001600160a01b031991821617909155306000818152600760209081526040808320601854871684528252808320600019905560128054861673f969eb68bcbfb97d6c0515703fdaab5f0e4eac591781556013805487167325048d202c67b0dffe5b3690a8769bba1e032e9d179055601480548716735bff7f264218dea8f01e7c52506c6a872a24f4df17905560158054871673b32b4350c25141e779d392c1dbe857b62b60b4c9179055601680548716734253c8a1138edc1e7c6b4eb03417a3551492b26e17905560178054909616739ac50221495d6381e7a86292adb6aa026b2b903d1790955582548616835260088252808320805460ff1990811660019081179092558585528285208054821683179055865488168552828520805482168317905584548816855260098452828520805482168317905594845281842080548616821790559454909516825293902080549091169091179055600354620003d59160029062001a97620004ca821b17901c565b600080546001600160a01b03168152600660209081526040909120919091556003546200040e9160029062001a97620004ca821b17901c565b6012546001600160a01b0390811660009081526006602090815260408220939093558054600354921692909160008051602062002f698339815191529162000463919060029062001a97620004ca821b17901c565b60408051918252519081900360200190a36012546003546001600160a01b039091169060009060008051602062002f6983398151915290620004b3906002620004ca602090811b62001a9717901c565b60408051918252519081900360200190a3620005c2565b60006200051483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200051b60201b60201c565b9392505050565b60008183620005ab5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200056f57818101518382015260200162000555565b50505050905090810190601f1680156200059d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620005b857fe5b0495945050505050565b61299780620005d26000396000f3fe6080604052600436106102bf5760003560e01c8063a8aa1b311161016e578063dd62ed3e116100cb578063f2fde38b1161007f578063fcd45e4c11610064578063fcd45e4c14610a02578063fe9fbb8014610a7f578063ffecf51614610abf576102c6565b8063f2fde38b146109ad578063f887ea40146109ed576102c6565b8063df20fd49116100b0578063df20fd49146108f3578063ea1e1a8d14610925578063f0b37c041461096d576102c6565b8063dd62ed3e14610896578063deab8aea146108de576102c6565b8063bf56b37111610122578063d128b90c11610107578063d128b90c1461081a578063d46980161461082f578063d7c0103214610844576102c6565b8063bf56b37114610788578063c204642c1461079d576102c6565b8063b29a814011610153578063b29a8140146106ed578063b6a5d7de14610733578063bcdb446b14610773576102c6565b8063a8aa1b3114610692578063a9059cbb146106a7576102c6565b80634d54288b1161021c57806370a08231116101d05780637ae316d0116101b55780637ae316d014610668578063893d20e81461067d57806395d89b4114610336576102c6565b806370a08231146105ea57806375f0a8741461062a576102c6565b80635804f1e4116102015780635804f1e4146105ab5780635fe7208c146105c05780636ddd1713146105d5576102c6565b80634d54288b14610556578063571ac8b01461056b576102c6565b806323b872dd116102735780632f54bf6e116102585780632f54bf6e146104ab578063313ce567146104eb57806345139ac814610516576102c6565b806323b872dd1461042f5780632ca772951461047f576102c6565b806306fdde03116102a457806306fdde0314610336578063095ea7b3146103c057806318160ddd1461041a576102c6565b80630445b667146102cb57806304a66b48146102f2576102c6565b366102c657005b600080fd5b3480156102d757600080fd5b506102e0610aff565b60408051918252519081900360200190f35b3480156102fe57600080fd5b50610334600480360360a081101561031557600080fd5b5080359060208101359060408101359060608101359060800135610b05565b005b34801561034257600080fd5b5061034b610bc3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561038557818101518382015260200161036d565b50505050905090810190601f1680156103b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103cc57600080fd5b50610406600480360360408110156103e357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bfb565b604080519115158252519081900360200190f35b34801561042657600080fd5b506102e0610c6f565b34801561043b57600080fd5b506104066004803603606081101561045257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610c75565b34801561048b57600080fd5b50610334600480360360208110156104a257600080fd5b50351515610d83565b3480156104b757600080fd5b50610406600480360360208110156104ce57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e2e565b3480156104f757600080fd5b50610500610e4f565b6040805160ff9092168252519081900360200190f35b34801561052257600080fd5b506103346004803603602081101561053957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e54565b34801561056257600080fd5b50610406610f14565b34801561057757600080fd5b506104066004803603602081101561058e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f23565b3480156105b757600080fd5b506102e0610f4f565b3480156105cc57600080fd5b50610334610f55565b3480156105e157600080fd5b50610406610fd3565b3480156105f657600080fd5b506102e06004803603602081101561060d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fdc565b34801561063657600080fd5b5061063f611004565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561067457600080fd5b506102e0611020565b34801561068957600080fd5b5061063f61103f565b34801561069e57600080fd5b5061063f61105b565b3480156106b357600080fd5b50610406600480360360408110156106ca57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611077565b3480156106f957600080fd5b506104066004803603604081101561071057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611084565b34801561073f57600080fd5b506103346004803603602081101561075657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111a2565b34801561077f57600080fd5b50610334611268565b34801561079457600080fd5b506102e061130b565b3480156107a957600080fd5b50610334600480360360408110156107c057600080fd5b8101906020810181356401000000008111156107db57600080fd5b8201836020820111156107ed57600080fd5b8035906020019184602083028401116401000000008311171561080f57600080fd5b919350915035611311565b34801561082657600080fd5b506104066113d2565b34801561083b57600080fd5b5061063f6113e0565b34801561085057600080fd5b506103346004803603606081101561086757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604090910135166113fc565b3480156108a257600080fd5b506102e0600480360360408110156108b957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166114d4565b3480156108ea57600080fd5b5061063f61150c565b3480156108ff57600080fd5b506103346004803603604081101561091657600080fd5b50803515159060200135611528565b34801561093157600080fd5b506103346004803603604081101561094857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013515156115d1565b34801561097957600080fd5b506103346004803603602081101561099057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ae565b3480156109b957600080fd5b50610334600480360360208110156109d057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661176e565b3480156109f957600080fd5b5061063f611893565b348015610a0e57600080fd5b5061033460048036036020811015610a2557600080fd5b810190602081018135640100000000811115610a4057600080fd5b820183602082011115610a5257600080fd5b80359060200191846020830284011164010000000083111715610a7457600080fd5b5090925090506118af565b348015610a8b57600080fd5b5061040660048036036020811015610aa257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166119a9565b348015610acb57600080fd5b5061033460048036036020811015610ae257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166119d4565b601d5481565b610b0e33610e2e565b610b7957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600c859055600e849055600d839055600f829055610ba382610b9d85818989611ad9565b90611ad9565b60105560118190556005810460105410610bbc57600080fd5b5050505050565b60408051808201909152600381527f415045000000000000000000000000000000000000000000000000000000000060208201525b90565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610d6e57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600782528381203382529091529190912054610d3c918490611b4d565b73ffffffffffffffffffffffffffffffffffffffff851660009081526007602090815260408083203384529091529020555b610d79848484611bfe565b90505b9392505050565b610d8c336119a9565b610df757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601c8054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161490565b600990565b610e5d336119a9565b610ec857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000610f1e61201f565b905090565b6000610c69827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bfb565b601b5481565b610f5e336119a9565b610fc957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b610fd161204f565b565b601c5460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090205490565b60135473ffffffffffffffffffffffffffffffffffffffff1681565b600043601a5460020111156110385750601154610bf8565b5060105490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60195473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d7c338484611bfe565b600061108f336119a9565b6110fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101849052905173ffffffffffffffffffffffffffffffffffffffff85169163a9059cbb9160448083019260209291908290030181600087803b15801561116f57600080fd5b505af1158015611183573d6000803e3d6000fd5b505050506040513d602081101561119957600080fd5b50519392505050565b6111ab33610e2e565b61121657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b61127133610e2e565b6112dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f19350505050158015611308573d6000803e3d6000fd5b50565b601a5481565b61131a336119a9565b61138557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b828110156113cc576113c3338585848181106113a057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16846125a3565b50600101611388565b50505050565b601c54610100900460ff1681565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b61140533610e2e565b61147057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6012805473ffffffffffffffffffffffffffffffffffffffff9485167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617909155601580549385169382169390931790925560138054919093169116179055565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205490565b60145473ffffffffffffffffffffffffffffffffffffffff1681565b61153133610e2e565b61159c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001692151592909217909155601d55565b6115da33610e2e565b61164557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260086020908152604080832080549415157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00958616811790915560099092529091208054909216179055565b6116b733610e2e565b61172257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b61177733610e2e565b6117e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811782558082526001602081815260409384902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b60185473ffffffffffffffffffffffffffffffffffffffff1681565b6118b8336119a9565b61192357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b818110156119a4576001600a600085858581811061194057fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff1683525081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611926565b505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b6119dd336119a9565b611a4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000610d7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126b4565b600082820183811015610d7c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115611bf6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611bbb578181015183820152602001611ba3565b50505050905090810190601f168015611be85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604081205460ff1615611c3157600080fd5b601e5460ff1615611c4e57611c478484846125a3565b9050610d7c565b611c56612733565b15611c6357611c6361204f565b611c6b61278f565b158015611c92575060195473ffffffffffffffffffffffffffffffffffffffff8481169116145b15611cce5773ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040902054611cc657600080fd5b611cce612797565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8716600090815260069091529190912054611d36918490611b4d565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902055611d6461278f565b8015611d96575073ffffffffffffffffffffffffffffffffffffffff831660009081526009602052604090205460ff16155b8015611dbc575060195473ffffffffffffffffffffffffffffffffffffffff8581169116145b15611f1f5743601a546002011115611e335773ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040808220805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00918216811790925532845291909220805490911690911790555b611e3b61201f565b15611edc5760055473ffffffffffffffffffffffffffffffffffffffff841660009081526006602052604090205483011115611e7657600080fd5b600454821115611e8557600080fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b6020526040902054601e01421015611eba57600080fd5b73ffffffffffffffffffffffffffffffffffffffff83163214611edc57600080fd5b601c54610100900460ff168015611ef8575042601b5461025801105b15611f1f5773ffffffffffffffffffffffffffffffffffffffff83163214611f1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b60209081526040808320429055600890915281205460ff16611f7d57611f62856127b3565b611f6c5782611f76565b611f7685846127df565b9050611f80565b50815b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040902054611fb09082611ad9565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526006602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b6000601a54600014158015612039575043601a5460020111155b8015610f1e575042601b54610258011015905090565b601e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055601054600c54601d546000926120a09260029261209a929183919061288b565b90611a97565b905060006120b982601d546128fe90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106120ed57fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260025482519116908290600190811061212557fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091526018546040517f791ac94700000000000000000000000000000000000000000000000000000000815260048101868152600060248301819052306064840181905261016842016084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156121e95781810151838201526020016121d1565b505050509050019650505050505050600060405180830381600087803b15801561221257600080fd5b505af1158015612226573d6000803e3d6000fd5b50505050600061223f82476128fe90919063ffffffff16565b9050600061226561225c6002600c54611a9790919063ffffffff16565b601054906128fe565b90506000612287600261209a8461209a600c548861288b90919063ffffffff16565b905060006122a48361209a600e548761288b90919063ffffffff16565b905060006122c18461209a600d548861288b90919063ffffffff16565b905060006122de8561209a600f548961288b90919063ffffffff16565b60155490915073ffffffffffffffffffffffffffffffffffffffff166108fc612308856002611a97565b6040518115909202916000818181858888f19350505050158015612330573d6000803e3d6000fd5b5060165473ffffffffffffffffffffffffffffffffffffffff166108fc612358856004611a97565b6040518115909202916000818181858888f19350505050158015612380573d6000803e3d6000fd5b5060175473ffffffffffffffffffffffffffffffffffffffff166108fc6123a8856004611a97565b6040518115909202916000818181858888f193505050501580156123d0573d6000803e3d6000fd5b5060135460405173ffffffffffffffffffffffffffffffffffffffff9091169083156108fc029084906000818181858888f19350505050158015612418573d6000803e3d6000fd5b5060145460405173ffffffffffffffffffffffffffffffffffffffff9091169082156108fc029083906000818181858888f19350505050158015612460573d6000803e3d6000fd5b50891561256f57601854601254604080517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018e9052600060448201819052606482015273ffffffffffffffffffffffffffffffffffffffff9283166084820152610168420160a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561250657600080fd5b505af115801561251a573d6000803e3d6000fd5b50505050506040513d606081101561253157600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050601e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050505050505050565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8616600090815260069091529182205461260a918490611b4d565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526006602052604080822093909355908516815220546126469083611ad9565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526006602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b6000818361271d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315611bbb578181015183820152602001611ba3565b50600083858161272957fe5b0495945050505050565b60195460009073ffffffffffffffffffffffffffffffffffffffff1633148015906127615750601e5460ff16155b801561276f5750601c5460ff165b8015610f1e575050601d5430600090815260066020526040902054101590565b601a54151590565b61279f61278f565b156127a957600080fd5b43601a5542601b55565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205460ff161590565b6000806127fa60115461209a6127f3611020565b869061288b565b306000908152600660205260409020549091506128179082611ad9565b306000818152600660209081526040918290209390935580518481529051919273ffffffffffffffffffffffffffffffffffffffff8816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361288383826128fe565b949350505050565b60008261289a57506000610c69565b828202828482816128a757fe5b0414610d7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806129416021913960400191505060405180910390fd5b6000610d7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4d56fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212206d688fd01a918f27f22abdaf94d1f3ab4be93297d49c3448476a9dc59cb3face64736f6c63430007060033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x6080604052600436106102bf5760003560e01c8063a8aa1b311161016e578063dd62ed3e116100cb578063f2fde38b1161007f578063fcd45e4c11610064578063fcd45e4c14610a02578063fe9fbb8014610a7f578063ffecf51614610abf576102c6565b8063f2fde38b146109ad578063f887ea40146109ed576102c6565b8063df20fd49116100b0578063df20fd49146108f3578063ea1e1a8d14610925578063f0b37c041461096d576102c6565b8063dd62ed3e14610896578063deab8aea146108de576102c6565b8063bf56b37111610122578063d128b90c11610107578063d128b90c1461081a578063d46980161461082f578063d7c0103214610844576102c6565b8063bf56b37114610788578063c204642c1461079d576102c6565b8063b29a814011610153578063b29a8140146106ed578063b6a5d7de14610733578063bcdb446b14610773576102c6565b8063a8aa1b3114610692578063a9059cbb146106a7576102c6565b80634d54288b1161021c57806370a08231116101d05780637ae316d0116101b55780637ae316d014610668578063893d20e81461067d57806395d89b4114610336576102c6565b806370a08231146105ea57806375f0a8741461062a576102c6565b80635804f1e4116102015780635804f1e4146105ab5780635fe7208c146105c05780636ddd1713146105d5576102c6565b80634d54288b14610556578063571ac8b01461056b576102c6565b806323b872dd116102735780632f54bf6e116102585780632f54bf6e146104ab578063313ce567146104eb57806345139ac814610516576102c6565b806323b872dd1461042f5780632ca772951461047f576102c6565b806306fdde03116102a457806306fdde0314610336578063095ea7b3146103c057806318160ddd1461041a576102c6565b80630445b667146102cb57806304a66b48146102f2576102c6565b366102c657005b600080fd5b3480156102d757600080fd5b506102e0610aff565b60408051918252519081900360200190f35b3480156102fe57600080fd5b50610334600480360360a081101561031557600080fd5b5080359060208101359060408101359060608101359060800135610b05565b005b34801561034257600080fd5b5061034b610bc3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561038557818101518382015260200161036d565b50505050905090810190601f1680156103b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103cc57600080fd5b50610406600480360360408110156103e357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bfb565b604080519115158252519081900360200190f35b34801561042657600080fd5b506102e0610c6f565b34801561043b57600080fd5b506104066004803603606081101561045257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610c75565b34801561048b57600080fd5b50610334600480360360208110156104a257600080fd5b50351515610d83565b3480156104b757600080fd5b50610406600480360360208110156104ce57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e2e565b3480156104f757600080fd5b50610500610e4f565b6040805160ff9092168252519081900360200190f35b34801561052257600080fd5b506103346004803603602081101561053957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e54565b34801561056257600080fd5b50610406610f14565b34801561057757600080fd5b506104066004803603602081101561058e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f23565b3480156105b757600080fd5b506102e0610f4f565b3480156105cc57600080fd5b50610334610f55565b3480156105e157600080fd5b50610406610fd3565b3480156105f657600080fd5b506102e06004803603602081101561060d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fdc565b34801561063657600080fd5b5061063f611004565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561067457600080fd5b506102e0611020565b34801561068957600080fd5b5061063f61103f565b34801561069e57600080fd5b5061063f61105b565b3480156106b357600080fd5b50610406600480360360408110156106ca57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611077565b3480156106f957600080fd5b506104066004803603604081101561071057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611084565b34801561073f57600080fd5b506103346004803603602081101561075657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111a2565b34801561077f57600080fd5b50610334611268565b34801561079457600080fd5b506102e061130b565b3480156107a957600080fd5b50610334600480360360408110156107c057600080fd5b8101906020810181356401000000008111156107db57600080fd5b8201836020820111156107ed57600080fd5b8035906020019184602083028401116401000000008311171561080f57600080fd5b919350915035611311565b34801561082657600080fd5b506104066113d2565b34801561083b57600080fd5b5061063f6113e0565b34801561085057600080fd5b506103346004803603606081101561086757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604090910135166113fc565b3480156108a257600080fd5b506102e0600480360360408110156108b957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166114d4565b3480156108ea57600080fd5b5061063f61150c565b3480156108ff57600080fd5b506103346004803603604081101561091657600080fd5b50803515159060200135611528565b34801561093157600080fd5b506103346004803603604081101561094857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013515156115d1565b34801561097957600080fd5b506103346004803603602081101561099057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ae565b3480156109b957600080fd5b50610334600480360360208110156109d057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661176e565b3480156109f957600080fd5b5061063f611893565b348015610a0e57600080fd5b5061033460048036036020811015610a2557600080fd5b810190602081018135640100000000811115610a4057600080fd5b820183602082011115610a5257600080fd5b80359060200191846020830284011164010000000083111715610a7457600080fd5b5090925090506118af565b348015610a8b57600080fd5b5061040660048036036020811015610aa257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166119a9565b348015610acb57600080fd5b5061033460048036036020811015610ae257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166119d4565b601d5481565b610b0e33610e2e565b610b7957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600c859055600e849055600d839055600f829055610ba382610b9d85818989611ad9565b90611ad9565b60105560118190556005810460105410610bbc57600080fd5b5050505050565b60408051808201909152600381527f415045000000000000000000000000000000000000000000000000000000000060208201525b90565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610d6e57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600782528381203382529091529190912054610d3c918490611b4d565b73ffffffffffffffffffffffffffffffffffffffff851660009081526007602090815260408083203384529091529020555b610d79848484611bfe565b90505b9392505050565b610d8c336119a9565b610df757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601c8054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161490565b600990565b610e5d336119a9565b610ec857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000610f1e61201f565b905090565b6000610c69827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bfb565b601b5481565b610f5e336119a9565b610fc957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b610fd161204f565b565b601c5460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090205490565b60135473ffffffffffffffffffffffffffffffffffffffff1681565b600043601a5460020111156110385750601154610bf8565b5060105490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60195473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d7c338484611bfe565b600061108f336119a9565b6110fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101849052905173ffffffffffffffffffffffffffffffffffffffff85169163a9059cbb9160448083019260209291908290030181600087803b15801561116f57600080fd5b505af1158015611183573d6000803e3d6000fd5b505050506040513d602081101561119957600080fd5b50519392505050565b6111ab33610e2e565b61121657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b61127133610e2e565b6112dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f19350505050158015611308573d6000803e3d6000fd5b50565b601a5481565b61131a336119a9565b61138557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b828110156113cc576113c3338585848181106113a057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16846125a3565b50600101611388565b50505050565b601c54610100900460ff1681565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b61140533610e2e565b61147057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6012805473ffffffffffffffffffffffffffffffffffffffff9485167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617909155601580549385169382169390931790925560138054919093169116179055565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205490565b60145473ffffffffffffffffffffffffffffffffffffffff1681565b61153133610e2e565b61159c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001692151592909217909155601d55565b6115da33610e2e565b61164557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260086020908152604080832080549415157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00958616811790915560099092529091208054909216179055565b6116b733610e2e565b61172257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b61177733610e2e565b6117e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811782558082526001602081815260409384902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b60185473ffffffffffffffffffffffffffffffffffffffff1681565b6118b8336119a9565b61192357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b818110156119a4576001600a600085858581811061194057fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff1683525081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611926565b505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b6119dd336119a9565b611a4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000610d7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126b4565b600082820183811015610d7c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115611bf6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611bbb578181015183820152602001611ba3565b50505050905090810190601f168015611be85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604081205460ff1615611c3157600080fd5b601e5460ff1615611c4e57611c478484846125a3565b9050610d7c565b611c56612733565b15611c6357611c6361204f565b611c6b61278f565b158015611c92575060195473ffffffffffffffffffffffffffffffffffffffff8481169116145b15611cce5773ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040902054611cc657600080fd5b611cce612797565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8716600090815260069091529190912054611d36918490611b4d565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902055611d6461278f565b8015611d96575073ffffffffffffffffffffffffffffffffffffffff831660009081526009602052604090205460ff16155b8015611dbc575060195473ffffffffffffffffffffffffffffffffffffffff8581169116145b15611f1f5743601a546002011115611e335773ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040808220805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00918216811790925532845291909220805490911690911790555b611e3b61201f565b15611edc5760055473ffffffffffffffffffffffffffffffffffffffff841660009081526006602052604090205483011115611e7657600080fd5b600454821115611e8557600080fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b6020526040902054601e01421015611eba57600080fd5b73ffffffffffffffffffffffffffffffffffffffff83163214611edc57600080fd5b601c54610100900460ff168015611ef8575042601b5461025801105b15611f1f5773ffffffffffffffffffffffffffffffffffffffff83163214611f1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b60209081526040808320429055600890915281205460ff16611f7d57611f62856127b3565b611f6c5782611f76565b611f7685846127df565b9050611f80565b50815b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040902054611fb09082611ad9565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526006602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b6000601a54600014158015612039575043601a5460020111155b8015610f1e575042601b54610258011015905090565b601e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055601054600c54601d546000926120a09260029261209a929183919061288b565b90611a97565b905060006120b982601d546128fe90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106120ed57fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260025482519116908290600190811061212557fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091526018546040517f791ac94700000000000000000000000000000000000000000000000000000000815260048101868152600060248301819052306064840181905261016842016084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156121e95781810151838201526020016121d1565b505050509050019650505050505050600060405180830381600087803b15801561221257600080fd5b505af1158015612226573d6000803e3d6000fd5b50505050600061223f82476128fe90919063ffffffff16565b9050600061226561225c6002600c54611a9790919063ffffffff16565b601054906128fe565b90506000612287600261209a8461209a600c548861288b90919063ffffffff16565b905060006122a48361209a600e548761288b90919063ffffffff16565b905060006122c18461209a600d548861288b90919063ffffffff16565b905060006122de8561209a600f548961288b90919063ffffffff16565b60155490915073ffffffffffffffffffffffffffffffffffffffff166108fc612308856002611a97565b6040518115909202916000818181858888f19350505050158015612330573d6000803e3d6000fd5b5060165473ffffffffffffffffffffffffffffffffffffffff166108fc612358856004611a97565b6040518115909202916000818181858888f19350505050158015612380573d6000803e3d6000fd5b5060175473ffffffffffffffffffffffffffffffffffffffff166108fc6123a8856004611a97565b6040518115909202916000818181858888f193505050501580156123d0573d6000803e3d6000fd5b5060135460405173ffffffffffffffffffffffffffffffffffffffff9091169083156108fc029084906000818181858888f19350505050158015612418573d6000803e3d6000fd5b5060145460405173ffffffffffffffffffffffffffffffffffffffff9091169082156108fc029083906000818181858888f19350505050158015612460573d6000803e3d6000fd5b50891561256f57601854601254604080517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018e9052600060448201819052606482015273ffffffffffffffffffffffffffffffffffffffff9283166084820152610168420160a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561250657600080fd5b505af115801561251a573d6000803e3d6000fd5b50505050506040513d606081101561253157600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050601e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050505050505050565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8616600090815260069091529182205461260a918490611b4d565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526006602052604080822093909355908516815220546126469083611ad9565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526006602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b6000818361271d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315611bbb578181015183820152602001611ba3565b50600083858161272957fe5b0495945050505050565b60195460009073ffffffffffffffffffffffffffffffffffffffff1633148015906127615750601e5460ff16155b801561276f5750601c5460ff165b8015610f1e575050601d5430600090815260066020526040902054101590565b601a54151590565b61279f61278f565b156127a957600080fd5b43601a5542601b55565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205460ff161590565b6000806127fa60115461209a6127f3611020565b869061288b565b306000908152600660205260409020549091506128179082611ad9565b306000818152600660209081526040918290209390935580518481529051919273ffffffffffffffffffffffffffffffffffffffff8816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361288383826128fe565b949350505050565b60008261289a57506000610c69565b828202828482816128a757fe5b0414610d7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806129416021913960400191505060405180910390fd5b6000610d7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4d56fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212206d688fd01a918f27f22abdaf94d1f3ab4be93297d49c3448476a9dc59cb3face64736f6c63430007060033
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.