@cardano-sdk/wallet 0.1.5 → 0.2.0

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 (189) hide show
  1. package/README.md +8 -0
  2. package/dist/KeyManagement/InMemoryKeyAgent.d.ts +30 -0
  3. package/dist/KeyManagement/InMemoryKeyAgent.d.ts.map +1 -0
  4. package/dist/KeyManagement/InMemoryKeyAgent.js +132 -0
  5. package/dist/KeyManagement/InMemoryKeyAgent.js.map +1 -0
  6. package/dist/KeyManagement/KeyAgentBase.d.ts +16 -0
  7. package/dist/KeyManagement/KeyAgentBase.d.ts.map +1 -0
  8. package/dist/KeyManagement/KeyAgentBase.js +49 -0
  9. package/dist/KeyManagement/KeyAgentBase.js.map +1 -0
  10. package/dist/KeyManagement/cachedGetPassword.d.ts +4 -0
  11. package/dist/KeyManagement/cachedGetPassword.d.ts.map +1 -0
  12. package/dist/KeyManagement/cachedGetPassword.js +18 -0
  13. package/dist/KeyManagement/cachedGetPassword.js.map +1 -0
  14. package/dist/KeyManagement/emip3.d.ts +5 -0
  15. package/dist/KeyManagement/emip3.d.ts.map +1 -0
  16. package/dist/KeyManagement/emip3.js +48 -0
  17. package/dist/KeyManagement/emip3.js.map +1 -0
  18. package/dist/KeyManagement/errors/AuthenticationError.d.ts +6 -0
  19. package/dist/KeyManagement/errors/AuthenticationError.d.ts.map +1 -0
  20. package/dist/KeyManagement/errors/AuthenticationError.js +16 -0
  21. package/dist/KeyManagement/errors/AuthenticationError.js.map +1 -0
  22. package/dist/KeyManagement/errors/InvalidMnemonicError.d.ts +5 -0
  23. package/dist/KeyManagement/errors/InvalidMnemonicError.d.ts.map +1 -0
  24. package/dist/KeyManagement/errors/InvalidMnemonicError.js +13 -0
  25. package/dist/KeyManagement/errors/InvalidMnemonicError.js.map +1 -0
  26. package/dist/KeyManagement/errors/InvalidSerializableDataError .d.ts +5 -0
  27. package/dist/KeyManagement/errors/InvalidSerializableDataError .d.ts.map +1 -0
  28. package/dist/KeyManagement/errors/InvalidSerializableDataError .js +15 -0
  29. package/dist/KeyManagement/errors/InvalidSerializableDataError .js.map +1 -0
  30. package/dist/KeyManagement/errors/index.d.ts +3 -1
  31. package/dist/KeyManagement/errors/index.d.ts.map +1 -1
  32. package/dist/KeyManagement/errors/index.js +13 -3
  33. package/dist/KeyManagement/errors/index.js.map +1 -1
  34. package/dist/KeyManagement/index.d.ts +6 -2
  35. package/dist/KeyManagement/index.d.ts.map +1 -1
  36. package/dist/KeyManagement/index.js +6 -2
  37. package/dist/KeyManagement/index.js.map +1 -1
  38. package/dist/KeyManagement/restoreKeyAgent.d.ts +7 -0
  39. package/dist/KeyManagement/restoreKeyAgent.d.ts.map +1 -0
  40. package/dist/KeyManagement/restoreKeyAgent.js +30 -0
  41. package/dist/KeyManagement/restoreKeyAgent.js.map +1 -0
  42. package/dist/KeyManagement/types.d.ts +57 -12
  43. package/dist/KeyManagement/types.d.ts.map +1 -1
  44. package/dist/KeyManagement/types.js +19 -0
  45. package/dist/KeyManagement/types.js.map +1 -1
  46. package/dist/KeyManagement/util.d.ts +4 -0
  47. package/dist/KeyManagement/util.d.ts.map +1 -1
  48. package/dist/KeyManagement/util.js +8 -2
  49. package/dist/KeyManagement/util.js.map +1 -1
  50. package/dist/SingleAddressWallet.d.ts +38 -23
  51. package/dist/SingleAddressWallet.d.ts.map +1 -1
  52. package/dist/SingleAddressWallet.js +178 -52
  53. package/dist/SingleAddressWallet.js.map +1 -1
  54. package/dist/Transaction/computeImplicitCoin.d.ts +2 -2
  55. package/dist/Transaction/computeImplicitCoin.d.ts.map +1 -1
  56. package/dist/Transaction/computeImplicitCoin.js +5 -5
  57. package/dist/Transaction/computeImplicitCoin.js.map +1 -1
  58. package/dist/Transaction/createTransactionInternals.d.ts +7 -8
  59. package/dist/Transaction/createTransactionInternals.d.ts.map +1 -1
  60. package/dist/Transaction/createTransactionInternals.js +16 -30
  61. package/dist/Transaction/createTransactionInternals.js.map +1 -1
  62. package/dist/Transaction/ensureValidityInterval.d.ts +3 -0
  63. package/dist/Transaction/ensureValidityInterval.d.ts.map +1 -0
  64. package/dist/Transaction/ensureValidityInterval.js +6 -0
  65. package/dist/Transaction/ensureValidityInterval.js.map +1 -0
  66. package/dist/Transaction/index.d.ts +1 -3
  67. package/dist/Transaction/index.d.ts.map +1 -1
  68. package/dist/Transaction/index.js +1 -3
  69. package/dist/Transaction/index.js.map +1 -1
  70. package/dist/index.d.ts +1 -5
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +2 -6
  73. package/dist/index.js.map +1 -1
  74. package/dist/services/AssetsTracker.d.ts +17 -0
  75. package/dist/services/AssetsTracker.d.ts.map +1 -0
  76. package/dist/services/AssetsTracker.js +10 -0
  77. package/dist/services/AssetsTracker.js.map +1 -0
  78. package/dist/services/BalanceTracker.d.ts +5 -0
  79. package/dist/services/BalanceTracker.d.ts.map +1 -0
  80. package/dist/services/BalanceTracker.js +43 -0
  81. package/dist/services/BalanceTracker.js.map +1 -0
  82. package/dist/services/DelegationTracker/DelegationTracker.d.ts +26 -0
  83. package/dist/services/DelegationTracker/DelegationTracker.d.ts.map +1 -0
  84. package/dist/services/DelegationTracker/DelegationTracker.js +39 -0
  85. package/dist/services/DelegationTracker/DelegationTracker.js.map +1 -0
  86. package/dist/services/DelegationTracker/RewardAccounts.d.ts +36 -0
  87. package/dist/services/DelegationTracker/RewardAccounts.d.ts.map +1 -0
  88. package/dist/services/DelegationTracker/RewardAccounts.js +86 -0
  89. package/dist/services/DelegationTracker/RewardAccounts.js.map +1 -0
  90. package/dist/services/DelegationTracker/RewardsHistory.d.ts +13 -0
  91. package/dist/services/DelegationTracker/RewardsHistory.d.ts.map +1 -0
  92. package/dist/services/DelegationTracker/RewardsHistory.js +27 -0
  93. package/dist/services/DelegationTracker/RewardsHistory.js.map +1 -0
  94. package/dist/services/DelegationTracker/index.d.ts +5 -0
  95. package/dist/services/DelegationTracker/index.d.ts.map +1 -0
  96. package/dist/services/DelegationTracker/index.js +17 -0
  97. package/dist/services/DelegationTracker/index.js.map +1 -0
  98. package/dist/services/DelegationTracker/transactionCertificates.d.ts +9 -0
  99. package/dist/services/DelegationTracker/transactionCertificates.d.ts.map +1 -0
  100. package/dist/services/DelegationTracker/transactionCertificates.js +33 -0
  101. package/dist/services/DelegationTracker/transactionCertificates.js.map +1 -0
  102. package/dist/services/DelegationTracker/types.d.ts +6 -0
  103. package/dist/services/DelegationTracker/types.d.ts.map +1 -0
  104. package/dist/{Transaction → services/DelegationTracker}/types.js +0 -0
  105. package/dist/services/DelegationTracker/types.js.map +1 -0
  106. package/dist/services/TransactionsTracker.d.ts +22 -0
  107. package/dist/services/TransactionsTracker.d.ts.map +1 -0
  108. package/dist/services/TransactionsTracker.js +74 -0
  109. package/dist/services/TransactionsTracker.js.map +1 -0
  110. package/dist/services/UtxoTracker.d.ts +18 -0
  111. package/dist/services/UtxoTracker.d.ts.map +1 -0
  112. package/dist/services/UtxoTracker.js +20 -0
  113. package/dist/services/UtxoTracker.js.map +1 -0
  114. package/dist/services/index.d.ts +8 -0
  115. package/dist/services/index.d.ts.map +1 -0
  116. package/dist/services/index.js +20 -0
  117. package/dist/services/index.js.map +1 -0
  118. package/dist/services/types.d.ts +88 -0
  119. package/dist/services/types.d.ts.map +1 -0
  120. package/dist/services/types.js +24 -0
  121. package/dist/services/types.js.map +1 -0
  122. package/dist/services/util/SyncableIntervalTrackerSubject.d.ts +19 -0
  123. package/dist/services/util/SyncableIntervalTrackerSubject.d.ts.map +1 -0
  124. package/dist/services/util/SyncableIntervalTrackerSubject.js +30 -0
  125. package/dist/services/util/SyncableIntervalTrackerSubject.js.map +1 -0
  126. package/dist/services/util/TrackerSubject.d.ts +14 -0
  127. package/dist/services/util/TrackerSubject.d.ts.map +1 -0
  128. package/dist/services/util/TrackerSubject.js +46 -0
  129. package/dist/services/util/TrackerSubject.js.map +1 -0
  130. package/dist/services/util/coldObservableProvider.d.ts +4 -0
  131. package/dist/services/util/coldObservableProvider.d.ts.map +1 -0
  132. package/dist/services/util/coldObservableProvider.js +14 -0
  133. package/dist/services/util/coldObservableProvider.js.map +1 -0
  134. package/dist/services/util/equals.d.ts +9 -0
  135. package/dist/services/util/equals.d.ts.map +1 -0
  136. package/dist/services/util/equals.js +19 -0
  137. package/dist/services/util/equals.js.map +1 -0
  138. package/dist/services/util/index.d.ts +6 -0
  139. package/dist/services/util/index.d.ts.map +1 -0
  140. package/dist/services/util/index.js +18 -0
  141. package/dist/services/util/index.js.map +1 -0
  142. package/dist/services/util/trigger.d.ts +5 -0
  143. package/dist/services/util/trigger.d.ts.map +1 -0
  144. package/dist/services/util/trigger.js +9 -0
  145. package/dist/services/util/trigger.js.map +1 -0
  146. package/dist/types.d.ts +47 -29
  147. package/dist/types.d.ts.map +1 -1
  148. package/dist/types.js +5 -10
  149. package/dist/types.js.map +1 -1
  150. package/package.json +13 -5
  151. package/dist/Address.d.ts +0 -11
  152. package/dist/Address.d.ts.map +0 -1
  153. package/dist/Address.js +0 -9
  154. package/dist/Address.js.map +0 -1
  155. package/dist/BalanceTracker.d.ts +0 -23
  156. package/dist/BalanceTracker.d.ts.map +0 -1
  157. package/dist/BalanceTracker.js +0 -48
  158. package/dist/BalanceTracker.js.map +0 -1
  159. package/dist/InMemoryTransactionTracker.d.ts +0 -16
  160. package/dist/InMemoryTransactionTracker.d.ts.map +0 -1
  161. package/dist/InMemoryTransactionTracker.js +0 -84
  162. package/dist/InMemoryTransactionTracker.js.map +0 -1
  163. package/dist/InMemoryUtxoRepository.d.ts +0 -25
  164. package/dist/InMemoryUtxoRepository.d.ts.map +0 -1
  165. package/dist/InMemoryUtxoRepository.js +0 -154
  166. package/dist/InMemoryUtxoRepository.js.map +0 -1
  167. package/dist/KeyManagement/InMemoryKeyManager.d.ts +0 -9
  168. package/dist/KeyManagement/InMemoryKeyManager.d.ts.map +0 -1
  169. package/dist/KeyManagement/InMemoryKeyManager.js +0 -68
  170. package/dist/KeyManagement/InMemoryKeyManager.js.map +0 -1
  171. package/dist/KeyManagement/errors/InvalidMnemonic.d.ts +0 -5
  172. package/dist/KeyManagement/errors/InvalidMnemonic.d.ts.map +0 -1
  173. package/dist/KeyManagement/errors/InvalidMnemonic.js +0 -13
  174. package/dist/KeyManagement/errors/InvalidMnemonic.js.map +0 -1
  175. package/dist/Transaction/CertificateFactory.d.ts +0 -50
  176. package/dist/Transaction/CertificateFactory.d.ts.map +0 -1
  177. package/dist/Transaction/CertificateFactory.js +0 -72
  178. package/dist/Transaction/CertificateFactory.js.map +0 -1
  179. package/dist/Transaction/types.d.ts +0 -11
  180. package/dist/Transaction/types.d.ts.map +0 -1
  181. package/dist/Transaction/types.js.map +0 -1
  182. package/dist/Transaction/withdrawal.d.ts +0 -8
  183. package/dist/Transaction/withdrawal.d.ts.map +0 -1
  184. package/dist/Transaction/withdrawal.js +0 -10
  185. package/dist/Transaction/withdrawal.js.map +0 -1
  186. package/dist/TransactionError.d.ts +0 -15
  187. package/dist/TransactionError.d.ts.map +0 -1
  188. package/dist/TransactionError.js +0 -23
  189. package/dist/TransactionError.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionCertificates.d.ts","sourceRoot":"","sources":["../../../src/services/DelegationTracker/transactionCertificates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAA6B,MAAM,MAAM,CAAC;AAI7D,eAAO,MAAM,2BAA2B,2BAGvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,yFAGvB,CAAC;AAEV,eAAO,MAAM,sBAAsB,aAAc,QAAQ,WAAW,EAAE,UAAU,QAAQ,eAAe,EAAE,YAChC,CAAC;AAE1E,eAAO,MAAM,4BAA4B,+BACX,QAAQ,QAAQ,oBAC1B,QAAQ,eAAe,EAAE,YACoB,CAAC;AAElE,eAAO,MAAM,wBAAwB,6BACT,QAAQ,WAAW,EAAE,EAAE,YACvC,QAAQ,eAAe,CAAC,oBAAoB,GAAG,QAAQ,eAAe,CAAC,sBAAsB,+DAexG,CAAC;AAEF,eAAO,MAAM,4BAA4B,kBACxB,WAAW,QAAQ,QAAQ,EAAE,CAAC,oBAC3B,QAAQ,eAAe,EAAE,mCAK1C,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transactionsWithCertificates = exports.isLastStakeKeyCertOfType = exports.transactionHasAnyCertificate = exports.includesAnyCertificate = exports.stakeKeyCertficates = exports.RegAndDeregCertificateTypes = void 0;
4
+ const core_1 = require("@cardano-sdk/core");
5
+ const rxjs_1 = require("rxjs");
6
+ const lodash_es_1 = require("lodash-es");
7
+ const equals_1 = require("../util/equals");
8
+ exports.RegAndDeregCertificateTypes = [
9
+ core_1.Cardano.CertificateType.StakeKeyRegistration,
10
+ core_1.Cardano.CertificateType.StakeKeyDeregistration
11
+ ];
12
+ const stakeKeyCertficates = (certificates) => certificates?.filter((certificate) => exports.RegAndDeregCertificateTypes.includes(certificate.__typename)) || [];
13
+ exports.stakeKeyCertficates = stakeKeyCertficates;
14
+ const includesAnyCertificate = (haystack, needle) => haystack.some(({ __typename }) => needle.includes(__typename)) || false;
15
+ exports.includesAnyCertificate = includesAnyCertificate;
16
+ const transactionHasAnyCertificate = ({ body: { certificates } }, certificateTypes) => exports.includesAnyCertificate(certificates || [], certificateTypes);
17
+ exports.transactionHasAnyCertificate = transactionHasAnyCertificate;
18
+ const isLastStakeKeyCertOfType = (transactionsCertificates, certType, rewardAccount) => {
19
+ const lastRegOrDereg = lodash_es_1.last(transactionsCertificates
20
+ .map((certificates) => {
21
+ const allStakeKeyCertificates = exports.stakeKeyCertficates(certificates);
22
+ const addressStakeKeyCertificates = rewardAccount
23
+ ? allStakeKeyCertificates.filter(({ rewardAccount: address }) => rewardAccount === address)
24
+ : allStakeKeyCertificates;
25
+ return lodash_es_1.last(addressStakeKeyCertificates);
26
+ })
27
+ .filter(core_1.util.isNotNil));
28
+ return lastRegOrDereg?.__typename === certType;
29
+ };
30
+ exports.isLastStakeKeyCertOfType = isLastStakeKeyCertOfType;
31
+ const transactionsWithCertificates = (transactions$, certificateTypes) => transactions$.pipe(rxjs_1.map((transactions) => transactions.filter((tx) => exports.transactionHasAnyCertificate(tx, certificateTypes))), rxjs_1.distinctUntilChanged(equals_1.transactionsEquals));
32
+ exports.transactionsWithCertificates = transactionsWithCertificates;
33
+ //# sourceMappingURL=transactionCertificates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionCertificates.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/transactionCertificates.ts"],"names":[],"mappings":";;;AAAA,4CAAkD;AAClD,+BAA6D;AAC7D,yCAAiC;AACjC,2CAAoD;AAEvC,QAAA,2BAA2B,GAAG;IACzC,cAAO,CAAC,eAAe,CAAC,oBAAoB;IAC5C,cAAO,CAAC,eAAe,CAAC,sBAAsB;CAC/C,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAAC,YAAoC,EAAE,EAAE,CAC1E,YAAY,EAAE,MAAM,CAAC,CAAC,WAAW,EAAkD,EAAE,CACnF,mCAA2B,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAC7D,IAAI,EAAE,CAAC;AAHG,QAAA,mBAAmB,uBAGtB;AAEH,MAAM,sBAAsB,GAAG,CAAC,QAA+B,EAAE,MAAiC,EAAE,EAAE,CAC3G,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC;AAD7D,QAAA,sBAAsB,0BACuC;AAEnE,MAAM,4BAA4B,GAAG,CAC1C,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAoB,EAC5C,gBAA2C,EAC3C,EAAE,CAAC,8BAAsB,CAAC,YAAY,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAHrD,QAAA,4BAA4B,gCAGyB;AAE3D,MAAM,wBAAwB,GAAG,CACtC,wBAAiD,EACjD,QAAuG,EACvG,aAAqC,EACrC,EAAE;IACF,MAAM,cAAc,GAAG,gBAAI,CACzB,wBAAwB;SACrB,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QACpB,MAAM,uBAAuB,GAAG,2BAAmB,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,2BAA2B,GAAG,aAAa;YAC/C,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,KAAK,OAAO,CAAC;YAC3F,CAAC,CAAC,uBAAuB,CAAC;QAC5B,OAAO,gBAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC,CAAC;SACD,MAAM,CAAC,WAAI,CAAC,QAAQ,CAAC,CACzB,CAAC;IACF,OAAO,cAAc,EAAE,UAAU,KAAK,QAAQ,CAAC;AACjD,CAAC,CAAC;AAjBW,QAAA,wBAAwB,4BAiBnC;AAEK,MAAM,4BAA4B,GAAG,CAC1C,aAA6C,EAC7C,gBAA2C,EAC3C,EAAE,CACF,aAAa,CAAC,IAAI,CAChB,UAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,oCAA4B,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACtG,2BAAoB,CAAC,2BAAkB,CAAC,CACzC,CAAC;AAPS,QAAA,4BAA4B,gCAOrC"}
@@ -0,0 +1,6 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ export interface TxWithEpoch {
3
+ tx: Cardano.TxAlonzo;
4
+ epoch: Cardano.Epoch;
5
+ }
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/DelegationTracker/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;CACtB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { Cardano, WalletProvider } from '@cardano-sdk/core';
2
+ import { DirectionalTransaction, FailedTx, TransactionsTracker } from './types';
3
+ import { Observable } from 'rxjs';
4
+ import { RetryBackoffConfig } from 'backoff-rxjs';
5
+ import { TrackerSubject } from './util/TrackerSubject';
6
+ export interface TransactionsTrackerProps {
7
+ walletProvider: WalletProvider;
8
+ addresses$: Observable<Cardano.Address[]>;
9
+ tip$: Observable<Cardano.Tip>;
10
+ retryBackoffConfig: RetryBackoffConfig;
11
+ newTransactions: {
12
+ submitting$: Observable<Cardano.NewTxAlonzo>;
13
+ pending$: Observable<Cardano.NewTxAlonzo>;
14
+ failedToSubmit$: Observable<FailedTx>;
15
+ };
16
+ }
17
+ export interface TransactionsTrackerInternals {
18
+ transactionsSource$?: TrackerSubject<DirectionalTransaction[]>;
19
+ }
20
+ export declare const createAddressTransactionsProvider: (walletProvider: WalletProvider, addresses$: Observable<Cardano.Address[]>, retryBackoffConfig: RetryBackoffConfig, tipBlockHeight$: Observable<number>) => Observable<DirectionalTransaction[]>;
21
+ export declare const createTransactionsTracker: ({ tip$, walletProvider, addresses$, newTransactions: { submitting$, pending$, failedToSubmit$ }, retryBackoffConfig }: TransactionsTrackerProps, { transactionsSource$ }?: TransactionsTrackerInternals) => TransactionsTracker;
22
+ //# sourceMappingURL=TransactionsTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionsTracker.d.ts","sourceRoot":"","sources":["../../src/services/TransactionsTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,sBAAsB,EACtB,QAAQ,EAGR,mBAAmB,EACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,UAAU,EAgBX,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE;QACf,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;KACvC,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,mBAAmB,CAAC,EAAE,cAAc,CAAC,sBAAsB,EAAE,CAAC,CAAC;CAChE;AAED,eAAO,MAAM,iCAAiC,mBAC5B,cAAc,cAClB,WAAW,QAAQ,OAAO,EAAE,CAAC,sBACrB,kBAAkB,mBACrB,WAAW,MAAM,CAAC,KAClC,WAAW,sBAAsB,EAAE,CA4BrC,CAAC;AAgBF,eAAO,MAAM,yBAAyB,0HAOjC,wBAAwB,4BAKxB,4BAA4B,KAC9B,mBA+FF,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTransactionsTracker = exports.createAddressTransactionsProvider = void 0;
4
+ const types_1 = require("./types");
5
+ const rxjs_1 = require("rxjs");
6
+ const TrackerSubject_1 = require("./util/TrackerSubject");
7
+ const util_1 = require("./util");
8
+ const lodash_es_1 = require("lodash-es");
9
+ const createAddressTransactionsProvider = (walletProvider, addresses$, retryBackoffConfig, tipBlockHeight$) => {
10
+ const isMyAddress = (addresses) => ({ address }) => addresses.includes(address);
11
+ return addresses$.pipe(rxjs_1.switchMap((addresses) => util_1.coldObservableProvider(() => walletProvider.queryTransactionsByAddresses(addresses), retryBackoffConfig, tipBlockHeight$, util_1.transactionsEquals).pipe(rxjs_1.map((transactions) => lodash_es_1.sortBy(transactions, ({ blockHeader: { blockHeight } }) => blockHeight, ({ index }) => index).map((tx) => {
12
+ const direction = tx.body.inputs.some(isMyAddress(addresses))
13
+ ? types_1.TransactionDirection.Outgoing
14
+ : types_1.TransactionDirection.Incoming;
15
+ return { direction, tx };
16
+ })))));
17
+ };
18
+ exports.createAddressTransactionsProvider = createAddressTransactionsProvider;
19
+ const newTransactions$ = (transactions$) => transactions$.pipe(rxjs_1.take(1), rxjs_1.map((transactions) => transactions.map(({ id }) => id)), rxjs_1.mergeMap((initialTransactionIds) => {
20
+ const ignoredTransactionIds = [...initialTransactionIds];
21
+ return transactions$.pipe(rxjs_1.map((transactions) => transactions.filter(({ id }) => !ignoredTransactionIds.includes(id))), rxjs_1.tap((newTransactions) => ignoredTransactionIds.push(...newTransactions.map(({ id }) => id))), rxjs_1.mergeMap((newTransactions) => rxjs_1.concat(...newTransactions.map((tx) => rxjs_1.of(tx)))));
22
+ }));
23
+ const createTransactionsTracker = ({ tip$, walletProvider, addresses$, newTransactions: { submitting$, pending$, failedToSubmit$ }, retryBackoffConfig }, { transactionsSource$ = new TrackerSubject_1.TrackerSubject(exports.createAddressTransactionsProvider(walletProvider, addresses$, retryBackoffConfig, util_1.distinctBlock(tip$))) } = {}) => {
24
+ const providerTransactionsByDirection$ = (direction) => transactionsSource$.pipe(rxjs_1.map((transactions) => transactions.filter((tx) => tx.direction === direction).map(({ tx }) => tx)), rxjs_1.distinctUntilChanged(util_1.transactionsEquals));
25
+ const incomingTransactionHistory$ = new TrackerSubject_1.TrackerSubject(providerTransactionsByDirection$(types_1.TransactionDirection.Incoming));
26
+ const outgoingTransactionHistory$ = new TrackerSubject_1.TrackerSubject(providerTransactionsByDirection$(types_1.TransactionDirection.Outgoing));
27
+ const txConfirmed$ = (tx) => newTransactions$(outgoingTransactionHistory$).pipe(rxjs_1.filter((historyTx) => historyTx.id === tx.id), rxjs_1.take(1), rxjs_1.map(() => tx));
28
+ const failed$ = new rxjs_1.Subject();
29
+ const failedSubscription = submitting$
30
+ .pipe(rxjs_1.mergeMap((tx) => {
31
+ const invalidHereafter = tx.body.validityInterval.invalidHereafter;
32
+ return rxjs_1.race(failedToSubmit$.pipe(rxjs_1.filter((failed) => failed.tx === tx), rxjs_1.take(1)), invalidHereafter
33
+ ? tip$.pipe(rxjs_1.filter(({ slot }) => slot > invalidHereafter), rxjs_1.map(() => ({ reason: types_1.TransactionFailure.Timeout, tx })), rxjs_1.take(1))
34
+ : rxjs_1.EMPTY).pipe(rxjs_1.takeUntil(txConfirmed$(tx)));
35
+ }))
36
+ .subscribe(failed$);
37
+ const txFailed$ = (tx) => failed$.pipe(rxjs_1.filter((failed) => failed.tx === tx), rxjs_1.take(1));
38
+ const inFlight$ = new TrackerSubject_1.TrackerSubject(submitting$.pipe(rxjs_1.mergeMap((tx) => rxjs_1.merge(rxjs_1.of({ op: 'add', tx }), rxjs_1.race(txConfirmed$(tx), txFailed$(tx)).pipe(rxjs_1.map(() => ({ op: 'remove', tx }))))), rxjs_1.scan((inFlight, { op, tx }) => {
39
+ if (op === 'add') {
40
+ return [...inFlight, tx];
41
+ }
42
+ const idx = inFlight.indexOf(tx);
43
+ return [...inFlight.splice(0, idx), ...inFlight.splice(idx + 1)];
44
+ }, []), rxjs_1.startWith([])));
45
+ const confirmed$ = new rxjs_1.Subject();
46
+ const confirmedSubscription = submitting$
47
+ .pipe(rxjs_1.mergeMap((tx) => txConfirmed$(tx).pipe(rxjs_1.takeUntil(txFailed$(tx)))))
48
+ .subscribe(confirmed$);
49
+ return {
50
+ history: {
51
+ all$: transactionsSource$,
52
+ incoming$: incomingTransactionHistory$,
53
+ outgoing$: outgoingTransactionHistory$
54
+ },
55
+ incoming$: newTransactions$(incomingTransactionHistory$),
56
+ outgoing: {
57
+ confirmed$,
58
+ failed$,
59
+ inFlight$,
60
+ pending$,
61
+ submitting$
62
+ },
63
+ shutdown: () => {
64
+ transactionsSource$.complete();
65
+ inFlight$.complete();
66
+ confirmedSubscription.unsubscribe();
67
+ confirmed$.complete();
68
+ failedSubscription.unsubscribe();
69
+ failed$.complete();
70
+ }
71
+ };
72
+ };
73
+ exports.createTransactionsTracker = createTransactionsTracker;
74
+ //# sourceMappingURL=TransactionsTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionsTracker.js","sourceRoot":"","sources":["../../src/services/TransactionsTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Cardano, WalletProvider } from '@cardano-sdk/core';
2
+ import { Observable } from 'rxjs';
3
+ import { RetryBackoffConfig } from 'backoff-rxjs';
4
+ import { TrackerSubject } from './util';
5
+ import { TransactionalTracker } from './types';
6
+ export interface UtxoTrackerProps {
7
+ walletProvider: WalletProvider;
8
+ addresses$: Observable<Cardano.Address[]>;
9
+ transactionsInFlight$: Observable<Cardano.NewTxAlonzo[]>;
10
+ tipBlockHeight$: Observable<number>;
11
+ retryBackoffConfig: RetryBackoffConfig;
12
+ }
13
+ export interface UtxoTrackerInternals {
14
+ utxoSource$?: TrackerSubject<Cardano.Utxo[]>;
15
+ }
16
+ export declare const createUtxoProvider: (walletProvider: WalletProvider, addresses$: Observable<Cardano.Address[]>, tipBlockHeight$: Observable<number>, retryBackoffConfig: RetryBackoffConfig) => Observable<Cardano.Utxo[]>;
17
+ export declare const createUtxoTracker: ({ walletProvider, addresses$, transactionsInFlight$, retryBackoffConfig, tipBlockHeight$ }: UtxoTrackerProps, { utxoSource$ }?: UtxoTrackerInternals) => TransactionalTracker<Cardano.Utxo[]>;
18
+ //# sourceMappingURL=UtxoTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UtxoTracker.d.ts","sourceRoot":"","sources":["../../src/services/UtxoTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAiC,MAAM,MAAM,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,cAAc,EAAsC,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,qBAAqB,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,kBAAkB,mBACb,cAAc,cAClB,WAAW,QAAQ,OAAO,EAAE,CAAC,mBACxB,WAAW,MAAM,CAAC,sBACf,kBAAkB,+BAWrC,CAAC;AAEJ,eAAO,MAAM,iBAAiB,+FACgE,gBAAgB,oBAKzG,oBAAoB,KACtB,qBAAqB,QAAQ,IAAI,EAAE,CAyBrC,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createUtxoTracker = exports.createUtxoProvider = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const util_1 = require("./util");
6
+ const createUtxoProvider = (walletProvider, addresses$, tipBlockHeight$, retryBackoffConfig) => addresses$.pipe(rxjs_1.switchMap((addresses) => util_1.coldObservableProvider(() => walletProvider.utxoDelegationAndRewards(addresses).then(({ utxo }) => utxo), retryBackoffConfig, tipBlockHeight$, util_1.utxoEquals)));
7
+ exports.createUtxoProvider = createUtxoProvider;
8
+ const createUtxoTracker = ({ walletProvider, addresses$, transactionsInFlight$, retryBackoffConfig, tipBlockHeight$ }, { utxoSource$ = new util_1.TrackerSubject(exports.createUtxoProvider(walletProvider, addresses$, tipBlockHeight$, retryBackoffConfig)) } = {}) => {
9
+ const available$ = new util_1.TrackerSubject(rxjs_1.combineLatest([utxoSource$, transactionsInFlight$]).pipe(rxjs_1.map(([utxo, transactionsInFlight]) => utxo.filter(([utxoTxIn]) => !transactionsInFlight.some(({ body: { inputs } }) => inputs.some((input) => input.txId === utxoTxIn.txId && input.index === utxoTxIn.index))))));
10
+ return {
11
+ available$,
12
+ shutdown: () => {
13
+ utxoSource$.complete();
14
+ available$.complete();
15
+ },
16
+ total$: utxoSource$
17
+ };
18
+ };
19
+ exports.createUtxoTracker = createUtxoTracker;
20
+ //# sourceMappingURL=UtxoTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UtxoTracker.js","sourceRoot":"","sources":["../../src/services/UtxoTracker.ts"],"names":[],"mappings":";;;AACA,+BAAiE;AAEjE,iCAA4E;AAerE,MAAM,kBAAkB,GAAG,CAChC,cAA8B,EAC9B,UAAyC,EACzC,eAAmC,EACnC,kBAAsC,EACtC,EAAE,CACF,UAAU,CAAC,IAAI,CACb,gBAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CACtB,6BAAsB,CACpB,GAAG,EAAE,CAAC,cAAc,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EACjF,kBAAkB,EAClB,eAAe,EACf,iBAAU,CACX,CACF,CACF,CAAC;AAfS,QAAA,kBAAkB,sBAe3B;AAEG,MAAM,iBAAiB,GAAG,CAC/B,EAAE,cAAc,EAAE,UAAU,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAoB,EAC5G,EACE,WAAW,GAAG,IAAI,qBAAc,CAC9B,0BAAkB,CAAC,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,CAAC,CACpF,KACuB,EAAE,EACU,EAAE;IACxC,MAAM,UAAU,GAAG,IAAI,qBAAc,CACnC,oBAAa,CAAC,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAEtD,UAAG,CAAC,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,EAAE,CACnC,IAAI,CAAC,MAAM,CACT,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CACb,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAClD,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CACvF,CACJ,CACF,CACF,CACF,CAAC;IACF,OAAO;QACL,UAAU;QACV,QAAQ,EAAE,GAAG,EAAE;YACb,WAAW,CAAC,QAAQ,EAAE,CAAC;YACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QAID,MAAM,EAAE,WAAW;KACpB,CAAC;AACJ,CAAC,CAAC;AAhCW,QAAA,iBAAiB,qBAgC5B"}
@@ -0,0 +1,8 @@
1
+ export * from './util';
2
+ export * from './BalanceTracker';
3
+ export * from './UtxoTracker';
4
+ export * from './DelegationTracker';
5
+ export * from './TransactionsTracker';
6
+ export * from './AssetsTracker';
7
+ export * from './types';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./util"), exports);
14
+ __exportStar(require("./BalanceTracker"), exports);
15
+ __exportStar(require("./UtxoTracker"), exports);
16
+ __exportStar(require("./DelegationTracker"), exports);
17
+ __exportStar(require("./TransactionsTracker"), exports);
18
+ __exportStar(require("./AssetsTracker"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAuB;AACvB,mDAAiC;AACjC,gDAA8B;AAC9B,sDAAoC;AACpC,wDAAsC;AACtC,kDAAgC;AAChC,0CAAwB"}
@@ -0,0 +1,88 @@
1
+ import { BehaviorObservable } from './util';
2
+ import { Cardano, EpochRewards } from '@cardano-sdk/core';
3
+ import { Observable } from 'rxjs';
4
+ export declare enum TransactionFailure {
5
+ InvalidTransaction = "INVALID_TRANSACTION",
6
+ FailedToSubmit = "FAILED_TO_SUBMIT",
7
+ Unknown = "UNKNOWN",
8
+ CannotTrack = "CANNOT_TRACK",
9
+ Timeout = "TIMEOUT"
10
+ }
11
+ export interface Balance extends Cardano.Value {
12
+ rewards: Cardano.Lovelace;
13
+ deposit: Cardano.Lovelace;
14
+ }
15
+ export interface TransactionalObservables<T> {
16
+ total$: BehaviorObservable<T>;
17
+ available$: BehaviorObservable<T>;
18
+ }
19
+ export interface TransactionalTracker<T> extends TransactionalObservables<T> {
20
+ shutdown(): void;
21
+ }
22
+ export declare type Milliseconds = number;
23
+ export interface PollingConfig {
24
+ readonly interval?: Milliseconds;
25
+ readonly maxInterval?: Milliseconds;
26
+ }
27
+ export declare enum TransactionDirection {
28
+ Incoming = "Incoming",
29
+ Outgoing = "Outgoing"
30
+ }
31
+ export interface DirectionalTransaction {
32
+ tx: Cardano.TxAlonzo;
33
+ direction: TransactionDirection;
34
+ }
35
+ export interface FailedTx {
36
+ tx: Cardano.NewTxAlonzo;
37
+ reason: TransactionFailure;
38
+ error?: Cardano.TxSubmissionError;
39
+ }
40
+ export interface TransactionsTracker {
41
+ readonly history: {
42
+ all$: BehaviorObservable<DirectionalTransaction[]>;
43
+ outgoing$: BehaviorObservable<Cardano.TxAlonzo[]>;
44
+ incoming$: BehaviorObservable<Cardano.TxAlonzo[]>;
45
+ };
46
+ readonly outgoing: {
47
+ readonly inFlight$: BehaviorObservable<Cardano.NewTxAlonzo[]>;
48
+ readonly submitting$: Observable<Cardano.NewTxAlonzo>;
49
+ readonly pending$: Observable<Cardano.NewTxAlonzo>;
50
+ readonly failed$: Observable<FailedTx>;
51
+ readonly confirmed$: Observable<Cardano.NewTxAlonzo>;
52
+ };
53
+ readonly incoming$: Observable<Cardano.TxAlonzo>;
54
+ shutdown(): void;
55
+ }
56
+ export interface RewardsHistory {
57
+ all: EpochRewards[];
58
+ lastReward: EpochRewards | null;
59
+ avgReward: Cardano.Lovelace | null;
60
+ lifetimeRewards: Cardano.Lovelace;
61
+ }
62
+ export interface Delegatee {
63
+ currentEpoch?: Cardano.StakePool;
64
+ nextEpoch?: Cardano.StakePool;
65
+ nextNextEpoch: Cardano.StakePool;
66
+ }
67
+ export declare enum StakeKeyStatus {
68
+ Registering = "REGISTERING",
69
+ Registered = "REGISTERED",
70
+ Unregistering = "UNREGISTERING",
71
+ Unregistered = "UNREGISTERED"
72
+ }
73
+ export interface RewardBalance {
74
+ total: Cardano.Lovelace;
75
+ available: Cardano.Lovelace;
76
+ }
77
+ export interface RewardAccount {
78
+ address: Cardano.RewardAccount;
79
+ keyStatus: StakeKeyStatus;
80
+ delegatee?: Delegatee;
81
+ rewardBalance: RewardBalance;
82
+ }
83
+ export interface DelegationTracker {
84
+ rewardsHistory$: BehaviorObservable<RewardsHistory>;
85
+ rewardAccounts$: Observable<RewardAccount[]>;
86
+ shutdown(): void;
87
+ }
88
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StakeKeyStatus = exports.TransactionDirection = exports.TransactionFailure = void 0;
4
+ var TransactionFailure;
5
+ (function (TransactionFailure) {
6
+ TransactionFailure["InvalidTransaction"] = "INVALID_TRANSACTION";
7
+ TransactionFailure["FailedToSubmit"] = "FAILED_TO_SUBMIT";
8
+ TransactionFailure["Unknown"] = "UNKNOWN";
9
+ TransactionFailure["CannotTrack"] = "CANNOT_TRACK";
10
+ TransactionFailure["Timeout"] = "TIMEOUT";
11
+ })(TransactionFailure = exports.TransactionFailure || (exports.TransactionFailure = {}));
12
+ var TransactionDirection;
13
+ (function (TransactionDirection) {
14
+ TransactionDirection["Incoming"] = "Incoming";
15
+ TransactionDirection["Outgoing"] = "Outgoing";
16
+ })(TransactionDirection = exports.TransactionDirection || (exports.TransactionDirection = {}));
17
+ var StakeKeyStatus;
18
+ (function (StakeKeyStatus) {
19
+ StakeKeyStatus["Registering"] = "REGISTERING";
20
+ StakeKeyStatus["Registered"] = "REGISTERED";
21
+ StakeKeyStatus["Unregistering"] = "UNREGISTERING";
22
+ StakeKeyStatus["Unregistered"] = "UNREGISTERED";
23
+ })(StakeKeyStatus = exports.StakeKeyStatus || (exports.StakeKeyStatus = {}));
24
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":";;;AAIA,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,gEAA0C,CAAA;IAC1C,yDAAmC,CAAA;IACnC,yCAAmB,CAAA;IACnB,kDAA4B,CAAA;IAC5B,yCAAmB,CAAA;AACrB,CAAC,EANW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAM7B;AA0BD,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;AACvB,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AA+CD,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,6CAA2B,CAAA;IAC3B,2CAAyB,CAAA;IACzB,iDAA+B,CAAA;IAC/B,+CAA6B,CAAA;AAC/B,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB"}
@@ -0,0 +1,19 @@
1
+ import { Milliseconds } from '../types';
2
+ import { Observable, Subject } from 'rxjs';
3
+ import { TrackerSubject } from './TrackerSubject';
4
+ import { retryBackoff } from 'backoff-rxjs';
5
+ export declare type RetryOperator = () => ReturnType<typeof retryBackoff>;
6
+ export interface SourceTrackerProps<T> {
7
+ provider$: Observable<T>;
8
+ pollInterval: Milliseconds;
9
+ }
10
+ export interface ProviderTrackerSubjectInternals {
11
+ externalTrigger$?: Subject<void>;
12
+ interval$?: Observable<unknown>;
13
+ }
14
+ export declare class SyncableIntervalTrackerSubject<T> extends TrackerSubject<T> {
15
+ #private;
16
+ constructor({ provider$, pollInterval }: SourceTrackerProps<T>, { externalTrigger$, interval$ }?: ProviderTrackerSubjectInternals);
17
+ sync(): void;
18
+ }
19
+ //# sourceMappingURL=SyncableIntervalTrackerSubject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncableIntervalTrackerSubject.d.ts","sourceRoot":"","sources":["../../../src/services/util/SyncableIntervalTrackerSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAgE,MAAM,MAAM,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,oBAAY,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAElE,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,+BAA+B;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,qBAAa,8BAA8B,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;;gBAIpE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAClD,EAAE,gBAAgC,EAAE,SAAkC,EAAE,GAAE,+BAAoC;IAiBhH,IAAI;CAGL"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _SyncableIntervalTrackerSubject_externalTrigger$;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SyncableIntervalTrackerSubject = void 0;
16
+ const rxjs_1 = require("rxjs");
17
+ const TrackerSubject_1 = require("./TrackerSubject");
18
+ class SyncableIntervalTrackerSubject extends TrackerSubject_1.TrackerSubject {
19
+ constructor({ provider$, pollInterval }, { externalTrigger$ = new rxjs_1.Subject(), interval$ = rxjs_1.interval(pollInterval) } = {}) {
20
+ super(rxjs_1.merge(interval$.pipe(rxjs_1.startWith(null), rxjs_1.exhaustMap(() => provider$.pipe(rxjs_1.takeUntil(externalTrigger$)))), externalTrigger$.pipe(rxjs_1.switchMap(() => provider$))));
21
+ _SyncableIntervalTrackerSubject_externalTrigger$.set(this, new rxjs_1.Subject());
22
+ __classPrivateFieldSet(this, _SyncableIntervalTrackerSubject_externalTrigger$, externalTrigger$, "f");
23
+ }
24
+ sync() {
25
+ __classPrivateFieldGet(this, _SyncableIntervalTrackerSubject_externalTrigger$, "f").next();
26
+ }
27
+ }
28
+ exports.SyncableIntervalTrackerSubject = SyncableIntervalTrackerSubject;
29
+ _SyncableIntervalTrackerSubject_externalTrigger$ = new WeakMap();
30
+ //# sourceMappingURL=SyncableIntervalTrackerSubject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncableIntervalTrackerSubject.js","sourceRoot":"","sources":["../../../src/services/util/SyncableIntervalTrackerSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+BAAyG;AACzG,qDAAkD;AAelD,MAAa,8BAAkC,SAAQ,+BAAiB;IAGtE,YACE,EAAE,SAAS,EAAE,YAAY,EAAyB,EAClD,EAAE,gBAAgB,GAAG,IAAI,cAAO,EAAE,EAAE,SAAS,GAAG,eAAQ,CAAC,YAAY,CAAC,KAAsC,EAAE;QAE9G,KAAK,CACH,YAAK,CAEH,SAAS,CAAC,IAAI,CACZ,gBAAS,CAAC,IAAI,CAAC,EAEf,iBAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAC9D,EAED,gBAAgB,CAAC,IAAI,CAAC,gBAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAClD,CACF,CAAC;QAjBJ,2DAAoB,IAAI,cAAO,EAAQ,EAAC;QAkBtC,uBAAA,IAAI,oDAAqB,gBAAgB,MAAA,CAAC;IAC5C,CAAC;IAED,IAAI;QACF,uBAAA,IAAI,wDAAkB,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACF;AAzBD,wEAyBC"}
@@ -0,0 +1,14 @@
1
+ import { Observable, ReplaySubject } from 'rxjs';
2
+ export interface BehaviorObservable<T> extends Observable<T> {
3
+ get value(): T | null;
4
+ }
5
+ export declare class TrackerSubject<T> extends ReplaySubject<T> implements BehaviorObservable<T> {
6
+ #private;
7
+ get value(): T | null;
8
+ constructor(source$: Observable<T>);
9
+ next(value: T): void;
10
+ complete(): void;
11
+ error(err: unknown): void;
12
+ unsubscribe(): void;
13
+ }
14
+ //# sourceMappingURL=TrackerSubject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackerSubject.d.ts","sourceRoot":"","sources":["../../../src/services/util/TrackerSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAgB,MAAM,MAAM,CAAC;AAE/D,MAAM,WAAW,kBAAkB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACvB;AAED,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAE,YAAW,kBAAkB,CAAC,CAAC,CAAC;;IAGtF,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAEpB;gBACW,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAIlC,IAAI,CAAC,KAAK,EAAE,CAAC;IAIb,QAAQ;IAIR,KAAK,CAAC,GAAG,EAAE,OAAO;IAIlB,WAAW;CAIZ"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _TrackerSubject_sourceSubscription$, _TrackerSubject_value;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TrackerSubject = void 0;
16
+ const rxjs_1 = require("rxjs");
17
+ class TrackerSubject extends rxjs_1.ReplaySubject {
18
+ constructor(source$) {
19
+ super(1);
20
+ _TrackerSubject_sourceSubscription$.set(this, void 0);
21
+ _TrackerSubject_value.set(this, null);
22
+ __classPrivateFieldSet(this, _TrackerSubject_sourceSubscription$, source$.subscribe(this), "f");
23
+ }
24
+ get value() {
25
+ return __classPrivateFieldGet(this, _TrackerSubject_value, "f");
26
+ }
27
+ next(value) {
28
+ __classPrivateFieldSet(this, _TrackerSubject_value, value, "f");
29
+ super.next(value);
30
+ }
31
+ complete() {
32
+ __classPrivateFieldGet(this, _TrackerSubject_sourceSubscription$, "f").unsubscribe();
33
+ super.complete();
34
+ }
35
+ error(err) {
36
+ __classPrivateFieldGet(this, _TrackerSubject_sourceSubscription$, "f").unsubscribe();
37
+ super.error(err);
38
+ }
39
+ unsubscribe() {
40
+ __classPrivateFieldGet(this, _TrackerSubject_sourceSubscription$, "f").unsubscribe();
41
+ super.unsubscribe();
42
+ }
43
+ }
44
+ exports.TrackerSubject = TrackerSubject;
45
+ _TrackerSubject_sourceSubscription$ = new WeakMap(), _TrackerSubject_value = new WeakMap();
46
+ //# sourceMappingURL=TrackerSubject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackerSubject.js","sourceRoot":"","sources":["../../../src/services/util/TrackerSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAA+D;AAM/D,MAAa,cAAkB,SAAQ,oBAAgB;IAMrD,YAAY,OAAsB;QAChC,KAAK,CAAC,CAAC,CAAC,CAAC;QANX,sDAAmC;QACnC,gCAAmB,IAAI,EAAC;QAMtB,uBAAA,IAAI,uCAAwB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAA,CAAC;IACtD,CAAC;IAND,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,6BAAO,CAAC;IACrB,CAAC;IAKD,IAAI,CAAC,KAAQ;QACX,uBAAA,IAAI,yBAAU,KAAK,MAAA,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,QAAQ;QACN,uBAAA,IAAI,2CAAqB,CAAC,WAAW,EAAE,CAAC;QACxC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,GAAY;QAChB,uBAAA,IAAI,2CAAqB,CAAC,WAAW,EAAE,CAAC;QACxC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,WAAW;QACT,uBAAA,IAAI,2CAAqB,CAAC,WAAW,EAAE,CAAC;QACxC,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;CACF;AA1BD,wCA0BC"}
@@ -0,0 +1,4 @@
1
+ import { Observable } from 'rxjs';
2
+ import { RetryBackoffConfig } from 'backoff-rxjs';
3
+ export declare const coldObservableProvider: <T>(provider: () => Promise<T>, retryBackoffConfig: RetryBackoffConfig, trigger$?: Observable<unknown>, equals?: (t1: T, t2: T) => boolean) => Observable<T>;
4
+ //# sourceMappingURL=coldObservableProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coldObservableProvider.d.ts","sourceRoot":"","sources":["../../../src/services/util/coldObservableProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA6C,MAAM,MAAM,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAGhE,eAAO,MAAM,sBAAsB,sDAEb,kBAAkB,aAC5B,WAAW,OAAO,CAAC,6BACH,OAAO,kBAU/B,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.coldObservableProvider = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const backoff_rxjs_1 = require("backoff-rxjs");
6
+ const equals_1 = require("./equals");
7
+ const coldObservableProvider = (provider, retryBackoffConfig, trigger$ = rxjs_1.of(true), equals = equals_1.strictEquals) => new rxjs_1.Observable((subscriber) => {
8
+ const sub = trigger$
9
+ .pipe(rxjs_1.switchMap(() => rxjs_1.from(provider()).pipe(backoff_rxjs_1.retryBackoff(retryBackoffConfig))), rxjs_1.distinctUntilChanged(equals))
10
+ .subscribe(subscriber);
11
+ return () => sub.unsubscribe();
12
+ });
13
+ exports.coldObservableProvider = coldObservableProvider;
14
+ //# sourceMappingURL=coldObservableProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coldObservableProvider.js","sourceRoot":"","sources":["../../../src/services/util/coldObservableProvider.ts"],"names":[],"mappings":";;;AAAA,+BAA6E;AAC7E,+CAAgE;AAChE,qCAAwC;AAEjC,MAAM,sBAAsB,GAAG,CACpC,QAA0B,EAC1B,kBAAsC,EACtC,WAAgC,SAAE,CAAC,IAAI,CAAC,EACxC,SAAoC,qBAAY,EAChD,EAAE,CACF,IAAI,iBAAU,CAAI,CAAC,UAAU,EAAE,EAAE;IAC/B,MAAM,GAAG,GAAG,QAAQ;SACjB,IAAI,CACH,gBAAS,CAAC,GAAG,EAAE,CAAC,WAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,2BAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACxE,2BAAoB,CAAC,MAAM,CAAC,CAC7B;SACA,SAAS,CAAC,UAAU,CAAC,CAAC;IACzB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAdQ,QAAA,sBAAsB,0BAc9B"}
@@ -0,0 +1,9 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ export declare const strictEquals: <T>(a: T, b: T) => boolean;
3
+ export declare const deepEquals: <T>(a: T, b: T) => boolean;
4
+ export declare const arrayEquals: <T>(arrayA: T[], arrayB: T[], itemEquals: (a: T, b: T) => boolean) => boolean;
5
+ export declare const shallowArrayEquals: <T>(a: T[], b: T[]) => boolean;
6
+ export declare const txEquals: (a: Cardano.TxAlonzo, b: Cardano.TxAlonzo) => boolean;
7
+ export declare const transactionsEquals: (a: Cardano.TxAlonzo[], b: Cardano.TxAlonzo[]) => boolean;
8
+ export declare const utxoEquals: (a: Cardano.Utxo[], b: Cardano.Utxo[]) => boolean;
9
+ //# sourceMappingURL=equals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../../src/services/util/equals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,eAAO,MAAM,YAAY,4BAA6B,CAAC;AAEvD,eAAO,MAAM,UAAU,4BAAmC,CAAC;AAE3D,eAAO,MAAM,WAAW,4DAA6D,OAAO,YACE,CAAC;AAE/F,eAAO,MAAM,kBAAkB,gCAAyD,CAAC;AAEzF,eAAO,MAAM,QAAQ,MAAO,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,YAAkB,CAAC;AAEpF,eAAO,MAAM,kBAAkB,MAAO,QAAQ,QAAQ,EAAE,KAAK,QAAQ,QAAQ,EAAE,YAAgC,CAAC;AAEhH,eAAO,MAAM,UAAU,MAAO,QAAQ,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,YACoC,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.utxoEquals = exports.transactionsEquals = exports.txEquals = exports.shallowArrayEquals = exports.arrayEquals = exports.deepEquals = exports.strictEquals = void 0;
4
+ const lodash_es_1 = require("lodash-es");
5
+ const strictEquals = (a, b) => a === b;
6
+ exports.strictEquals = strictEquals;
7
+ const deepEquals = (a, b) => lodash_es_1.isEqual(a, b);
8
+ exports.deepEquals = deepEquals;
9
+ const arrayEquals = (arrayA, arrayB, itemEquals) => arrayA.length === arrayB.length && arrayA.every((a) => arrayB.some((b) => itemEquals(a, b)));
10
+ exports.arrayEquals = arrayEquals;
11
+ const shallowArrayEquals = (a, b) => exports.arrayEquals(a, b, exports.strictEquals);
12
+ exports.shallowArrayEquals = shallowArrayEquals;
13
+ const txEquals = (a, b) => a.id === b.id;
14
+ exports.txEquals = txEquals;
15
+ const transactionsEquals = (a, b) => exports.arrayEquals(a, b, exports.txEquals);
16
+ exports.transactionsEquals = transactionsEquals;
17
+ const utxoEquals = (a, b) => exports.arrayEquals(a, b, ([aTxIn], [bTxIn]) => aTxIn.txId === bTxIn.txId && aTxIn.index === bTxIn.index);
18
+ exports.utxoEquals = utxoEquals;
19
+ //# sourceMappingURL=equals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equals.js","sourceRoot":"","sources":["../../../src/services/util/equals.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AAE7B,MAAM,YAAY,GAAG,CAAI,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAA1C,QAAA,YAAY,gBAA8B;AAEhD,MAAM,UAAU,GAAG,CAAI,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,mBAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAA9C,QAAA,UAAU,cAAoC;AAEpD,MAAM,WAAW,GAAG,CAAI,MAAW,EAAE,MAAW,EAAE,UAAmC,EAAE,EAAE,CAC9F,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AADlF,QAAA,WAAW,eACuE;AAExF,MAAM,kBAAkB,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,mBAAW,CAAC,CAAC,EAAE,CAAC,EAAE,oBAAY,CAAC,CAAC;AAA5E,QAAA,kBAAkB,sBAA0D;AAElF,MAAM,QAAQ,GAAG,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAAvE,QAAA,QAAQ,YAA+D;AAE7E,MAAM,kBAAkB,GAAG,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE,CAAC,mBAAW,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAQ,CAAC,CAAC;AAAnG,QAAA,kBAAkB,sBAAiF;AAEzG,MAAM,UAAU,GAAG,CAAC,CAAiB,EAAE,CAAiB,EAAE,EAAE,CACjE,mBAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;AADvF,QAAA,UAAU,cAC6E"}
@@ -0,0 +1,6 @@
1
+ export * from './TrackerSubject';
2
+ export * from './SyncableIntervalTrackerSubject';
3
+ export * from './equals';
4
+ export * from './trigger';
5
+ export * from './coldObservableProvider';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kCAAkC,CAAC;AACjD,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,CAAC"}