跳到正文
← 使用教程

Balancer v3 退出预览:收到池代币还是 ERC-4626 底层资产

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

核对 BPT、Router、比例退出与 SDK query 结果,避免把份额币输出误当成底层币到账。

开始前准备

  • 准备链 ID、v3 池地址、BPT 退出数量和现有 SDK 查询结果。
  • 只分析 query/预览;不签 Permit、不 build 后发送交易。SDK、Router 和池版本需对应。

1. 固定链与池状态

通过当前 Balancer API/SDK 的 pools.fetchPoolState 查询描述确认链、pool 地址和版本。SDK 可覆盖多个协议版本,不能因同一包支持 v2/v3 就混用池状态。

检查结果:报告明确链 ID、v3 池地址和状态取得时间。

2. 核对 BPT 输入与退出方式

amounts、BPT 输入使用原始单位。按比例退出对应多个币种,非比例退出可能引入交换费用;不能将单币退出与比例退出等价比较。先写明需求是按比例退出还是只要一个输出币。

检查结果:BPT 精度、退出数量与退出类型都已记录。

3. 识别 Router 返回的资产

标准 Router 返回池里的代币;对于 ERC-4626 包装资产,CompositeLiquidityRouter 才能在符合条件时退出到底层资产,并涉及已初始化的 buffer。核对输出合约地址和资产类型,不只看 UI 符号。

检查结果:每项输出注明是份额币还是底层币,Router 类型有依据。

4. 检查 queryOutput.amountsOut

对照 removeLiquidity.query(input,poolState) 的输出逐项换算 decimals。若查询错误,先核对池版本、退出类型、RPC 网络及底层转换条件;示例输入必须按所用 SDK 当前类型定义确认,不能只复制文档中的片段。

检查结果:输出金额与币种、版本一一对应;缺失值未当成零。

5. 用最少输出界限审阅下一步

SDK 的 slippage 设置会影响交易最少收到,文档里的 1% 只是演示值。把净输出、可接受的最少数量和未来网络 gas 分开记录;PermitHelper 签名属于授权,超出只读查询阶段。

检查结果:只有带时点的预览记录,没有 Permit 或链上退出行为。

怎样确认完成

  • 确认实际输出资产类型和各币数量。
  • 退出类型、Router、池版本和风险界限都可复核。

常见错误与边界

  • 把 ERC-4626 份额币数量当作底层资产数量。
  • 通用 SDK 输入与当前池版本不匹配。
  • 认为 query 成功即代表 BPT 已烧毁。

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