aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-02-14 15:46:09 -0800
committerAdam Soltys <[email protected]>2026-02-14 15:46:09 -0800
commit40fc5fe98c08357dff41539de48532d554aa73cb (patch)
tree289e6f1af7f256b1e8ddab75d74e272ead7baa2f /src/lib
parentd242a387279119cfc6e191eff3b4e2228cbb5a4e (diff)
downloadcoinos-ui-40fc5fe98c08357dff41539de48532d554aa73cb.tar.gz
coinos-ui-40fc5fe98c08357dff41539de48532d554aa73cb.zip
custodial ark sends
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/ark.ts14
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