跳到正文
← 使用教程

Curve 单币退出到底能收到多少:核对 StableSwap NG 的只读报价

链小知 · 进阶 · 核验 · 依官方文档整理

识别池、币种索引与 LP 数量,区分单币退出报价、动态费用和实际最少收到保护。

开始前准备

  • 准备目标链的 StableSwap NG plain pool 地址、ABI、LP 余额和退出数量。
  • 本篇限于该类池;其他 Curve 池、metapool、gauge 与旧版本需要各自 ABI,不执行 remove_liquidity。

1. 确定池与输出币的身份

核对 pool 地址和 StableSwap NG plain pool 版本,用 coins(i)、N_COINS 识别输出币的索引。不能凭 USDC 名称推断合约或 i 值,同名币可能属于不同池或链。

检查结果:地址、版本、索引和实际代币地址同时记入表格。

2. 将 LP 数量转成原始整数

_burn_amount 是 LP 最小单位数量,不能使用输出稳定币的精度。先核对 LP decimals 与可用 LP 余额;待烧毁的 LP 数量不等于输出币数量,二者必须分别换算。

检查结果:人类 LP 数量、LP 精度与整数输入能够互相还原。

3. 读取单币退出报价

按该池 ABI 的 calc_withdraw_one_coin(_burn_amount, i) 做只读核对,保存区块或时间、输入与返回整数。输出按 coins(i) 的 decimals 显示;只读报价不要求真的持有相同 LP,也不能据此证明账户可执行退出。

检查结果:报价属于指定池、指定币种和指定观察时点。

4. 检查池失衡对净输出的影响

结合 get_balances 与报价检查退出规模。本类池单币退出计算包含费用,动态费用随池状态变化;不能再用一个通用固定百分比机械扣费。与按比例退出比较时,应分列每个输出币,不把多个币相加成单币数量。

检查结果:区分净报价、动态费用与不同退出方式的输出资产。

5. 保留执行边界与失败分支

remove_liquidity_one_coin 的最少输出保护需由新报价和接受的风险界限确定,先将这些参数记录为执行前的审阅条件。只读报错优先核对池版本、索引和原始单位;报价正常但账户不能退出则检查实际 LP 所在位置与可支配余额。网络 gas 是执行费用,不包含在代币净输出里。

检查结果:形成报价核对表,没有签名、烧毁 LP 或提交退出。

怎样确认完成

  • 得到一个带池身份、区块/时间和单位的退出报价。
  • 钱包余额或 LP 所在位置不明时注明执行能力未知。

常见错误与边界

  • 用稳定币 decimals 换算 LP。
  • 把单币退出价格与按比例退出直接比较。
  • 将报价当作保证成交金额或使用通用固定费率。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据