@atomiqlabs/sdk 8.8.3 → 8.9.1

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.
Files changed (130) hide show
  1. package/api/index.d.ts +1 -0
  2. package/api/index.js +3 -0
  3. package/dist/ApiList.d.ts +37 -0
  4. package/dist/ApiList.js +30 -0
  5. package/dist/api/ApiEndpoints.d.ts +393 -0
  6. package/dist/api/ApiEndpoints.js +2 -0
  7. package/dist/api/ApiParser.d.ts +10 -0
  8. package/dist/api/ApiParser.js +134 -0
  9. package/dist/api/ApiTypes.d.ts +157 -0
  10. package/dist/api/ApiTypes.js +75 -0
  11. package/dist/api/SerializedAction.d.ts +40 -0
  12. package/dist/api/SerializedAction.js +59 -0
  13. package/dist/api/SwapperApi.d.ts +50 -0
  14. package/dist/api/SwapperApi.js +431 -0
  15. package/dist/api/index.d.ts +5 -0
  16. package/dist/api/index.js +24 -0
  17. package/dist/events/UnifiedSwapEventListener.d.ts +4 -3
  18. package/dist/events/UnifiedSwapEventListener.js +8 -2
  19. package/dist/http/HttpUtils.d.ts +4 -2
  20. package/dist/http/HttpUtils.js +10 -4
  21. package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +2 -1
  22. package/dist/http/paramcoders/client/StreamingFetchPromise.js +3 -2
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.js +1 -0
  25. package/dist/intermediaries/IntermediaryDiscovery.d.ts +7 -2
  26. package/dist/intermediaries/IntermediaryDiscovery.js +4 -4
  27. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +171 -14
  28. package/dist/intermediaries/apis/IntermediaryAPI.js +174 -28
  29. package/dist/intermediaries/auth/SignedKeyBasedAuth.d.ts +14 -0
  30. package/dist/intermediaries/auth/SignedKeyBasedAuth.js +68 -0
  31. package/dist/storage/IUnifiedStorage.d.ts +45 -3
  32. package/dist/storage/UnifiedSwapStorage.d.ts +8 -2
  33. package/dist/storage/UnifiedSwapStorage.js +46 -8
  34. package/dist/swapper/Swapper.d.ts +41 -3
  35. package/dist/swapper/Swapper.js +93 -48
  36. package/dist/swapper/SwapperUtils.d.ts +18 -2
  37. package/dist/swapper/SwapperUtils.js +39 -1
  38. package/dist/swaps/ISwap.d.ts +70 -9
  39. package/dist/swaps/ISwap.js +28 -6
  40. package/dist/swaps/ISwapWrapper.d.ts +11 -1
  41. package/dist/swaps/ISwapWrapper.js +23 -3
  42. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +1 -1
  43. package/dist/swaps/escrow_swaps/IEscrowSwap.js +4 -2
  44. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +2 -1
  45. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +2 -2
  46. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +3 -1
  47. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +3 -2
  48. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +47 -31
  49. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +201 -67
  50. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +3 -1
  51. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +6 -6
  52. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +82 -15
  53. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +304 -98
  54. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +3 -1
  55. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +6 -6
  56. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +75 -42
  57. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +424 -87
  58. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +3 -1
  59. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +7 -7
  60. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +54 -11
  61. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +214 -41
  62. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +2 -1
  63. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +7 -8
  64. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +3 -1
  65. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +5 -5
  66. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +76 -19
  67. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +290 -51
  68. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +3 -1
  69. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +5 -5
  70. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +53 -12
  71. package/dist/swaps/trusted/ln/LnForGasSwap.js +163 -49
  72. package/dist/swaps/trusted/ln/LnForGasWrapper.js +1 -2
  73. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +14 -13
  74. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +30 -47
  75. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +3 -1
  76. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +4 -4
  77. package/dist/types/SwapExecutionAction.d.ts +141 -34
  78. package/dist/types/SwapExecutionAction.js +104 -0
  79. package/dist/types/SwapExecutionStep.d.ts +144 -0
  80. package/dist/types/SwapExecutionStep.js +87 -0
  81. package/dist/types/TokenAmount.d.ts +6 -0
  82. package/dist/types/TokenAmount.js +26 -1
  83. package/dist/utils/BitcoinUtils.d.ts +2 -0
  84. package/dist/utils/BitcoinUtils.js +34 -1
  85. package/dist/utils/Utils.d.ts +3 -1
  86. package/dist/utils/Utils.js +7 -1
  87. package/package.json +7 -4
  88. package/src/api/ApiEndpoints.ts +427 -0
  89. package/src/api/ApiParser.ts +138 -0
  90. package/src/api/ApiTypes.ts +229 -0
  91. package/src/api/SerializedAction.ts +97 -0
  92. package/src/api/SwapperApi.ts +545 -0
  93. package/src/api/index.ts +5 -0
  94. package/src/events/UnifiedSwapEventListener.ts +11 -3
  95. package/src/http/HttpUtils.ts +10 -4
  96. package/src/http/paramcoders/client/StreamingFetchPromise.ts +4 -2
  97. package/src/index.ts +1 -0
  98. package/src/intermediaries/IntermediaryDiscovery.ts +9 -2
  99. package/src/intermediaries/apis/IntermediaryAPI.ts +314 -30
  100. package/src/intermediaries/auth/SignedKeyBasedAuth.ts +69 -0
  101. package/src/storage/IUnifiedStorage.ts +45 -4
  102. package/src/storage/UnifiedSwapStorage.ts +42 -8
  103. package/src/swapper/Swapper.ts +134 -52
  104. package/src/swapper/SwapperUtils.ts +42 -2
  105. package/src/swaps/ISwap.ts +88 -16
  106. package/src/swaps/ISwapWrapper.ts +28 -3
  107. package/src/swaps/escrow_swaps/IEscrowSwap.ts +5 -3
  108. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +3 -1
  109. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +4 -1
  110. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +264 -67
  111. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +6 -4
  112. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +390 -89
  113. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +6 -4
  114. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +548 -94
  115. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +7 -5
  116. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +276 -45
  117. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +7 -6
  118. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +5 -3
  119. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +393 -57
  120. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +5 -3
  121. package/src/swaps/trusted/ln/LnForGasSwap.ts +211 -47
  122. package/src/swaps/trusted/ln/LnForGasWrapper.ts +1 -2
  123. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +32 -51
  124. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +5 -3
  125. package/src/types/SwapExecutionAction.ts +266 -43
  126. package/src/types/SwapExecutionStep.ts +224 -0
  127. package/src/types/TokenAmount.ts +36 -2
  128. package/src/utils/BitcoinUtils.ts +32 -0
  129. package/src/utils/Utils.ts +10 -1
  130. package/src/intermediaries/apis/TrustedIntermediaryAPI.ts +0 -258
@@ -12,7 +12,9 @@ import { IAddressSwap } from "../../../IAddressSwap";
12
12
  import { TokenAmount } from "../../../../types/TokenAmount";
13
13
  import { BtcToken, SCToken } from "../../../../types/Token";
14
14
  import { LoggerType } from "../../../../utils/Logger";
15
- import { SwapExecutionAction } from "../../../../types/SwapExecutionAction";
15
+ import { SwapExecutionActionSendToAddress, SwapExecutionActionSignPSBT, SwapExecutionActionSignSmartChainTx, SwapExecutionActionWait } from "../../../../types/SwapExecutionAction";
16
+ import { SwapExecutionStepPayment, SwapExecutionStepSettlement, SwapExecutionStepSetup } from "../../../../types/SwapExecutionStep";
17
+ import { SwapStateInfo } from "../../../../types/SwapStateInfo";
16
18
  /**
17
19
  * State enum for legacy escrow based Bitcoin -> Smart chain swaps.
18
20
  *
@@ -150,6 +152,7 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
150
152
  * @inheritDoc
151
153
  */
152
154
  getInputTxId(): string | null;
155
+ private _setSubmittedBitcoinTx;
153
156
  /**
154
157
  * Returns timeout time (in UNIX milliseconds) when the on-chain address will expire and no funds should be sent
155
158
  * to that address anymore
@@ -270,6 +273,7 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
270
273
  psbtHex: string;
271
274
  psbtBase64: string;
272
275
  signInputs: number[];
276
+ feeRate: number;
273
277
  }>;
274
278
  /**
275
279
  * @inheritDoc
@@ -313,47 +317,47 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
313
317
  btcTxCheckIntervalSeconds?: number;
314
318
  maxWaitTillAutomaticSettlementSeconds?: number;
315
319
  }): Promise<boolean>;
320
+ /**
321
+ * @internal
322
+ */
323
+ protected _getExecutionStatus(options?: {
324
+ maxWaitTillAutomaticSettlementSeconds?: number;
325
+ }): Promise<{
326
+ steps: [SwapExecutionStepSetup<T["ChainId"]>, SwapExecutionStepPayment<"BITCOIN">, SwapExecutionStepSettlement<T["ChainId"], "awaiting_automatic" | "awaiting_manual">];
327
+ buildCurrentAction: (actionOptions?: {
328
+ bitcoinFeeRate?: number;
329
+ bitcoinWallet?: MinimalBitcoinWalletInterface;
330
+ skipChecks?: boolean;
331
+ manualSettlementSmartChainSigner?: string | T["Signer"] | T["NativeSigner"];
332
+ }) => Promise<SwapExecutionActionSendToAddress<false> | SwapExecutionActionSignPSBT<"FUNDED_PSBT"> | SwapExecutionActionWait<"BITCOIN_CONFS" | "SETTLEMENT"> | SwapExecutionActionSignSmartChainTx<T> | undefined>;
333
+ state: FromBTCSwapState;
334
+ }>;
316
335
  /**
317
336
  * @inheritDoc
318
- *
319
- * @param options.bitcoinFeeRate Optional fee rate to use for the created Bitcoin transaction
320
- * @param options.bitcoinWallet Bitcoin wallet to use, when provided the function returns a funded
321
- * psbt (`"FUNDED_PSBT"`), if not passed just a bitcoin receive address is returned (`"ADDRESS"`)
322
- * @param options.skipChecks Skip checks like making sure init signature is still valid and swap
323
- * wasn't commited yet (this is handled on swap creation, if you commit right after quoting, you
324
- * can use `skipChecks=true`)
325
- *
326
- * @throws {Error} if the swap or quote is expired, or if triggered in invalid state
337
+ * @internal
327
338
  */
328
- txsExecute(options?: {
329
- bitcoinFeeRate?: number;
330
- bitcoinWallet?: MinimalBitcoinWalletInterface;
331
- skipChecks?: boolean;
332
- }): Promise<({
333
- name: "Commit";
334
- description: string;
335
- chain: T["ChainId"];
336
- txs: T["TX"][];
337
- } | {
338
- name: "Payment";
339
- description: string;
340
- chain: "BITCOIN";
341
- txs: ({
342
- address: string;
343
- amount: number;
344
- hyperlink: string;
345
- type: "ADDRESS";
346
- } | {
347
- type: "FUNDED_PSBT";
348
- psbt: Transaction;
349
- psbtHex: string;
350
- psbtBase64: string;
351
- signInputs: number[];
352
- address?: undefined;
353
- amount?: undefined;
354
- hyperlink?: undefined;
355
- })[];
356
- })[]>;
339
+ _submitExecutionTransactions(txs: (T["SignedTXType"] | Transaction | string)[], abortSignal?: AbortSignal, requiredStates?: FromBTCSwapState[], idempotent?: boolean): Promise<string[]>;
340
+ /**
341
+ * @internal
342
+ */
343
+ private _buildSendToAddressOrSignPsbtAction;
344
+ /**
345
+ * @internal
346
+ */
347
+ private _buildWaitBitcoinConfirmationsAction;
348
+ /**
349
+ * @internal
350
+ */
351
+ private _buildWaitSettlementAction;
352
+ /**
353
+ * @internal
354
+ */
355
+ private _buildInitSmartChainTxAction;
356
+ /**
357
+ * @inheritDoc
358
+ * @internal
359
+ */
360
+ private _buildClaimSmartChainTxAction;
357
361
  /**
358
362
  * @inheritDoc
359
363
  *
@@ -367,13 +371,42 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
367
371
  * @param options.maxWaitTillAutomaticSettlementSeconds Maximum time to wait for an automatic settlement after
368
372
  * the bitcoin transaction is confirmed (defaults to 60 seconds)
369
373
  */
370
- getCurrentActions(options?: {
374
+ getExecutionAction(options?: {
371
375
  bitcoinFeeRate?: number;
372
376
  bitcoinWallet?: MinimalBitcoinWalletInterface;
373
377
  skipChecks?: boolean;
374
378
  manualSettlementSmartChainSigner?: string | T["Signer"] | T["NativeSigner"];
375
379
  maxWaitTillAutomaticSettlementSeconds?: number;
376
- }): Promise<SwapExecutionAction<T>[]>;
380
+ }): Promise<SwapExecutionActionSendToAddress<false> | SwapExecutionActionSignPSBT<"FUNDED_PSBT"> | SwapExecutionActionWait<"BITCOIN_CONFS" | "SETTLEMENT"> | SwapExecutionActionSignSmartChainTx<T> | undefined>;
381
+ /**
382
+ * @inheritDoc
383
+ */
384
+ getExecutionStatus(options?: {
385
+ skipBuildingAction?: boolean;
386
+ bitcoinFeeRate?: number;
387
+ bitcoinWallet?: MinimalBitcoinWalletInterface;
388
+ skipChecks?: boolean;
389
+ manualSettlementSmartChainSigner?: string | T["Signer"] | T["NativeSigner"];
390
+ maxWaitTillAutomaticSettlementSeconds?: number;
391
+ }): Promise<{
392
+ steps: [
393
+ SwapExecutionStepSetup<T["ChainId"]>,
394
+ SwapExecutionStepPayment<"BITCOIN">,
395
+ SwapExecutionStepSettlement<T["ChainId"], "awaiting_automatic" | "awaiting_manual">
396
+ ];
397
+ currentAction: SwapExecutionActionSendToAddress<false> | SwapExecutionActionSignPSBT<"FUNDED_PSBT"> | SwapExecutionActionWait<"BITCOIN_CONFS" | "SETTLEMENT"> | SwapExecutionActionSignSmartChainTx<T> | undefined;
398
+ stateInfo: SwapStateInfo<FromBTCSwapState>;
399
+ }>;
400
+ /**
401
+ * @inheritDoc
402
+ */
403
+ getExecutionSteps(options?: {
404
+ maxWaitTillAutomaticSettlementSeconds?: number;
405
+ }): Promise<[
406
+ SwapExecutionStepSetup<T["ChainId"]>,
407
+ SwapExecutionStepPayment<"BITCOIN">,
408
+ SwapExecutionStepSettlement<T["ChainId"], "awaiting_automatic" | "awaiting_manual">
409
+ ]>;
377
410
  /**
378
411
  * @inheritDoc
379
412
  *
@@ -417,7 +450,7 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
417
450
  * @throws {Error} If swap is in invalid state (must be {@link FromBTCSwapState.BTC_TX_CONFIRMED})
418
451
  * @throws {Error} If the LP refunded sooner than we were able to claim
419
452
  */
420
- waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
453
+ waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal, pollIntervalSeconds?: number): Promise<boolean>;
421
454
  /**
422
455
  * @inheritDoc
423
456
  */