feat(packages): reject btc broadcast when vault is not pending#1415
feat(packages): reject btc broadcast when vault is not pending#1415
Conversation
🔐 Commit Signature Verification✅ All 1 commit(s) passed verification
Summary
Required key type: Last verified: 2026-04-17 23:38 UTC |
Greptile SummaryThis PR adds a vault status guard to Confidence Score: 5/5Safe to merge — the status guard is correct, error handling is consistent, and the test covers the new path. No P0 or P1 issues found. The logic is simple, the enum reverse-lookup is safe because mapGraphQLStatusToVaultStatus already throws on unknown statuses before this point, and the test properly validates the new behaviour. No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant UI
participant useVaultActions
participant fetchVaultById
participant broadcastPrePeginTransaction
UI->>useVaultActions: handleBroadcast(params)
useVaultActions->>fetchVaultById: fetchVaultById(activityId)
fetchVaultById-->>useVaultActions: vault | null
alt vault is null
useVaultActions-->>UI: broadcastError = Vault not found
else vault.status !== PENDING (NEW GUARD)
useVaultActions-->>UI: broadcastError = Cannot broadcast: vault is in STATUS state
else local tx != GraphQL tx
useVaultActions-->>UI: broadcastError = Transaction mismatch
else BTC wallet not connected
useVaultActions-->>UI: broadcastError = BTC wallet not connected
else all checks pass
useVaultActions->>broadcastPrePeginTransaction: sign and broadcast
broadcastPrePeginTransaction-->>useVaultActions: success
useVaultActions-->>UI: onShowSuccessModal + onRefetchActivities
end
Reviews (1): Last reviewed commit: "feat(packages): reject btc broadcast whe..." | Re-trigger Greptile |
closes https://github.com/babylonlabs-io/vault-provider-proxy/issues/19