Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 SBW
Holders
93
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 4 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SBWager
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 800 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED /* * Superbowl Wager * * Telegram: https://t.me/SBWPortal * Dapp: https://superbowlwager.com */ pragma solidity ^0.8.17; 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) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { 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; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { require(adr != owner, "OWNER cant be unauthorized"); authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { require(adr != owner, "Already the owner"); authorizations[owner] = false; 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 SBWager is ERC20, Auth { using SafeMath for uint256; address WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Superbowl Wager"; string constant _symbol = "SBW"; uint8 constant _decimals = 4; uint256 _totalSupply = 1 * 10**9 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply / 100; uint256 public _maxWalletToken = _totalSupply / 50; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isWalletLimitExempt; uint256 public liquidityFee = 10; uint256 public marketingFee = 23; uint256 public devFee = 1; uint256 public totalFee = marketingFee + liquidityFee + devFee; uint256 public constant feeDenominator = 100; // Track address to choices mapping(address => uint8) public choices; // Track position of choice to wallet mapping(uint256 => address) public choiceNumber; // Track total number of votes for each team uint256 chiefsCount = 0; uint256 eaglesCount = 0; event VoteCasted(address, uint8); address public autoLiquidityReceiver; address public marketingFeeReceiver; address public devFeeReceiver; IDEXRouter public router; address public pair; bool public tradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000; // Swap at .1% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // uniswap WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x1cA2075370bB4858e9832bE560eaed6f1B9287b1; // Marketing wallet devFeeReceiver = 0x927E6d9fdbf4EE2C45F8593D0418B5524a767214; // Payout wallet isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[ZERO] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[DEAD] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } 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, type(uint256).max); } 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] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function updateMaxWallet(uint256 maxWalletPercent) external onlyOwner { require(maxWalletPercent >= 2, "Min 2%"); require(maxWalletPercent <= 100, "Max 100%"); _maxWalletToken = _totalSupply * maxWalletPercent / 100; } function updateMaxTransaction(uint256 maxTransactionPercent) external onlyOwner { require(maxTransactionPercent >= 1, "Min 1%"); require(maxTransactionPercent <= 100, "Max 100%"); _maxTxAmount = _totalSupply * maxTransactionPercent / 100; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen,"Trading not open yet"); } if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) { require((balanceOf(recipient) + amount) <= _maxWalletToken,"max wallet limit reached"); } require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "TX Limit Exceeded"); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(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 takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee).div(feeDenominator); if(feeAmount > 0){ _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 clearStuckBalance(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer(amountETH * amountPercentage / 100); } function clearContractSells(uint256 amountPercentage) external onlyOwner { uint256 tokensInContract = balanceOf(address(this)); uint256 tokenstosell = tokensInContract.mul(amountPercentage).div(100); _basicTransfer(address(this),msg.sender,tokenstosell); } function openTrading() external onlyOwner { tradingOpen = true; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee); payable(marketingFeeReceiver).transfer(amountETHMarketing); payable(devFeeReceiver).transfer(amountETHDev); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner { liquidityFee = _liquidityFee; marketingFee = _marketingFee; devFee = _devFee; totalFee = _liquidityFee + _marketingFee + _devFee; require(totalFee < 21, "Tax cannot be more than 20%"); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } /* * Adds a user's choice and uses a key-value pair to match an address to a choice. * * @param - uint8 choice * NOTE: 1 is Chiefs, 2 is Eagles. */ function addChoice(uint8 choice) public { require(_balances[msg.sender] >= _totalSupply / 500, "You need to hold more"); // Require the choice is within the bounds require(choice == 1 || choice == 2, "Not choosing a team"); // Require the user has not yet chosen a team require(choices[msg.sender] == 0, "You have already chosen a team"); // Add the users choice to the choices mapping choices[msg.sender] = choice; choiceNumber[eaglesCount+chiefsCount] = msg.sender; // Ternarily increments chiefsCount || eaglesCount choice == 1 ? chiefsCount++ : eaglesCount++; emit VoteCasted(msg.sender, choice); } function getChiefsCount() public view returns (uint256) { return chiefsCount; } function getEaglesCount() public view returns (uint256) { return eaglesCount; } function getWagerWinners(uint8 winner) public view returns (address[] memory) { // Allocate memory for the big fat winners address[] memory winners = new address[](chiefsCount + eaglesCount); uint256 count = 0; // Loop through all entries for (uint256 i = 0; i < chiefsCount + eaglesCount; i++) { if (choices[choiceNumber[i]] == winner && _balances[choiceNumber[i]] >= _totalSupply / 500) { winners[count] = choiceNumber[i]; count++; } } return winners; } function wagerWinnerAmounts(uint8 winner) public view returns (uint256[] memory) { // Allocate memory for the big fat winners uint256[] memory amounts = new uint256[](chiefsCount + eaglesCount); uint256 count = 0; // Loop through all entries for (uint256 i = 0; i < chiefsCount + eaglesCount; i++) { if (choices[choiceNumber[i]] == winner && _balances[choiceNumber[i]] >= _totalSupply / 500) { amounts[count] = _balances[choiceNumber[i]] / _totalSupply; count++; } } return amounts; } // Winners payed out via disperse.app with the return values of the above 2 functions event AutoLiquify(uint256 amountETH, uint256 amountTokens); }
{ "optimizer": { "enabled": true, "runs": 800 }, "evmVersion": "london", "remappings": [], "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":"amountTokens","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"VoteCasted","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"choice","type":"uint8"}],"name":"addChoice","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":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"choiceNumber","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"choices","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearContractSells","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChiefsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEaglesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"winner","type":"uint8"}],"name":"getWagerWinners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setFees","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":"totalFee","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address 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"},{"inputs":[{"internalType":"uint256","name":"maxTransactionPercent","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletPercent","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"winner","type":"uint8"}],"name":"wagerWinnerAmounts","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a620004f6565b6200004190633b9aca006200050e565b600555606460055462000055919062000528565b600655603260055462000069919062000528565b600755600a600d556017600e556001600f55600f54600d54600e546200009091906200054b565b6200009c91906200054b565b601055600060138190556014556019805461ffff60a01b1916600160a81b179055600554620000cf906103e89062000528565b601a55348015620000df57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560188054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000166573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018c919062000561565b600280546001600160a01b0319166001600160a01b039283161790556018546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000211919062000561565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000289919062000561565b601980546001600160a01b039283166001600160a01b031991821617909155306000818152600960209081526040808320601854871684528252808320600019905560158054861633908117909155601680548716731ca2075370bb4858e9832be560eaed6f1b9287b11790556017805490961673927e6d9fdbf4ee2c45f8593d0418b5524a76721417909555848352600a8252808320805460ff199081166001908117909255600b8452828520805482168317905560038054891686528386208054831684179055600454891686528386208054831684179055878652600c85528386208054831684179055958552828520805482168317905594549096168352808320805490941690951790925560055483825260088352848220819055935193845291927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200058c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004385781600019048211156200041c576200041c620003e1565b808516156200042a57918102915b93841c9390800290620003fc565b509250929050565b6000826200045157506001620004f0565b816200046057506000620004f0565b81600181146200047957600281146200048457620004a4565b6001915050620004f0565b60ff841115620004985762000498620003e1565b50506001821b620004f0565b5060208310610133831016604e8410600b8410161715620004c9575081810a620004f0565b620004d58383620003f7565b8060001904821115620004ec57620004ec620003e1565b0290505b92915050565b60006200050760ff84168362000440565b9392505050565b8082028115828204841417620004f057620004f0620003e1565b6000826200054657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004f057620004f0620003e1565b6000602082840312156200057457600080fd5b81516001600160a01b03811681146200050757600080fd5b6125bb806200059c6000396000f3fe60806040526004361061030c5760003560e01c80637b13f8c81161019a578063d42b92fd116100e1578063e96fada21161008a578063f887ea4011610064578063f887ea4014610910578063fe9fbb8014610930578063ffb54a991461096957600080fd5b8063e96fada2146108b0578063f0b37c04146108d0578063f2fde38b146108f057600080fd5b8063dc62b296116100bb578063dc62b29614610814578063dd62ed3e1461084a578063df20fd491461089057600080fd5b8063d42b92fd146107b4578063d7c01032146107d4578063dab84ee7146107f457600080fd5b8063a8aa1b3111610143578063c9567bf91161011d578063c9567bf91461075f578063ca33e64c14610774578063cec10c111461079457600080fd5b8063a8aa1b31146106ff578063a9059cbb1461071f578063b6a5d7de1461073f57600080fd5b806395d89b411161017457806395d89b411461069057806398118cb4146106bc5780639d608be1146106d257600080fd5b80637b13f8c8146106285780637d1db4a514610648578063893d20e81461065e57600080fd5b80632f54bf6e1161025e5780635ba5203f116102075780636ddd1713116101e15780636ddd1713146105bb57806370a08231146105dc57806378109e541461061257600080fd5b80635ba5203f146105625780636827e7641461058f5780636b67c4df146105a557600080fd5b8063410346b311610238578063410346b3146104fd57806341db0fe61461052d578063571ac8b01461054257600080fd5b80632f54bf6e14610497578063313ce567146104c65780633cb5df06146104e857600080fd5b806318160ddd116102c05780631df4ccfc1161029a5780631df4ccfc1461044c57806323b872dd146104625780632b112e491461048257600080fd5b806318160ddd146103f75780631c499ab01461040c5780631da1db5e1461042c57600080fd5b806306fdde03116102f157806306fdde0314610363578063095ea7b3146103b2578063180b0d7e146103e257600080fd5b80630445b667146103185780630517d13d1461034157600080fd5b3661031357005b600080fd5b34801561032457600080fd5b5061032e601a5481565b6040519081526020015b60405180910390f35b34801561034d57600080fd5b5061036161035c3660046121c7565b61098a565b005b34801561036f57600080fd5b5060408051808201909152600f81527f5375706572626f776c205761676572000000000000000000000000000000000060208201525b60405161033891906121e0565b3480156103be57600080fd5b506103d26103cd366004612246565b610a7f565b6040519015158152602001610338565b3480156103ee57600080fd5b5061032e606481565b34801561040357600080fd5b5060055461032e565b34801561041857600080fd5b506103616104273660046121c7565b610aec565b34801561043857600080fd5b506103616104473660046121c7565b610bdc565b34801561045857600080fd5b5061032e60105481565b34801561046e57600080fd5b506103d261047d366004612272565b610c67565b34801561048e57600080fd5b5061032e610d30565b3480156104a357600080fd5b506103d26104b23660046122b3565b6000546001600160a01b0391821691161490565b3480156104d257600080fd5b5060045b60405160ff9091168152602001610338565b3480156104f457600080fd5b5060135461032e565b34801561050957600080fd5b506104d66105183660046122b3565b60116020526000908152604090205460ff1681565b34801561053957600080fd5b5060145461032e565b34801561054e57600080fd5b506103d261055d3660046122b3565b610d82565b34801561056e57600080fd5b5061058261057d3660046122d0565b610d90565b60405161033891906122f3565b34801561059b57600080fd5b5061032e600f5481565b3480156105b157600080fd5b5061032e600e5481565b3480156105c757600080fd5b506019546103d290600160a81b900460ff1681565b3480156105e857600080fd5b5061032e6105f73660046122b3565b6001600160a01b031660009081526008602052604090205490565b34801561061e57600080fd5b5061032e60075481565b34801561063457600080fd5b506103616106433660046121c7565b610eec565b34801561065457600080fd5b5061032e60065481565b34801561066a57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610338565b34801561069c57600080fd5b5060408051808201909152600381526253425760e81b60208201526103a5565b3480156106c857600080fd5b5061032e600d5481565b3480156106de57600080fd5b506106f26106ed3660046122d0565b610f68565b604051610338919061237b565b34801561070b57600080fd5b50601954610678906001600160a01b031681565b34801561072b57600080fd5b506103d261073a366004612246565b6110b3565b34801561074b57600080fd5b5061036161075a3660046122b3565b6110c0565b34801561076b57600080fd5b5061036161112a565b34801561078057600080fd5b50601554610678906001600160a01b031681565b3480156107a057600080fd5b506103616107af36600461238e565b61119d565b3480156107c057600080fd5b506103616107cf3660046122d0565b611258565b3480156107e057600080fd5b506103616107ef3660046123ba565b611461565b34801561080057600080fd5b50601754610678906001600160a01b031681565b34801561082057600080fd5b5061067861082f3660046121c7565b6012602052600090815260409020546001600160a01b031681565b34801561085657600080fd5b5061032e610865366004612405565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561089c57600080fd5b506103616108ab36600461243e565b6114f0565b3480156108bc57600080fd5b50601654610678906001600160a01b031681565b3480156108dc57600080fd5b506103616108eb3660046122b3565b611570565b3480156108fc57600080fd5b5061036161090b3660046122b3565b611632565b34801561091c57600080fd5b50601854610678906001600160a01b031681565b34801561093c57600080fd5b506103d261094b3660046122b3565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561097557600080fd5b506019546103d290600160a01b900460ff1681565b6000546001600160a01b031633146109d25760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b6001811015610a235760405162461bcd60e51b815260206004820152600660248201527f4d696e203125000000000000000000000000000000000000000000000000000060448201526064016109c9565b6064811115610a5f5760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b60448201526064016109c9565b606481600554610a6f9190612477565b610a79919061248e565b60065550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ada9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610b2f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b6002811015610b805760405162461bcd60e51b815260206004820152600660248201527f4d696e203225000000000000000000000000000000000000000000000000000060448201526064016109c9565b6064811115610bbc5760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b60448201526064016109c9565b606481600554610bcc9190612477565b610bd6919061248e565b60075550565b6000546001600160a01b03163314610c1f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b47336108fc6064610c308585612477565b610c3a919061248e565b6040518115909202916000818181858888f19350505050158015610c62573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610d1b57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610cf691849061175a565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610d26848484611794565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610d7d906003546001600160a01b0316600090815260086020526040902054610d779060055490611b4c565b90611b4c565b905090565b6000610ae682600019610a7f565b60606000601454601354610da491906124b0565b67ffffffffffffffff811115610dbc57610dbc6124c3565b604051908082528060200260200182016040528015610de5578160200160208202803683370190505b5090506000805b601454601354610dfc91906124b0565b811015610ee3576000818152601260209081526040808320546001600160a01b03168352601190915290205460ff8681169116148015610e6f57506101f4600554610e47919061248e565b6000828152601260209081526040808320546001600160a01b03168352600890915290205410155b15610ed1576005546000828152601260209081526040808320546001600160a01b031683526008909152902054610ea6919061248e565b838381518110610eb857610eb86124d9565b602090810291909101015281610ecd816124ef565b9250505b80610edb816124ef565b915050610dec565b50909392505050565b6000546001600160a01b03163314610f2f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b3060009081526008602052604081205490610f556064610f4f8486611b8e565b90611c10565b9050610f62303383611c52565b50505050565b60606000601454601354610f7c91906124b0565b67ffffffffffffffff811115610f9457610f946124c3565b604051908082528060200260200182016040528015610fbd578160200160208202803683370190505b5090506000805b601454601354610fd491906124b0565b811015610ee3576000818152601260209081526040808320546001600160a01b03168352601190915290205460ff868116911614801561104757506101f460055461101f919061248e565b6000828152601260209081526040808320546001600160a01b03168352600890915290205410155b156110a15760008181526012602052604090205483516001600160a01b039091169084908490811061107b5761107b6124d9565b6001600160a01b03909216602092830291909101909101528161109d816124ef565b9250505b806110ab816124ef565b915050610fc4565b6000610d29338484611794565b6000546001600160a01b031633146111035760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b0316331461116d5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b601980547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055565b6000546001600160a01b031633146111e05760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b600d839055600e829055600f819055806111fa83856124b0565b61120491906124b0565b6010819055601511610c625760405162461bcd60e51b815260206004820152601b60248201527f5461782063616e6e6f74206265206d6f7265207468616e20323025000000000060448201526064016109c9565b6101f4600554611268919061248e565b3360009081526008602052604090205410156112c65760405162461bcd60e51b815260206004820152601560248201527f596f75206e65656420746f20686f6c64206d6f7265000000000000000000000060448201526064016109c9565b8060ff16600114806112db57508060ff166002145b6113275760405162461bcd60e51b815260206004820152601360248201527f4e6f742063686f6f73696e672061207465616d0000000000000000000000000060448201526064016109c9565b3360009081526011602052604090205460ff16156113875760405162461bcd60e51b815260206004820152601e60248201527f596f75206861766520616c72656164792063686f73656e2061207465616d000060448201526064016109c9565b336000818152601160205260408120805460ff191660ff8516179055601354601454601292916113b6916124b0565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060ff1660011461140c5760148054906000611403836124ef565b91905055611421565b6013805490600061141c836124ef565b919050555b506040805133815260ff831660208201527f76580ac7c171cd3d2029d56fd501d1351f2db92da148447b53227803bf940c0291015b60405180910390a150565b6000546001600160a01b031633146114a45760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b601580546001600160a01b0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155601680549385169382169390931790925560178054919093169116179055565b6000546001600160a01b031633146115335760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b60198054921515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff90931692909217909155601a55565b6000546001600160a01b031633146115b35760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b6000546001600160a01b03908116908216036116115760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016109c9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146116755760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b6000546001600160a01b03908116908216036116d35760405162461bcd60e51b815260206004820152601160248201527f416c726561647920746865206f776e657200000000000000000000000000000060448201526064016109c9565b600080546001600160a01b039081168252600160208181526040808520805460ff19908116909155855473ffffffffffffffffffffffffffffffffffffffff19169487169485178655848652948190208054909516909217909355519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639101611456565b6000818484111561177e5760405162461bcd60e51b81526004016109c991906121e0565b50600061178b8486612508565b95945050505050565b601b5460009060ff16156117b4576117ad848484611c52565b9050610d29565b6001600160a01b03841660009081526001602052604090205460ff161580156117f657506001600160a01b03831660009081526001602052604090205460ff16155b1561185457601954600160a01b900460ff166118545760405162461bcd60e51b815260206004820152601460248201527f54726164696e67206e6f74206f70656e2079657400000000000000000000000060448201526064016109c9565b6001600160a01b03841660009081526001602052604090205460ff1615801561189657506001600160a01b0384166000908152600c602052604090205460ff16155b80156118bb57506001600160a01b0383166000908152600c602052604090205460ff16155b80156118d557506019546001600160a01b03848116911614155b1561195557600754826118fd856001600160a01b031660009081526008602052604090205490565b61190791906124b0565b11156119555760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016109c9565b6006548211158061197e57506001600160a01b0384166000908152600b602052604090205460ff165b806119a157506001600160a01b0383166000908152600b602052604090205460ff165b6119ed5760405162461bcd60e51b815260206004820152601160248201527f5458204c696d697420457863656564656400000000000000000000000000000060448201526064016109c9565b6119f5611d41565b15611a0257611a02611d97565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b038716600090815260089091529190912054611a5d91849061175a565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff1680611aaa57506001600160a01b0384166000908152600a602052604090205460ff165b611abd57611ab8858461208f565b611abf565b825b6001600160a01b038516600090815260086020526040902054909150611ae5908261213a565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b399085815260200190565b60405180910390a3506001949350505050565b6000610d2983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061175a565b600082600003611ba057506000610ae6565b6000611bac8385612477565b905082611bb9858361248e565b14610d295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109c9565b6000610d2983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612199565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0386166000908152600890915291822054611cac91849061175a565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611cdb908361213a565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d2f9086815260200190565b60405180910390a35060019392505050565b6019546000906001600160a01b03163314801590611d625750601b5460ff16155b8015611d775750601954600160a81b900460ff165b8015610d7d575050601a5430600090815260086020526040902054101590565b601b805460ff19166001179055600d54601054601a54600091611dc391600291610f4f91829087611b8e565b90506000611ddc82601a54611b4c90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611e1657611e166124d9565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611e4757611e476124d9565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b815291169063791ac94790611e8d90859060009086903090429060040161251b565b600060405180830381600087803b158015611ea757600080fd5b505af1158015611ebb573d6000803e3d6000fd5b5047925060009150611edc9050611ed3876002611c10565b60105490611b4c565b90506000611ef16002610f4f8481878c611b8e565b90506000611f0e83610f4f600e5487611b8e90919063ffffffff16565b90506000611f2b84610f4f600f5488611b8e90919063ffffffff16565b6016546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611f66573d6000803e3d6000fd5b506017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fa1573d6000803e3d6000fd5b50871561207a5760185460155460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015612018573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061203d9190612557565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff1916905550505050505050565b6000806120ac6064610f4f60105486611b8e90919063ffffffff16565b9050801561212857306000908152600860205260409020546120ce908261213a565b30600081815260086020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061211f9085815260200190565b60405180910390a35b6121328382611b4c565b949350505050565b60008061214783856124b0565b905083811015610d295760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109c9565b600081836121ba5760405162461bcd60e51b81526004016109c991906121e0565b50600061178b848661248e565b6000602082840312156121d957600080fd5b5035919050565b600060208083528351808285015260005b8181101561220d578581018301518582016040015282016121f1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461224357600080fd5b50565b6000806040838503121561225957600080fd5b82356122648161222e565b946020939093013593505050565b60008060006060848603121561228757600080fd5b83356122928161222e565b925060208401356122a28161222e565b929592945050506040919091013590565b6000602082840312156122c557600080fd5b8135610d298161222e565b6000602082840312156122e257600080fd5b813560ff81168114610d2957600080fd5b6020808252825182820181905260009190848201906040850190845b8181101561232b5783518352928401929184019160010161230f565b50909695505050505050565b600081518084526020808501945080840160005b838110156123705781516001600160a01b03168752958201959082019060010161234b565b509495945050505050565b602081526000610d296020830184612337565b6000806000606084860312156123a357600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156123cf57600080fd5b83356123da8161222e565b925060208401356123ea8161222e565b915060408401356123fa8161222e565b809150509250925092565b6000806040838503121561241857600080fd5b82356124238161222e565b915060208301356124338161222e565b809150509250929050565b6000806040838503121561245157600080fd5b8235801515811461226457600080fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610ae657610ae6612461565b6000826124ab57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610ae657610ae6612461565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161250157612501612461565b5060010190565b81810381811115610ae657610ae6612461565b85815284602082015260a06040820152600061253a60a0830186612337565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561256c57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204d3c21bdb62e8cf65b703dd339e5411ed3247134612f75835fa0501065a73e3d64736f6c63430008110033
Deployed Bytecode
0x60806040526004361061030c5760003560e01c80637b13f8c81161019a578063d42b92fd116100e1578063e96fada21161008a578063f887ea4011610064578063f887ea4014610910578063fe9fbb8014610930578063ffb54a991461096957600080fd5b8063e96fada2146108b0578063f0b37c04146108d0578063f2fde38b146108f057600080fd5b8063dc62b296116100bb578063dc62b29614610814578063dd62ed3e1461084a578063df20fd491461089057600080fd5b8063d42b92fd146107b4578063d7c01032146107d4578063dab84ee7146107f457600080fd5b8063a8aa1b3111610143578063c9567bf91161011d578063c9567bf91461075f578063ca33e64c14610774578063cec10c111461079457600080fd5b8063a8aa1b31146106ff578063a9059cbb1461071f578063b6a5d7de1461073f57600080fd5b806395d89b411161017457806395d89b411461069057806398118cb4146106bc5780639d608be1146106d257600080fd5b80637b13f8c8146106285780637d1db4a514610648578063893d20e81461065e57600080fd5b80632f54bf6e1161025e5780635ba5203f116102075780636ddd1713116101e15780636ddd1713146105bb57806370a08231146105dc57806378109e541461061257600080fd5b80635ba5203f146105625780636827e7641461058f5780636b67c4df146105a557600080fd5b8063410346b311610238578063410346b3146104fd57806341db0fe61461052d578063571ac8b01461054257600080fd5b80632f54bf6e14610497578063313ce567146104c65780633cb5df06146104e857600080fd5b806318160ddd116102c05780631df4ccfc1161029a5780631df4ccfc1461044c57806323b872dd146104625780632b112e491461048257600080fd5b806318160ddd146103f75780631c499ab01461040c5780631da1db5e1461042c57600080fd5b806306fdde03116102f157806306fdde0314610363578063095ea7b3146103b2578063180b0d7e146103e257600080fd5b80630445b667146103185780630517d13d1461034157600080fd5b3661031357005b600080fd5b34801561032457600080fd5b5061032e601a5481565b6040519081526020015b60405180910390f35b34801561034d57600080fd5b5061036161035c3660046121c7565b61098a565b005b34801561036f57600080fd5b5060408051808201909152600f81527f5375706572626f776c205761676572000000000000000000000000000000000060208201525b60405161033891906121e0565b3480156103be57600080fd5b506103d26103cd366004612246565b610a7f565b6040519015158152602001610338565b3480156103ee57600080fd5b5061032e606481565b34801561040357600080fd5b5060055461032e565b34801561041857600080fd5b506103616104273660046121c7565b610aec565b34801561043857600080fd5b506103616104473660046121c7565b610bdc565b34801561045857600080fd5b5061032e60105481565b34801561046e57600080fd5b506103d261047d366004612272565b610c67565b34801561048e57600080fd5b5061032e610d30565b3480156104a357600080fd5b506103d26104b23660046122b3565b6000546001600160a01b0391821691161490565b3480156104d257600080fd5b5060045b60405160ff9091168152602001610338565b3480156104f457600080fd5b5060135461032e565b34801561050957600080fd5b506104d66105183660046122b3565b60116020526000908152604090205460ff1681565b34801561053957600080fd5b5060145461032e565b34801561054e57600080fd5b506103d261055d3660046122b3565b610d82565b34801561056e57600080fd5b5061058261057d3660046122d0565b610d90565b60405161033891906122f3565b34801561059b57600080fd5b5061032e600f5481565b3480156105b157600080fd5b5061032e600e5481565b3480156105c757600080fd5b506019546103d290600160a81b900460ff1681565b3480156105e857600080fd5b5061032e6105f73660046122b3565b6001600160a01b031660009081526008602052604090205490565b34801561061e57600080fd5b5061032e60075481565b34801561063457600080fd5b506103616106433660046121c7565b610eec565b34801561065457600080fd5b5061032e60065481565b34801561066a57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610338565b34801561069c57600080fd5b5060408051808201909152600381526253425760e81b60208201526103a5565b3480156106c857600080fd5b5061032e600d5481565b3480156106de57600080fd5b506106f26106ed3660046122d0565b610f68565b604051610338919061237b565b34801561070b57600080fd5b50601954610678906001600160a01b031681565b34801561072b57600080fd5b506103d261073a366004612246565b6110b3565b34801561074b57600080fd5b5061036161075a3660046122b3565b6110c0565b34801561076b57600080fd5b5061036161112a565b34801561078057600080fd5b50601554610678906001600160a01b031681565b3480156107a057600080fd5b506103616107af36600461238e565b61119d565b3480156107c057600080fd5b506103616107cf3660046122d0565b611258565b3480156107e057600080fd5b506103616107ef3660046123ba565b611461565b34801561080057600080fd5b50601754610678906001600160a01b031681565b34801561082057600080fd5b5061067861082f3660046121c7565b6012602052600090815260409020546001600160a01b031681565b34801561085657600080fd5b5061032e610865366004612405565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561089c57600080fd5b506103616108ab36600461243e565b6114f0565b3480156108bc57600080fd5b50601654610678906001600160a01b031681565b3480156108dc57600080fd5b506103616108eb3660046122b3565b611570565b3480156108fc57600080fd5b5061036161090b3660046122b3565b611632565b34801561091c57600080fd5b50601854610678906001600160a01b031681565b34801561093c57600080fd5b506103d261094b3660046122b3565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561097557600080fd5b506019546103d290600160a01b900460ff1681565b6000546001600160a01b031633146109d25760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b6001811015610a235760405162461bcd60e51b815260206004820152600660248201527f4d696e203125000000000000000000000000000000000000000000000000000060448201526064016109c9565b6064811115610a5f5760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b60448201526064016109c9565b606481600554610a6f9190612477565b610a79919061248e565b60065550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ada9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610b2f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b6002811015610b805760405162461bcd60e51b815260206004820152600660248201527f4d696e203225000000000000000000000000000000000000000000000000000060448201526064016109c9565b6064811115610bbc5760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b60448201526064016109c9565b606481600554610bcc9190612477565b610bd6919061248e565b60075550565b6000546001600160a01b03163314610c1f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b47336108fc6064610c308585612477565b610c3a919061248e565b6040518115909202916000818181858888f19350505050158015610c62573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610d1b57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610cf691849061175a565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610d26848484611794565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610d7d906003546001600160a01b0316600090815260086020526040902054610d779060055490611b4c565b90611b4c565b905090565b6000610ae682600019610a7f565b60606000601454601354610da491906124b0565b67ffffffffffffffff811115610dbc57610dbc6124c3565b604051908082528060200260200182016040528015610de5578160200160208202803683370190505b5090506000805b601454601354610dfc91906124b0565b811015610ee3576000818152601260209081526040808320546001600160a01b03168352601190915290205460ff8681169116148015610e6f57506101f4600554610e47919061248e565b6000828152601260209081526040808320546001600160a01b03168352600890915290205410155b15610ed1576005546000828152601260209081526040808320546001600160a01b031683526008909152902054610ea6919061248e565b838381518110610eb857610eb86124d9565b602090810291909101015281610ecd816124ef565b9250505b80610edb816124ef565b915050610dec565b50909392505050565b6000546001600160a01b03163314610f2f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b3060009081526008602052604081205490610f556064610f4f8486611b8e565b90611c10565b9050610f62303383611c52565b50505050565b60606000601454601354610f7c91906124b0565b67ffffffffffffffff811115610f9457610f946124c3565b604051908082528060200260200182016040528015610fbd578160200160208202803683370190505b5090506000805b601454601354610fd491906124b0565b811015610ee3576000818152601260209081526040808320546001600160a01b03168352601190915290205460ff868116911614801561104757506101f460055461101f919061248e565b6000828152601260209081526040808320546001600160a01b03168352600890915290205410155b156110a15760008181526012602052604090205483516001600160a01b039091169084908490811061107b5761107b6124d9565b6001600160a01b03909216602092830291909101909101528161109d816124ef565b9250505b806110ab816124ef565b915050610fc4565b6000610d29338484611794565b6000546001600160a01b031633146111035760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b0316331461116d5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b601980547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055565b6000546001600160a01b031633146111e05760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b600d839055600e829055600f819055806111fa83856124b0565b61120491906124b0565b6010819055601511610c625760405162461bcd60e51b815260206004820152601b60248201527f5461782063616e6e6f74206265206d6f7265207468616e20323025000000000060448201526064016109c9565b6101f4600554611268919061248e565b3360009081526008602052604090205410156112c65760405162461bcd60e51b815260206004820152601560248201527f596f75206e65656420746f20686f6c64206d6f7265000000000000000000000060448201526064016109c9565b8060ff16600114806112db57508060ff166002145b6113275760405162461bcd60e51b815260206004820152601360248201527f4e6f742063686f6f73696e672061207465616d0000000000000000000000000060448201526064016109c9565b3360009081526011602052604090205460ff16156113875760405162461bcd60e51b815260206004820152601e60248201527f596f75206861766520616c72656164792063686f73656e2061207465616d000060448201526064016109c9565b336000818152601160205260408120805460ff191660ff8516179055601354601454601292916113b6916124b0565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060ff1660011461140c5760148054906000611403836124ef565b91905055611421565b6013805490600061141c836124ef565b919050555b506040805133815260ff831660208201527f76580ac7c171cd3d2029d56fd501d1351f2db92da148447b53227803bf940c0291015b60405180910390a150565b6000546001600160a01b031633146114a45760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b601580546001600160a01b0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155601680549385169382169390931790925560178054919093169116179055565b6000546001600160a01b031633146115335760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b60198054921515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff90931692909217909155601a55565b6000546001600160a01b031633146115b35760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b6000546001600160a01b03908116908216036116115760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016109c9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146116755760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064016109c9565b6000546001600160a01b03908116908216036116d35760405162461bcd60e51b815260206004820152601160248201527f416c726561647920746865206f776e657200000000000000000000000000000060448201526064016109c9565b600080546001600160a01b039081168252600160208181526040808520805460ff19908116909155855473ffffffffffffffffffffffffffffffffffffffff19169487169485178655848652948190208054909516909217909355519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639101611456565b6000818484111561177e5760405162461bcd60e51b81526004016109c991906121e0565b50600061178b8486612508565b95945050505050565b601b5460009060ff16156117b4576117ad848484611c52565b9050610d29565b6001600160a01b03841660009081526001602052604090205460ff161580156117f657506001600160a01b03831660009081526001602052604090205460ff16155b1561185457601954600160a01b900460ff166118545760405162461bcd60e51b815260206004820152601460248201527f54726164696e67206e6f74206f70656e2079657400000000000000000000000060448201526064016109c9565b6001600160a01b03841660009081526001602052604090205460ff1615801561189657506001600160a01b0384166000908152600c602052604090205460ff16155b80156118bb57506001600160a01b0383166000908152600c602052604090205460ff16155b80156118d557506019546001600160a01b03848116911614155b1561195557600754826118fd856001600160a01b031660009081526008602052604090205490565b61190791906124b0565b11156119555760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016109c9565b6006548211158061197e57506001600160a01b0384166000908152600b602052604090205460ff165b806119a157506001600160a01b0383166000908152600b602052604090205460ff165b6119ed5760405162461bcd60e51b815260206004820152601160248201527f5458204c696d697420457863656564656400000000000000000000000000000060448201526064016109c9565b6119f5611d41565b15611a0257611a02611d97565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b038716600090815260089091529190912054611a5d91849061175a565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff1680611aaa57506001600160a01b0384166000908152600a602052604090205460ff165b611abd57611ab8858461208f565b611abf565b825b6001600160a01b038516600090815260086020526040902054909150611ae5908261213a565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b399085815260200190565b60405180910390a3506001949350505050565b6000610d2983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061175a565b600082600003611ba057506000610ae6565b6000611bac8385612477565b905082611bb9858361248e565b14610d295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109c9565b6000610d2983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612199565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0386166000908152600890915291822054611cac91849061175a565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611cdb908361213a565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d2f9086815260200190565b60405180910390a35060019392505050565b6019546000906001600160a01b03163314801590611d625750601b5460ff16155b8015611d775750601954600160a81b900460ff165b8015610d7d575050601a5430600090815260086020526040902054101590565b601b805460ff19166001179055600d54601054601a54600091611dc391600291610f4f91829087611b8e565b90506000611ddc82601a54611b4c90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611e1657611e166124d9565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611e4757611e476124d9565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b815291169063791ac94790611e8d90859060009086903090429060040161251b565b600060405180830381600087803b158015611ea757600080fd5b505af1158015611ebb573d6000803e3d6000fd5b5047925060009150611edc9050611ed3876002611c10565b60105490611b4c565b90506000611ef16002610f4f8481878c611b8e565b90506000611f0e83610f4f600e5487611b8e90919063ffffffff16565b90506000611f2b84610f4f600f5488611b8e90919063ffffffff16565b6016546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611f66573d6000803e3d6000fd5b506017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fa1573d6000803e3d6000fd5b50871561207a5760185460155460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015612018573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061203d9190612557565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff1916905550505050505050565b6000806120ac6064610f4f60105486611b8e90919063ffffffff16565b9050801561212857306000908152600860205260409020546120ce908261213a565b30600081815260086020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061211f9085815260200190565b60405180910390a35b6121328382611b4c565b949350505050565b60008061214783856124b0565b905083811015610d295760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109c9565b600081836121ba5760405162461bcd60e51b81526004016109c991906121e0565b50600061178b848661248e565b6000602082840312156121d957600080fd5b5035919050565b600060208083528351808285015260005b8181101561220d578581018301518582016040015282016121f1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461224357600080fd5b50565b6000806040838503121561225957600080fd5b82356122648161222e565b946020939093013593505050565b60008060006060848603121561228757600080fd5b83356122928161222e565b925060208401356122a28161222e565b929592945050506040919091013590565b6000602082840312156122c557600080fd5b8135610d298161222e565b6000602082840312156122e257600080fd5b813560ff81168114610d2957600080fd5b6020808252825182820181905260009190848201906040850190845b8181101561232b5783518352928401929184019160010161230f565b50909695505050505050565b600081518084526020808501945080840160005b838110156123705781516001600160a01b03168752958201959082019060010161234b565b509495945050505050565b602081526000610d296020830184612337565b6000806000606084860312156123a357600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156123cf57600080fd5b83356123da8161222e565b925060208401356123ea8161222e565b915060408401356123fa8161222e565b809150509250925092565b6000806040838503121561241857600080fd5b82356124238161222e565b915060208301356124338161222e565b809150509250929050565b6000806040838503121561245157600080fd5b8235801515811461226457600080fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610ae657610ae6612461565b6000826124ab57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610ae657610ae6612461565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161250157612501612461565b5060010190565b81810381811115610ae657610ae6612461565b85815284602082015260a06040820152600061253a60a0830186612337565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561256c57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204d3c21bdb62e8cf65b703dd339e5411ed3247134612f75835fa0501065a73e3d64736f6c63430008110033
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.