mirror of
https://github.com/luxfi/precompile.git
synced 2026-09-24 00:26:21 +00:00
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.
16 lines
1.2 KiB
Solidity
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);}
|
|
}
|