跳到正文
← 使用教程

Save 提现或借款失败:按已有交易日志区分流动性、过期状态与未知结果

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

先确定已有交易结果,再匹配错误与部署版本,避免把超时、仓位上限和WSOL余额当成同一种失败。

开始前准备

  • 一条已有交易签名或脱敏错误日志、发生时间、网络和客户端版本;不提供钱包凭据。
  • 仅检查已有记录。刷新状态、减少仓位、重试或换RPC后的新交易属于另一个需要授权的操作。

1. 区分交易未知与明确失败

保存既有签名、时间和网络;在该签名的已有浏览器/历史记录中检查成功、链上错误或仍无明确状态。官方FAQ的“超过60秒未确认”描述结果未知,不代表已回滚。

只有超时报错而没有签名/链上结果时标为未知;不要按超时秒数宣称资金已退回,也不要把再发一次当排查步骤。

检查结果:记录为成功、明确失败或未知,并保留可追溯签名/错误;未知分支停止推断。

2. 用错误名称定位可用流动性或抵押额度

已有错误包含 InsufficientLiquidity 时核对对应reserve的available amount,而不是只看总供应。100%池利用率可能使提现和借款均无法取得token。

BorrowTooLarge 与 WithdrawTooLarge 应另核对账户抵押/债务额度;即使池有token,账户风险规则仍可能阻止操作。完整报错与程序版本未知时,只保留可能原因。

检查结果:池可用资产不足与账户额度不足分开记录,不以总供应替代available amount。

3. 拆开状态过期与预言机配置错误

ReserveStale、ObligationStale 表示相应状态需要刷新;InvalidOracleConfig 是预言机配置类错误,不能直接当网络断开。保存程序日志中的具体名称或匹配版本的错误定义。

若已有页面/日志显示价格feed或更新时间缺失,记录该项;“Pyth主要、Switchboard备用”的文档说明不证明当前每个reserve都有相同配置。排查完成不要求手动广播刷新指令。

检查结果:有具体状态/预言机错误类别与时间证据;未把过期状态当零余额或保证等待即可修复。

4. 检查交易大小与仓位上限的版本

“Transaction too large: 1317 > 1232”是官方FAQ提供的历史错误例子,和 ObligationReserveLimit 的仓位限制属于不同问题。保存真实日志中的实际大小,不把例子的1317当每次交易长度。

旧limits页写6个positions,本轮固定mainnet源码MAX_OBLIGATION_RESERVES为10;供应与借款条目分别计数。没有实际部署版本时不得要求用户“减到6个”或断言“10个一定可用”。关闭仓位涉及资金操作,不是只读排查动作。

检查结果:交易字节上限与仓位条目上限独立定位,并明确6/10冲突和实际部署未知。

5. 对齐 SOL、WSOL 与费用记录

若已有记录显示SOL余额减少,核对是否有对应WSOL token account。FAQ说明失败路径可能留下包裹SOL;WSOL属于token账户余额,不能只从原生SOL余额判断资产消失。

分别记录交易费、账户租金与余额变化。旧FAQ的“确保0.1 SOL”是历史建议,不能当当前固定最低余额;“Account already initialized”也不能仅凭一句错误就确认为余额不足。把未知项留在结论中,而不是自动接受签名或执行换币。

检查结果:原生SOL、WSOL与链费/租金分开;报告不含未经证实的丢币、重复提交或固定费用结论。

怎样确认完成

  • 对一条已有记录形成结果状态、错误类别、版本和费用/WSOL核对清单。
  • 本教程以公开文档与固定代码核验;未实际查询用户交易、连接钱包或复现失败。

常见错误与边界

  • 钱包拒绝签名与已广播后链上失败不同,不能照旧FAQ推定所有拒绝都由RPC导致。
  • 余额或确认状态不明时,重复提交、清仓和兑换WSOL都不是纯诊断。

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