diff options
| author | Adam Soltys <[email protected]> | 2026-02-14 15:46:09 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-02-14 15:46:09 -0800 |
| commit | 40fc5fe98c08357dff41539de48532d554aa73cb (patch) | |
| tree | 289e6f1af7f256b1e8ddab75d74e272ead7baa2f /src/lib | |
| parent | d242a387279119cfc6e191eff3b4e2228cbb5a4e (diff) | |
| download | coinos-ui-40fc5fe98c08357dff41539de48532d554aa73cb.tar.gz coinos-ui-40fc5fe98c08357dff41539de48532d554aa73cb.zip | |
custodial ark sends
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/ark.ts | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/ark.ts b/src/lib/ark.ts index b9902a5a..dcc42868 100644 --- a/src/lib/ark.ts +++ b/src/lib/ark.ts @@ -125,7 +125,19 @@ export const sendArk = async (address: string, amount: number) => { arkSending = true; try { - const txid = await wallet.sendBitcoin({ address, amount }); + let txid; + try { + txid = await wallet.sendBitcoin({ address, amount }); + } catch (e: any) { + if (e?.message?.includes("VTXO_ALREADY_REGISTERED")) { + await wallet.settle(); + const vtxos = await wallet.getVtxos({ spendableOnly: false }); + if (vtxos?.length) addProcessedVtxos(vtxos.map(vtxoKey)); + txid = await wallet.sendBitcoin({ address, amount }); + } else { + throw e; + } + } // Mark post-send VTXOs as processed so notifyIncomingFunds // ignores change VTXOs from this send |
