ERC-20
Overview
Max Total Supply
3,000,000,000 PEPEBOMB
Holders
649
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$32,309.41
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PEPEBOMB
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-27 */ pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 ); } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data ) internal returns (bytes memory) { return functionCallWithValue( target, data, 0, "Address: low-level call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data ) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data ) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. * * _Available since v4.8._ */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } /** * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason or using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert( bytes memory returndata, string memory errorMessage ) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function burn( address to ) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut( uint256 amountIn, address[] calldata path ) external view returns (uint256[] memory amounts); function getAmountsIn( uint256 amountOut, address[] calldata path ) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract PEPEBOMB is Context, IERC20, Ownable { using Address for address; address payable public cxWallet = payable(0x5384C9b586d8303569Dca2Ef33074051Cd2b08E6); mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; event Log(string, uint256); event AuditLog(string, address); event RewardLiquidityProviders(uint256 tokenAmount); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapTokensForETH(uint256 amountIn, address[] path); uint256 private _tTotal = 3_000_000_000 ether; uint256 private _tFeeTotal; string public constant name = "pepe"; string public constant symbol = "PEPEBOMB"; uint8 public constant decimals = 18; uint public buyFee = 5; uint256 public sellFee = 5; uint256 public minimumTokensBeforeSwap = 0.1 ether; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address private immutable WETH; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { address currentRouter= 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //Mainnet _tOwned[cxWallet] = _tTotal; //Create Pair in the contructor, this may fail on some blockchains and can be done in a separate line if needed. IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(currentRouter); WETH = _uniswapV2Router.WETH(); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), WETH); uniswapV2Router = _uniswapV2Router; //Approve router to be used. _approve(msg.sender, address(uniswapV2Router), type(uint256).max); _approve(address(this), address(uniswapV2Router), type(uint256).max); emit Transfer(address(0), cxWallet, _tTotal); _transferOwnership(cxWallet); } //Readable Functions. function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } //ERC 20 Standard Transfer Functions function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } //ERC 20 Standard Allowance Function function allowance( address _owner, address spender ) public view override returns (uint256) { return _allowances[_owner][spender]; } //ERC 20 Standard Approve Function function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } //ERC 20 Standard Transfer From function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { uint currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), currentAllowance - amount); return true; } //ERC 20 Standard increase Allowance function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } //ERC 20 Standard decrease Allowance function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue ); return true; } //Approve Function 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); } //Transfer function, validate correct wallet structure, take fees, and other custom taxes are done during the transfer. function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require( _tOwned[from] >= amount, "ERC20: transfer amount exceeds balance" ); //Adding logic for automatic swap. uint256 contractTokenBalance = balanceOf(address(this)); uint256 contractTokenBalanceLP = balanceOf(uniswapV2Pair); bool overMinimumTokenBalance; if(contractTokenBalanceLP > 0){ overMinimumTokenBalance = getValue(contractTokenBalance) >= minimumTokensBeforeSwap; } uint fee = 0; //if any account belongs to _isExcludedFromFee account then remove the fee if ( !inSwapAndLiquify && from != uniswapV2Pair && overMinimumTokenBalance && swapAndLiquifyEnabled ) { swapAndLiquify(); } if (to == uniswapV2Pair && to != cxWallet) { fee = (sellFee * amount) / 1000; } if (from == uniswapV2Pair && from != cxWallet) { fee = (buyFee * amount) / 1000; } amount -= fee; if (fee > 0) { _tokenTransfer(from, address(this), fee); } _tokenTransfer(from, to, amount); } //Swap Tokens for BNB or to add liquidity either automatically or manual, by default this is set to manual. //Corrected newBalance bug, it sending bnb to wallet and any remaining is on contract and can be recoverred. function swapAndLiquify() public lockTheSwap { uint256 totalTokens = balanceOf(address(this)); swapTokensForEth(totalTokens); } //swap for eth is to support the converstion of tokens to weth during swapandliquify this is a supporting function function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, cxWallet, // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } //ERC 20 standard transfer, only added if taking fees to countup the amount of fees for better tracking and split purpose. function _tokenTransfer( address sender, address recipient, uint256 amount ) private { _tOwned[sender] -= amount; _tOwned[recipient] += amount; emit Transfer(sender, recipient, amount); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function getValue(uint a) view public returns(uint){ address[] memory routePath = new address[](2); routePath[0] = address(this); routePath[1] = WETH; return uniswapV2Router.getAmountsOut(a,routePath)[1]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"","type":"string"},{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"AuditLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"","type":"string"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Log","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":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"RewardLiquidityProviders","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"getValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","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
60e0604052600180546001600160a01b031916735384c9b586d8303569dca2ef33074051cd2b08e61790556b09b18ab5df7180b6b80000006004556005600681905560075567016345785d8a00006008556009805461ff0019166101001790553480156200006c57600080fd5b506200007833620002ab565b600480546001546001600160a01b03166000908152600260209081526040918290209290925580516315ab88c960e31b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d938493849363ad5c4648938184019390918290030181865afa158015620000ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000112919062000427565b6001600160a01b031660c0816001600160a01b031681525050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000190919062000427565b60c0516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000208919062000427565b6001600160a01b0390811660a052811660808190526200022d903390600019620002fb565b6200024430608051600019620002fb60201b60201c565b6001546004546040519081526001600160a01b03909116906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3600154620002a3906001600160a01b0316620002ab565b505062000459565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620003635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200035a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000602082840312156200043a57600080fd5b81516001600160a01b03811681146200045257600080fd5b9392505050565b60805160a05160c05161130d620004ba600039600081816105620152610def01526000818161031f01528181610b2101528181610b7b01528181610bdb0152610c4d015260008181610211015281816105b90152610e49015261130d6000f3fe60806040526004361061014f5760003560e01c80634a74bb02116100b6578063a9059cbb1161006f578063a9059cbb1461041f578063b29ad50a1461043f578063d2d7ad8314610454578063dd62ed3e1461046a578063e780c045146104b0578063f2fde38b146104d057600080fd5b80634a74bb021461034157806370a0823114610360578063715018a6146103965780638da5cb5b146103ad57806395d89b41146103cb578063a457c2d7146103ff57600080fd5b806323b872dd1161010857806323b872dd1461027a5780632b14ca561461029a578063313ce567146102b057806339509351146102d757806347062402146102f757806349bd5a5e1461030d57600080fd5b806306fdde031461015b578063095ea7b3146101a15780630ff4c916146101d15780631694505e146101ff57806318160ddd1461024b578063220f66961461026057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061018b604051806040016040528060048152602001637065706560e01b81525081565b6040516101989190610f99565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611003565b6104f0565b6040519015158152602001610198565b3480156101dd57600080fd5b506101f16101ec36600461102d565b610507565b604051908152602001610198565b34801561020b57600080fd5b506102337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610198565b34801561025757600080fd5b506004546101f1565b34801561026c57600080fd5b506009546101c19060ff1681565b34801561028657600080fd5b506101c1610295366004611046565b610659565b3480156102a657600080fd5b506101f160075481565b3480156102bc57600080fd5b506102c5601281565b60405160ff9091168152602001610198565b3480156102e357600080fd5b506101c16102f2366004611003565b61070d565b34801561030357600080fd5b506101f160065481565b34801561031957600080fd5b506102337f000000000000000000000000000000000000000000000000000000000000000081565b34801561034d57600080fd5b506009546101c190610100900460ff1681565b34801561036c57600080fd5b506101f161037b366004611082565b6001600160a01b031660009081526002602052604090205490565b3480156103a257600080fd5b506103ab610744565b005b3480156103b957600080fd5b506000546001600160a01b0316610233565b3480156103d757600080fd5b5061018b604051806040016040528060088152602001672822a822a127a6a160c11b81525081565b34801561040b57600080fd5b506101c161041a366004611003565b610758565b34801561042b57600080fd5b506101c161043a366004611003565b61078f565b34801561044b57600080fd5b506103ab61079c565b34801561046057600080fd5b506101f160085481565b34801561047657600080fd5b506101f16104853660046110a4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104bc57600080fd5b50600154610233906001600160a01b031681565b3480156104dc57600080fd5b506103ab6104eb366004611082565b6107d1565b60006104fd33848461084a565b5060015b92915050565b604080516002808252606082018352600092839291906020830190803683370190505090503081600081518110610540576105406110ed565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610594576105946110ed565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063d06ca61f906105f29086908590600401611147565b600060405180830381865afa15801561060f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106379190810190611168565b600181518110610649576106496110ed565b6020026020010151915050919050565b6001600160a01b0383166000908152600360209081526040808320338452909152812054828110156106e35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106ee85858561096f565b61070285336106fd868561123c565b61084a565b506001949350505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104fd9185906106fd90869061124f565b61074c610cee565b6107566000610d48565b565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104fd9185906106fd90869061123c565b60006104fd33848461096f565b6009805460ff191660011790553060009081526002602052604081205490506107c481610d98565b506009805460ff19169055565b6107d9610cee565b6001600160a01b03811661083e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106da565b61084781610d48565b50565b6001600160a01b0383166108ac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106da565b6001600160a01b03821661090d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106da565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166109d35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106da565b6001600160a01b038216610a355760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106da565b60008111610a975760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106da565b6001600160a01b038316600090815260026020526040902054811115610b0e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106da565b30600090815260026020526040808220547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031683529082205490918115610b6857600854610b6384610507565b101590505b60095460009060ff16158015610bb057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614155b8015610bb95750815b8015610bcc5750600954610100900460ff165b15610bd957610bd961079c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316148015610c2857506001546001600160a01b03878116911614155b15610c4b576103e885600754610c3e9190611262565b610c489190611279565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316148015610c9a57506001546001600160a01b03888116911614155b15610cbd576103e885600654610cb09190611262565b610cba9190611279565b90505b610cc7818661123c565b94508015610cda57610cda873083610ef8565b610ce5878787610ef8565b50505050505050565b6000546001600160a01b031633146107565760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106da565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610dcd57610dcd6110ed565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610e2157610e216110ed565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b81527f000000000000000000000000000000000000000000000000000000000000000083169263791ac94792610e899287926000928892911690429060040161129b565b600060405180830381600087803b158015610ea357600080fd5b505af1158015610eb7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051610eec929190611147565b60405180910390a15050565b6001600160a01b03831660009081526002602052604081208054839290610f2090849061123c565b90915550506001600160a01b03821660009081526002602052604081208054839290610f4d90849061124f565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161096291815260200190565b600060208083528351808285015260005b81811015610fc657858101830151858201604001528201610faa565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ffe57600080fd5b919050565b6000806040838503121561101657600080fd5b61101f83610fe7565b946020939093013593505050565b60006020828403121561103f57600080fd5b5035919050565b60008060006060848603121561105b57600080fd5b61106484610fe7565b925061107260208501610fe7565b9150604084013590509250925092565b60006020828403121561109457600080fd5b61109d82610fe7565b9392505050565b600080604083850312156110b757600080fd5b6110c083610fe7565b91506110ce60208401610fe7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561113c5781516001600160a01b031687529582019590820190600101611117565b509495945050505050565b8281526040602082015260006111606040830184611103565b949350505050565b6000602080838503121561117b57600080fd5b825167ffffffffffffffff8082111561119357600080fd5b818501915085601f8301126111a757600080fd5b8151818111156111b9576111b96110d7565b8060051b604051601f19603f830116810181811085821117156111de576111de6110d7565b6040529182528482019250838101850191888311156111fc57600080fd5b938501935b8285101561121a57845184529385019392850192611201565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561050157610501611226565b8082018082111561050157610501611226565b808202811582820484141761050157610501611226565b60008261129657634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a0604082015260006112ba60a0830186611103565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212205ff10d03f65b002989f231f85563748929b3ed67ac509946dc4b7a5d3cc8e79064736f6c63430008130033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c80634a74bb02116100b6578063a9059cbb1161006f578063a9059cbb1461041f578063b29ad50a1461043f578063d2d7ad8314610454578063dd62ed3e1461046a578063e780c045146104b0578063f2fde38b146104d057600080fd5b80634a74bb021461034157806370a0823114610360578063715018a6146103965780638da5cb5b146103ad57806395d89b41146103cb578063a457c2d7146103ff57600080fd5b806323b872dd1161010857806323b872dd1461027a5780632b14ca561461029a578063313ce567146102b057806339509351146102d757806347062402146102f757806349bd5a5e1461030d57600080fd5b806306fdde031461015b578063095ea7b3146101a15780630ff4c916146101d15780631694505e146101ff57806318160ddd1461024b578063220f66961461026057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061018b604051806040016040528060048152602001637065706560e01b81525081565b6040516101989190610f99565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611003565b6104f0565b6040519015158152602001610198565b3480156101dd57600080fd5b506101f16101ec36600461102d565b610507565b604051908152602001610198565b34801561020b57600080fd5b506102337f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610198565b34801561025757600080fd5b506004546101f1565b34801561026c57600080fd5b506009546101c19060ff1681565b34801561028657600080fd5b506101c1610295366004611046565b610659565b3480156102a657600080fd5b506101f160075481565b3480156102bc57600080fd5b506102c5601281565b60405160ff9091168152602001610198565b3480156102e357600080fd5b506101c16102f2366004611003565b61070d565b34801561030357600080fd5b506101f160065481565b34801561031957600080fd5b506102337f0000000000000000000000000509c9e09d3cf2b5346ebc212231aed09c0fd0b681565b34801561034d57600080fd5b506009546101c190610100900460ff1681565b34801561036c57600080fd5b506101f161037b366004611082565b6001600160a01b031660009081526002602052604090205490565b3480156103a257600080fd5b506103ab610744565b005b3480156103b957600080fd5b506000546001600160a01b0316610233565b3480156103d757600080fd5b5061018b604051806040016040528060088152602001672822a822a127a6a160c11b81525081565b34801561040b57600080fd5b506101c161041a366004611003565b610758565b34801561042b57600080fd5b506101c161043a366004611003565b61078f565b34801561044b57600080fd5b506103ab61079c565b34801561046057600080fd5b506101f160085481565b34801561047657600080fd5b506101f16104853660046110a4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104bc57600080fd5b50600154610233906001600160a01b031681565b3480156104dc57600080fd5b506103ab6104eb366004611082565b6107d1565b60006104fd33848461084a565b5060015b92915050565b604080516002808252606082018352600092839291906020830190803683370190505090503081600081518110610540576105406110ed565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610594576105946110ed565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063d06ca61f906105f29086908590600401611147565b600060405180830381865afa15801561060f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106379190810190611168565b600181518110610649576106496110ed565b6020026020010151915050919050565b6001600160a01b0383166000908152600360209081526040808320338452909152812054828110156106e35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106ee85858561096f565b61070285336106fd868561123c565b61084a565b506001949350505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104fd9185906106fd90869061124f565b61074c610cee565b6107566000610d48565b565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104fd9185906106fd90869061123c565b60006104fd33848461096f565b6009805460ff191660011790553060009081526002602052604081205490506107c481610d98565b506009805460ff19169055565b6107d9610cee565b6001600160a01b03811661083e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106da565b61084781610d48565b50565b6001600160a01b0383166108ac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106da565b6001600160a01b03821661090d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106da565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166109d35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106da565b6001600160a01b038216610a355760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106da565b60008111610a975760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106da565b6001600160a01b038316600090815260026020526040902054811115610b0e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106da565b30600090815260026020526040808220547f0000000000000000000000000509c9e09d3cf2b5346ebc212231aed09c0fd0b66001600160a01b031683529082205490918115610b6857600854610b6384610507565b101590505b60095460009060ff16158015610bb057507f0000000000000000000000000509c9e09d3cf2b5346ebc212231aed09c0fd0b66001600160a01b0316876001600160a01b031614155b8015610bb95750815b8015610bcc5750600954610100900460ff165b15610bd957610bd961079c565b7f0000000000000000000000000509c9e09d3cf2b5346ebc212231aed09c0fd0b66001600160a01b0316866001600160a01b0316148015610c2857506001546001600160a01b03878116911614155b15610c4b576103e885600754610c3e9190611262565b610c489190611279565b90505b7f0000000000000000000000000509c9e09d3cf2b5346ebc212231aed09c0fd0b66001600160a01b0316876001600160a01b0316148015610c9a57506001546001600160a01b03888116911614155b15610cbd576103e885600654610cb09190611262565b610cba9190611279565b90505b610cc7818661123c565b94508015610cda57610cda873083610ef8565b610ce5878787610ef8565b50505050505050565b6000546001600160a01b031633146107565760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106da565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610dcd57610dcd6110ed565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610e2157610e216110ed565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83169263791ac94792610e899287926000928892911690429060040161129b565b600060405180830381600087803b158015610ea357600080fd5b505af1158015610eb7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051610eec929190611147565b60405180910390a15050565b6001600160a01b03831660009081526002602052604081208054839290610f2090849061123c565b90915550506001600160a01b03821660009081526002602052604081208054839290610f4d90849061124f565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161096291815260200190565b600060208083528351808285015260005b81811015610fc657858101830151858201604001528201610faa565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ffe57600080fd5b919050565b6000806040838503121561101657600080fd5b61101f83610fe7565b946020939093013593505050565b60006020828403121561103f57600080fd5b5035919050565b60008060006060848603121561105b57600080fd5b61106484610fe7565b925061107260208501610fe7565b9150604084013590509250925092565b60006020828403121561109457600080fd5b61109d82610fe7565b9392505050565b600080604083850312156110b757600080fd5b6110c083610fe7565b91506110ce60208401610fe7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561113c5781516001600160a01b031687529582019590820190600101611117565b509495945050505050565b8281526040602082015260006111606040830184611103565b949350505050565b6000602080838503121561117b57600080fd5b825167ffffffffffffffff8082111561119357600080fd5b818501915085601f8301126111a757600080fd5b8151818111156111b9576111b96110d7565b8060051b604051601f19603f830116810181811085821117156111de576111de6110d7565b6040529182528482019250838101850191888311156111fc57600080fd5b938501935b8285101561121a57845184529385019392850192611201565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561050157610501611226565b8082018082111561050157610501611226565b808202811582820484141761050157610501611226565b60008261129657634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a0604082015260006112ba60a0830186611103565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212205ff10d03f65b002989f231f85563748929b3ed67ac509946dc4b7a5d3cc8e79064736f6c63430008130033
Deployed Bytecode Sourcemap
22857:8231:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23642:36;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23642:36:0;;;;;;;;;;;;:::i;:::-;;;;;;;;25859:186;;;;;;;;;;-1:-1:-1;25859:186:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;25859:186:0;1004:187:1;30838:247:0;;;;;;;;;;-1:-1:-1;30838:247:0;;;;;:::i;:::-;;:::i;:::-;;;1527:25:1;;;1515:2;1500:18;30838:247:0;1381:177:1;23905:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1754:32:1;;;1736:51;;1724:2;1709:18;23905:51:0;1563:230:1;25129:95:0;;;;;;;;;;-1:-1:-1;25209:7:0;;25129:95;;24047:28;;;;;;;;;;-1:-1:-1;24047:28:0;;;;;;;;26090:478;;;;;;;;;;-1:-1:-1;26090:478:0;;;;;:::i;:::-;;:::i;23809:26::-;;;;;;;;;;;;;;;;23734:35;;;;;;;;;;;;23767:2;23734:35;;;;;2303:4:1;2291:17;;;2273:36;;2261:2;2246:18;23734:35:0;2131:184:1;26618:290:0;;;;;;;;;;-1:-1:-1;26618:290:0;;;;;:::i;:::-;;:::i;23778:22::-;;;;;;;;;;;;;;;;23963:38;;;;;;;;;;;;;;;24082:40;;;;;;;;;;-1:-1:-1;24082:40:0;;;;;;;;;;;25232:117;;;;;;;;;;-1:-1:-1;25232:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;25325:16:0;25298:7;25325:16;;;:7;:16;;;;;;;25232:117;12977:103;;;;;;;;;;;;;:::i;:::-;;12329:87;;;;;;;;;;-1:-1:-1;12375:7:0;12402:6;-1:-1:-1;;;;;12402:6:0;12329:87;;23685:42;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23685:42:0;;;;;26958:300;;;;;;;;;;-1:-1:-1;26958:300:0;;;;;:::i;:::-;;:::i;25399:192::-;;;;;;;;;;-1:-1:-1;25399:192:0;;;;;:::i;:::-;;:::i;29514:150::-;;;;;;;;;;;;;:::i;23844:50::-;;;;;;;;;;;;;;;;25641:170;;;;;;;;;;-1:-1:-1;25641:170:0;;;;;:::i;:::-;-1:-1:-1;;;;;25775:19:0;;;25748:7;25775:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;25641:170;22942:94;;;;;;;;;;-1:-1:-1;22942:94:0;;;;-1:-1:-1;;;;;22942:94:0;;;13235:238;;;;;;;;;;-1:-1:-1;13235:238:0;;;;;:::i;:::-;;:::i;25859:186::-;25959:4;25976:39;140:10;25999:7;26008:6;25976:8;:39::i;:::-;-1:-1:-1;26033:4:0;25859:186;;;;;:::o;30838:247::-;30929:16;;;30943:1;30929:16;;;;;;;;30884:4;;;;30929:16;30943:1;30929:16;;;;;;;;;;-1:-1:-1;30929:16:0;30900:45;;30979:4;30956:9;30966:1;30956:12;;;;;;;;:::i;:::-;;;;;;:28;-1:-1:-1;;;;;30956:28:0;;;-1:-1:-1;;;;;30956:28:0;;;;;31010:4;30995:9;31005:1;30995:12;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30995:19:0;;;:12;;;;;;;;;:19;31032:42;;-1:-1:-1;;;31032:42:0;;:15;:29;;;;;;:42;;31062:1;;31064:9;;31032:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;31032:42:0;;;;;;;;;;;;:::i;:::-;31075:1;31032:45;;;;;;;;:::i;:::-;;;;;;;31025:52;;;30838:247;;;:::o;26090:478::-;-1:-1:-1;;;;;26263:19:0;;26222:4;26263:19;;;:11;:19;;;;;;;;140:10;26263:33;;;;;;;;26329:26;;;;26307:116;;;;-1:-1:-1;;;26307:116:0;;5587:2:1;26307:116:0;;;5569:21:1;5626:2;5606:18;;;5599:30;5665:34;5645:18;;;5638:62;-1:-1:-1;;;5716:18:1;;;5709:38;5764:19;;26307:116:0;;;;;;;;;26434:36;26444:6;26452:9;26463:6;26434:9;:36::i;:::-;26481:57;26490:6;140:10;26512:25;26531:6;26512:16;:25;:::i;:::-;26481:8;:57::i;:::-;-1:-1:-1;26556:4:0;;26090:478;-1:-1:-1;;;;26090:478:0:o;26618:290::-;140:10;26731:4;26820:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;26820:34:0;;;;;;;;;;26731:4;;26748:130;;26798:7;;26820:47;;26857:10;;26820:47;:::i;12977:103::-;12215:13;:11;:13::i;:::-;13042:30:::1;13069:1;13042:18;:30::i;:::-;12977:103::o:0;26958:300::-;140:10;27076:4;27165:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;27165:34:0;;;;;;;;;;27076:4;;27093:135;;27143:7;;27165:52;;27202:15;;27165:52;:::i;25399:192::-;25502:4;25519:42;140:10;25543:9;25554:6;25519:9;:42::i;29514:150::-;24165:16;:23;;-1:-1:-1;;24165:23:0;24184:4;24165:23;;;29610:4:::1;-1:-1:-1::0;25325:16:0;;;:7;:16;;;;;;29570:46:::1;;29627:29;29644:11;29627:16;:29::i;:::-;-1:-1:-1::0;24211:16:0;:24;;-1:-1:-1;;24211:24:0;;;29514:150::o;13235:238::-;12215:13;:11;:13::i;:::-;-1:-1:-1;;;;;13338:22:0;::::1;13316:110;;;::::0;-1:-1:-1;;;13316:110:0;;6391:2:1;13316:110:0::1;::::0;::::1;6373:21:1::0;6430:2;6410:18;;;6403:30;6469:34;6449:18;;;6442:62;-1:-1:-1;;;6520:18:1;;;6513:36;6566:19;;13316:110:0::1;6189:402:1::0;13316:110:0::1;13437:28;13456:8;13437:18;:28::i;:::-;13235:238:::0;:::o;27290:341::-;-1:-1:-1;;;;;27384:20:0;;27376:69;;;;-1:-1:-1;;;27376:69:0;;6798:2:1;27376:69:0;;;6780:21:1;6837:2;6817:18;;;6810:30;6876:34;6856:18;;;6849:62;-1:-1:-1;;;6927:18:1;;;6920:34;6971:19;;27376:69:0;6596:400:1;27376:69:0;-1:-1:-1;;;;;27464:21:0;;27456:68;;;;-1:-1:-1;;;27456:68:0;;7203:2:1;27456:68:0;;;7185:21:1;7242:2;7222:18;;;7215:30;7281:34;7261:18;;;7254:62;-1:-1:-1;;;7332:18:1;;;7325:32;7374:19;;27456:68:0;7001:398:1;27456:68:0;-1:-1:-1;;;;;27537:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;27590:33;;1527:25:1;;;27590:33:0;;1500:18:1;27590:33:0;;;;;;;;27290:341;;;:::o;27764:1515::-;-1:-1:-1;;;;;27852:18:0;;27844:68;;;;-1:-1:-1;;;27844:68:0;;7606:2:1;27844:68:0;;;7588:21:1;7645:2;7625:18;;;7618:30;7684:34;7664:18;;;7657:62;-1:-1:-1;;;7735:18:1;;;7728:35;7780:19;;27844:68:0;7404:401:1;27844:68:0;-1:-1:-1;;;;;27931:16:0;;27923:64;;;;-1:-1:-1;;;27923:64:0;;8012:2:1;27923:64:0;;;7994:21:1;8051:2;8031:18;;;8024:30;8090:34;8070:18;;;8063:62;-1:-1:-1;;;8141:18:1;;;8134:33;8184:19;;27923:64:0;7810:399:1;27923:64:0;28015:1;28006:6;:10;27998:64;;;;-1:-1:-1;;;27998:64:0;;8416:2:1;27998:64:0;;;8398:21:1;8455:2;8435:18;;;8428:30;8494:34;8474:18;;;8467:62;-1:-1:-1;;;8545:18:1;;;8538:39;8594:19;;27998:64:0;8214:405:1;27998:64:0;-1:-1:-1;;;;;28095:13:0;;;;;;:7;:13;;;;;;:23;-1:-1:-1;28095:23:0;28073:111;;;;-1:-1:-1;;;28073:111:0;;8826:2:1;28073:111:0;;;8808:21:1;8865:2;8845:18;;;8838:30;8904:34;8884:18;;;8877:62;-1:-1:-1;;;8955:18:1;;;8948:36;9001:19;;28073:111:0;8624:402:1;28073:111:0;28290:4;28241:28;25325:16;;;:7;:16;;;;;;;28350:13;-1:-1:-1;;;;;25325:16:0;;;;;;;;;28417:26;;28414:153;;28532:23;;28485:30;28494:20;28485:8;:30::i;:::-;:70;;28459:96;;28414:153;28703:16;;28577:8;;28703:16;;28702:17;:55;;;;;28744:13;-1:-1:-1;;;;;28736:21:0;:4;-1:-1:-1;;;;;28736:21:0;;;28702:55;:95;;;;;28774:23;28702:95;:133;;;;-1:-1:-1;28814:21:0;;;;;;;28702:133;28684:206;;;28862:16;:14;:16::i;:::-;28910:13;-1:-1:-1;;;;;28904:19:0;:2;-1:-1:-1;;;;;28904:19:0;;:37;;;;-1:-1:-1;28933:8:0;;-1:-1:-1;;;;;28927:14:0;;;28933:8;;28927:14;;28904:37;28900:101;;;28985:4;28975:6;28965:7;;:16;;;;:::i;:::-;28964:25;;;;:::i;:::-;28958:31;;28900:101;29023:13;-1:-1:-1;;;;;29015:21:0;:4;-1:-1:-1;;;;;29015:21:0;;:41;;;;-1:-1:-1;29048:8:0;;-1:-1:-1;;;;;29040:16:0;;;29048:8;;29040:16;;29015:41;29011:104;;;29099:4;29089:6;29080;;:15;;;;:::i;:::-;29079:24;;;;:::i;:::-;29073:30;;29011:104;29125:13;29135:3;29125:13;;:::i;:::-;;-1:-1:-1;29153:7:0;;29149:80;;29177:40;29192:4;29206;29213:3;29177:14;:40::i;:::-;29239:32;29254:4;29260:2;29264:6;29239:14;:32::i;:::-;27833:1446;;;;27764:1515;;;:::o;12494:132::-;12375:7;12402:6;-1:-1:-1;;;;;12402:6:0;140:10;12558:23;12550:68;;;;-1:-1:-1;;;12550:68:0;;9628:2:1;12550:68:0;;;9610:21:1;;;9647:18;;;9640:30;9706:34;9686:18;;;9679:62;9758:18;;12550:68:0;9426:356:1;13633:191:0;13707:16;13726:6;;-1:-1:-1;;;;;13743:17:0;;;-1:-1:-1;;;;;;13743:17:0;;;;;;13776:40;;13726:6;;;;;;;13776:40;;13707:16;13776:40;13696:128;13633:191;:::o;29792:558::-;29942:16;;;29956:1;29942:16;;;;;;;;29918:21;;29942:16;;;;;;;;;;-1:-1:-1;29942:16:0;29918:40;;29987:4;29969;29974:1;29969:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;29969:23:0;;;-1:-1:-1;;;;;29969:23:0;;;;;30013:4;30003;30008:1;30003:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30003:14:0;;;:7;;;;;;;;;:14;30224:8;;30054:235;;-1:-1:-1;;;30054:235:0;;:15;:66;;;;;:235;;30135:11;;30161:1;;30205:4;;30224:8;;;30263:15;;30054:235;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30307:35;30324:11;30337:4;30307:35;;;;;;;:::i;:::-;;;;;;;;29847:503;29792:558;:::o;30486:253::-;-1:-1:-1;;;;;30614:15:0;;;;;;:7;:15;;;;;:25;;30633:6;;30614:15;:25;;30633:6;;30614:25;:::i;:::-;;;;-1:-1:-1;;;;;;;30650:18:0;;;;;;:7;:18;;;;;:28;;30672:6;;30650:18;:28;;30672:6;;30650:28;:::i;:::-;;;;;;;;30713:9;-1:-1:-1;;;;;30696:35:0;30705:6;-1:-1:-1;;;;;30696:35:0;;30724:6;30696:35;;;;1527:25:1;;1515:2;1500:18;;1381:177;14:548;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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:180::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;-1:-1:-1;1347:23:1;;1196:180;-1:-1:-1;1196:180:1:o;1798:328::-;1875:6;1883;1891;1944:2;1932:9;1923:7;1919:23;1915:32;1912:52;;;1960:1;1957;1950:12;1912:52;1983:29;2002:9;1983:29;:::i;:::-;1973:39;;2031:38;2065:2;2054:9;2050:18;2031:38;:::i;:::-;2021:48;;2116:2;2105:9;2101:18;2088:32;2078:42;;1798:328;;;;;:::o;2528:186::-;2587:6;2640:2;2628:9;2619:7;2615:23;2611:32;2608:52;;;2656:1;2653;2646:12;2608:52;2679:29;2698:9;2679:29;:::i;:::-;2669:39;2528:186;-1:-1:-1;;;2528:186:1:o;2719:260::-;2787:6;2795;2848:2;2836:9;2827:7;2823:23;2819:32;2816:52;;;2864:1;2861;2854:12;2816:52;2887:29;2906:9;2887:29;:::i;:::-;2877:39;;2935:38;2969:2;2958:9;2954:18;2935:38;:::i;:::-;2925:48;;2719:260;;;;;:::o;3208:127::-;3269:10;3264:3;3260:20;3257:1;3250:31;3300:4;3297:1;3290:15;3324:4;3321:1;3314:15;3340:127;3401:10;3396:3;3392:20;3389:1;3382:31;3432:4;3429:1;3422:15;3456:4;3453:1;3446:15;3472:461;3525:3;3563:5;3557:12;3590:6;3585:3;3578:19;3616:4;3645:2;3640:3;3636:12;3629:19;;3682:2;3675:5;3671:14;3703:1;3713:195;3727:6;3724:1;3721:13;3713:195;;;3792:13;;-1:-1:-1;;;;;3788:39:1;3776:52;;3848:12;;;;3883:15;;;;3824:1;3742:9;3713:195;;;-1:-1:-1;3924:3:1;;3472:461;-1:-1:-1;;;;;3472:461:1:o;3938:332::-;4145:6;4134:9;4127:25;4188:2;4183;4172:9;4168:18;4161:30;4108:4;4208:56;4260:2;4249:9;4245:18;4237:6;4208:56;:::i;:::-;4200:64;3938:332;-1:-1:-1;;;;3938:332:1:o;4275:1105::-;4370:6;4401:2;4444;4432:9;4423:7;4419:23;4415:32;4412:52;;;4460:1;4457;4450:12;4412:52;4493:9;4487:16;4522:18;4563:2;4555:6;4552:14;4549:34;;;4579:1;4576;4569:12;4549:34;4617:6;4606:9;4602:22;4592:32;;4662:7;4655:4;4651:2;4647:13;4643:27;4633:55;;4684:1;4681;4674:12;4633:55;4713:2;4707:9;4735:2;4731;4728:10;4725:36;;;4741:18;;:::i;:::-;4787:2;4784:1;4780:10;4819:2;4813:9;4882:2;4878:7;4873:2;4869;4865:11;4861:25;4853:6;4849:38;4937:6;4925:10;4922:22;4917:2;4905:10;4902:18;4899:46;4896:72;;;4948:18;;:::i;:::-;4984:2;4977:22;5034:18;;;5068:15;;;;-1:-1:-1;5110:11:1;;;5106:20;;;5138:19;;;5135:39;;;5170:1;5167;5160:12;5135:39;5194:11;;;;5214:135;5230:6;5225:3;5222:15;5214:135;;;5296:10;;5284:23;;5247:12;;;;5327;;;;5214:135;;;5368:6;4275:1105;-1:-1:-1;;;;;;;;4275:1105:1:o;5794:127::-;5855:10;5850:3;5846:20;5843:1;5836:31;5886:4;5883:1;5876:15;5910:4;5907:1;5900:15;5926:128;5993:9;;;6014:11;;;6011:37;;;6028:18;;:::i;6059:125::-;6124:9;;;6145:10;;;6142:36;;;6158:18;;:::i;9031:168::-;9104:9;;;9135;;9152:15;;;9146:22;;9132:37;9122:71;;9173:18;;:::i;9204:217::-;9244:1;9270;9260:132;;9314:10;9309:3;9305:20;9302:1;9295:31;9349:4;9346:1;9339:15;9377:4;9374:1;9367:15;9260:132;-1:-1:-1;9406:9:1;;9204:217::o;9787:590::-;10094:6;10083:9;10076:25;10137:6;10132:2;10121:9;10117:18;10110:34;10180:3;10175:2;10164:9;10160:18;10153:31;10057:4;10201:57;10253:3;10242:9;10238:19;10230:6;10201:57;:::i;:::-;-1:-1:-1;;;;;10294:32:1;;;;10289:2;10274:18;;10267:60;-1:-1:-1;10358:3:1;10343:19;10336:35;10193:65;9787:590;-1:-1:-1;;;9787:590:1:o
Swarm Source
ipfs://5ff10d03f65b002989f231f85563748929b3ed67ac509946dc4b7a5d3cc8e790
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.