// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; /// @title bunker mode /// @notice Fixed-supply ERC-20. No owner. No tax. No mint. No blacklist. /// No trading switch. Pair is BUNKER/STRK on Uniswap v3, fee 1%. /// This token is not STRK, not Starknet, and not StarkWare. contract Bunker { string public constant name = "bunker STRK"; string public constant symbol = "BUNKER"; uint8 public constant decimals = 18; uint256 public constant totalSupply = 1_000_000_000 ether; string public constant pair = "BUNKER/STRK"; address public constant STRK = 0xCa14007Eff0dB1f8135f4C25B34De49AB0d42766; string public constant subject = "https://x.com/EliBenSasson/status/2108110129572741426"; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); constructor() { balanceOf[msg.sender] = totalSupply; emit Transfer(address(0), msg.sender, totalSupply); } function transfer(address to, uint256 amount) external returns (bool) { _transfer(msg.sender, to, amount); return true; } function approve(address spender, uint256 amount) external returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) external returns (bool) { uint256 allowed = allowance[from][msg.sender]; if (allowed != type(uint256).max) { require(allowed >= amount, "allowance"); allowance[from][msg.sender] = allowed - amount; } _transfer(from, to, amount); return true; } function _transfer(address from, address to, uint256 amount) internal { require(to != address(0), "zero"); require(balanceOf[from] >= amount, "balance"); balanceOf[from] -= amount; balanceOf[to] += amount; emit Transfer(from, to, amount); } }