Skip to main content
所有类型化错误都继承自 PowfiSDKError,后者继承自 Error。从包的根路径导入,并用 instanceof 判断:

类型化错误

TokenListFetchError 暴露 status?: number,原始错误在 cause 中。
部分模块方法会捕获错误,再以组合消息的普通 Error 重新抛出(通过 logAndThrowError),例如 Failed to fetch pool state on <id>, <原始消息>。TokenModule.getTokens() 和 fetchTokens() 就是这样:消息中包含 TokenListFetchError 的文本,但抛出的对象是 Error。如需区分,请匹配消息内容。

参数校验错误(普通 Error)

链上错误

如果交易通过了 SDK 校验,但在合约中失败(超出滑点、超过截止时间、违反价格限制),节点会在签名阶段拒绝它,@alephium/web3 会抛出带有 VM 错误码的错误,例如 CLMM 兑换在全部成交之前就触及价格限制时,会报 Error Code: 501(如果价格限制位于当前价格的错误一侧,则报 106)。最常见的原因:
  • 滑点或截止时间:在报价和提交之间池发生了变化。请重新报价并重试。
  • ALPH 不足以支付粉尘或押金:见 ALPH 押金与粉尘。
  • CLMM swapTo 方向或价格限制错误:目标价格已经在当前价格的另一侧。