@atomiqlabs/sdk 8.6.0 → 8.6.3

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 (61) hide show
  1. package/dist/http/paramcoders/ParamDecoder.js +9 -4
  2. package/dist/http/paramcoders/ParamEncoder.js +6 -1
  3. package/dist/intermediaries/IntermediaryDiscovery.js +4 -3
  4. package/dist/storage/UnifiedSwapStorage.js +13 -8
  5. package/dist/swapper/Swapper.d.ts +1 -12
  6. package/dist/swapper/Swapper.js +31 -28
  7. package/dist/swapper/SwapperFactory.d.ts +1 -0
  8. package/dist/swapper/SwapperFactory.js +9 -4
  9. package/dist/swaps/ISwap.d.ts +8 -0
  10. package/dist/swaps/ISwap.js +8 -0
  11. package/dist/swaps/ISwapWrapper.d.ts +23 -1
  12. package/dist/swaps/ISwapWrapper.js +88 -28
  13. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +4 -1
  14. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +2 -2
  15. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +1 -1
  16. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +2 -2
  17. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +16 -6
  18. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +8 -2
  19. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +1 -1
  20. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +14 -4
  21. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +8 -6
  22. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +2 -1
  23. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +7 -5
  24. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +8 -2
  25. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +1 -1
  26. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +0 -6
  27. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +8 -3
  28. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +8 -2
  29. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +1 -0
  30. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +3 -2
  31. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +1 -3
  32. package/dist/swaps/trusted/ln/LnForGasWrapper.js +0 -1
  33. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +0 -1
  34. package/dist/utils/RetryUtils.d.ts +2 -1
  35. package/dist/utils/RetryUtils.js +3 -2
  36. package/package.json +1 -1
  37. package/src/http/paramcoders/ParamDecoder.ts +8 -4
  38. package/src/http/paramcoders/ParamEncoder.ts +5 -1
  39. package/src/intermediaries/IntermediaryDiscovery.ts +6 -4
  40. package/src/storage/UnifiedSwapStorage.ts +13 -8
  41. package/src/swapper/Swapper.ts +35 -28
  42. package/src/swapper/SwapperFactory.ts +12 -6
  43. package/src/swaps/ISwap.ts +8 -0
  44. package/src/swaps/ISwapWrapper.ts +104 -28
  45. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +5 -1
  46. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +3 -3
  47. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +17 -8
  48. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +8 -3
  49. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +13 -5
  50. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +8 -7
  51. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +9 -5
  52. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +7 -2
  53. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +1 -1
  54. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +0 -3
  55. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +7 -3
  56. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +7 -2
  57. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +5 -2
  58. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1 -3
  59. package/src/swaps/trusted/ln/LnForGasWrapper.ts +0 -1
  60. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +0 -1
  61. package/src/utils/RetryUtils.ts +11 -4
@@ -354,7 +354,7 @@ export class SpvFromBTCSwap<T extends ChainType>
354
354
  */
355
355
  protected upgradeVersion() {
356
356
  if(this.version===1) {
357
- this.posted = this.initiated;
357
+ this.posted = this.initiated && this._data!=null;
358
358
  this.version = 2;
359
359
  }
360
360
  }
@@ -1571,6 +1571,8 @@ export class SpvFromBTCSwap<T extends ChainType>
1571
1571
  this._senderAddress = btcTx.inputAddresses[1];
1572
1572
  }
1573
1573
 
1574
+ private btcTxLastChecked?: number;
1575
+
1574
1576
  /**
1575
1577
  * @internal
1576
1578
  */
@@ -1578,6 +1580,7 @@ export class SpvFromBTCSwap<T extends ChainType>
1578
1580
  if(this._data?.btcTx==null) return false;
1579
1581
 
1580
1582
  //Check if bitcoin payment was confirmed
1583
+ this.btcTxLastChecked = Date.now();
1581
1584
  const res = await this.getBitcoinPayment();
1582
1585
  if(res==null) {
1583
1586
  //Check inputs double-spent
@@ -1724,7 +1727,7 @@ export class SpvFromBTCSwap<T extends ChainType>
1724
1727
  }
1725
1728
  }
1726
1729
 
1727
- if(Math.floor(Date.now()/1000)%120===0) {
1730
+ if(this.btcTxLastChecked==null || Date.now() - this.btcTxLastChecked > 120_000) {
1728
1731
  if (
1729
1732
  this._state === SpvFromBTCSwapState.POSTED ||
1730
1733
  this._state === SpvFromBTCSwapState.BROADCASTED
@@ -186,6 +186,7 @@ export class SpvFromBTCWrapper<
186
186
  super(
187
187
  chainIdentifier, unifiedStorage, unifiedChainEvents, chain, prices, tokens,
188
188
  {
189
+ ...options,
189
190
  bitcoinNetwork: options?.bitcoinNetwork ?? TEST_NETWORK,
190
191
  maxConfirmations: options?.maxConfirmations ?? 6,
191
192
  bitcoinBlocktime: options?.bitcoinBlocktime ?? 10*60,
@@ -210,7 +211,6 @@ export class SpvFromBTCWrapper<
210
211
  swap._state===SpvFromBTCSwapState.QUOTE_SOFT_EXPIRED || swap._state===SpvFromBTCSwapState.BTC_TX_CONFIRMED
211
212
  ) {
212
213
  swap._state = SpvFromBTCSwapState.FRONTED;
213
- swap._frontTxId = event.meta?.txId;
214
214
  await swap._setBitcoinTxId(event.btcTxId).catch(e => {
215
215
  this.logger.warn("processEventFront(): Failed to set bitcoin txId: ", e);
216
216
  });
@@ -227,7 +227,6 @@ export class SpvFromBTCWrapper<
227
227
  swap._state===SpvFromBTCSwapState.BTC_TX_CONFIRMED
228
228
  ) {
229
229
  swap._state = SpvFromBTCSwapState.CLAIMED;
230
- swap._claimTxId = event.meta?.txId;
231
230
  await swap._setBitcoinTxId(event.btcTxId).catch(e => {
232
231
  this.logger.warn("processEventClaim(): Failed to set bitcoin txId: ", e);
233
232
  });
@@ -708,7 +707,6 @@ export class SpvFromBTCWrapper<
708
707
  )
709
708
  };
710
709
  const quote = new SpvFromBTCSwap<T>(this, swapInit);
711
- await quote._save();
712
710
  return quote;
713
711
  } catch (e) {
714
712
  abortController.abort(e);
@@ -84,7 +84,6 @@ export class LnForGasWrapper<T extends ChainType> extends ISwapWrapper<T, LnForG
84
84
  exactIn: false
85
85
  };
86
86
  const quote = new LnForGasSwap(this, quoteInit);
87
- await quote._save();
88
87
  return quote;
89
88
  }
90
89
 
@@ -124,7 +124,6 @@ export class OnchainForGasWrapper<T extends ChainType> extends ISwapWrapper<T, O
124
124
  exactIn: false,
125
125
  token
126
126
  } as OnchainForGasSwapInit);
127
- await quote._save();
128
127
  return quote;
129
128
  }
130
129
 
@@ -40,12 +40,19 @@ function checkError(e: any, errorAllowed: ((e: any) => boolean) | Constructor<Er
40
40
  * @param retryPolicy.exponential Whether to use exponentially increasing delays
41
41
  * @param errorAllowed A callback for determining whether a given error is allowed, and we should therefore not retry
42
42
  * @param abortSignal
43
+ * @param failureLogLevel
43
44
  * @returns Result of the action executing callback
44
45
  * @category Utilities
45
46
  */
46
- export async function tryWithRetries<T>(func: (retryCount: number) => Promise<T>, retryPolicy?: {
47
- maxRetries?: number, delay?: number, exponential?: boolean
48
- }, errorAllowed?: ((e: any) => boolean) | Constructor<Error> | Constructor<Error>[], abortSignal?: AbortSignal): Promise<T> {
47
+ export async function tryWithRetries<T>(
48
+ func: (retryCount: number) => Promise<T>,
49
+ retryPolicy?: {
50
+ maxRetries?: number, delay?: number, exponential?: boolean
51
+ },
52
+ errorAllowed?: ((e: any) => boolean) | Constructor<Error> | Constructor<Error>[],
53
+ abortSignal?: AbortSignal,
54
+ failureLogLevel: "debug" | "info" | "warn" | "error" = "warn"
55
+ ): Promise<T> {
49
56
  retryPolicy = retryPolicy || {};
50
57
  retryPolicy.maxRetries = retryPolicy.maxRetries || 5;
51
58
  retryPolicy.delay = retryPolicy.delay || 500;
@@ -59,7 +66,7 @@ export async function tryWithRetries<T>(func: (retryCount: number) => Promise<T>
59
66
  } catch (e) {
60
67
  if (errorAllowed != null && checkError(e, errorAllowed)) throw e;
61
68
  err = e;
62
- logger.debug("tryWithRetries(): Error on try number: " + i, e);
69
+ logger[failureLogLevel]("tryWithRetries(): Error on try number: " + i, e);
63
70
  }
64
71
  if (abortSignal != null && abortSignal.aborted) throw (abortSignal.reason || new Error("Aborted"));
65
72
  if (i !== retryPolicy.maxRetries - 1) {