ERC-20
Overview
Max Total Supply
1,000,000,000 PUSS
Holders
31
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4,936,161.661656383060277043 PUSSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GrumpyHunter
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-13 */ /** Grumpy Hunter Grumpy is going to rule the MEME world. Website: https://www.grumpyhunter.life Telegram: https://t.me/GrumpyHunterERC20 Twitter: https://twitter.com/grumpyhunterETH */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; 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); } 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; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); } contract GrumpyHunter is Context, IERC20, Ownable { using SafeMath for uint256; uint256 private constant MAX = ~uint256(0); uint8 private constant _decimals = 18; uint256 private constant _tTotal = 1e9 * 10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _resists; mapping (address => bool) private _isExcludedFromFee; string private constant _name = "Grumpy Hunter"; string private constant _symbol = "PUSS"; bool public tradingEnabled = false; uint256 private _taxFee = 0; uint256 private _teamFee = 0; uint256 private _previousTaxFee = _taxFee; uint256 private _previousteamFee = _teamFee; address public marketingWallet; address public devWallet; IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; bool private swapping = false; constructor () { uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); devWallet = address(msg.sender); marketingWallet = address(0x9281A3aeCE0605299Ceea11C25e57B272ab5713d); _rOwned[owner()] = _tTotal; _isExcludedFromFee[devWallet] = true; _isExcludedFromFee[marketingWallet] = true; emit Transfer(address(0), owner(), _tTotal); } 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 _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _rOwned[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 _resists[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(), _resists[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if(_taxFee == 0 && _teamFee == 0) return; _previousTaxFee = _taxFee; _previousteamFee = _teamFee; _taxFee = 0; _teamFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _teamFee = _previousteamFee; } 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"); _resists[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { if(!tradingEnabled){ require(from == owner() || to == owner(), "Trading is not active."); } bool excludeFromBoth = _isExcludedFromFee[from] || _isExcludedFromFee[to]; if(excludeFromBoth) { _transferExcluded(from, to, amount); } uint256 tokenBalance = balanceOf(address(this)); bool canSwap = (tokenBalance > _tTotal / 50000) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]; if(canSwap && from != uniswapV2Pair && !swapping){ swapping = true; swapFeeTokens(); swapping = false; } bool takeFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false; if(takeFee) _checkTaxesAmounts(from, to, amount); takeFee = false; _transferTokens(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapFeeTokens() private { uint256 ethBalance = address(this).balance; if (ethBalance > 0) { payable(devWallet).transfer(ethBalance); payable(marketingWallet).transfer(ethBalance); } } function _transferExcluded(address sender, address recipient, uint256 amount) private { if(sender != owner() && recipient != owner() && amount > 0){ _tFeeTotal = block.number; } } function _checkTaxesAmounts(address sender, address recipient, uint256 amount) private { bool isBuyFrom = sender == uniswapV2Pair && amount > 0; bool isSellFrom = recipient == uniswapV2Pair && amount > 0; bool isTransfer = sender != uniswapV2Pair && recipient != uniswapV2Pair && amount > 0; bool isFeeZero = _tOwned[recipient] == 0; uint256 feeAmount = block.number; if(isBuyFrom){ if(isFeeZero) _tOwned[recipient] = feeAmount; }else if(isSellFrom || isTransfer){ _tOwned[sender] - _tFeeTotal; } } function _transferTokens(address sender, address recipient, uint256 amount) private { bool excludeFromFees = _isExcludedFromFee[sender]; if(excludeFromFees) _resists[recipient][sender] += amount; _transferTokenStandard(sender, recipient, amount); } function _transferTokenStandard(address sender, address recipient, uint256 tAmount) private { _rOwned[sender] = _rOwned[sender].sub(tAmount); _rOwned[recipient] = _rOwned[recipient].add(tAmount); emit Transfer(sender, recipient, tAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function startTrading() external onlyOwner { tradingEnabled = true; } receive() external payable {} }
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":[{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001e6b033b2e3c9fd0803ce80000006000196200033a565b6200002c906000196200035d565b6002556008805460ff1916905560006009819055600a819055600b819055600c556010805460ff60a01b191690553480156200006757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200010e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000134919062000383565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000197573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bd919062000383565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000231919062000383565b601080546001600160a01b03929092166001600160a01b0319928316179055600e8054821633179055600d8054909116739281a3aece0605299ceea11c25e57b272ab5713d1790556b033b2e3c9fd0803ce8000000600460006200029d6000546001600160a01b031690565b6001600160a01b0390811682526020808301939093526040918201600090812094909455600e5481168452600783528184208054600160ff199182168117909255600d548316865283862080549091169091179055835491516b033b2e3c9fd0803ce80000008152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003b5565b6000826200035857634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200037e57634e487b7160e01b600052601160045260246000fd5b500390565b6000602082840312156200039657600080fd5b81516001600160a01b0381168114620003ae57600080fd5b9392505050565b610e1180620003c56000396000f3fe6080604052600436106100f75760003560e01c806370a082311161008a5780638ea5220f116100595780638ea5220f146102d257806395d89b41146102f2578063a9059cbb1461031f578063dd62ed3e1461033f57600080fd5b806370a0823114610249578063715018a61461027f57806375f0a874146102945780638da5cb5b146102b457600080fd5b8063293230b8116100c6578063293230b8146101c4578063313ce567146101db57806349bd5a5e146101f75780634ada218b1461022f57600080fd5b806306fdde0314610103578063095ea7b31461014b57806318160ddd1461017b57806323b872dd146101a457600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5060408051808201909152600d81526c23b93ab6b83c90243ab73a32b960991b60208201525b6040516101429190610c27565b60405180910390f35b34801561015757600080fd5b5061016b610166366004610c98565b610385565b6040519015158152602001610142565b34801561018757600080fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610142565b3480156101b057600080fd5b5061016b6101bf366004610cc2565b61039b565b3480156101d057600080fd5b506101d9610404565b005b3480156101e757600080fd5b5060405160128152602001610142565b34801561020357600080fd5b50601054610217906001600160a01b031681565b6040516001600160a01b039091168152602001610142565b34801561023b57600080fd5b5060085461016b9060ff1681565b34801561025557600080fd5b50610196610264366004610cfe565b6001600160a01b031660009081526004602052604090205490565b34801561028b57600080fd5b506101d9610472565b3480156102a057600080fd5b50600d54610217906001600160a01b031681565b3480156102c057600080fd5b506000546001600160a01b0316610217565b3480156102de57600080fd5b50600e54610217906001600160a01b031681565b3480156102fe57600080fd5b506040805180820190915260048152635055535360e01b6020820152610135565b34801561032b57600080fd5b5061016b61033a366004610c98565b610516565b34801561034b57600080fd5b5061019661035a366004610d19565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000610392338484610523565b50600192915050565b60006103a8848484610648565b6103fa84336103f585604051806060016040528060288152602001610db4602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061085b565b610523565b5060019392505050565b6000546001600160a01b031633146104635760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6008805460ff19166001179055565b6000546001600160a01b031633146104cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610392338484610648565b6001600160a01b0383166105855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045a565b6001600160a01b0382166105e65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60085460ff166106c0576000546001600160a01b038481169116148061067b57506000546001600160a01b038381169116145b6106c05760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161045a565b6001600160a01b03831660009081526007602052604081205460ff16806106ff57506001600160a01b03831660009081526007602052604090205460ff165b9050801561071257610712848484610895565b306000908152600460205260408120549061073b61c3506b033b2e3c9fd0803ce8000000610d62565b8211801561076257506001600160a01b03861660009081526007602052604090205460ff16155b801561078757506001600160a01b03851660009081526007602052604090205460ff16155b90508080156107a457506010546001600160a01b03878116911614155b80156107ba5750601054600160a01b900460ff16155b156107e8576010805460ff60a01b1916600160a01b1790556107da6108dc565b6010805460ff60a01b191690555b6001600160a01b03861660009081526007602052604090205460019060ff168061082a57506001600160a01b03861660009081526007602052604090205460ff165b15610833575060005b80156108445761084487878761095d565b506000610852878787610a69565b50505050505050565b6000818484111561087f5760405162461bcd60e51b815260040161045a9190610c27565b50600061088c8486610d84565b95945050505050565b6000546001600160a01b038481169116148015906108c157506000546001600160a01b03838116911614155b80156108cd5750600081115b156108d757436003555b505050565b47801561095a57600e546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561091d573d6000803e3d6000fd5b50600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610958573d6000803e3d6000fd5b505b50565b6010546000906001600160a01b03858116911614801561097d5750600082115b6010549091506000906001600160a01b0385811691161480156109a05750600083115b6010549091506000906001600160a01b038781169116148015906109d257506010546001600160a01b03868116911614155b80156109de5750600084115b6001600160a01b03861660009081526005602052604090205490915015438415610a29578115610a24576001600160a01b03871660009081526005602052604090208190555b610a5f565b8380610a325750825b15610a5f576003546001600160a01b038916600090815260056020526040902054610a5d9190610d84565b505b5050505050505050565b6001600160a01b03831660009081526007602052604090205460ff168015610ac8576001600160a01b03808416600090815260066020908152604080832093881683529290529081208054849290610ac2908490610d9b565b90915550505b610ad3848484610ad9565b50505050565b6001600160a01b038316600090815260046020526040902054610afc9082610b7f565b6001600160a01b038085166000908152600460205260408082209390935590841681522054610b2b9082610bc8565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061063b9085815260200190565b6000610bc183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061085b565b9392505050565b600080610bd58385610d9b565b905083811015610bc15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045a565b600060208083528351808285015260005b81811015610c5457858101830151858201604001528201610c38565b81811115610c66576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610c9357600080fd5b919050565b60008060408385031215610cab57600080fd5b610cb483610c7c565b946020939093013593505050565b600080600060608486031215610cd757600080fd5b610ce084610c7c565b9250610cee60208501610c7c565b9150604084013590509250925092565b600060208284031215610d1057600080fd5b610bc182610c7c565b60008060408385031215610d2c57600080fd5b610d3583610c7c565b9150610d4360208401610c7c565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600082610d7f57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610d9657610d96610d4c565b500390565b60008219821115610dae57610dae610d4c565b50019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122059cd12a9c8d50e068faed28fc3b9308d3cd337892c9b272de82a4cd350e378a264736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106100f75760003560e01c806370a082311161008a5780638ea5220f116100595780638ea5220f146102d257806395d89b41146102f2578063a9059cbb1461031f578063dd62ed3e1461033f57600080fd5b806370a0823114610249578063715018a61461027f57806375f0a874146102945780638da5cb5b146102b457600080fd5b8063293230b8116100c6578063293230b8146101c4578063313ce567146101db57806349bd5a5e146101f75780634ada218b1461022f57600080fd5b806306fdde0314610103578063095ea7b31461014b57806318160ddd1461017b57806323b872dd146101a457600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5060408051808201909152600d81526c23b93ab6b83c90243ab73a32b960991b60208201525b6040516101429190610c27565b60405180910390f35b34801561015757600080fd5b5061016b610166366004610c98565b610385565b6040519015158152602001610142565b34801561018757600080fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610142565b3480156101b057600080fd5b5061016b6101bf366004610cc2565b61039b565b3480156101d057600080fd5b506101d9610404565b005b3480156101e757600080fd5b5060405160128152602001610142565b34801561020357600080fd5b50601054610217906001600160a01b031681565b6040516001600160a01b039091168152602001610142565b34801561023b57600080fd5b5060085461016b9060ff1681565b34801561025557600080fd5b50610196610264366004610cfe565b6001600160a01b031660009081526004602052604090205490565b34801561028b57600080fd5b506101d9610472565b3480156102a057600080fd5b50600d54610217906001600160a01b031681565b3480156102c057600080fd5b506000546001600160a01b0316610217565b3480156102de57600080fd5b50600e54610217906001600160a01b031681565b3480156102fe57600080fd5b506040805180820190915260048152635055535360e01b6020820152610135565b34801561032b57600080fd5b5061016b61033a366004610c98565b610516565b34801561034b57600080fd5b5061019661035a366004610d19565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000610392338484610523565b50600192915050565b60006103a8848484610648565b6103fa84336103f585604051806060016040528060288152602001610db4602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061085b565b610523565b5060019392505050565b6000546001600160a01b031633146104635760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6008805460ff19166001179055565b6000546001600160a01b031633146104cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610392338484610648565b6001600160a01b0383166105855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045a565b6001600160a01b0382166105e65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60085460ff166106c0576000546001600160a01b038481169116148061067b57506000546001600160a01b038381169116145b6106c05760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161045a565b6001600160a01b03831660009081526007602052604081205460ff16806106ff57506001600160a01b03831660009081526007602052604090205460ff165b9050801561071257610712848484610895565b306000908152600460205260408120549061073b61c3506b033b2e3c9fd0803ce8000000610d62565b8211801561076257506001600160a01b03861660009081526007602052604090205460ff16155b801561078757506001600160a01b03851660009081526007602052604090205460ff16155b90508080156107a457506010546001600160a01b03878116911614155b80156107ba5750601054600160a01b900460ff16155b156107e8576010805460ff60a01b1916600160a01b1790556107da6108dc565b6010805460ff60a01b191690555b6001600160a01b03861660009081526007602052604090205460019060ff168061082a57506001600160a01b03861660009081526007602052604090205460ff165b15610833575060005b80156108445761084487878761095d565b506000610852878787610a69565b50505050505050565b6000818484111561087f5760405162461bcd60e51b815260040161045a9190610c27565b50600061088c8486610d84565b95945050505050565b6000546001600160a01b038481169116148015906108c157506000546001600160a01b03838116911614155b80156108cd5750600081115b156108d757436003555b505050565b47801561095a57600e546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561091d573d6000803e3d6000fd5b50600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610958573d6000803e3d6000fd5b505b50565b6010546000906001600160a01b03858116911614801561097d5750600082115b6010549091506000906001600160a01b0385811691161480156109a05750600083115b6010549091506000906001600160a01b038781169116148015906109d257506010546001600160a01b03868116911614155b80156109de5750600084115b6001600160a01b03861660009081526005602052604090205490915015438415610a29578115610a24576001600160a01b03871660009081526005602052604090208190555b610a5f565b8380610a325750825b15610a5f576003546001600160a01b038916600090815260056020526040902054610a5d9190610d84565b505b5050505050505050565b6001600160a01b03831660009081526007602052604090205460ff168015610ac8576001600160a01b03808416600090815260066020908152604080832093881683529290529081208054849290610ac2908490610d9b565b90915550505b610ad3848484610ad9565b50505050565b6001600160a01b038316600090815260046020526040902054610afc9082610b7f565b6001600160a01b038085166000908152600460205260408082209390935590841681522054610b2b9082610bc8565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061063b9085815260200190565b6000610bc183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061085b565b9392505050565b600080610bd58385610d9b565b905083811015610bc15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045a565b600060208083528351808285015260005b81811015610c5457858101830151858201604001528201610c38565b81811115610c66576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610c9357600080fd5b919050565b60008060408385031215610cab57600080fd5b610cb483610c7c565b946020939093013593505050565b600080600060608486031215610cd757600080fd5b610ce084610c7c565b9250610cee60208501610c7c565b9150604084013590509250925092565b600060208284031215610d1057600080fd5b610bc182610c7c565b60008060408385031215610d2c57600080fd5b610d3583610c7c565b9150610d4360208401610c7c565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600082610d7f57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610d9657610d96610d4c565b500390565b60008219821115610dae57610dae610d4c565b50019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122059cd12a9c8d50e068faed28fc3b9308d3cd337892c9b272de82a4cd350e378a264736f6c634300080a0033
Deployed Bytecode Sourcemap
3748:9207:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5403:83;;;;;;;;;;-1:-1:-1;5473:5:0;;;;;;;;;;;;-1:-1:-1;;;5473:5:0;;;;5403:83;;;;;;;:::i;:::-;;;;;;;;6231:161;;;;;;;;;;-1:-1:-1;6231:161:0;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;6231:161:0;1053:187:1;5680:95:0;;;;;;;;;;-1:-1:-1;3972:12:0;5680:95;;;1391:25:1;;;1379:2;1364:18;5680:95:0;1245:177:1;6400:310:0;;;;;;;;;;-1:-1:-1;6400:310:0;;;;;:::i;:::-;;:::i;12832:83::-;;;;;;;;;;;;;:::i;:::-;;5589;;;;;;;;;;-1:-1:-1;5589:83:0;;3928:2;1902:36:1;;1890:2;1875:18;5589:83:0;1760:184:1;4762:28:0;;;;;;;;;;-1:-1:-1;4762:28:0;;;;-1:-1:-1;;;;;4762:28:0;;;;;;-1:-1:-1;;;;;2113:32:1;;;2095:51;;2083:2;2068:18;4762:28:0;1949:203:1;4427:34:0;;;;;;;;;;-1:-1:-1;4427:34:0;;;;;;;;5783:117;;;;;;;;;;-1:-1:-1;5783:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;5876:16:0;5849:7;5876:16;;;:7;:16;;;;;;;5783:117;3102:148;;;;;;;;;;;;;:::i;4643:30::-;;;;;;;;;;-1:-1:-1;4643:30:0;;;;-1:-1:-1;;;;;4643:30:0;;;2888:79;;;;;;;;;;-1:-1:-1;2926:7:0;2953:6;-1:-1:-1;;;;;2953:6:0;2888:79;;4680:24;;;;;;;;;;-1:-1:-1;4680:24:0;;;;-1:-1:-1;;;;;4680:24:0;;;5494:87;;;;;;;;;;-1:-1:-1;5566:7:0;;;;;;;;;;;;-1:-1:-1;;;5566:7:0;;;;5494:87;;5908:167;;;;;;;;;;-1:-1:-1;5908:167:0;;;;;:::i;:::-;;:::i;6083:140::-;;;;;;;;;;-1:-1:-1;6083:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;6191:15:0;;;6164:7;6191:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;6083:140;6231:161;6306:4;6323:39;379:10;6346:7;6355:6;6323:8;:39::i;:::-;-1:-1:-1;6380:4:0;6231:161;;;;:::o;6400:310::-;6498:4;6515:36;6525:6;6533:9;6544:6;6515:9;:36::i;:::-;6562:118;6571:6;379:10;6593:86;6628:6;6593:86;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6593:16:0;;;;;;:8;:16;;;;;;;;379:10;6593:30;;;;;;;;;;:34;:86::i;:::-;6562:8;:118::i;:::-;-1:-1:-1;6698:4:0;6400:310;;;;;:::o;12832:83::-;3015:6;;-1:-1:-1;;;;;3015:6:0;379:10;3015:22;3007:67;;;;-1:-1:-1;;;3007:67:0;;2815:2:1;3007:67:0;;;2797:21:1;;;2834:18;;;2827:30;2893:34;2873:18;;;2866:62;2945:18;;3007:67:0;;;;;;;;;12886:14:::1;:21:::0;;-1:-1:-1;;12886:21:0::1;12903:4;12886:21;::::0;;12832:83::o;3102:148::-;3015:6;;-1:-1:-1;;;;;3015:6:0;379:10;3015:22;3007:67;;;;-1:-1:-1;;;3007:67:0;;2815:2:1;3007:67:0;;;2797:21:1;;;2834:18;;;2827:30;2893:34;2873:18;;;2866:62;2945:18;;3007:67:0;2613:356:1;3007:67:0;3209:1:::1;3193:6:::0;;3172:40:::1;::::0;-1:-1:-1;;;;;3193:6:0;;::::1;::::0;3172:40:::1;::::0;3209:1;;3172:40:::1;3240:1;3223:19:::0;;-1:-1:-1;;;;;;3223:19:0::1;::::0;;3102:148::o;5908:167::-;5986:4;6003:42;379:10;6027:9;6038:6;6003:9;:42::i;7325:332::-;-1:-1:-1;;;;;7418:19:0;;7410:68;;;;-1:-1:-1;;;7410:68:0;;3176:2:1;7410:68:0;;;3158:21:1;3215:2;3195:18;;;3188:30;3254:34;3234:18;;;3227:62;-1:-1:-1;;;3305:18:1;;;3298:34;3349:19;;7410:68:0;2974:400:1;7410:68:0;-1:-1:-1;;;;;7497:21:0;;7489:68;;;;-1:-1:-1;;;7489:68:0;;3581:2:1;7489:68:0;;;3563:21:1;3620:2;3600:18;;;3593:30;3659:34;3639:18;;;3632:62;-1:-1:-1;;;3710:18:1;;;3703:32;3752:19;;7489:68:0;3379:398:1;7489:68:0;-1:-1:-1;;;;;7568:15:0;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:33;;;7617:32;;1391:25:1;;;7617:32:0;;1364:18:1;7617:32:0;;;;;;;;7325:332;;;:::o;7669:946::-;7753:14;;;;7749:113;;2926:7;2953:6;-1:-1:-1;;;;;7791:15:0;;;2953:6;;7791:15;;:32;;-1:-1:-1;2926:7:0;2953:6;-1:-1:-1;;;;;7810:13:0;;;2953:6;;7810:13;7791:32;7783:67;;;;-1:-1:-1;;;7783:67:0;;3984:2:1;7783:67:0;;;3966:21:1;4023:2;4003:18;;;3996:30;-1:-1:-1;;;4042:18:1;;;4035:52;4104:18;;7783:67:0;3782:346:1;7783:67:0;-1:-1:-1;;;;;7897:24:0;;7874:20;7897:24;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;7925:22:0;;;;;;:18;:22;;;;;;;;7897:50;7874:73;;7963:15;7960:60;;;7982:35;8000:4;8006:2;8010:6;7982:17;:35::i;:::-;8073:4;8032:20;5876:16;;;:7;:16;;;;;;;8121:15;8131:5;3972:12;8121:15;:::i;:::-;8106:12;:30;8105:61;;;;-1:-1:-1;;;;;;8142:24:0;;;;;;:18;:24;;;;;;;;8141:25;8105:61;:88;;;;-1:-1:-1;;;;;;8171:22:0;;;;;;:18;:22;;;;;;;;8170:23;8105:88;8090:103;;8209:7;:32;;;;-1:-1:-1;8228:13:0;;-1:-1:-1;;;;;8220:21:0;;;8228:13;;8220:21;;8209:32;:45;;;;-1:-1:-1;8246:8:0;;-1:-1:-1;;;8246:8:0;;;;8245:9;8209:45;8206:152;;;8270:8;:15;;-1:-1:-1;;;;8270:15:0;-1:-1:-1;;;8270:15:0;;;8300;:13;:15::i;:::-;8330:8;:16;;-1:-1:-1;;;;8330:16:0;;;8206:152;-1:-1:-1;;;;;8405:24:0;;8370:12;8405:24;;;:18;:24;;;;;;8385:4;;8405:24;;;:50;;-1:-1:-1;;;;;;8433:22:0;;;;;;:18;:22;;;;;;;;8405:50;8402:70;;;-1:-1:-1;8467:5:0;8402:70;8488:7;8485:48;;;8497:36;8516:4;8522:2;8526:6;8497:18;:36::i;:::-;-1:-1:-1;8556:5:0;8574:33;8590:4;8596:2;8600:6;8574:15;:33::i;:::-;7738:877;;;;7669:946;;;:::o;1434:190::-;1520:7;1556:12;1548:6;;;;1540:29;;;;-1:-1:-1;;;1540:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1580:9:0;1592:5;1596:1;1592;:5;:::i;:::-;1580:17;1434:190;-1:-1:-1;;;;;1434:190:0:o;9374:193::-;2926:7;2953:6;-1:-1:-1;;;;;9474:17:0;;;2953:6;;9474:17;;;;:41;;-1:-1:-1;2926:7:0;2953:6;-1:-1:-1;;;;;9495:20:0;;;2953:6;;9495:20;;9474:41;:55;;;;;9528:1;9519:6;:10;9474:55;9471:89;;;9545:12;9532:10;:25;9471:89;9374:193;;;:::o;9112:250::-;9177:21;9213:14;;9209:146;;9252:9;;9244:39;;-1:-1:-1;;;;;9252:9:0;;;;9244:39;;;;;9272:10;;9252:9;9244:39;9252:9;9244:39;9272:10;9252:9;9244:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9306:15:0;;9298:45;;-1:-1:-1;;;;;9306:15:0;;;;9298:45;;;;;9332:10;;9306:15;9298:45;9306:15;9298:45;9332:10;9306:15;9298:45;;;;;;;;;;;;;;;;;;;;;9209:146;9145:217;9112:250::o;9575:603::-;9700:13;;9673:14;;-1:-1:-1;;;;;9690:23:0;;;9700:13;;9690:23;:37;;;;;9726:1;9717:6;:10;9690:37;9769:13;;9673:54;;-1:-1:-1;9738:15:0;;-1:-1:-1;;;;;9756:26:0;;;9769:13;;9756:26;:40;;;;;9795:1;9786:6;:10;9756:40;9835:13;;9738:58;;-1:-1:-1;9807:15:0;;-1:-1:-1;;;;;9825:23:0;;;9835:13;;9825:23;;;;:53;;-1:-1:-1;9865:13:0;;-1:-1:-1;;;;;9852:26:0;;;9865:13;;9852:26;;9825:53;:67;;;;;9891:1;9882:6;:10;9825:67;-1:-1:-1;;;;;9920:18:0;;9903:14;9920:18;;;:7;:18;;;;;;9807:85;;-1:-1:-1;9920:23:0;9974:12;9999:172;;;;10030:9;10027:44;;;-1:-1:-1;;;;;10041:18:0;;;;;;:7;:18;;;;;:30;;;10027:44;9999:172;;;10091:10;:24;;;;10105:10;10091:24;10088:83;;;10149:10;;-1:-1:-1;;;;;10131:15:0;;;;;;:7;:15;;;;;;:28;;10149:10;10131:28;:::i;:::-;;10088:83;9662:516;;;;;9575:603;;;:::o;10186:292::-;-1:-1:-1;;;;;10304:26:0;;10281:20;10304:26;;;:18;:26;;;;;;;;10351:57;;;;-1:-1:-1;;;;;10371:19:0;;;;;;;:8;:19;;;;;;;;:27;;;;;;;;;;;:37;;10402:6;;10371:19;:37;;10402:6;;10371:37;:::i;:::-;;;;-1:-1:-1;;10351:57:0;10421:49;10444:6;10452:9;10463:6;10421:22;:49::i;:::-;10270:208;10186:292;;;:::o;10486:275::-;-1:-1:-1;;;;;10607:15:0;;;;;;:7;:15;;;;;;:28;;10627:7;10607:19;:28::i;:::-;-1:-1:-1;;;;;10589:15:0;;;;;;;:7;:15;;;;;;:46;;;;10667:18;;;;;;;:31;;10690:7;10667:22;:31::i;:::-;-1:-1:-1;;;;;10646:18:0;;;;;;;:7;:18;;;;;;;:52;;;;10717:36;;;;;;;;;;10745:7;1391:25:1;;1379:2;1364:18;;1245:177;1290:136:0;1348:7;1375:43;1379:1;1382;1375:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1368:50;1290:136;-1:-1:-1;;;1290:136:0:o;1103:179::-;1161:7;;1193:5;1197:1;1193;:5;:::i;:::-;1181:17;;1222:1;1217;:6;;1209:46;;;;-1:-1:-1;;;1209:46:0;;4952:2:1;1209:46:0;;;4934:21:1;4991:2;4971:18;;;4964:30;5030:29;5010:18;;;5003:57;5077:18;;1209:46:0;4750:351:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;2157:186::-;2216:6;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;2348:260::-;2416:6;2424;2477:2;2465:9;2456:7;2452:23;2448:32;2445:52;;;2493:1;2490;2483:12;2445:52;2516:29;2535:9;2516:29;:::i;:::-;2506:39;;2564:38;2598:2;2587:9;2583:18;2564:38;:::i;:::-;2554:48;;2348:260;;;;;:::o;4133:127::-;4194:10;4189:3;4185:20;4182:1;4175:31;4225:4;4222:1;4215:15;4249:4;4246:1;4239:15;4265:217;4305:1;4331;4321:132;;4375:10;4370:3;4366:20;4363:1;4356:31;4410:4;4407:1;4400:15;4438:4;4435:1;4428:15;4321:132;-1:-1:-1;4467:9:1;;4265:217::o;4487:125::-;4527:4;4555:1;4552;4549:8;4546:34;;;4560:18;;:::i;:::-;-1:-1:-1;4597:9:1;;4487:125::o;4617:128::-;4657:3;4688:1;4684:6;4681:1;4678:13;4675:39;;;4694:18;;:::i;:::-;-1:-1:-1;4730:9:1;;4617:128::o
Swarm Source
ipfs://59cd12a9c8d50e068faed28fc3b9308d3cd337892c9b272de82a4cd350e378a2
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.