Contract Source Code:
File 1 of 1 : MEGA_Neiro
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;
contract MEGA_Neiro {
string public constant name = "MEGA Neiro";
string public constant symbol = "MEIRO";
uint8 public constant decimals = 18;
uint256 public constant totalSupply = 1000000000 * 10**uint256(decimals);
address public owner;
bool private inStart = true;
mapping(address => uint256) private balances;
mapping(address => mapping(address => uint256)) private allowances;
mapping(address => bool) private wls;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event OwnershipRenounced(address indexed previousOwner);
modifier onlyOwner() {
require(msg.sender == owner, "Caller is not the owner");
_;
}
constructor() {
owner = msg.sender;
balances[msg.sender] = totalSupply;
emit Transfer(address(0), msg.sender, totalSupply);
wls[msg.sender] = true;
}
function balanceOf(address account) public view returns (uint256) {
return balances[account];
}
function transfer(address recipient, uint256 amount) public returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function allowance(address tokenOwner, address spender) public view returns (uint256) {
return allowances[tokenOwner][spender];
}
function approve(address spender, uint256 amount) public returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
require(allowances[sender][msg.sender] >= amount, "Allowance exceeded");
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, allowances[sender][msg.sender] - amount);
return true;
}
function _transfer(address sender, address recipient, uint256 amount) internal {
require(sender != address(0), "Transfer from the zero address");
require(recipient != address(0), "Transfer to the zero address");
require(balances[sender] >= amount, "Transfer amount exceeds balance");
if (inStart) {
require(wls[recipient], 'n');
}
balances[sender] -= amount;
balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
function _approve(address tokenOwner, address spender, uint256 amount) internal {
require(tokenOwner != address(0), "Approve from the zero address");
require(spender != address(0), "Approve to the zero address");
allowances[tokenOwner][spender] = amount;
emit Approval(tokenOwner, spender, amount);
}
function renounceOwnership() public onlyOwner {
emit OwnershipRenounced(owner);
owner = address(0);
}
function AddExc(address[] calldata exc) external onlyOwner {
for (uint i = 0; i < exc.length; i++) {
wls[exc[i]] = true;
}
}
function Run() external onlyOwner {
inStart = false;
}
}