Files
mini-swap/contracts/TokenB.sol
NoBey 3faf89e0a1 feat: 完成 Mini Swap DEX AMM 项目开发
- 添加智能合约: TokenA, TokenB, MiniSwapAMM
- 实现 AMM 流动性池功能 (x * y = k 公式)
- 支持添加/移除流动性和代币交换
- 包含完整的测试套件
- 创建 React 前端界面,支持钱包连接
- 添加 Web3 集成和现代化 UI 设计
- 包含部署脚本和完整的项目配置
2025-07-10 01:39:43 +08:00

34 lines
1021 B
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
/**
* @title TokenB
* @dev 用于 DEX 的第二个 ERC-20 代币
*/
contract TokenB is ERC20, Ownable {
constructor() ERC20("Token B", "TKB") Ownable(msg.sender) {
// 初始铸造 1,000,000 个代币给部署者
_mint(msg.sender, 1000000 * 10**decimals());
}
/**
* @dev 允许所有者铸造更多代币
* @param to 接收代币的地址
* @param amount 铸造的代币数量
*/
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}
/**
* @dev 允许任何人铸造代币用于测试(仅限测试环境)
* @param amount 铸造的代币数量
*/
function faucet(uint256 amount) public {
require(amount <= 10000 * 10**decimals(), "TokenB: Maximum 10,000 tokens per faucet call");
_mint(msg.sender, amount);
}
}