Skip to main content

Bigmi 中的错误处理

本指南介绍使用 Bigmi 构建 Bitcoin 应用时最常遇到的错误,以及如何有效地处理它们。

常见错误

错误处理模式

使用 Bigmi 的基本 Try/Catch

钱包连接错误处理

交易重试逻辑

网络回退处理

故障排查指南

“Wallet extension not found”(未找到钱包扩展)

症状:尝试连接时出现 ConnectorNotFoundError 解决方案
  • 检查钱包扩展是否已安装并启用
  • 尝试刷新页面
  • 确认钱包支持 Bitcoin 网络

“Transaction failed to broadcast”(交易广播失败)

症状:发送交易期间出现 RpcRequestError 解决方案
  • 检查交易 hex 是否有效
  • 确认有足够余额支付费用
  • 尝试其他 RPC 提供商

“Connection keeps timing out”(连接持续超时)

症状:频繁出现 TimeoutError 消息 解决方案
  • 增大配置中的超时值
  • 检查网络连接
  • 切换到其他 RPC 提供商

“Balance shows as 0 but wallet has funds”(余额显示为 0 但钱包有资金)

症状:尽管持有 Bitcoin,getBalance 仍返回 0 解决方案
  • 校验地址格式(legacy 与 SegWit)
  • 检查是否使用了正确的网络(主网与测试网)
  • 等待提供商同步

“React hooks not working”(React hooks 无法工作)

症状:React 应用中出现 BigmiProviderNotFoundError 解决方案
  • 确保 <BigmiProvider> 包裹了你的应用
  • 检查提供商配置是否正确
  • 确认所有 hooks 都在提供商上下文中使用

Replace-By-Fee(RBF)处理

症状:交易意外被替换 解决方案
  • 通过 waitForTransaction 监控替换事件
  • 妥善处理 onReplaced 回调
  • 交易被替换时更新 UI

最佳实践

  1. 始终将 Bitcoin 操作包裹在 try/catch 块中
  2. 使用特定的错误类型进行针对性的错误处理
  3. 为网络操作实现重试逻辑
  4. 为钱包错误提供清晰的用户反馈
  5. 配置多个 RPC 提供商以提高可靠性
  6. 在使用地址前对其进行校验
  7. 在尝试交易前检查余额
  8. 在交易监控中处理 RBF 场景

错误恢复策略

  • 自动重试:用于网络超时和临时故障
  • 用户重试:用于钱包拒绝和用户错误
  • 回退提供商:用于 RPC 提供商故障
  • 优雅降级:在提供商宕机时展示缓存数据
  • 清晰的提示:帮助用户理解并解决问题