ERC-20
Overview
Max Total Supply
100,000,000 BOGGY
Holders
22
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BOGGY
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** */ // SPDX-License-Identifier: MIT /** Website: https://www.boggytoken.com/ Twitter: https://twitter.com/Boggycoin Telegram: https://t.me/BoggyCoin */ pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); 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 ); } contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(isOwner()); _; } function isOwner() private view returns (bool) { return msg.sender == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract BOGGY is Context, IERC20, Ownable { using SafeMath for uint256; address constant DEAD = address(0x000000000000000000000000000000000000dEaD); string private constant _name = "Boggy Coin"; string private constant _symbol = "BOGGY"; uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 100_000_000 * 10**_decimals; uint256 public maxWalletlimit = (_totalSupply * 2) / 100; uint256 public minSwap = (_totalSupply * 5) / 10000; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public WETH; address payable public marketingWallet; address payable public DevWallet; uint256 public BuyTax; uint256 public SellTax; uint256 public burnTax; uint8 private inSwapAndLiquify; uint256 public taxChangeInterval = 1 minutes; uint256 public lastTaxChangeTimestamp; uint8 public currentTaxPeriod = 0; uint256 public feeDenominator = 100; bool public TradingEnabled = false; mapping(address => uint256) private _balance; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedFromWalletLimit; constructor() { //initial tax values BuyTax = 2; SellTax = 2; burnTax = 2; marketingWallet = payable(0x80b63BF216820A736DC397973aB1442568c9137D); //Marketing Wallet Address DevWallet = payable(msg.sender); // Dev Wallet Address _balance[msg.sender] = _totalSupply; _isExcludedFromFees[msg.sender] = true; _isExcludedFromFees[marketingWallet] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromWalletLimit[msg.sender] = true; _isExcludedFromWalletLimit[marketingWallet] = true; _isExcludedFromWalletLimit[address(this)] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } function addLiquidityEth() public payable onlyOwner { uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); WETH = uniswapV2Router.WETH(); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), WETH ); _isExcludedFromFees[address(uniswapV2Router)] = true; _isExcludedFromWalletLimit[address(uniswapV2Router)] = true; _isExcludedFromWalletLimit[address(uniswapV2Pair)] = true; _allowances[address(this)][address(uniswapV2Router)] = type(uint256) .max; uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp); } function enableTrade() external onlyOwner { TradingEnabled = true; lastTaxChangeTimestamp = block.timestamp; } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balance[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()] - amount ); return true; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function ExcludeFromFees(address holder, bool exempt) external onlyOwner { _isExcludedFromFees[holder] = exempt; } function ChangeMinSwap(uint256 NewMinSwapAmount) external onlyOwner { minSwap = NewMinSwapAmount * 10**18; } function ChangeMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWallet = payable(newAddress); } function ChangeDevWalletAddress(address newAddress) external onlyOwner() { DevWallet = payable(newAddress); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function removeMaxLimit() external onlyOwner { maxWalletlimit = _totalSupply; } function ExcludeFromWalletLimit(address holder, bool exempt) external onlyOwner { _isExcludedFromWalletLimit[holder] = exempt; } function burnedTokens() public view returns (bool) { return balanceOf(DEAD) > 0; } function shouldExcludeFee(address sender) internal view returns (bool) { return _isExcludedFromFees[sender] && sender != owner() && sender != address(this); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 1e9, "Min transfer amt"); require(TradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Not Enabled"); uint256 elapsedTime = block.timestamp - lastTaxChangeTimestamp; if (elapsedTime >= taxChangeInterval && currentTaxPeriod < 2) { currentTaxPeriod++; if (currentTaxPeriod == 1) { //Initial Tax values BuyTax = 2; SellTax = 2; } else if (currentTaxPeriod == 2) { // After 15 minutes, set buyTax to 1% and sellTax to 1% BuyTax = 1; SellTax = 1; } // Update the last tax change timestamp lastTaxChangeTimestamp = block.timestamp; } uint256 _tax; uint256 taxTokens = shouldExcludeFee(from)? amount : 0; uint256 transferAmount; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { _tax = 0; } else { if (inSwapAndLiquify == 1) { //No tax transfer _balance[from] -= amount; _balance[to] += amount; emit Transfer(from, to, amount); return; } if (from == uniswapV2Pair) { _tax = BuyTax; if (!_isExcludedFromWalletLimit[from] || !_isExcludedFromWalletLimit[to]) { require(balanceOf(to).add(amount) <= maxWalletlimit); } } else if (to == uniswapV2Pair) { uint256 tokensToSwap = _balance[address(this)]; if (tokensToSwap > minSwap && inSwapAndLiquify == 0) { inSwapAndLiquify = 1; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uniswapV2Router .swapExactTokensForETHSupportingFeeOnTransferTokens( tokensToSwap, 0, path, address(this), block.timestamp ); inSwapAndLiquify = 0; } if(burnedTokens()) { _tax = SellTax - burnTax; } else { _tax = SellTax; } } else { _tax = 0; } } //Is there tax for sender|receiver? if (_tax != 0) { //Tax transfer taxTokens = (amount * _tax) / feeDenominator; transferAmount = amount - taxTokens; _balance[from] -= amount; _balance[to] += transferAmount; _balance[address(this)] += taxTokens; emit Transfer(from, address(this), taxTokens); emit Transfer(from, to, transferAmount); } else { _balance[from] -= amount - taxTokens; _balance[to] += amount; emit Transfer(from, to, amount); } uint256 amountReceived = address(this).balance; uint256 amountETHMarketing = amountReceived.mul(80).div(feeDenominator); // 80% to marketing wallet uint256 amountETHDev = amountReceived.mul(20).div(feeDenominator); // 20% to dev wallet if (amountETHMarketing > 0){ transferToAddressETH(marketingWallet, amountETHMarketing); } if (amountETHDev > 0) { transferToAddressETH(DevWallet, amountETHDev); } } receive() external payable {} }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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":[],"name":"BuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"ChangeDevWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"ChangeMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"NewMinSwapAmount","type":"uint256"}],"name":"ChangeMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"ExcludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnedTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTaxPeriod","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTaxChangeTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletlimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxChangeInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526064620000146009600a62000351565b62000024906305f5e10062000369565b6200003190600262000369565b6200003d919062000383565b600155612710620000516009600a62000351565b62000061906305f5e10062000369565b6200006e90600562000369565b6200007a919062000383565b600255603c600c55600e805460ff199081169091556064600f55601080549091169055348015620000aa57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600260088190556009818155600a918255600680546001600160a01b03199081167380b63bf216820a736dc397973ab1442568c9137d1790915560078054909116331790556200013a9162000351565b6200014a906305f5e10062000369565b33600081815260116020908152604080832094909455601381528382208054600160ff199182168117909255600680546001600160a01b03908116865287862080548416851790553080875288872080548516861790559686526014909452868520805483168417905554909216835284832080548316821790559282529290208054909216179055620001db3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002156009600a62000351565b62000225906305f5e10062000369565b60405190815260200160405180910390a3620003a6565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002935781600019048211156200027757620002776200023c565b808516156200028557918102915b93841c939080029062000257565b509250929050565b600082620002ac575060016200034b565b81620002bb575060006200034b565b8160018114620002d45760028114620002df57620002ff565b60019150506200034b565b60ff841115620002f357620002f36200023c565b50506001821b6200034b565b5060208310610133831016604e8410600b841016171562000324575081810a6200034b565b62000330838362000252565b80600019048211156200034757620003476200023c565b0290505b92915050565b60006200036260ff8416836200029b565b9392505050565b80820281158282048414176200034b576200034b6200023c565b600082620003a157634e487b7160e01b600052601260045260246000fd5b500490565b611b1280620003b66000396000f3fe6080604052600436106102125760003560e01c8063715018a611610118578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e14610611578063df31dd3914610657578063f2fde38b14610671578063fa0096df14610691578063fed3c826146106a657600080fd5b8063a9059cbb1461059b578063ad5c4648146105bb578063b115e4df146105db578063b1848c26146105fb57600080fd5b806383fd0367116100e757806383fd03671461050357806389e40cf9146105195780638da5cb5b1461052f57806395d89b411461054d5780639d8f77061461057b57600080fd5b8063715018a61461049457806374233c06146104a957806375f0a874146104c957806379966345146104e957600080fd5b806323b872dd1161019b57806347b5dd541161016a57806347b5dd54146103d157806349bd5a5e146104125780634cd5dc6a1461043257806359cd90311461044857806370a082311461045e57600080fd5b806323b872dd1461036757806324e3444314610387578063313ce5671461038f57806343c98828146103b157600080fd5b80630a910d1f116101e25780630a910d1f146102ca5780631694505e146102ee578063180b0d7e1461032657806318160ddd1461033c5780631d4eaead1461035157600080fd5b806299d3861461021e57806305d2743f1461023557806306fdde0314610255578063095ea7b31461029a57600080fd5b3661021957005b600080fd5b34801561022a57600080fd5b506102336106c6565b005b34801561024157600080fd5b50610233610250366004611706565b6106f0565b34801561026157600080fd5b5060408051808201909152600a8152692137b3b3bc9021b7b4b760b11b60208201525b6040516102919190611723565b60405180910390f35b3480156102a657600080fd5b506102ba6102b5366004611771565b610729565b6040519015158152602001610291565b3480156102d657600080fd5b506102e060085481565b604051908152602001610291565b3480156102fa57600080fd5b5060035461030e906001600160a01b031681565b6040516001600160a01b039091168152602001610291565b34801561033257600080fd5b506102e0600f5481565b34801561034857600080fd5b506102e0610740565b34801561035d57600080fd5b506102e0600a5481565b34801561037357600080fd5b506102ba61038236600461179d565b610761565b6102336107b3565b34801561039b57600080fd5b5060095b60405160ff9091168152602001610291565b3480156103bd57600080fd5b506102336103cc3660046117de565b610a78565b3480156103dd57600080fd5b5061dead60005260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf85417165415156102ba565b34801561041e57600080fd5b5060045461030e906001600160a01b031681565b34801561043e57600080fd5b506102e0600c5481565b34801561045457600080fd5b506102e060025481565b34801561046a57600080fd5b506102e0610479366004611706565b6001600160a01b031660009081526011602052604090205490565b3480156104a057600080fd5b50610233610aba565b3480156104b557600080fd5b506102336104c436600461181c565b610b1b565b3480156104d557600080fd5b5060065461030e906001600160a01b031681565b3480156104f557600080fd5b506010546102ba9060ff1681565b34801561050f57600080fd5b506102e060095481565b34801561052557600080fd5b506102e060015481565b34801561053b57600080fd5b506000546001600160a01b031661030e565b34801561055957600080fd5b50604080518082019091526005815264424f47475960d81b6020820152610284565b34801561058757600080fd5b506102336105963660046117de565b610b4a565b3480156105a757600080fd5b506102ba6105b6366004611771565b610b8c565b3480156105c757600080fd5b5060055461030e906001600160a01b031681565b3480156105e757600080fd5b5060075461030e906001600160a01b031681565b34801561060757600080fd5b506102e0600d5481565b34801561061d57600080fd5b506102e061062c366004611835565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b34801561066357600080fd5b50600e5461039f9060ff1681565b34801561067d57600080fd5b5061023361068c366004611706565b610b99565b34801561069d57600080fd5b50610233610bbc565b3480156106b257600080fd5b506102336106c1366004611706565b610bf2565b6000546001600160a01b031633146106dd57600080fd5b6010805460ff1916600117905542600d55565b6000546001600160a01b0316331461070757600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610736338484610c2b565b5060015b92915050565b600061074e6009600a61195d565b61075c906305f5e10061196c565b905090565b600061076e848484610d54565b6001600160a01b0384166000908152601260209081526040808320338085529252909120546107a99186916107a4908690611983565b610c2b565b5060019392505050565b6000546001600160a01b031633146107ca57600080fd5b600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190611996565b600580546001600160a01b0319166001600160a01b039283161790556003546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d49190611996565b6005546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015610925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109499190611996565b600480546001600160a01b0319166001600160a01b039283161781556003805483166000908152601360209081526040808320805460ff1990811660019081179092558554881685526014845282852080548216831790559554871684528184208054909616179094553080835260128252848320845487168452825284832060001990559254838352601190915292902054919092169163f305d719913491906040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610a4e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a7391906119b3565b505050565b6000546001600160a01b03163314610a8f57600080fd5b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ad157600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b3257600080fd5b610b4481670de0b6b3a764000061196c565b60025550565b6000546001600160a01b03163314610b6157600080fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000610736338484610d54565b6000546001600160a01b03163314610bb057600080fd5b610bb98161149c565b50565b6000546001600160a01b03163314610bd357600080fd5b610bdf6009600a61195d565b610bed906305f5e10061196c565b600155565b6000546001600160a01b03163314610c0957600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216610cf35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c89565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610db85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c89565b633b9aca008111610dfe5760405162461bcd60e51b815260206004820152601060248201526f135a5b881d1c985b9cd9995c88185b5d60821b6044820152606401610c89565b60105460ff1680610e2757506001600160a01b03831660009081526013602052604090205460ff165b80610e4a57506001600160a01b03821660009081526013602052604090205460ff165b610e845760405162461bcd60e51b815260206004820152600b60248201526a139bdd08115b98589b195960aa1b6044820152606401610c89565b6000600d5442610e949190611983565b9050600c548110158015610eaf5750600e54600260ff909116105b15610f1a57600e805460ff16906000610ec7836119e1565b82546101009290920a60ff818102199093169183160217909155600e54166001039050610efd5760026008819055600955610f15565b600e5460ff16600203610f1557600160088190556009555b42600d555b600080610f268661150a565b610f31576000610f33565b835b6001600160a01b0387166000908152601360205260408120549192509060ff1680610f7657506001600160a01b03861660009081526013602052604090205460ff165b15610f84576000925061125f565b600b5460ff16600103611031576001600160a01b03871660009081526011602052604081208054879290610fb9908490611983565b90915550506001600160a01b03861660009081526011602052604081208054879290610fe6908490611a00565b92505081905550856001600160a01b0316876001600160a01b0316600080516020611abd8339815191528760405161102091815260200190565b60405180910390a350505050505050565b6004546001600160a01b03908116908816036110cf576008546001600160a01b03881660009081526014602052604090205490935060ff16158061108e57506001600160a01b03861660009081526014602052604090205460ff16155b156110ca576001546110bf866110b9896001600160a01b031660009081526011602052604090205490565b9061155a565b11156110ca57600080fd5b61125f565b6004546001600160a01b039081169087160361125a5730600090815260116020526040902054600254811180156111095750600b5460ff16155b1561120557600b805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061115057611150611a13565b6001600160a01b03928316602091820292909201015260055482519116908290600190811061118157611181611a13565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac947906111c7908590600090869030904290600401611a29565b600060405180830381600087803b1580156111e157600080fd5b505af11580156111f5573d6000803e3d6000fd5b5050600b805460ff191690555050505b61dead60005260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf8541716541561124e57600a546009546112479190611983565b9350611254565b60095493505b5061125f565b600092505b821561137957600f54611272848761196c565b61127c9190611a9a565b91506112888286611983565b6001600160a01b0388166000908152601160205260408120805492935087929091906112b5908490611983565b90915550506001600160a01b038616600090815260116020526040812080548392906112e2908490611a00565b90915550503060009081526011602052604081208054849290611306908490611a00565b909155505060405182815230906001600160a01b03891690600080516020611abd8339815191529060200160405180910390a3856001600160a01b0316876001600160a01b0316600080516020611abd8339815191528360405161136c91815260200190565b60405180910390a361141b565b6113838286611983565b6001600160a01b038816600090815260116020526040812080549091906113ab908490611983565b90915550506001600160a01b038616600090815260116020526040812080548792906113d8908490611a00565b92505081905550856001600160a01b0316876001600160a01b0316600080516020611abd8339815191528760405161141291815260200190565b60405180910390a35b600f544790600090611438906114328460506115c0565b90611642565b90506000611456600f546114326014866115c090919063ffffffff16565b9050811561147457600654611474906001600160a01b031683611684565b801561149057600754611490906001600160a01b031682611684565b50505050505050505050565b6001600160a01b0381166114af57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526013602052604081205460ff16801561154057506000546001600160a01b03838116911614155b801561073a57506001600160a01b03821630141592915050565b6000806115678385611a00565b9050838110156115b95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c89565b9392505050565b6000826000036115d25750600061073a565b60006115de838561196c565b9050826115eb8583611a9a565b146115b95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c89565b60006115b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116ba565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610a73573d6000803e3d6000fd5b600081836116db5760405162461bcd60e51b8152600401610c899190611723565b5060006116e88486611a9a565b95945050505050565b6001600160a01b0381168114610bb957600080fd5b60006020828403121561171857600080fd5b81356115b9816116f1565b600060208083528351808285015260005b8181101561175057858101830151858201604001528201611734565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561178457600080fd5b823561178f816116f1565b946020939093013593505050565b6000806000606084860312156117b257600080fd5b83356117bd816116f1565b925060208401356117cd816116f1565b929592945050506040919091013590565b600080604083850312156117f157600080fd5b82356117fc816116f1565b91506020830135801515811461181157600080fd5b809150509250929050565b60006020828403121561182e57600080fd5b5035919050565b6000806040838503121561184857600080fd5b8235611853816116f1565b91506020830135611811816116f1565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118b457816000190482111561189a5761189a611863565b808516156118a757918102915b93841c939080029061187e565b509250929050565b6000826118cb5750600161073a565b816118d85750600061073a565b81600181146118ee57600281146118f857611914565b600191505061073a565b60ff84111561190957611909611863565b50506001821b61073a565b5060208310610133831016604e8410600b8410161715611937575081810a61073a565b6119418383611879565b806000190482111561195557611955611863565b029392505050565b60006115b960ff8416836118bc565b808202811582820484141761073a5761073a611863565b8181038181111561073a5761073a611863565b6000602082840312156119a857600080fd5b81516115b9816116f1565b6000806000606084860312156119c857600080fd5b8351925060208401519150604084015190509250925092565b600060ff821660ff81036119f7576119f7611863565b60010192915050565b8082018082111561073a5761073a611863565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a795784516001600160a01b031683529383019391830191600101611a54565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ab757634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203fa691d87bd175709253d88a436c79e3a7372bec3778a765e0f21c40b13abe6364736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102125760003560e01c8063715018a611610118578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e14610611578063df31dd3914610657578063f2fde38b14610671578063fa0096df14610691578063fed3c826146106a657600080fd5b8063a9059cbb1461059b578063ad5c4648146105bb578063b115e4df146105db578063b1848c26146105fb57600080fd5b806383fd0367116100e757806383fd03671461050357806389e40cf9146105195780638da5cb5b1461052f57806395d89b411461054d5780639d8f77061461057b57600080fd5b8063715018a61461049457806374233c06146104a957806375f0a874146104c957806379966345146104e957600080fd5b806323b872dd1161019b57806347b5dd541161016a57806347b5dd54146103d157806349bd5a5e146104125780634cd5dc6a1461043257806359cd90311461044857806370a082311461045e57600080fd5b806323b872dd1461036757806324e3444314610387578063313ce5671461038f57806343c98828146103b157600080fd5b80630a910d1f116101e25780630a910d1f146102ca5780631694505e146102ee578063180b0d7e1461032657806318160ddd1461033c5780631d4eaead1461035157600080fd5b806299d3861461021e57806305d2743f1461023557806306fdde0314610255578063095ea7b31461029a57600080fd5b3661021957005b600080fd5b34801561022a57600080fd5b506102336106c6565b005b34801561024157600080fd5b50610233610250366004611706565b6106f0565b34801561026157600080fd5b5060408051808201909152600a8152692137b3b3bc9021b7b4b760b11b60208201525b6040516102919190611723565b60405180910390f35b3480156102a657600080fd5b506102ba6102b5366004611771565b610729565b6040519015158152602001610291565b3480156102d657600080fd5b506102e060085481565b604051908152602001610291565b3480156102fa57600080fd5b5060035461030e906001600160a01b031681565b6040516001600160a01b039091168152602001610291565b34801561033257600080fd5b506102e0600f5481565b34801561034857600080fd5b506102e0610740565b34801561035d57600080fd5b506102e0600a5481565b34801561037357600080fd5b506102ba61038236600461179d565b610761565b6102336107b3565b34801561039b57600080fd5b5060095b60405160ff9091168152602001610291565b3480156103bd57600080fd5b506102336103cc3660046117de565b610a78565b3480156103dd57600080fd5b5061dead60005260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf85417165415156102ba565b34801561041e57600080fd5b5060045461030e906001600160a01b031681565b34801561043e57600080fd5b506102e0600c5481565b34801561045457600080fd5b506102e060025481565b34801561046a57600080fd5b506102e0610479366004611706565b6001600160a01b031660009081526011602052604090205490565b3480156104a057600080fd5b50610233610aba565b3480156104b557600080fd5b506102336104c436600461181c565b610b1b565b3480156104d557600080fd5b5060065461030e906001600160a01b031681565b3480156104f557600080fd5b506010546102ba9060ff1681565b34801561050f57600080fd5b506102e060095481565b34801561052557600080fd5b506102e060015481565b34801561053b57600080fd5b506000546001600160a01b031661030e565b34801561055957600080fd5b50604080518082019091526005815264424f47475960d81b6020820152610284565b34801561058757600080fd5b506102336105963660046117de565b610b4a565b3480156105a757600080fd5b506102ba6105b6366004611771565b610b8c565b3480156105c757600080fd5b5060055461030e906001600160a01b031681565b3480156105e757600080fd5b5060075461030e906001600160a01b031681565b34801561060757600080fd5b506102e0600d5481565b34801561061d57600080fd5b506102e061062c366004611835565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b34801561066357600080fd5b50600e5461039f9060ff1681565b34801561067d57600080fd5b5061023361068c366004611706565b610b99565b34801561069d57600080fd5b50610233610bbc565b3480156106b257600080fd5b506102336106c1366004611706565b610bf2565b6000546001600160a01b031633146106dd57600080fd5b6010805460ff1916600117905542600d55565b6000546001600160a01b0316331461070757600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610736338484610c2b565b5060015b92915050565b600061074e6009600a61195d565b61075c906305f5e10061196c565b905090565b600061076e848484610d54565b6001600160a01b0384166000908152601260209081526040808320338085529252909120546107a99186916107a4908690611983565b610c2b565b5060019392505050565b6000546001600160a01b031633146107ca57600080fd5b600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190611996565b600580546001600160a01b0319166001600160a01b039283161790556003546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d49190611996565b6005546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015610925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109499190611996565b600480546001600160a01b0319166001600160a01b039283161781556003805483166000908152601360209081526040808320805460ff1990811660019081179092558554881685526014845282852080548216831790559554871684528184208054909616179094553080835260128252848320845487168452825284832060001990559254838352601190915292902054919092169163f305d719913491906040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610a4e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a7391906119b3565b505050565b6000546001600160a01b03163314610a8f57600080fd5b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ad157600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b3257600080fd5b610b4481670de0b6b3a764000061196c565b60025550565b6000546001600160a01b03163314610b6157600080fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6000610736338484610d54565b6000546001600160a01b03163314610bb057600080fd5b610bb98161149c565b50565b6000546001600160a01b03163314610bd357600080fd5b610bdf6009600a61195d565b610bed906305f5e10061196c565b600155565b6000546001600160a01b03163314610c0957600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216610cf35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c89565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610db85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c89565b633b9aca008111610dfe5760405162461bcd60e51b815260206004820152601060248201526f135a5b881d1c985b9cd9995c88185b5d60821b6044820152606401610c89565b60105460ff1680610e2757506001600160a01b03831660009081526013602052604090205460ff165b80610e4a57506001600160a01b03821660009081526013602052604090205460ff165b610e845760405162461bcd60e51b815260206004820152600b60248201526a139bdd08115b98589b195960aa1b6044820152606401610c89565b6000600d5442610e949190611983565b9050600c548110158015610eaf5750600e54600260ff909116105b15610f1a57600e805460ff16906000610ec7836119e1565b82546101009290920a60ff818102199093169183160217909155600e54166001039050610efd5760026008819055600955610f15565b600e5460ff16600203610f1557600160088190556009555b42600d555b600080610f268661150a565b610f31576000610f33565b835b6001600160a01b0387166000908152601360205260408120549192509060ff1680610f7657506001600160a01b03861660009081526013602052604090205460ff165b15610f84576000925061125f565b600b5460ff16600103611031576001600160a01b03871660009081526011602052604081208054879290610fb9908490611983565b90915550506001600160a01b03861660009081526011602052604081208054879290610fe6908490611a00565b92505081905550856001600160a01b0316876001600160a01b0316600080516020611abd8339815191528760405161102091815260200190565b60405180910390a350505050505050565b6004546001600160a01b03908116908816036110cf576008546001600160a01b03881660009081526014602052604090205490935060ff16158061108e57506001600160a01b03861660009081526014602052604090205460ff16155b156110ca576001546110bf866110b9896001600160a01b031660009081526011602052604090205490565b9061155a565b11156110ca57600080fd5b61125f565b6004546001600160a01b039081169087160361125a5730600090815260116020526040902054600254811180156111095750600b5460ff16155b1561120557600b805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061115057611150611a13565b6001600160a01b03928316602091820292909201015260055482519116908290600190811061118157611181611a13565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac947906111c7908590600090869030904290600401611a29565b600060405180830381600087803b1580156111e157600080fd5b505af11580156111f5573d6000803e3d6000fd5b5050600b805460ff191690555050505b61dead60005260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf8541716541561124e57600a546009546112479190611983565b9350611254565b60095493505b5061125f565b600092505b821561137957600f54611272848761196c565b61127c9190611a9a565b91506112888286611983565b6001600160a01b0388166000908152601160205260408120805492935087929091906112b5908490611983565b90915550506001600160a01b038616600090815260116020526040812080548392906112e2908490611a00565b90915550503060009081526011602052604081208054849290611306908490611a00565b909155505060405182815230906001600160a01b03891690600080516020611abd8339815191529060200160405180910390a3856001600160a01b0316876001600160a01b0316600080516020611abd8339815191528360405161136c91815260200190565b60405180910390a361141b565b6113838286611983565b6001600160a01b038816600090815260116020526040812080549091906113ab908490611983565b90915550506001600160a01b038616600090815260116020526040812080548792906113d8908490611a00565b92505081905550856001600160a01b0316876001600160a01b0316600080516020611abd8339815191528760405161141291815260200190565b60405180910390a35b600f544790600090611438906114328460506115c0565b90611642565b90506000611456600f546114326014866115c090919063ffffffff16565b9050811561147457600654611474906001600160a01b031683611684565b801561149057600754611490906001600160a01b031682611684565b50505050505050505050565b6001600160a01b0381166114af57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526013602052604081205460ff16801561154057506000546001600160a01b03838116911614155b801561073a57506001600160a01b03821630141592915050565b6000806115678385611a00565b9050838110156115b95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c89565b9392505050565b6000826000036115d25750600061073a565b60006115de838561196c565b9050826115eb8583611a9a565b146115b95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c89565b60006115b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116ba565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610a73573d6000803e3d6000fd5b600081836116db5760405162461bcd60e51b8152600401610c899190611723565b5060006116e88486611a9a565b95945050505050565b6001600160a01b0381168114610bb957600080fd5b60006020828403121561171857600080fd5b81356115b9816116f1565b600060208083528351808285015260005b8181101561175057858101830151858201604001528201611734565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561178457600080fd5b823561178f816116f1565b946020939093013593505050565b6000806000606084860312156117b257600080fd5b83356117bd816116f1565b925060208401356117cd816116f1565b929592945050506040919091013590565b600080604083850312156117f157600080fd5b82356117fc816116f1565b91506020830135801515811461181157600080fd5b809150509250929050565b60006020828403121561182e57600080fd5b5035919050565b6000806040838503121561184857600080fd5b8235611853816116f1565b91506020830135611811816116f1565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118b457816000190482111561189a5761189a611863565b808516156118a757918102915b93841c939080029061187e565b509250929050565b6000826118cb5750600161073a565b816118d85750600061073a565b81600181146118ee57600281146118f857611914565b600191505061073a565b60ff84111561190957611909611863565b50506001821b61073a565b5060208310610133831016604e8410600b8410161715611937575081810a61073a565b6119418383611879565b806000190482111561195557611955611863565b029392505050565b60006115b960ff8416836118bc565b808202811582820484141761073a5761073a611863565b8181038181111561073a5761073a611863565b6000602082840312156119a857600080fd5b81516115b9816116f1565b6000806000606084860312156119c857600080fd5b8351925060208401519150604084015190509250925092565b600060ff821660ff81036119f7576119f7611863565b60010192915050565b8082018082111561073a5761073a611863565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a795784516001600160a01b031683529383019391830191600101611a54565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ab757634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203fa691d87bd175709253d88a436c79e3a7372bec3778a765e0f21c40b13abe6364736f6c63430008130033
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.