@arkade-os/boltz-swap 0.3.13 → 0.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,20 +51,20 @@ declare const isChainRefundableStatus: (status: BoltzSwapStatus) => boolean;
51
51
  declare const isChainSignableStatus: (status: BoltzSwapStatus) => boolean;
52
52
  /** Returns true if the chain swap completed successfully. */
53
53
  declare const isChainSuccessStatus: (status: BoltzSwapStatus) => boolean;
54
- /** Type guard: narrows PendingSwap to PendingReverseSwap. */
55
- declare const isPendingReverseSwap: (swap: PendingSwap) => swap is PendingReverseSwap;
56
- /** Type guard: narrows PendingSwap to PendingSubmarineSwap. */
57
- declare const isPendingSubmarineSwap: (swap: PendingSwap) => swap is PendingSubmarineSwap;
58
- /** Type guard: narrows PendingSwap to PendingChainSwap. */
59
- declare const isPendingChainSwap: (swap: PendingSwap) => swap is PendingChainSwap;
54
+ /** Type guard: narrows BoltzSwap to BoltzReverseSwap. */
55
+ declare const isPendingReverseSwap: (swap: BoltzSwap) => swap is BoltzReverseSwap;
56
+ /** Type guard: narrows BoltzSwap to BoltzSubmarineSwap. */
57
+ declare const isPendingSubmarineSwap: (swap: BoltzSwap) => swap is BoltzSubmarineSwap;
58
+ /** Type guard: narrows BoltzSwap to BoltzChainSwap. */
59
+ declare const isPendingChainSwap: (swap: BoltzSwap) => swap is BoltzChainSwap;
60
60
  /** Type guard: checks if swap is a refundable submarine swap (failed + not yet refunded). */
61
- declare const isSubmarineSwapRefundable: (swap: PendingSwap) => swap is PendingSubmarineSwap;
61
+ declare const isSubmarineSwapRefundable: (swap: BoltzSwap) => swap is BoltzSubmarineSwap;
62
62
  /** Type guard: checks if swap is a refundable chain swap (expired ARK → BTC). */
63
- declare const isChainSwapRefundable: (swap: PendingSwap) => swap is PendingChainSwap;
63
+ declare const isChainSwapRefundable: (swap: BoltzSwap) => swap is BoltzChainSwap;
64
64
  /** Type guard: checks if swap is a claimable reverse swap. */
65
- declare const isReverseSwapClaimable: (swap: PendingSwap) => swap is PendingReverseSwap;
65
+ declare const isReverseSwapClaimable: (swap: BoltzSwap) => swap is BoltzReverseSwap;
66
66
  /** Type guard: checks if swap is a claimable chain swap. */
67
- declare const isChainSwapClaimable: (swap: PendingSwap) => swap is PendingChainSwap;
67
+ declare const isChainSwapClaimable: (swap: BoltzSwap) => swap is BoltzChainSwap;
68
68
  type TimeoutBlockHeights = {
69
69
  refund: number;
70
70
  unilateralClaim: number;
@@ -81,6 +81,7 @@ type GetSwapStatusResponse = {
81
81
  transaction?: {
82
82
  id: string;
83
83
  hex?: string;
84
+ confirmed?: boolean;
84
85
  eta?: number;
85
86
  preimage?: string;
86
87
  };
@@ -96,16 +97,18 @@ type CreateSubmarineSwapRequest = {
96
97
  type CreateSubmarineSwapResponse = {
97
98
  /** Unique swap ID. */
98
99
  id: string;
99
- /** ARK lockup address to send funds to. */
100
- address: string;
101
100
  /** Amount in satoshis to send. */
102
101
  expectedAmount: number;
102
+ /** ARK lockup address to send funds to. */
103
+ address?: string;
103
104
  /** Boltz's public key for the claim path. */
104
- claimPublicKey: string;
105
+ claimPublicKey?: string;
105
106
  /** Whether zero-conf transactions are accepted. */
106
- acceptZeroConf: boolean;
107
+ acceptZeroConf?: boolean;
108
+ /** Block height for the onchain HTLC timeout. */
109
+ timeoutBlockHeight?: number;
107
110
  /** Block heights for various timeout/refund scenarios. */
108
- timeoutBlockHeights: TimeoutBlockHeights;
111
+ timeoutBlockHeights?: TimeoutBlockHeights;
109
112
  };
110
113
  type GetSwapPreimageResponse = {
111
114
  preimage: string;
@@ -128,13 +131,15 @@ type CreateReverseSwapResponse = {
128
131
  /** BOLT11-encoded Lightning invoice to be paid. */
129
132
  invoice: string;
130
133
  /** On-chain amount in satoshis (after Boltz fees). */
131
- onchainAmount: number;
134
+ onchainAmount?: number;
132
135
  /** ARK lockup address where Boltz will lock funds. */
133
- lockupAddress: string;
136
+ lockupAddress?: string;
134
137
  /** Boltz's public key for the refund path. */
135
- refundPublicKey: string;
138
+ refundPublicKey?: string;
139
+ /** Block height for the onchain HTLC timeout. */
140
+ timeoutBlockHeight?: number;
136
141
  /** Block heights for various timeout/refund scenarios. */
137
- timeoutBlockHeights: TimeoutBlockHeights;
142
+ timeoutBlockHeights?: TimeoutBlockHeights;
138
143
  };
139
144
  type SwapTree = {
140
145
  claimLeaf: {
@@ -223,10 +228,11 @@ type Leaf = {
223
228
  type Tree = {
224
229
  claimLeaf: Leaf;
225
230
  refundLeaf: Leaf;
226
- refundWithoutBoltzLeaf: Leaf;
227
- unilateralClaimLeaf: Leaf;
228
- unilateralRefundLeaf: Leaf;
229
- unilateralRefundWithoutBoltzLeaf: Leaf;
231
+ covenantClaimLeaf?: Leaf;
232
+ refundWithoutBoltzLeaf?: Leaf;
233
+ unilateralClaimLeaf?: Leaf;
234
+ unilateralRefundLeaf?: Leaf;
235
+ unilateralRefundWithoutBoltzLeaf?: Leaf;
230
236
  };
231
237
  type Details = {
232
238
  tree: Tree;
@@ -238,7 +244,7 @@ type Details = {
238
244
  };
239
245
  lockupAddress: string;
240
246
  serverPublicKey: string;
241
- timeoutBlockHeight: number;
247
+ timeoutBlockHeight?: number;
242
248
  timeoutBlockHeights?: TimeoutBlockHeights;
243
249
  preimageHash?: string;
244
250
  };
@@ -249,19 +255,10 @@ type RestoredChainSwap = {
249
255
  createdAt: number;
250
256
  from: "ARK" | "BTC";
251
257
  to: "ARK" | "BTC";
252
- preimageHash: string;
253
- refundDetails: {
254
- amount: number;
255
- keyIndex: number;
256
- lockupAddress: string;
257
- serverPublicKey: string;
258
- timeoutBlockHeight: number;
259
- transaction?: {
260
- id: string;
261
- vout: number;
262
- };
263
- tree: Tree;
264
- };
258
+ preimageHash?: string;
259
+ invoice?: string;
260
+ refundDetails?: Details;
261
+ claimDetails?: Details;
265
262
  };
266
263
  type RestoredSubmarineSwap = {
267
264
  to: "BTC";
@@ -269,7 +266,7 @@ type RestoredSubmarineSwap = {
269
266
  from: "ARK";
270
267
  type: "submarine";
271
268
  createdAt: number;
272
- preimageHash: string;
269
+ preimageHash?: string;
273
270
  status: BoltzSwapStatus;
274
271
  refundDetails: Details;
275
272
  invoice?: string;
@@ -280,7 +277,7 @@ type RestoredReverseSwap = {
280
277
  from: "BTC";
281
278
  type: "reverse";
282
279
  createdAt: number;
283
- preimageHash: string;
280
+ preimageHash?: string;
284
281
  status: BoltzSwapStatus;
285
282
  claimDetails: Details;
286
283
  invoice?: string;
@@ -392,39 +389,39 @@ interface SwapManagerConfig {
392
389
  }
393
390
  /** Event callbacks for swap lifecycle events. Can be provided in config or registered via on/off methods. */
394
391
  interface SwapManagerEvents {
395
- onSwapUpdate?: (swap: PendingSwap, oldStatus: BoltzSwapStatus) => void;
396
- onSwapCompleted?: (swap: PendingSwap) => void;
397
- onSwapFailed?: (swap: PendingSwap, error: Error) => void;
398
- onActionExecuted?: (swap: PendingSwap, action: Actions) => void;
392
+ onSwapUpdate?: (swap: BoltzSwap, oldStatus: BoltzSwapStatus) => void;
393
+ onSwapCompleted?: (swap: BoltzSwap) => void;
394
+ onSwapFailed?: (swap: BoltzSwap, error: Error) => void;
395
+ onActionExecuted?: (swap: BoltzSwap, action: Actions) => void;
399
396
  onWebSocketConnected?: () => void;
400
397
  onWebSocketDisconnected?: (error?: Error) => void;
401
398
  }
402
399
  /** Callback for swap status changes. Receives the updated swap and its previous status. */
403
- type SwapUpdateListener = (swap: PendingSwap, oldStatus: BoltzSwapStatus) => void;
400
+ type SwapUpdateListener = (swap: BoltzSwap, oldStatus: BoltzSwapStatus) => void;
404
401
  /** Callback for swap completions (final success state reached). */
405
- type SwapCompletedListener = (swap: PendingSwap) => void;
402
+ type SwapCompletedListener = (swap: BoltzSwap) => void;
406
403
  /** Callback for swap failures. Includes the error that caused the failure. */
407
- type SwapFailedListener = (swap: PendingSwap, error: Error) => void;
404
+ type SwapFailedListener = (swap: BoltzSwap, error: Error) => void;
408
405
  /** Callback after a swap action (claim/refund) has been executed. */
409
- type ActionExecutedListener = (swap: PendingSwap, action: Actions) => void;
406
+ type ActionExecutedListener = (swap: BoltzSwap, action: Actions) => void;
410
407
  /** Callback when the WebSocket connection is established. */
411
408
  type WebSocketConnectedListener = () => void;
412
409
  /** Callback when the WebSocket disconnects. Includes the error if disconnection was not clean. */
413
410
  type WebSocketDisconnectedListener = (error?: Error) => void;
414
411
  /** Per-swap update callback used with subscribeToSwapUpdates. */
415
- type SwapUpdateCallback = (swap: PendingSwap, oldStatus: BoltzSwapStatus) => void;
412
+ type SwapUpdateCallback = (swap: BoltzSwap, oldStatus: BoltzSwapStatus) => void;
416
413
  /** Public interface for SwapManager consumers. Provides swap monitoring, event subscription, and lifecycle control. */
417
414
  interface SwapManagerClient {
418
415
  /** Starts the manager, loading initial swaps and connecting WebSocket. */
419
- start(pendingSwaps: PendingSwap[]): Promise<void>;
416
+ start(pendingSwaps: BoltzSwap[]): Promise<void>;
420
417
  /** Stops the manager, closes WebSocket, and clears all timers. */
421
418
  stop(): Promise<void>;
422
419
  /** Adds a new swap to be monitored. Immediately subscribes via WebSocket. */
423
- addSwap(swap: PendingSwap): Promise<void>;
420
+ addSwap(swap: BoltzSwap): Promise<void>;
424
421
  /** Removes a swap from monitoring. */
425
422
  removeSwap(swapId: string): Promise<void>;
426
423
  /** Returns all currently monitored (non-final) swaps. */
427
- getPendingSwaps(): Promise<PendingSwap[]>;
424
+ getPendingSwaps(): Promise<BoltzSwap[]>;
428
425
  /** Subscribes to status updates for a specific swap. @returns Unsubscribe function. */
429
426
  subscribeToSwapUpdates(swapId: string, callback: SwapUpdateCallback): Promise<() => void>;
430
427
  /** Returns a promise that resolves with { txid } when the swap completes, or rejects on failure. */
@@ -459,13 +456,13 @@ interface SwapManagerClient {
459
456
  }
460
457
  /** Internal callbacks wired by ArkadeSwaps to perform claim/refund/save operations. */
461
458
  interface SwapManagerCallbacks {
462
- claim: (swap: PendingReverseSwap) => Promise<void>;
463
- refund: (swap: PendingSubmarineSwap) => Promise<void>;
464
- claimArk: (swap: PendingChainSwap) => Promise<void>;
465
- claimBtc: (swap: PendingChainSwap) => Promise<void>;
466
- refundArk: (swap: PendingChainSwap) => Promise<void>;
467
- signServerClaim?: (swap: PendingChainSwap) => Promise<void>;
468
- saveSwap: (swap: PendingSwap) => Promise<void>;
459
+ claim: (swap: BoltzReverseSwap) => Promise<void>;
460
+ refund: (swap: BoltzSubmarineSwap) => Promise<void>;
461
+ claimArk: (swap: BoltzChainSwap) => Promise<void>;
462
+ claimBtc: (swap: BoltzChainSwap) => Promise<void>;
463
+ refundArk: (swap: BoltzChainSwap) => Promise<void>;
464
+ signServerClaim?: (swap: BoltzChainSwap) => Promise<void>;
465
+ saveSwap: (swap: BoltzSwap) => Promise<void>;
469
466
  }
470
467
  /**
471
468
  * Background swap monitor with WebSocket + polling fallback.
@@ -564,7 +561,7 @@ declare class SwapManager implements SwapManagerClient {
564
561
  * 3. Poll all swaps after connection
565
562
  * 4. Resume any actionable swaps
566
563
  */
567
- start(pendingSwaps: PendingSwap[]): Promise<void>;
564
+ start(pendingSwaps: BoltzSwap[]): Promise<void>;
568
565
  /**
569
566
  * Stop the swap manager
570
567
  * Cleanup: close WebSocket, stop all timers
@@ -580,7 +577,7 @@ declare class SwapManager implements SwapManagerClient {
580
577
  * If fallback polling is active, this triggers an immediate poll and resets
581
578
  * fallback delay so newly-added swaps are checked without waiting.
582
579
  */
583
- addSwap(swap: PendingSwap): Promise<void>;
580
+ addSwap(swap: BoltzSwap): Promise<void>;
584
581
  /**
585
582
  * Remove a swap from monitoring
586
583
  */
@@ -588,7 +585,7 @@ declare class SwapManager implements SwapManagerClient {
588
585
  /**
589
586
  * Get all currently monitored swaps
590
587
  */
591
- getPendingSwaps(): Promise<PendingSwap[]>;
588
+ getPendingSwaps(): Promise<BoltzSwap[]>;
592
589
  /**
593
590
  * Subscribe to updates for a specific swap
594
591
  * Returns an unsubscribe function
@@ -727,15 +724,15 @@ declare class SwapManager implements SwapManagerClient {
727
724
  type GetSwapsFilter = {
728
725
  id?: string | string[];
729
726
  status?: BoltzSwapStatus | BoltzSwapStatus[];
730
- type?: PendingSwap["type"] | PendingSwap["type"][];
727
+ type?: BoltzSwap["type"] | BoltzSwap["type"][];
731
728
  orderBy?: "createdAt";
732
729
  orderDirection?: "asc" | "desc";
733
730
  };
734
731
  interface SwapRepository extends AsyncDisposable {
735
732
  readonly version: 1;
736
- saveSwap<T extends PendingSwap>(swap: T): Promise<void>;
733
+ saveSwap<T extends BoltzSwap>(swap: T): Promise<void>;
737
734
  deleteSwap(id: string): Promise<void>;
738
- getAllSwaps<T extends PendingSwap>(filter?: GetSwapsFilter): Promise<T[]>;
735
+ getAllSwaps<T extends BoltzSwap>(filter?: GetSwapsFilter): Promise<T[]>;
739
736
  clear(): Promise<void>;
740
737
  }
741
738
 
@@ -770,7 +767,7 @@ interface ArkToBtcResponse {
770
767
  /** Amount in satoshis to send to the lockup address. */
771
768
  amountToPay: number;
772
769
  /** The pending chain swap object for monitoring. */
773
- pendingSwap: PendingChainSwap;
770
+ pendingSwap: BoltzChainSwap;
774
771
  }
775
772
  /** Response from creating a BTC → ARK chain swap. */
776
773
  interface BtcToArkResponse {
@@ -779,7 +776,7 @@ interface BtcToArkResponse {
779
776
  /** Amount in satoshis to send to the lockup address. */
780
777
  amountToPay: number;
781
778
  /** The pending chain swap object for monitoring. */
782
- pendingSwap: PendingChainSwap;
779
+ pendingSwap: BoltzChainSwap;
783
780
  }
784
781
  /** Request to create a Lightning invoice (reverse swap: Lightning → Arkade). */
785
782
  interface CreateLightningInvoiceRequest {
@@ -799,7 +796,7 @@ interface CreateLightningInvoiceResponse {
799
796
  /** The payment hash (hex-encoded). */
800
797
  paymentHash: string;
801
798
  /** The pending reverse swap for monitoring. */
802
- pendingSwap: PendingReverseSwap;
799
+ pendingSwap: BoltzReverseSwap;
803
800
  /** The preimage (hex-encoded). Keep secret until claiming. */
804
801
  preimage: string;
805
802
  }
@@ -818,7 +815,7 @@ interface SendLightningPaymentResponse {
818
815
  txid: string;
819
816
  }
820
817
  /** Tracks an in-progress reverse swap (Lightning → Arkade). */
821
- interface PendingReverseSwap {
818
+ interface BoltzReverseSwap {
822
819
  /** Unique swap ID from Boltz. */
823
820
  id: string;
824
821
  /** Discriminator — always "reverse". */
@@ -835,7 +832,7 @@ interface PendingReverseSwap {
835
832
  response: CreateReverseSwapResponse;
836
833
  }
837
834
  /** Tracks an in-progress submarine swap (Arkade → Lightning). */
838
- interface PendingSubmarineSwap {
835
+ interface BoltzSubmarineSwap {
839
836
  /** Unique swap ID from Boltz. */
840
837
  id: string;
841
838
  /** Discriminator — always "submarine". */
@@ -858,7 +855,7 @@ interface PendingSubmarineSwap {
858
855
  response: CreateSubmarineSwapResponse;
859
856
  }
860
857
  /** Tracks an in-progress chain swap (ARK ↔ BTC). */
861
- interface PendingChainSwap {
858
+ interface BoltzChainSwap {
862
859
  /** Unique swap ID from Boltz. */
863
860
  id: string;
864
861
  /** Discriminator — always "chain". */
@@ -883,7 +880,7 @@ interface PendingChainSwap {
883
880
  amount: number;
884
881
  }
885
882
  /** Union type of all pending swap types. */
886
- type PendingSwap = PendingReverseSwap | PendingSubmarineSwap | PendingChainSwap;
883
+ type BoltzSwap = BoltzReverseSwap | BoltzSubmarineSwap | BoltzChainSwap;
887
884
  /** Configuration for initializing ArkadeSwaps via the constructor (swapProvider is required). */
888
885
  interface ArkadeSwapsConfig {
889
886
  /** An IWallet instance from @arkade-os/sdk (must expose arkProvider and indexerProvider). */
@@ -992,4 +989,4 @@ interface ChainFeesResponse {
992
989
  };
993
990
  }
994
991
 
995
- export { type SwapManagerCallbacks as $, type ArkadeSwapsConfig as A, type BtcToArkResponse as B, type CreateLightningInvoiceRequest as C, type DecodedInvoice as D, isReverseFailedStatus as E, type FeesResponse as F, type GetSwapStatusResponse as G, isReverseFinalStatus as H, isReversePendingStatus as I, isReverseSuccessStatus as J, isReverseSwapClaimable as K, type LimitsResponse as L, isSubmarineFailedStatus as M, type Network as N, isSubmarineFinalStatus as O, type PendingSwap as P, isSubmarinePendingStatus as Q, isSubmarineSuccessStatus as R, type SendLightningPaymentRequest as S, isSubmarineRefundableStatus as T, isSubmarineSwapRefundable as U, SwapManager as V, type IncomingPaymentSubscription as W, type ArkadeSwapsCreateConfig as X, type Vtxo as Y, type SwapManagerConfig as Z, type SwapManagerEvents as _, type PendingChainSwap as a, type PendingReverseSwap as b, type PendingSubmarineSwap as c, type Chain as d, type CreateLightningInvoiceResponse as e, type SendLightningPaymentResponse as f, type ChainFeesResponse as g, type ArkToBtcResponse as h, type SwapRepository as i, type SwapManagerClient as j, type GetSwapsFilter as k, BoltzSwapProvider as l, type BoltzSwapStatus as m, isChainClaimableStatus as n, isChainFailedStatus as o, isChainFinalStatus as p, isChainPendingStatus as q, isChainRefundableStatus as r, isChainSignableStatus as s, isChainSuccessStatus as t, isChainSwapClaimable as u, isChainSwapRefundable as v, isPendingChainSwap as w, isPendingReverseSwap as x, isPendingSubmarineSwap as y, isReverseClaimableStatus as z };
992
+ export { type SwapManagerCallbacks as $, type ArkadeSwapsConfig as A, type BoltzSwap as B, type CreateLightningInvoiceRequest as C, type DecodedInvoice as D, isReverseClaimableStatus as E, type FeesResponse as F, type GetSwapStatusResponse as G, isReverseFailedStatus as H, isReverseFinalStatus as I, isReversePendingStatus as J, isReverseSuccessStatus as K, type LimitsResponse as L, isReverseSwapClaimable as M, type Network as N, isSubmarineFailedStatus as O, isSubmarineFinalStatus as P, isSubmarinePendingStatus as Q, isSubmarineSuccessStatus as R, type SendLightningPaymentRequest as S, isSubmarineRefundableStatus as T, isSubmarineSwapRefundable as U, SwapManager as V, type IncomingPaymentSubscription as W, type ArkadeSwapsCreateConfig as X, type Vtxo as Y, type SwapManagerConfig as Z, type SwapManagerEvents as _, type BoltzChainSwap as a, type BoltzReverseSwap as b, type BoltzSubmarineSwap as c, type Chain as d, type CreateLightningInvoiceResponse as e, type SendLightningPaymentResponse as f, type ChainFeesResponse as g, type ArkToBtcResponse as h, type BtcToArkResponse as i, type SwapRepository as j, type SwapManagerClient as k, type GetSwapsFilter as l, BoltzSwapProvider as m, type BoltzSwapStatus as n, isChainClaimableStatus as o, isChainFailedStatus as p, isChainFinalStatus as q, isChainPendingStatus as r, isChainRefundableStatus as s, isChainSignableStatus as t, isChainSuccessStatus as u, isChainSwapClaimable as v, isChainSwapRefundable as w, isPendingChainSwap as x, isPendingReverseSwap as y, isPendingSubmarineSwap as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkade-os/boltz-swap",
3
- "version": "0.3.13",
3
+ "version": "0.3.15",
4
4
  "type": "module",
5
5
  "description": "A production-ready TypeScript package that brings Boltz submarine-swaps to Arkade.",
6
6
  "main": "./dist/index.js",
@@ -60,7 +60,7 @@
60
60
  "author": "Arkade-OS",
61
61
  "license": "MIT",
62
62
  "dependencies": {
63
- "@arkade-os/sdk": "0.4.14",
63
+ "@arkade-os/sdk": "0.4.15",
64
64
  "@noble/hashes": "2.0.1",
65
65
  "@scure/base": "2.0.0",
66
66
  "@scure/btc-signer": "2.0.1",
@@ -96,21 +96,15 @@
96
96
  "lint": "prettier --check src test",
97
97
  "test": "vitest run",
98
98
  "test:unit": "vitest run --exclude test/e2e",
99
- "test:setup": "test/setupRegtestEnv.sh",
100
99
  "test:integration": "vitest run test/e2e/**",
101
- "test:down": "test/setupRegtestEnv.sh down",
102
- "test:build-docker": "docker compose -f test.docker-compose.yml build --no-cache",
103
- "test:up-docker": "docker compose -f test.docker-compose.yml up arkd arkd-wallet nbxplorer pgnbxplorer -d",
104
100
  "test:setup-docker": "node test/e2e/setup.mjs",
105
101
  "test:integration-docker": "vitest run test/e2e/**",
106
- "test:down-docker": "docker compose -f test.docker-compose.yml down -v",
107
102
  "release": "pnpm run build && bash scripts/release.sh",
108
103
  "release:dry-run": "bash scripts/release.sh --dry-run",
109
104
  "release:cleanup": "bash scripts/release.sh --cleanup",
110
- "regtest": "pnpm regtest:down && pnpm regtest:build && pnpm regtest:up && pnpm regtest:setup",
111
- "regtest:build": "docker compose -f test.docker-compose.yml build",
112
- "regtest:up": "docker compose -f test.docker-compose.yml up arkd arkd-wallet nbxplorer pgnbxplorer -d",
113
- "regtest:down": "docker compose -f test.docker-compose.yml down -v",
114
- "regtest:setup": "node test/e2e/setup.mjs"
105
+ "regtest:start": "./regtest/start-env.sh",
106
+ "regtest:stop": "./regtest/stop-env.sh",
107
+ "regtest:clean": "./regtest/clean-env.sh",
108
+ "regtest": "pnpm regtest:clean && pnpm regtest:start && pnpm test:setup-docker"
115
109
  }
116
110
  }