@cfxdevkit/compiler / TEST_TOKEN_SOURCE
Variable: TEST_TOKEN_SOURCE
constTEST_TOKEN_SOURCE: ”// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\ncontract TestToken {\n string public name;\n string public symbol;\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n\n mapping(address => uint256) private balances;\n mapping(address => mapping(address => uint256)) private allowances;\n\n event Transfer(address indexed from, address indexed to, uint256 value);\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n constructor(string memory _name, string memory _symbol, uint256 _initialSupply) {\n name = _name;\n symbol = _symbol;\n totalSupply = _initialSupply * 10 ** decimals;\n balances[msg.sender] = totalSupply;\n emit Transfer(address(0), msg.sender, totalSupply);\n }\n\n function balanceOf(address account) public view returns (uint256) {\n return balances[account];\n }\n\n function allowance(address owner, address spender) public view returns (uint256) {\n return allowances[owner][spender];\n }\n\n function transfer(address to, uint256 amount) public returns (bool) {\n require(to != address(0), “TestToken: transfer to zero address”);\n require(balances[msg.sender] >= amount, “TestToken: insufficient balance”);\n balances[msg.sender] -= amount;\n balances[to] += amount;\n emit Transfer(msg.sender, to, amount);\n return true;\n }\n\n function approve(address spender, uint256 amount) public returns (bool) {\n require(spender != address(0), “TestToken: approve to zero address”);\n allowances[msg.sender][spender] = amount;\n emit Approval(msg.sender, spender, amount);\n return true;\n }\n\n function transferFrom(address from, address to, uint256 amount) public returns (bool) {\n require(from != address(0), “TestToken: transfer from zero address”);\n require(to != address(0), “TestToken: transfer to zero address”);\n require(balances[from] >= amount, “TestToken: insufficient balance”);\n require(allowances[from][msg.sender] >= amount, “TestToken: insufficient allowance”);\n balances[from] -= amount;\n balances[to] += amount;\n allowances[from][msg.sender] -= amount;\n emit Transfer(from, to, amount);\n return true;\n }\n\n function mint(address to, uint256 amount) public {\n require(to != address(0), “TestToken: mint to zero address”);\n totalSupply += amount;\n balances[to] += amount;\n emit Transfer(address(0), to, amount);\n }\n\n function burn(uint256 amount) public {\n require(balances[msg.sender] >= amount, “TestToken: burn amount exceeds balance”);\n balances[msg.sender] -= amount;\n totalSupply -= amount;\n emit Transfer(msg.sender, address(0), amount);\n }\n}”
Defined in: templates/test-token.ts:16
Solidity source for TestToken