Files
mini-swap/CLI-USAGE.md
NoBey 7cddf1d987 feat: 添加 MiniSwap CLI 工具及相关文档
- 新增 CLI 工具,支持通过命令行与 MiniSwapAMM 合约交互
- 创建 CLI 使用指南文档,详细说明命令和操作流程
- 更新合约地址,确保与新部署的合约匹配
- 添加快速网络连接测试脚本,验证合约连接和网络状态
- 实现完整测试场景脚本,模拟用户操作和流动性管理
2025-07-12 02:28:36 +08:00

4.7 KiB
Raw Permalink Blame History

MiniSwap CLI 工具使用指南

这个 CLI 工具让你可以通过命令行操作和测试 MiniSwapAMM 合约的所有功能,无需前端界面。

前置条件

  1. 确保已经部署了合约:
npm run deploy
  1. 确保本地网络正在运行:
npm run node

快速开始

方法1: 交互式 CLI 工具

启动交互式命令行界面:

npm run cli

这将启动一个交互式界面,你可以输入命令来操作合约。

方法2: 测试网络连接

如果遇到连接问题,可以先运行连接测试:

npm run test-connection

这会测试网络连接和合约加载是否正常。

方法3: 运行完整测试场景

运行预设的完整测试场景:

npm run test-scenario

这会自动执行一系列操作,演示 AMM 的所有功能。

CLI 命令详解

基本信息查询

  • accounts - 显示所有可用账户
  • switch <index> - 切换到指定账户(例如:switch 1
  • balances - 查看当前账户的所有代币余额
  • reserves - 查看 AMM 池的储备量和价格信息

代币操作

  • mint [amount] - 铸造测试代币(默认 1000 个)
    • 例如:mint 500 铸造 500 个代币
  • approve [amount] - 授权代币给 AMM 合约(默认 10000 个)
    • 例如:approve 5000 授权 5000 个代币

流动性操作

  • add <amountA> <amountB> [slippage] - 添加流动性
    • 例如:add 1000 2000 1 添加 1000 TKA + 2000 TKB允许 1% 滑点
  • remove <liquidity> [slippage] - 移除流动性
    • 例如:remove 500 1 移除 500 个 LP 代币,允许 1% 滑点

代币交换

  • swapAB <amount> [slippage] - 将 TokenA 交换为 TokenB
    • 例如:swapAB 100 1 用 100 TKA 交换 TKB允许 1% 滑点
  • swapBA <amount> [slippage] - 将 TokenB 交换为 TokenA
    • 例如:swapBA 50 1 用 50 TKB 交换 TKA允许 1% 滑点

价格计算

  • calc <amount> <direction> - 计算交换价格
    • calc 100 a2b - 计算 100 TKA 能换多少 TKB
    • calc 50 b2a - 计算 50 TKB 能换多少 TKA

其他命令

  • help - 显示帮助信息
  • exit - 退出程序

使用示例

以下是一个完整的操作流程示例:

# 启动 CLI
npm run cli

# 查看当前账户余额
> balances

# 铸造一些测试代币
> mint 5000

# 授权代币给 AMM 合约
> approve 10000

# 添加初始流动性1000 TKA + 2000 TKB
> add 1000 2000

# 查看池子状态
> reserves

# 切换到另一个账户
> switch 1

# 为新账户铸造代币
> mint 3000
> approve 5000

# 进行代币交换
> swapAB 100 1

# 查看交换后的余额
> balances
> reserves

# 计算交换价格
> calc 50 a2b

# 退出
> exit

滑点保护

所有涉及交换和流动性操作的命令都支持滑点保护参数:

  • 滑点参数以百分比形式输入例如1 表示 1%
  • 如果不指定,默认使用 1% 的滑点保护
  • 滑点保护可以防止因价格变动导致的不利交易

注意事项

  1. 网络连接:确保本地 Hardhat 网络正在运行
  2. 代币授权:在添加流动性或交换代币前,必须先授权代币给 AMM 合约
  3. 账户管理:可以使用 switch 命令在不同账户间切换,模拟多用户操作
  4. 交易确认:每个交易都会等待区块确认,可能需要几秒钟
  5. 错误处理如果操作失败CLI 会显示详细的错误信息

故障排除

常见错误及解决方法

  1. "could not decode result data" 错误

    • 原因CLI 工具连接的网络与合约部署的网络不一致
    • 解决:确保先运行 npm run node,然后运行 npm run deploy,最后运行 npm run cli
  2. "合约地址文件不存在" 错误

    • 解决:运行 npm run deploy 重新部署合约
  3. "网络连接失败" 错误

    • 解决:确保本地网络正在运行 npm run node
  4. "合约验证失败" 错误

    • 原因:合约可能没有正确部署或网络不匹配
    • 解决:重新部署合约 npm run deploy
  5. 其他问题

    • 代币不足:使用 mint 命令铸造更多代币
    • 未授权代币:使用 approve 命令授权代币
    • 滑点过大:增加滑点保护参数或减少交换数量

完整重置流程

如果遇到无法解决的问题,可以完全重置:

# 1. 停止当前网络 (Ctrl+C)
# 2. 重新启动网络
npm run node

# 3. 重新部署合约(新终端)
npm run deploy

# 4. 启动 CLI
npm run cli

高级功能

  • 批量测试:使用 npm run test-scenario 运行完整的测试场景
  • 多账户操作:使用 switch 命令模拟多用户环境
  • 价格影响分析:通过连续小额交换观察价格变化
  • 流动性管理:添加和移除流动性来观察对价格的影响