Files
precompile/dex/testdata/TestToken.sol
T
zeekay 1e33ee32ba decomplect: retire pqcrypto bundle (0x9003) — standalone mldsa/mlkem/slhdsa is the one way
Network reboot, no backward compat: delete the AI-slop pqcrypto bundle + every
gate pinning it (pqcryptoConfig genesis activation, relaunch-safety test pin).
ML-KEM stays via standalone mlkem (0x012201). pqcryptoConfig removed from all
upgrade.json/yaml; 0x9003 retired, never reuse.
2026-06-27 16:08:48 -07:00

16 lines
1.2 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract TestToken {
string public name; string public symbol; uint8 public constant decimals = 0;
uint256 public totalSupply;
mapping(address=>uint256) public balanceOf;
mapping(address=>mapping(address=>uint256)) public allowance;
event Transfer(address indexed from,address indexed to,uint256 v);
event Approval(address indexed o,address indexed s,uint256 v);
constructor(string memory n,string memory s,uint256 supply){name=n;symbol=s;totalSupply=supply;balanceOf[msg.sender]=supply;emit Transfer(address(0),msg.sender,supply);}
function transfer(address to,uint256 v) external returns(bool){_xfer(msg.sender,to,v);return true;}
function approve(address sp,uint256 v) external returns(bool){allowance[msg.sender][sp]=v;emit Approval(msg.sender,sp,v);return true;}
function transferFrom(address f,address to,uint256 v) external returns(bool){uint256 a=allowance[f][msg.sender];require(a>=v,"allow");if(a!=type(uint256).max)allowance[f][msg.sender]=a-v;_xfer(f,to,v);return true;}
function _xfer(address f,address to,uint256 v) internal{require(balanceOf[f]>=v,"bal");balanceOf[f]-=v;balanceOf[to]+=v;emit Transfer(f,to,v);}
}