Description:
ERC20 token contract with Factory capabilities. Standard implementation for fungible tokens on Ethereum.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
{{
"language": "Solidity",
"sources": {
"CREPE New.sol": {
"content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.19;\r
\r
abstract contract Context {\r
function _msgSender() internal view virtual returns (address) {\r
return msg.sender;\r
}\r
}\r
\r
interface IERC20 {\r
function totalSupply() external view returns (uint256);\r
function balanceOf(address account) external view returns (uint256);\r
function transfer(address recipient, uint256 amount) external returns (bool);\r
function allowance(address owner, address spender) external view returns (uint256);\r
function approve(address spender, uint256 amount) external returns (bool);\r
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\r
event Transfer(address indexed from, address indexed to, uint256 value);\r
event Approval(address indexed owner, address indexed spender, uint256 value);\r
}\r
\r
contract Ownable is Context {\r
address private _owner;\r
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r
constructor () {\r
_owner = _msgSender();\r
emit OwnershipTransferred(address(0), _owner);\r
}\r
function owner() public view returns (address) {\r
return _owner;\r
}\r
modifier onlyOwner() {\r
require(_owner == _msgSender(), "Not owner");\r
_;\r
}\r
function renounceOwnership() public onlyOwner {\r
emit OwnershipTransferred(_owner, address(0));\r
_owner = address(0);\r
}\r
}\r
\r
contract CrazedPEPE is Context, IERC20, Ownable {\r
string private constant _name = "Crazed PEPE";\r
string private constant _symbol = "CREPE";\r
uint8 private constant _decimals = 18;\r
uint256 private constant _totalSupply = 1_000_000_000 * 10**_decimals;\r
\r
mapping(address => uint256) private _balances;\r
mapping(address => mapping(address => uint256)) private _allowances;\r
\r
uint256 public maxWalletAmount;\r
mapping(address => bool) private _isExcludedFromMaxWallet;\r
\r
constructor() {\r
// Distribute tokens\r
address liquidityWallet = 0x0Ca2038523d2eAFe8B27144B0301FB3595862107;\r
address devWallet = 0x4A94D310769327f9DdB3120Be6486A90AF5F3Fa9; //\r
\r
uint256 liquidityAmount = (_totalSupply * 70) / 100;\r
uint256 ownerAmount = _totalSupply - liquidityAmount;\r
\r
_balances[liquidityWallet] = liquidityAmount;\r
_balances[devWallet] = ownerAmount;\r
\r
emit Transfer(address(0), liquidityWallet, liquidityAmount);\r
emit Transfer(address(0), devWallet, ownerAmount);\r
\r
// Set max wallet limit (2%)\r
maxWalletAmount = (_totalSupply * 2) / 100;\r
\r
_isExcludedFromMaxWallet[liquidityWallet] = true;\r
_isExcludedFromMaxWallet[devWallet] = true;\r
_isExcludedFromMaxWallet[address(this)] = true;\r
}\r
\r
function name() public pure returns (string memory) {\r
return _name;\r
}\r
\r
function symbol() public pure returns (string memory) {\r
return _symbol;\r
}\r
\r
function decimals() public pure returns (uint8) {\r
return _decimals;\r
}\r
\r
function totalSupply() public pure override returns (uint256) {\r
return _totalSupply;\r
}\r
\r
function balanceOf(address account) public view override returns (uint256) {\r
return _balances[account];\r
}\r
\r
function transfer(address recipient, uint256 amount) public override returns (bool) {\r
_transfer(_msgSender(), recipient, amount);\r
return true;\r
}\r
\r
function allowance(address owner_, address spender) public view override returns (uint256) {\r
return _allowances[owner_][spender];\r
}\r
\r
function approve(address spender, uint256 amount) public override returns (bool) {\r
_approve(_msgSender(), spender, amount);\r
return true;\r
}\r
\r
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {\r
_transfer(sender, recipient, amount);\r
_approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);\r
return true;\r
}\r
\r
function _approve(address owner_, address spender, uint256 amount) private {\r
require(owner_ != address(0), "Zero address");\r
require(spender != address(0), "Zero address");\r
_allowances[owner_][spender] = amount;\r
emit Approval(owner_, spender, amount);\r
}\r
\r
function _transfer(address from, address to, uint256 amount) private {\r
require(from != address(0), "Zero from");\r
require(to != address(0), "Zero to");\r
require(amount > 0, "Zero amount");\r
\r
if (!_isExcludedFromMaxWallet[to]) {\r
require(_balances[to] + amount <= maxWalletAmount, "Exceeds max wallet");\r
}\r
\r
_balances[from] -= amount;\r
_balances[to] += amount;\r
emit Transfer(from, to, amount);\r
}\r
\r
function excludeFromMaxWallet(address account, bool excluded) external onlyOwner {\r
_isExcludedFromMaxWallet[account] = excluded;\r
}\r
\r
function isExcludedFromMaxWallet(address account) external view returns (bool) {\r
return _isExcludedFromMaxWallet[account];\r
}\r
}\r
"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}
}}
Submitted on: 2025-11-01 11:08:48
Comments
Log in to comment.
No comments yet.