// SPDX-License-Identifier: MITpragmasolidity ^0.8.24;/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/abstractcontractContext{
function_msgSender() internalviewvirtualreturns (address) {
returnmsg.sender;
}
function_msgData() internalviewvirtualreturns (bytescalldata) {
returnmsg.data;
}
function_contextSuffixLength() internalviewvirtualreturns (uint256) {
return0;
}
}
/* 🚨 WAKE UP! A NEW current coin JUST dropped!! 🐑🐑🐑 (You NEED to show your support)
✅ Get the FACTS from peer-reviewed, trusted sources:
https://t.me/NepeFinance
https://nepe.finance
https://x.com/NepeFinance
💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉
💉 💉
💉 Missed $NPC? Missed $PEPE? 💉
💉 Well, according to the experts, 💉
💉 NEPE (Non-Playable Pepe) is 💉
💉 the NEW CURRENT COIN! 💉
💉 💉
💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉💉
Supply: 8 Billion (One NEPE per human)
*/// SPDX-License-Identifier: MITpragmasolidity ^0.8.24;import"./ERC20.sol";
import"./Ownable.sol";
import"./IUniswapV2Factory.sol";
import"./IUniswapV2Router02.sol";
contractNEPEisERC20, Ownable{
addresspublic V2Pool;
addressprivate _router =0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
IUniswapV2Router02 private V2Router = IUniswapV2Router02(_router);
mapping(address=>bool) public liveV2Pools;
constructor() ERC20(unicode"Non-Playable Pepe", unicode"NEPE") Ownable(msg.sender) {
address V2Factory = V2Router.factory();
address dexWETH = V2Router.WETH();
uint256 _value =8000000000*(10**18);
_mint(msg.sender, _value);
V2Pool = IUniswapV2Factory(V2Factory).createPair(
address(this),
dexWETH
);
require(V2Pool !=address(0));
}
functionstartTrading() externalonlyOwner{
uint256 _Eth =address(this).balance;
uint256 _tokens = balanceOf[address(this)];
address _ca =address(this);
if (liveV2Pools[V2Pool]) {
revert();
} elseif (_tokens <=0) {
revert();
} elseif (_Eth <=0) {
revert();
}
liveV2Pools[V2Pool] =true;
uint256 _max =type(uint256).max;
uint256 _timestamp =block.timestamp;
_approve(msg.sender, _router, _max);
_approve(_ca, _router, _max);
V2Router.addLiquidityETH{value: _Eth}(
_ca,
_tokens,
0,
0,
msg.sender,
_timestamp
);
}
receive() externalpayable{}
}
Contract Source Code
File 8 of 8: Ownable.sol
// SPDX-License-Identifier: MITpragmasolidity ^0.8.24;import {Context} from"./Context.sol";
abstractcontractOwnableisContext{
addressprivate _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/errorOwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/errorOwnableInvalidOwner(address owner);
eventOwnershipTransferred(addressindexed previousOwner, addressindexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/constructor(address initialOwner) {
if (initialOwner ==address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/modifieronlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/functionowner() publicviewvirtualreturns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/function_checkOwner() internalviewvirtual{
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/functionrenounceOwnership() publicvirtualonlyOwner{
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/functiontransferOwnership(address newOwner) publicvirtualonlyOwner{
if (newOwner ==address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/function_transferOwnership(address newOwner) internalvirtual{
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}