@cardano-sdk/wallet 0.1.7 → 0.1.8

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 (71) hide show
  1. package/dist/KeyManagement/InMemoryKeyManager.d.ts.map +1 -1
  2. package/dist/KeyManagement/InMemoryKeyManager.js +38 -25
  3. package/dist/KeyManagement/InMemoryKeyManager.js.map +1 -1
  4. package/dist/KeyManagement/types.d.ts +20 -6
  5. package/dist/KeyManagement/types.d.ts.map +1 -1
  6. package/dist/KeyManagement/types.js +12 -0
  7. package/dist/KeyManagement/types.js.map +1 -1
  8. package/dist/SingleAddressWallet.d.ts +14 -10
  9. package/dist/SingleAddressWallet.d.ts.map +1 -1
  10. package/dist/SingleAddressWallet.js +24 -40
  11. package/dist/SingleAddressWallet.js.map +1 -1
  12. package/dist/services/AssetsTracker.d.ts +16 -0
  13. package/dist/services/AssetsTracker.d.ts.map +1 -0
  14. package/dist/services/AssetsTracker.js +13 -0
  15. package/dist/services/AssetsTracker.js.map +1 -0
  16. package/dist/services/BalanceTracker.d.ts +1 -1
  17. package/dist/services/BalanceTracker.d.ts.map +1 -1
  18. package/dist/services/BalanceTracker.js +19 -9
  19. package/dist/services/BalanceTracker.js.map +1 -1
  20. package/dist/services/DelegationTracker/DelegationTracker.d.ts +4 -5
  21. package/dist/services/DelegationTracker/DelegationTracker.d.ts.map +1 -1
  22. package/dist/services/DelegationTracker/DelegationTracker.js +12 -29
  23. package/dist/services/DelegationTracker/DelegationTracker.js.map +1 -1
  24. package/dist/services/DelegationTracker/RewardAccounts.d.ts +36 -0
  25. package/dist/services/DelegationTracker/RewardAccounts.d.ts.map +1 -0
  26. package/dist/services/DelegationTracker/RewardAccounts.js +86 -0
  27. package/dist/services/DelegationTracker/RewardAccounts.js.map +1 -0
  28. package/dist/services/DelegationTracker/RewardsHistory.d.ts +2 -2
  29. package/dist/services/DelegationTracker/RewardsHistory.d.ts.map +1 -1
  30. package/dist/services/DelegationTracker/RewardsHistory.js +6 -3
  31. package/dist/services/DelegationTracker/RewardsHistory.js.map +1 -1
  32. package/dist/services/DelegationTracker/index.d.ts +1 -1
  33. package/dist/services/DelegationTracker/index.d.ts.map +1 -1
  34. package/dist/services/DelegationTracker/index.js +1 -1
  35. package/dist/services/DelegationTracker/index.js.map +1 -1
  36. package/dist/services/DelegationTracker/transactionCertificates.d.ts +5 -6
  37. package/dist/services/DelegationTracker/transactionCertificates.d.ts.map +1 -1
  38. package/dist/services/DelegationTracker/transactionCertificates.js +12 -10
  39. package/dist/services/DelegationTracker/transactionCertificates.js.map +1 -1
  40. package/dist/services/TransactionsTracker.d.ts +3 -3
  41. package/dist/services/TransactionsTracker.d.ts.map +1 -1
  42. package/dist/services/TransactionsTracker.js +20 -9
  43. package/dist/services/TransactionsTracker.js.map +1 -1
  44. package/dist/services/UtxoTracker.d.ts +3 -3
  45. package/dist/services/UtxoTracker.d.ts.map +1 -1
  46. package/dist/services/UtxoTracker.js +2 -2
  47. package/dist/services/UtxoTracker.js.map +1 -1
  48. package/dist/services/index.d.ts +1 -1
  49. package/dist/services/index.d.ts.map +1 -1
  50. package/dist/services/index.js +1 -1
  51. package/dist/services/index.js.map +1 -1
  52. package/dist/services/types.d.ts +10 -5
  53. package/dist/services/types.d.ts.map +1 -1
  54. package/dist/services/types.js.map +1 -1
  55. package/dist/services/util/equals.d.ts +2 -0
  56. package/dist/services/util/equals.d.ts.map +1 -1
  57. package/dist/services/util/equals.js +6 -1
  58. package/dist/services/util/equals.js.map +1 -1
  59. package/dist/types.d.ts +4 -11
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/types.js +0 -6
  62. package/dist/types.js.map +1 -1
  63. package/package.json +4 -4
  64. package/dist/services/DelegationTracker/Delegatee.d.ts +0 -10
  65. package/dist/services/DelegationTracker/Delegatee.d.ts.map +0 -1
  66. package/dist/services/DelegationTracker/Delegatee.js +0 -27
  67. package/dist/services/DelegationTracker/Delegatee.js.map +0 -1
  68. package/dist/services/RewardsTracker.d.ts +0 -20
  69. package/dist/services/RewardsTracker.d.ts.map +0 -1
  70. package/dist/services/RewardsTracker.js +0 -22
  71. package/dist/services/RewardsTracker.js.map +0 -1
@@ -1,54 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDelegationTracker = exports.createRewardAccountsTracker = exports.certificateTransactionsWithEpochs = exports.createBlockEpochProvider = void 0;
3
+ exports.createDelegationTracker = exports.certificateTransactionsWithEpochs = exports.createBlockEpochProvider = void 0;
4
4
  const core_1 = require("@cardano-sdk/core");
5
- const types_1 = require("../types");
6
5
  const rxjs_1 = require("rxjs");
7
- const Delegatee_1 = require("./Delegatee");
6
+ const RewardAccounts_1 = require("./RewardAccounts");
8
7
  const RewardsHistory_1 = require("./RewardsHistory");
9
8
  const util_1 = require("../util");
10
- const lodash_es_1 = require("lodash-es");
11
9
  const transactionCertificates_1 = require("./transactionCertificates");
12
10
  const createBlockEpochProvider = (walletProvider, retryBackoffConfig) => (blockHashes) => util_1.coldObservableProvider(() => walletProvider.queryBlocksByHashes(blockHashes), retryBackoffConfig).pipe(rxjs_1.map((blocks) => blocks.map(({ epoch }) => epoch)));
13
11
  exports.createBlockEpochProvider = createBlockEpochProvider;
14
- const certificateTransactionsWithEpochs = (transactionsTracker, blockEpochProvider, certificateTypes) => transactionCertificates_1.outgoingTransactionsWithCertificates(transactionsTracker, certificateTypes).pipe(rxjs_1.switchMap((transactions) => blockEpochProvider(transactions.map((tx) => tx.blockHeader.blockHash)).pipe(rxjs_1.map((epochs) => transactions.map((tx, txIndex) => ({ epoch: epochs[txIndex], tx }))))), rxjs_1.share());
12
+ const certificateTransactionsWithEpochs = (transactionsTracker, blockEpochProvider, certificateTypes) => transactionCertificates_1.transactionsWithCertificates(transactionsTracker.history.outgoing$, certificateTypes).pipe(rxjs_1.switchMap((transactions) => blockEpochProvider(transactions.map((tx) => tx.blockHeader.blockHash)).pipe(rxjs_1.map((epochs) => transactions.map((tx, txIndex) => ({ epoch: epochs[txIndex], tx }))))), rxjs_1.share());
15
13
  exports.certificateTransactionsWithEpochs = certificateTransactionsWithEpochs;
16
- const createRewardAccountsTracker = (transactions$, transactionsInFlight$) => rxjs_1.combineLatest([transactions$, transactionsInFlight$]).pipe(rxjs_1.map(([transactions, transactionsInFlight]) => [transactions.map(({ tx }) => tx), transactionsInFlight]), rxjs_1.map(([transactions, transactionsInFlight]) => {
17
- const rewardAccounts = lodash_es_1.uniq([...transactions, ...transactionsInFlight].flatMap(({ body }) => transactionCertificates_1.transactionStakeKeyCertficates(body).map((cert) => cert.address)));
18
- return rewardAccounts.map((address) => {
19
- const isRegistered = transactionCertificates_1.isLastStakeKeyCertOfType(transactions, core_1.Cardano.CertificateType.StakeKeyRegistration, address);
20
- const isRegistering = transactionCertificates_1.isLastStakeKeyCertOfType(transactionsInFlight, core_1.Cardano.CertificateType.StakeKeyRegistration, address);
21
- const isUnregistering = transactionCertificates_1.isLastStakeKeyCertOfType(transactionsInFlight, core_1.Cardano.CertificateType.StakeKeyDeregistration, address);
22
- return {
23
- address,
24
- keyStatus: isRegistering
25
- ? types_1.StakeKeyStatus.Registering
26
- : isUnregistering
27
- ? types_1.StakeKeyStatus.Unregistering
28
- : isRegistered
29
- ? types_1.StakeKeyStatus.Registered
30
- : types_1.StakeKeyStatus.Unregistered
31
- };
32
- });
33
- }), rxjs_1.distinctUntilChanged(lodash_es_1.isEqual));
34
- exports.createRewardAccountsTracker = createRewardAccountsTracker;
35
- const createDelegationTracker = ({ keyManager, epoch$, walletProvider, retryBackoffConfig, transactionsTracker, stakePoolSearchProvider, internals: { queryStakePoolsProvider = Delegatee_1.createQueryStakePoolsProvider(stakePoolSearchProvider, retryBackoffConfig), rewardsHistoryProvider = RewardsHistory_1.createRewardsHistoryProvider(walletProvider, keyManager, retryBackoffConfig), blockEpochProvider = exports.createBlockEpochProvider(walletProvider, retryBackoffConfig) } = {} }) => {
14
+ const createDelegationTracker = ({ rewardAccountAddresses$, epoch$, walletProvider, retryBackoffConfig, transactionsTracker, stakePoolSearchProvider, internals: { queryStakePoolsProvider = RewardAccounts_1.createQueryStakePoolsProvider(stakePoolSearchProvider, retryBackoffConfig), rewardsHistoryProvider = RewardsHistory_1.createRewardsHistoryProvider(walletProvider, rewardAccountAddresses$, retryBackoffConfig), rewardsProvider = RewardAccounts_1.createRewardsProvider(epoch$, transactionsTracker.outgoing.confirmed$, walletProvider, retryBackoffConfig), blockEpochProvider = exports.createBlockEpochProvider(walletProvider, retryBackoffConfig) } = {} }) => {
36
15
  const transactions$ = exports.certificateTransactionsWithEpochs(transactionsTracker, blockEpochProvider, [
37
16
  core_1.Cardano.CertificateType.StakeDelegation,
38
17
  core_1.Cardano.CertificateType.StakeKeyRegistration,
39
18
  core_1.Cardano.CertificateType.StakeKeyDeregistration
40
19
  ]);
41
20
  const rewardsHistory$ = new util_1.TrackerSubject(RewardsHistory_1.createRewardsHistoryTracker(transactions$, rewardsHistoryProvider));
42
- const delegatee$ = new util_1.TrackerSubject(Delegatee_1.createDelegateeTracker(queryStakePoolsProvider, epoch$, transactions$));
43
- const rewardAccounts$ = new util_1.TrackerSubject(exports.createRewardAccountsTracker(transactions$, transactionsTracker.outgoing.inFlight$));
21
+ const rewardAccounts$ = new util_1.TrackerSubject(RewardAccounts_1.createRewardAccountsTracker({
22
+ epoch$,
23
+ rewardAccountAddresses$,
24
+ rewardsProvider,
25
+ stakePoolSearchProvider: queryStakePoolsProvider,
26
+ transactions$,
27
+ transactionsInFlight$: transactionsTracker.outgoing.inFlight$
28
+ }));
44
29
  return {
45
- delegatee$,
46
30
  rewardAccounts$,
47
31
  rewardsHistory$,
48
32
  shutdown: () => {
49
33
  rewardAccounts$.complete();
50
34
  rewardsHistory$.complete();
51
- delegatee$.complete();
52
35
  }
53
36
  };
54
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DelegationTracker.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/DelegationTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DelegationTracker.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/DelegationTracker.ts"],"names":[],"mappings":";;;AAAA,4CAAqF;AAErF,+BAAyD;AACzD,qDAM0B;AAE1B,qDAAqH;AACrH,kCAAiE;AAEjE,uEAAyE;AAElE,MAAM,wBAAwB,GACnC,CAAC,cAA8B,EAAE,kBAAsC,EAAE,EAAE,CAAC,CAAC,WAA6B,EAAE,EAAE,CAC5G,6BAAsB,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,CAAC,IAAI,CACpG,UAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAClD,CAAC;AAJO,QAAA,wBAAwB,4BAI/B;AAmBC,MAAM,iCAAiC,GAAG,CAC/C,mBAAwC,EACxC,kBAAsC,EACtC,gBAA2C,EAChB,EAAE,CAC7B,sDAA4B,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,IAAI,CACxF,gBAAS,CAAC,CAAC,YAAY,EAAE,EAAE,CACzB,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACzE,UAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CACrF,CACF,EACD,YAAK,EAAE,CACR,CAAC;AAZS,QAAA,iCAAiC,qCAY1C;AAEG,MAAM,uBAAuB,GAAG,CAAC,EACtC,uBAAuB,EACvB,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EAAE,EACT,uBAAuB,GAAG,8CAA6B,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,EACpG,sBAAsB,GAAG,6CAA4B,CAAC,cAAc,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAClH,eAAe,GAAG,sCAAqB,CACrC,MAAM,EACN,mBAAmB,CAAC,QAAQ,CAAC,UAAU,EACvC,cAAc,EACd,kBAAkB,CACnB,EACD,kBAAkB,GAAG,gCAAwB,CAAC,cAAc,EAAE,kBAAkB,CAAC,EAClF,GAAG,EAAE,EACiB,EAAqB,EAAE;IAC9C,MAAM,aAAa,GAAG,yCAAiC,CAAC,mBAAmB,EAAE,kBAAkB,EAAE;QAC/F,cAAO,CAAC,eAAe,CAAC,eAAe;QACvC,cAAO,CAAC,eAAe,CAAC,oBAAoB;QAC5C,cAAO,CAAC,eAAe,CAAC,sBAAsB;KAC/C,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,IAAI,qBAAc,CAAC,4CAA2B,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC/G,MAAM,eAAe,GAAG,IAAI,qBAAc,CACxC,4CAA2B,CAAC;QAC1B,MAAM;QACN,uBAAuB;QACvB,eAAe;QACf,uBAAuB,EAAE,uBAAuB;QAChD,aAAa;QACb,qBAAqB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS;KAC9D,CAAC,CACH,CAAC;IACF,OAAO;QACL,eAAe;QACf,eAAe;QACf,QAAQ,EAAE,GAAG,EAAE;YACb,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC3B,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,uBAAuB,2BA2ClC"}
@@ -0,0 +1,36 @@
1
+ import { Cardano, StakePoolSearchProvider, WalletProvider } from '@cardano-sdk/core';
2
+ import { Delegatee, RewardAccount, StakeKeyStatus } from '../types';
3
+ import { Observable } from 'rxjs';
4
+ import { RetryBackoffConfig } from 'backoff-rxjs';
5
+ import { RewardBalance } from '..';
6
+ import { TxWithEpoch } from './types';
7
+ export declare const createQueryStakePoolsProvider: (stakePoolSearchProvider: StakePoolSearchProvider, retryBackoffConfig: RetryBackoffConfig) => (fragments: Cardano.PoolId[]) => Observable<Cardano.StakePool[]>;
8
+ export declare type ObservableStakePoolSearchProvider = ReturnType<typeof createQueryStakePoolsProvider>;
9
+ export declare const fetchRewardsTrigger$: (epoch$: Observable<Cardano.Epoch>, txConfirmed$: Observable<Cardano.NewTxAlonzo>, rewardAccount: Cardano.RewardAccount) => Observable<number | bigint>;
10
+ export declare const createRewardsProvider: (epoch$: Observable<Cardano.Epoch>, txConfirmed$: Observable<Cardano.NewTxAlonzo>, walletProvider: WalletProvider, retryBackoffConfig: RetryBackoffConfig) => (rewardAccounts: Cardano.RewardAccount[]) => Observable<bigint[]>;
11
+ export declare type ObservableRewardsProvider = ReturnType<typeof createRewardsProvider>;
12
+ declare const accountCertificateTransactions: (transactions$: Observable<TxWithEpoch[]>, rewardAccount: Cardano.RewardAccount) => Observable<{
13
+ certificates: (Cardano.StakeAddressCertificate | Cardano.StakeDelegationCertificate)[];
14
+ epoch: number;
15
+ }[]>;
16
+ declare type ObservableType<O> = O extends Observable<infer T> ? T : unknown;
17
+ declare type TransactionsCertificates = ObservableType<ReturnType<typeof accountCertificateTransactions>>;
18
+ export declare const getStakePoolIdAtEpoch: (transactions: {
19
+ certificates: (Cardano.StakeAddressCertificate | Cardano.StakeDelegationCertificate)[];
20
+ epoch: number;
21
+ }[]) => (atEpoch: Cardano.Epoch) => string | undefined;
22
+ export declare const createDelegateeTracker: (stakePoolSearchProvider: ObservableStakePoolSearchProvider, epoch$: Observable<Cardano.Epoch>, certificates$: Observable<TransactionsCertificates>) => Observable<Delegatee | undefined>;
23
+ export declare const addressKeyStatuses: (addresses: Cardano.RewardAccount[], transactions$: Observable<TxWithEpoch[]>, transactionsInFlight$: Observable<Cardano.NewTxAlonzo[]>) => Observable<StakeKeyStatus[]>;
24
+ export declare const addressDelegatees: (addresses: Cardano.RewardAccount[], transactions$: Observable<TxWithEpoch[]>, stakePoolSearchProvider: ObservableStakePoolSearchProvider, epoch$: Observable<Cardano.Epoch>) => Observable<(Delegatee | undefined)[]>;
25
+ export declare const addressRewards: (rewardAccounts: Cardano.RewardAccount[], transactionsInFlight$: Observable<Cardano.NewTxAlonzo[]>, rewardsProvider: ObservableRewardsProvider) => Observable<RewardBalance[]>;
26
+ export declare const toRewardAccounts: (addresses: Cardano.RewardAccount[]) => ([statuses, delegatees, rewards]: [StakeKeyStatus[], (Delegatee | undefined)[], RewardBalance[]]) => RewardAccount[];
27
+ export declare const createRewardAccountsTracker: ({ rewardAccountAddresses$, stakePoolSearchProvider, rewardsProvider, epoch$, transactions$, transactionsInFlight$ }: {
28
+ rewardAccountAddresses$: Observable<Cardano.RewardAccount[]>;
29
+ stakePoolSearchProvider: ObservableStakePoolSearchProvider;
30
+ rewardsProvider: ObservableRewardsProvider;
31
+ epoch$: Observable<Cardano.Epoch>;
32
+ transactions$: Observable<TxWithEpoch[]>;
33
+ transactionsInFlight$: Observable<Cardano.NewTxAlonzo[]>;
34
+ }) => Observable<RewardAccount[]>;
35
+ export {};
36
+ //# sourceMappingURL=RewardAccounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RewardAccounts.d.ts","sourceRoot":"","sources":["../../../src/services/DelegationTracker/RewardAccounts.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAQ,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,UAAU,EAAsE,MAAM,MAAM,CAAC;AAEtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAA0B,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,eAAO,MAAM,6BAA6B,4BACd,uBAAuB,sBAAsB,kBAAkB,iBAC7E,QAAQ,MAAM,EAAE,oCAC0E,CAAC;AACzG,oBAAY,iCAAiC,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAUjG,eAAO,MAAM,oBAAoB,WACvB,WAAW,QAAQ,KAAK,CAAC,gBACnB,WAAW,QAAQ,WAAW,CAAC,iBAC9B,qBAAqB,gCASnC,CAAC;AAEJ,eAAO,MAAM,qBAAqB,WAEtB,WAAW,QAAQ,KAAK,CAAC,gBACnB,WAAW,QAAQ,WAAW,CAAC,kBAC7B,cAAc,sBACV,kBAAkB,sBAEvB,qBAAqB,EAAE,yBAYrC,CAAC;AACN,oBAAY,yBAAyB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAyCjF,QAAA,MAAM,8BAA8B,kBACnB,WAAW,WAAW,EAAE,CAAC,iBACzB,qBAAqB;;;IAgBnC,CAAC;AAEJ,aAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AACrE,aAAK,wBAAwB,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,qBAAqB;;;kBAAyD,QAAQ,KAAK,uBAUvG,CAAC;AAEF,eAAO,MAAM,sBAAsB,4BACR,iCAAiC,UAClD,WAAW,QAAQ,KAAK,CAAC,iBAClB,WAAW,wBAAwB,CAAC,KAClD,WAAW,SAAS,GAAG,SAAS,CAahC,CAAC;AAEJ,eAAO,MAAM,kBAAkB,cAClB,qBAAqB,EAAE,iBACnB,WAAW,WAAW,EAAE,CAAC,yBACjB,WAAW,QAAQ,WAAW,EAAE,CAAC,iCAKvD,CAAC;AAEJ,eAAO,MAAM,iBAAiB,cACjB,qBAAqB,EAAE,iBACnB,WAAW,WAAW,EAAE,CAAC,2BACf,iCAAiC,UAClD,WAAW,QAAQ,KAAK,CAAC,0CAMhC,CAAC;AAEJ,eAAO,MAAM,cAAc,mBACT,qBAAqB,EAAE,yBAChB,WAAW,QAAQ,WAAW,EAAE,CAAC,mBACvC,yBAAyB,KACzC,WAAW,aAAa,EAAE,CAU1B,CAAC;AAEJ,eAAO,MAAM,gBAAgB,cACf,qBAAqB,EAAE,uCACD,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,oBAQ7F,CAAC;AAEN,eAAO,MAAM,2BAA2B;6BAQb,WAAW,qBAAqB,EAAE,CAAC;6BACnC,iCAAiC;qBACzC,yBAAyB;YAClC,WAAW,QAAQ,KAAK,CAAC;mBAClB,WAAW,WAAW,EAAE,CAAC;2BACjB,WAAW,QAAQ,WAAW,EAAE,CAAC;iCAUvD,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRewardAccountsTracker = exports.toRewardAccounts = exports.addressRewards = exports.addressDelegatees = exports.addressKeyStatuses = exports.createDelegateeTracker = exports.getStakePoolIdAtEpoch = exports.createRewardsProvider = exports.fetchRewardsTrigger$ = exports.createQueryStakePoolsProvider = void 0;
4
+ const core_1 = require("@cardano-sdk/core");
5
+ const types_1 = require("../types");
6
+ const rxjs_1 = require("rxjs");
7
+ const _1 = require(".");
8
+ const __1 = require("..");
9
+ const util_1 = require("../util");
10
+ const lodash_es_1 = require("lodash-es");
11
+ const transactionCertificates_1 = require("./transactionCertificates");
12
+ const createQueryStakePoolsProvider = (stakePoolSearchProvider, retryBackoffConfig) => (fragments) => util_1.coldObservableProvider(() => stakePoolSearchProvider.queryStakePools(fragments), retryBackoffConfig);
13
+ exports.createQueryStakePoolsProvider = createQueryStakePoolsProvider;
14
+ const getWithdrawalQuantity = ({ body: { withdrawals } }, rewardAccount) => core_1.BigIntMath.sum(withdrawals?.map(({ quantity, stakeAddress }) => (stakeAddress === rewardAccount ? quantity : 0n)) || []);
15
+ const fetchRewardsTrigger$ = (epoch$, txConfirmed$, rewardAccount) => rxjs_1.merge(epoch$, txConfirmed$.pipe(rxjs_1.map((tx) => getWithdrawalQuantity(tx, rewardAccount)), rxjs_1.filter((withdrawalQty) => withdrawalQty > 0n)));
16
+ exports.fetchRewardsTrigger$ = fetchRewardsTrigger$;
17
+ const createRewardsProvider = (epoch$, txConfirmed$, walletProvider, retryBackoffConfig) => (rewardAccounts) => rxjs_1.combineLatest(rewardAccounts.map((rewardAccount) => util_1.coldObservableProvider(() => walletProvider.utxoDelegationAndRewards([], rewardAccount), retryBackoffConfig, exports.fetchRewardsTrigger$(epoch$, txConfirmed$, rewardAccount)).pipe(rxjs_1.map(({ delegationAndRewards }) => delegationAndRewards?.rewards || 0n), rxjs_1.distinctUntilChanged())));
18
+ exports.createRewardsProvider = createRewardsProvider;
19
+ const isDelegationCertificate = (cert) => cert.__typename === core_1.Cardano.CertificateType.StakeDelegation;
20
+ const getAccountsKeyStatus = (addresses) => ([transactions, transactionsInFlight]) => {
21
+ const certificatesInFlight = transactionsInFlight.map(({ body: { certificates } }) => certificates || []);
22
+ return addresses.map((address) => {
23
+ const isRegistered = transactionCertificates_1.isLastStakeKeyCertOfType(transactions.map(({ tx: { body: { certificates } } }) => certificates || []), core_1.Cardano.CertificateType.StakeKeyRegistration, address);
24
+ const isRegistering = transactionCertificates_1.isLastStakeKeyCertOfType(certificatesInFlight, core_1.Cardano.CertificateType.StakeKeyRegistration, address);
25
+ const isUnregistering = transactionCertificates_1.isLastStakeKeyCertOfType(certificatesInFlight, core_1.Cardano.CertificateType.StakeKeyDeregistration, address);
26
+ return isRegistering
27
+ ? types_1.StakeKeyStatus.Registering
28
+ : isUnregistering
29
+ ? types_1.StakeKeyStatus.Unregistering
30
+ : isRegistered
31
+ ? types_1.StakeKeyStatus.Registered
32
+ : types_1.StakeKeyStatus.Unregistered;
33
+ });
34
+ };
35
+ const accountCertificateTransactions = (transactions$, rewardAccount) => transactions$.pipe(rxjs_1.map((transactions) => transactions
36
+ .map(({ tx, epoch }) => ({
37
+ certificates: (tx.body.certificates || [])
38
+ .filter((cert) => [..._1.RegAndDeregCertificateTypes, core_1.Cardano.CertificateType.StakeDelegation].includes(cert.__typename))
39
+ .filter((cert) => cert.address === rewardAccount),
40
+ epoch
41
+ }))
42
+ .filter(({ certificates }) => certificates.length > 0)), rxjs_1.distinctUntilChanged((a, b) => lodash_es_1.isEqual(a, b)));
43
+ const getStakePoolIdAtEpoch = (transactions) => (atEpoch) => {
44
+ const certificatesUpToEpoch = transactions
45
+ .filter(({ epoch }) => epoch < atEpoch - 2)
46
+ .map(({ certificates }) => certificates);
47
+ if (!transactionCertificates_1.isLastStakeKeyCertOfType(certificatesUpToEpoch, core_1.Cardano.CertificateType.StakeKeyRegistration))
48
+ return;
49
+ const delegationTxCertificates = lodash_es_1.findLast(certificatesUpToEpoch, (certs) => __1.includesAnyCertificate(certs, [core_1.Cardano.CertificateType.StakeDelegation]));
50
+ if (!delegationTxCertificates)
51
+ return;
52
+ return lodash_es_1.findLast(delegationTxCertificates.filter(isDelegationCertificate))?.poolId;
53
+ };
54
+ exports.getStakePoolIdAtEpoch = getStakePoolIdAtEpoch;
55
+ const createDelegateeTracker = (stakePoolSearchProvider, epoch$, certificates$) => rxjs_1.combineLatest([certificates$, epoch$]).pipe(rxjs_1.switchMap(([transactions, lastEpoch]) => {
56
+ const stakePoolIds = [lastEpoch + 1, lastEpoch + 2, lastEpoch + 3].map(exports.getStakePoolIdAtEpoch(transactions));
57
+ return stakePoolSearchProvider(lodash_es_1.uniq(stakePoolIds.filter(core_1.util.isNotNil))).pipe(rxjs_1.map((stakePools) => stakePoolIds.map((poolId) => stakePools.find((pool) => pool.id === poolId) || undefined)), rxjs_1.map(([currentEpoch, nextEpoch, nextNextEpoch]) => {
58
+ if (!nextNextEpoch)
59
+ return;
60
+ return { currentEpoch, nextEpoch, nextNextEpoch };
61
+ }));
62
+ }), rxjs_1.distinctUntilChanged((a, b) => lodash_es_1.isEqual(a, b)));
63
+ exports.createDelegateeTracker = createDelegateeTracker;
64
+ const addressKeyStatuses = (addresses, transactions$, transactionsInFlight$) => rxjs_1.combineLatest([transactions$, transactionsInFlight$]).pipe(rxjs_1.map(getAccountsKeyStatus(addresses)), rxjs_1.distinctUntilChanged(util_1.shallowArrayEquals));
65
+ exports.addressKeyStatuses = addressKeyStatuses;
66
+ const addressDelegatees = (addresses, transactions$, stakePoolSearchProvider, epoch$) => rxjs_1.combineLatest(addresses.map((address) => exports.createDelegateeTracker(stakePoolSearchProvider, epoch$, accountCertificateTransactions(transactions$, address))));
67
+ exports.addressDelegatees = addressDelegatees;
68
+ const addressRewards = (rewardAccounts, transactionsInFlight$, rewardsProvider) => rxjs_1.combineLatest([rewardsProvider(rewardAccounts), transactionsInFlight$]).pipe(rxjs_1.map(([totalRewards, transactionsInFlight]) => totalRewards.map((total, i) => ({
69
+ available: total - transactionsInFlight.reduce((sum, tx) => sum + getWithdrawalQuantity(tx, rewardAccounts[i]), 0n),
70
+ total
71
+ }))), rxjs_1.distinctUntilChanged(util_1.deepEquals));
72
+ exports.addressRewards = addressRewards;
73
+ const toRewardAccounts = (addresses) => ([statuses, delegatees, rewards]) => addresses.map((address, i) => ({
74
+ address,
75
+ delegatee: delegatees[i],
76
+ keyStatus: statuses[i],
77
+ rewardBalance: rewards[i]
78
+ }));
79
+ exports.toRewardAccounts = toRewardAccounts;
80
+ const createRewardAccountsTracker = ({ rewardAccountAddresses$, stakePoolSearchProvider, rewardsProvider, epoch$, transactions$, transactionsInFlight$ }) => rewardAccountAddresses$.pipe(rxjs_1.switchMap((rewardAccounts) => rxjs_1.combineLatest([
81
+ exports.addressKeyStatuses(rewardAccounts, transactions$, transactionsInFlight$),
82
+ exports.addressDelegatees(rewardAccounts, transactions$, stakePoolSearchProvider, epoch$),
83
+ exports.addressRewards(rewardAccounts, transactionsInFlight$, rewardsProvider)
84
+ ]).pipe(rxjs_1.map(exports.toRewardAccounts(rewardAccounts)))));
85
+ exports.createRewardAccountsTracker = createRewardAccountsTracker;
86
+ //# sourceMappingURL=RewardAccounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RewardAccounts.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/RewardAccounts.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { Cardano, WalletProvider } from '@cardano-sdk/core';
2
- import { KeyManager } from '../../KeyManagement';
3
2
  import { Observable } from 'rxjs';
4
3
  import { RetryBackoffConfig } from 'backoff-rxjs';
4
+ import { RewardAccount } from '@cardano-ogmios/schema';
5
5
  import { TxWithEpoch } from './types';
6
- export declare const createRewardsHistoryProvider: (walletProvider: WalletProvider, keyManager: KeyManager, retryBackoffConfig: RetryBackoffConfig) => (lowerBound: Cardano.Epoch | null) => Observable<import("@cardano-sdk/core").EpochRewards[]>;
6
+ export declare const createRewardsHistoryProvider: (walletProvider: WalletProvider, rewardAccountAddresses$: Observable<RewardAccount[]>, retryBackoffConfig: RetryBackoffConfig) => (lowerBound: Cardano.Epoch | null) => Observable<import("@cardano-sdk/core").EpochRewards[]>;
7
7
  export declare type RewardsHistoryProvider = ReturnType<typeof createRewardsHistoryProvider>;
8
8
  export declare const createRewardsHistoryTracker: (transactions$: Observable<TxWithEpoch[]>, rewardsHistoryProvider: RewardsHistoryProvider) => Observable<{
9
9
  all: import("@cardano-sdk/core").EpochRewards[];
@@ -1 +1 @@
1
- {"version":3,"file":"RewardsHistory.d.ts","sourceRoot":"","sources":["../../../src/services/DelegationTracker/RewardsHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,cAAc,EAAQ,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAA4C,MAAM,MAAM,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,eAAO,MAAM,4BAA4B,mBACtB,cAAc,cAAc,UAAU,sBAAsB,kBAAkB,kBAClF,QAAQ,KAAK,GAAG,IAAI,2DAMrB,CAAC;AAEf,oBAAY,sBAAsB,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAarF,eAAO,MAAM,2BAA2B,kBACvB,WAAW,WAAW,EAAE,CAAC,0BAChB,sBAAsB;;;;;EAa7C,CAAC"}
1
+ {"version":3,"file":"RewardsHistory.d.ts","sourceRoot":"","sources":["../../../src/services/DelegationTracker/RewardsHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,cAAc,EAAQ,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAA4C,MAAM,MAAM,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,eAAO,MAAM,4BAA4B,mBAErB,cAAc,2BACL,WAAW,aAAa,EAAE,CAAC,sBAChC,kBAAkB,kBAE3B,QAAQ,KAAK,GAAG,IAAI,2DAcrB,CAAC;AAEf,oBAAY,sBAAsB,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAarF,eAAO,MAAM,2BAA2B,kBACvB,WAAW,WAAW,EAAE,CAAC,0BAChB,sBAAsB;;;;;EAa7C,CAAC"}
@@ -6,11 +6,14 @@ const rxjs_1 = require("rxjs");
6
6
  const util_1 = require("../util");
7
7
  const lodash_es_1 = require("lodash-es");
8
8
  const transactionCertificates_1 = require("./transactionCertificates");
9
- const createRewardsHistoryProvider = (walletProvider, keyManager, retryBackoffConfig) => (lowerBound) => lowerBound
10
- ? util_1.coldObservableProvider(() => walletProvider.rewardsHistory({ epochs: { lowerBound }, stakeAddresses: [keyManager.rewardAccount] }), retryBackoffConfig)
9
+ const createRewardsHistoryProvider = (walletProvider, rewardAccountAddresses$, retryBackoffConfig) => (lowerBound) => lowerBound
10
+ ? rewardAccountAddresses$.pipe(rxjs_1.switchMap((stakeAddresses) => util_1.coldObservableProvider(() => walletProvider.rewardsHistory({
11
+ epochs: { lowerBound },
12
+ stakeAddresses
13
+ }), retryBackoffConfig)))
11
14
  : rxjs_1.of([]);
12
15
  exports.createRewardsHistoryProvider = createRewardsHistoryProvider;
13
- const firstDelegationEpoch$ = (transactions$) => transactions$.pipe(rxjs_1.map((transactions) => lodash_es_1.first(transactions.filter(({ tx }) => transactionCertificates_1.transactionHasAnyCertificate(tx, [core_1.Cardano.CertificateType.StakeDelegation])))), rxjs_1.map((tx) => (core_1.util.isNotNil(tx) ? tx.epoch + 2 : null)), rxjs_1.distinctUntilChanged());
16
+ const firstDelegationEpoch$ = (transactions$) => transactions$.pipe(rxjs_1.map((transactions) => lodash_es_1.first(transactions.filter(({ tx }) => transactionCertificates_1.transactionHasAnyCertificate(tx, [core_1.Cardano.CertificateType.StakeDelegation])))), rxjs_1.map((tx) => (core_1.util.isNotNil(tx) ? tx.epoch + 3 : null)), rxjs_1.distinctUntilChanged());
14
17
  const createRewardsHistoryTracker = (transactions$, rewardsHistoryProvider) => firstDelegationEpoch$(transactions$).pipe(rxjs_1.switchMap((firstEpoch) => rewardsHistoryProvider(firstEpoch)), rxjs_1.map((all) => {
15
18
  const lifetimeRewards = core_1.BigIntMath.sum(all.map(({ rewards }) => rewards));
16
19
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"RewardsHistory.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/RewardsHistory.ts"],"names":[],"mappings":";;;AAAA,4CAA8E;AAE9E,+BAA4E;AAG5E,kCAAiD;AACjD,yCAAkC;AAClC,uEAAyE;AAElE,MAAM,4BAA4B,GACvC,CAAC,cAA8B,EAAE,UAAsB,EAAE,kBAAsC,EAAE,EAAE,CACnG,CAAC,UAAgC,EAAE,EAAE,CACnC,UAAU;IACR,CAAC,CAAC,6BAAsB,CACpB,GAAG,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,EAC3G,kBAAkB,CACnB;IACH,CAAC,CAAC,SAAE,CAAC,EAAE,CAAC,CAAC;AARF,QAAA,4BAA4B,gCAQ1B;AAIf,MAAM,qBAAqB,GAAG,CAAC,aAAwC,EAAE,EAAE,CACzE,aAAa,CAAC,IAAI,CAChB,UAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CACnB,iBAAK,CACH,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,sDAA4B,CAAC,EAAE,EAAE,CAAC,cAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAC7G,CACF,EACD,UAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACtD,2BAAoB,EAAE,CACvB,CAAC;AAEG,MAAM,2BAA2B,GAAG,CACzC,aAAwC,EACxC,sBAA8C,EAC9C,EAAE,CACF,qBAAqB,CAAC,aAAa,CAAC,CAAC,IAAI,CACvC,gBAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,EAC7D,UAAG,CAAC,CAAC,GAAG,EAAE,EAAE;IACV,MAAM,eAAe,GAAG,iBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,OAAO;QACL,GAAG;QACH,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QACvE,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACvD,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAfS,QAAA,2BAA2B,+BAepC"}
1
+ {"version":3,"file":"RewardsHistory.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/RewardsHistory.ts"],"names":[],"mappings":";;;AAAA,4CAA8E;AAC9E,+BAA4E;AAI5E,kCAAiD;AACjD,yCAAkC;AAClC,uEAAyE;AAElE,MAAM,4BAA4B,GACvC,CACE,cAA8B,EAC9B,uBAAoD,EACpD,kBAAsC,EACtC,EAAE,CACJ,CAAC,UAAgC,EAAE,EAAE,CACnC,UAAU;IACR,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAC1B,gBAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAC3B,6BAAsB,CACpB,GAAG,EAAE,CACH,cAAc,CAAC,cAAc,CAAC;QAC5B,MAAM,EAAE,EAAE,UAAU,EAAE;QACtB,cAAc;KACf,CAAC,EACJ,kBAAkB,CACnB,CACF,CACF;IACH,CAAC,CAAC,SAAE,CAAC,EAAE,CAAC,CAAC;AApBF,QAAA,4BAA4B,gCAoB1B;AAIf,MAAM,qBAAqB,GAAG,CAAC,aAAwC,EAAE,EAAE,CACzE,aAAa,CAAC,IAAI,CAChB,UAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CACnB,iBAAK,CACH,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,sDAA4B,CAAC,EAAE,EAAE,CAAC,cAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAC7G,CACF,EACD,UAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACtD,2BAAoB,EAAE,CACvB,CAAC;AAEG,MAAM,2BAA2B,GAAG,CACzC,aAAwC,EACxC,sBAA8C,EAC9C,EAAE,CACF,qBAAqB,CAAC,aAAa,CAAC,CAAC,IAAI,CACvC,gBAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,EAC7D,UAAG,CAAC,CAAC,GAAG,EAAE,EAAE;IACV,MAAM,eAAe,GAAG,iBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,OAAO;QACL,GAAG;QACH,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QACvE,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACvD,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAfS,QAAA,2BAA2B,+BAepC"}
@@ -1,5 +1,5 @@
1
1
  export * from './RewardsHistory';
2
2
  export * from './DelegationTracker';
3
- export * from './Delegatee';
3
+ export * from './RewardAccounts';
4
4
  export * from './transactionCertificates';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/DelegationTracker/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/DelegationTracker/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC"}
@@ -12,6 +12,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./RewardsHistory"), exports);
14
14
  __exportStar(require("./DelegationTracker"), exports);
15
- __exportStar(require("./Delegatee"), exports);
15
+ __exportStar(require("./RewardAccounts"), exports);
16
16
  __exportStar(require("./transactionCertificates"), exports);
17
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiC;AACjC,sDAAoC;AACpC,8CAA4B;AAC5B,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiC;AACjC,sDAAoC;AACpC,mDAAiC;AACjC,4DAA0C"}
@@ -1,10 +1,9 @@
1
1
  import { Cardano } from '@cardano-sdk/core';
2
- import { TransactionsTracker } from '../types';
2
+ import { Observable } from 'rxjs';
3
3
  export declare const RegAndDeregCertificateTypes: Cardano.CertificateType[];
4
- export declare const transactionStakeKeyCertficates: (body: Cardano.TxBodyAlonzo) => Cardano.StakeAddressCertificate[];
4
+ export declare const stakeKeyCertficates: (certificates?: Cardano.Certificate[] | undefined) => Cardano.StakeAddressCertificate[];
5
+ export declare const includesAnyCertificate: (haystack: Cardano.Certificate[], needle: Cardano.CertificateType[]) => boolean;
5
6
  export declare const transactionHasAnyCertificate: ({ body: { certificates } }: Cardano.TxAlonzo, certificateTypes: Cardano.CertificateType[]) => boolean;
6
- export declare const isLastStakeKeyCertOfType: (transactions: {
7
- body: Cardano.TxBodyAlonzo;
8
- }[], certType: Cardano.CertificateType.StakeKeyRegistration | Cardano.CertificateType.StakeKeyDeregistration, rewardAccount?: string | undefined) => boolean;
9
- export declare const outgoingTransactionsWithCertificates: (transactionsTracker: TransactionsTracker, certificateTypes: Cardano.CertificateType[]) => import("rxjs").Observable<Cardano.TxAlonzo[]>;
7
+ export declare const isLastStakeKeyCertOfType: (transactionsCertificates: Cardano.Certificate[][], certType: Cardano.CertificateType.StakeKeyRegistration | Cardano.CertificateType.StakeKeyDeregistration, rewardAccount?: string | undefined) => boolean;
8
+ export declare const transactionsWithCertificates: (transactions$: Observable<Cardano.TxAlonzo[]>, certificateTypes: Cardano.CertificateType[]) => Observable<Cardano.TxAlonzo[]>;
10
9
  //# sourceMappingURL=transactionCertificates.d.ts.map
@@ -1 +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,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAK/C,eAAO,MAAM,2BAA2B,2BAGvC,CAAC;AAEF,eAAO,MAAM,8BAA8B,SAAU,QAAQ,YAAY,sCAGtE,CAAC;AAEJ,eAAO,MAAM,4BAA4B,+BACX,QAAQ,QAAQ,oBAC1B,QAAQ,eAAe,EAAE,YAC8C,CAAC;AAE5F,eAAO,MAAM,wBAAwB,iBACrB;IAAE,IAAI,EAAE,QAAQ,YAAY,CAAA;CAAE,EAAE,YACpC,QAAQ,eAAe,CAAC,oBAAoB,GAAG,QAAQ,eAAe,CAAC,sBAAsB,gDAexG,CAAC;AAEF,eAAO,MAAM,oCAAoC,wBAC1B,mBAAmB,oBACtB,QAAQ,eAAe,EAAE,kDAK1C,CAAC"}
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,gDAexG,CAAC;AAEF,eAAO,MAAM,4BAA4B,kBACxB,WAAW,QAAQ,QAAQ,EAAE,CAAC,oBAC3B,QAAQ,eAAe,EAAE,mCAK1C,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.outgoingTransactionsWithCertificates = exports.isLastStakeKeyCertOfType = exports.transactionHasAnyCertificate = exports.transactionStakeKeyCertficates = exports.RegAndDeregCertificateTypes = void 0;
3
+ exports.transactionsWithCertificates = exports.isLastStakeKeyCertOfType = exports.transactionHasAnyCertificate = exports.includesAnyCertificate = exports.stakeKeyCertficates = exports.RegAndDeregCertificateTypes = void 0;
4
4
  const core_1 = require("@cardano-sdk/core");
5
5
  const rxjs_1 = require("rxjs");
6
6
  const lodash_es_1 = require("lodash-es");
@@ -9,14 +9,16 @@ exports.RegAndDeregCertificateTypes = [
9
9
  core_1.Cardano.CertificateType.StakeKeyRegistration,
10
10
  core_1.Cardano.CertificateType.StakeKeyDeregistration
11
11
  ];
12
- const transactionStakeKeyCertficates = (body) => (body.certificates || []).filter((certificate) => exports.RegAndDeregCertificateTypes.includes(certificate.__typename));
13
- exports.transactionStakeKeyCertficates = transactionStakeKeyCertficates;
14
- const transactionHasAnyCertificate = ({ body: { certificates } }, certificateTypes) => certificates?.some(({ __typename }) => certificateTypes.includes(__typename)) || false;
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);
15
17
  exports.transactionHasAnyCertificate = transactionHasAnyCertificate;
16
- const isLastStakeKeyCertOfType = (transactions, certType, rewardAccount) => {
17
- const lastRegOrDereg = lodash_es_1.last(transactions
18
- .map(({ body }) => {
19
- const allStakeKeyCertificates = exports.transactionStakeKeyCertficates(body);
18
+ const isLastStakeKeyCertOfType = (transactionsCertificates, certType, rewardAccount) => {
19
+ const lastRegOrDereg = lodash_es_1.last(transactionsCertificates
20
+ .map((certificates) => {
21
+ const allStakeKeyCertificates = exports.stakeKeyCertficates(certificates);
20
22
  const addressStakeKeyCertificates = rewardAccount
21
23
  ? allStakeKeyCertificates.filter(({ address }) => rewardAccount === address)
22
24
  : allStakeKeyCertificates;
@@ -26,6 +28,6 @@ const isLastStakeKeyCertOfType = (transactions, certType, rewardAccount) => {
26
28
  return lastRegOrDereg?.__typename === certType;
27
29
  };
28
30
  exports.isLastStakeKeyCertOfType = isLastStakeKeyCertOfType;
29
- const outgoingTransactionsWithCertificates = (transactionsTracker, certificateTypes) => transactionsTracker.history.outgoing$.pipe(rxjs_1.map((transactions) => transactions.filter((tx) => exports.transactionHasAnyCertificate(tx, certificateTypes))), rxjs_1.distinctUntilChanged(equals_1.transactionsEquals));
30
- exports.outgoingTransactionsWithCertificates = outgoingTransactionsWithCertificates;
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;
31
33
  //# sourceMappingURL=transactionCertificates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactionCertificates.js","sourceRoot":"","sources":["../../../src/services/DelegationTracker/transactionCertificates.ts"],"names":[],"mappings":";;;AAAA,4CAAkD;AAElD,+BAAiD;AACjD,yCAAiC;AACjC,2CAAoD;AAEvC,QAAA,2BAA2B,GAAG;IACzC,cAAO,CAAC,eAAe,CAAC,oBAAoB;IAC5C,cAAO,CAAC,eAAe,CAAC,sBAAsB;CAC/C,CAAC;AAEK,MAAM,8BAA8B,GAAG,CAAC,IAA0B,EAAE,EAAE,CAC3E,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAkD,EAAE,CAC/F,mCAA2B,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAC7D,CAAC;AAHS,QAAA,8BAA8B,kCAGvC;AAEG,MAAM,4BAA4B,GAAG,CAC1C,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAoB,EAC5C,gBAA2C,EAC3C,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC;AAH/E,QAAA,4BAA4B,gCAGmD;AAErF,MAAM,wBAAwB,GAAG,CACtC,YAA8C,EAC9C,QAAuG,EACvG,aAA+B,EAC/B,EAAE;IACF,MAAM,cAAc,GAAG,gBAAI,CACzB,YAAY;SACT,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QAChB,MAAM,uBAAuB,GAAG,sCAA8B,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,2BAA2B,GAAG,aAAa;YAC/C,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,KAAK,OAAO,CAAC;YAC5E,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,oCAAoC,GAAG,CAClD,mBAAwC,EACxC,gBAA2C,EAC3C,EAAE,CACF,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CACxC,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,oCAAoC,wCAO7C"}
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,aAA+B,EAC/B,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,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,KAAK,OAAO,CAAC;YAC5E,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"}
@@ -5,7 +5,7 @@ import { RetryBackoffConfig } from 'backoff-rxjs';
5
5
  import { TrackerSubject } from './util/TrackerSubject';
6
6
  export interface TransactionsTrackerProps {
7
7
  walletProvider: WalletProvider;
8
- addresses: Cardano.Address[];
8
+ addresses$: Observable<Cardano.Address[]>;
9
9
  tip$: Observable<Cardano.Tip>;
10
10
  retryBackoffConfig: RetryBackoffConfig;
11
11
  newTransactions: {
@@ -17,6 +17,6 @@ export interface TransactionsTrackerProps {
17
17
  export interface TransactionsTrackerInternals {
18
18
  transactionsSource$?: TrackerSubject<DirectionalTransaction[]>;
19
19
  }
20
- export declare const createAddressTransactionsProvider: (walletProvider: WalletProvider, addresses: 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;
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
22
  //# sourceMappingURL=TransactionsTracker.d.ts.map
@@ -1 +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,EAAE,sBAAsB,EAAE,QAAQ,EAAwB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAEL,UAAU,EAeX,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,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,aACnB,QAAQ,OAAO,EAAE,sBACR,kBAAkB,mBACrB,WAAW,MAAM,CAAC,KAClC,WAAW,sBAAsB,EAAE,CAqBrC,CAAC;AAgBF,eAAO,MAAM,yBAAyB,yHAOjC,wBAAwB,4BAKxB,4BAA4B,KAC9B,mBAoFF,CAAC"}
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,EAAE,sBAAsB,EAAE,QAAQ,EAAwB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAEL,UAAU,EAgBX,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,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"}
@@ -7,31 +7,34 @@ const TrackerSubject_1 = require("./util/TrackerSubject");
7
7
  const TransactionError_1 = require("./TransactionError");
8
8
  const util_1 = require("./util");
9
9
  const lodash_es_1 = require("lodash-es");
10
- const createAddressTransactionsProvider = (walletProvider, addresses, retryBackoffConfig, tipBlockHeight$) => {
11
- const isMyAddress = ({ address }) => addresses.includes(address);
12
- return 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) => {
13
- const direction = tx.body.inputs.some(isMyAddress)
10
+ const createAddressTransactionsProvider = (walletProvider, addresses$, retryBackoffConfig, tipBlockHeight$) => {
11
+ const isMyAddress = (addresses) => ({ address }) => addresses.includes(address);
12
+ 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) => {
13
+ const direction = tx.body.inputs.some(isMyAddress(addresses))
14
14
  ? types_1.TransactionDirection.Outgoing
15
15
  : types_1.TransactionDirection.Incoming;
16
16
  return { direction, tx };
17
- })));
17
+ })))));
18
18
  };
19
19
  exports.createAddressTransactionsProvider = createAddressTransactionsProvider;
20
20
  const newTransactions$ = (transactions$) => transactions$.pipe(rxjs_1.take(1), rxjs_1.map((transactions) => transactions.map(({ id }) => id)), rxjs_1.mergeMap((initialTransactionIds) => {
21
21
  const ignoredTransactionIds = [...initialTransactionIds];
22
22
  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)))));
23
23
  }));
24
- const createTransactionsTracker = ({ tip$, walletProvider, addresses, newTransactions: { submitting$, pending$, failedToSubmit$ }, retryBackoffConfig }, { transactionsSource$ = new TrackerSubject_1.TrackerSubject(exports.createAddressTransactionsProvider(walletProvider, addresses, retryBackoffConfig, util_1.sharedDistinctBlock(tip$))) } = {}) => {
24
+ const createTransactionsTracker = ({ tip$, walletProvider, addresses$, newTransactions: { submitting$, pending$, failedToSubmit$ }, retryBackoffConfig }, { transactionsSource$ = new TrackerSubject_1.TrackerSubject(exports.createAddressTransactionsProvider(walletProvider, addresses$, retryBackoffConfig, util_1.sharedDistinctBlock(tip$))) } = {}) => {
25
25
  const providerTransactionsByDirection$ = (direction) => transactionsSource$.pipe(rxjs_1.map((transactions) => transactions.filter((tx) => tx.direction === direction).map(({ tx }) => tx)), rxjs_1.distinctUntilChanged(util_1.transactionsEquals));
26
26
  const incomingTransactionHistory$ = new TrackerSubject_1.TrackerSubject(providerTransactionsByDirection$(types_1.TransactionDirection.Incoming));
27
27
  const outgoingTransactionHistory$ = new TrackerSubject_1.TrackerSubject(providerTransactionsByDirection$(types_1.TransactionDirection.Outgoing));
28
28
  const txConfirmed$ = (tx) => newTransactions$(outgoingTransactionHistory$).pipe(rxjs_1.filter((historyTx) => historyTx.id === tx.id), rxjs_1.take(1), rxjs_1.map(() => tx));
29
- const failed$ = submitting$.pipe(rxjs_1.mergeMap((tx) => {
29
+ const failed$ = new rxjs_1.Subject();
30
+ const failedSubscription = submitting$
31
+ .pipe(rxjs_1.mergeMap((tx) => {
30
32
  const invalidHereafter = tx.body.validityInterval.invalidHereafter;
31
33
  return rxjs_1.race(failedToSubmit$.pipe(rxjs_1.filter((failed) => failed.tx === tx), rxjs_1.take(1)), invalidHereafter
32
34
  ? tip$.pipe(rxjs_1.filter(({ slot }) => slot > invalidHereafter), rxjs_1.map(() => ({ reason: TransactionError_1.TransactionFailure.Timeout, tx })), rxjs_1.take(1))
33
35
  : rxjs_1.EMPTY).pipe(rxjs_1.takeUntil(txConfirmed$(tx)));
34
- }), rxjs_1.share());
36
+ }))
37
+ .subscribe(failed$);
35
38
  const txFailed$ = (tx) => failed$.pipe(rxjs_1.filter((failed) => failed.tx === tx), rxjs_1.take(1));
36
39
  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 }) => {
37
40
  if (op === 'add') {
@@ -40,6 +43,10 @@ const createTransactionsTracker = ({ tip$, walletProvider, addresses, newTransac
40
43
  const idx = inFlight.indexOf(tx);
41
44
  return [...inFlight.splice(0, idx), ...inFlight.splice(idx + 1)];
42
45
  }, []), rxjs_1.startWith([])));
46
+ const confirmed$ = new rxjs_1.Subject();
47
+ const confirmedSubscription = submitting$
48
+ .pipe(rxjs_1.mergeMap((tx) => txConfirmed$(tx).pipe(rxjs_1.takeUntil(txFailed$(tx)))))
49
+ .subscribe(confirmed$);
43
50
  return {
44
51
  history: {
45
52
  all$: transactionsSource$,
@@ -48,7 +55,7 @@ const createTransactionsTracker = ({ tip$, walletProvider, addresses, newTransac
48
55
  },
49
56
  incoming$: newTransactions$(incomingTransactionHistory$),
50
57
  outgoing: {
51
- confirmed$: submitting$.pipe(rxjs_1.mergeMap((tx) => txConfirmed$(tx).pipe(rxjs_1.takeUntil(txFailed$(tx))))),
58
+ confirmed$,
52
59
  failed$,
53
60
  inFlight$,
54
61
  pending$,
@@ -57,6 +64,10 @@ const createTransactionsTracker = ({ tip$, walletProvider, addresses, newTransac
57
64
  shutdown: () => {
58
65
  transactionsSource$.complete();
59
66
  inFlight$.complete();
67
+ confirmedSubscription.unsubscribe();
68
+ confirmed$.complete();
69
+ failedSubscription.unsubscribe();
70
+ failed$.complete();
60
71
  }
61
72
  };
62
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionsTracker.js","sourceRoot":"","sources":["../../src/services/TransactionsTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionsTracker.js","sourceRoot":"","sources":["../../src/services/TransactionsTracker.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { TrackerSubject } from './util';
5
5
  import { TransactionalTracker } from './types';
6
6
  export interface UtxoTrackerProps {
7
7
  walletProvider: WalletProvider;
8
- addresses: Cardano.Address[];
8
+ addresses$: Observable<Cardano.Address[]>;
9
9
  transactionsInFlight$: Observable<Cardano.NewTxAlonzo[]>;
10
10
  tipBlockHeight$: Observable<number>;
11
11
  retryBackoffConfig: RetryBackoffConfig;
@@ -13,6 +13,6 @@ export interface UtxoTrackerProps {
13
13
  export interface UtxoTrackerInternals {
14
14
  utxoSource$?: TrackerSubject<Cardano.Utxo[]>;
15
15
  }
16
- export declare const createUtxoProvider: (walletProvider: WalletProvider, addresses: 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[]>;
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
18
  //# sourceMappingURL=UtxoTracker.d.ts.map
@@ -1 +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,EAAsB,MAAM,MAAM,CAAC;AACtD,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,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,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,aACnB,QAAQ,OAAO,EAAE,mBACX,WAAW,MAAM,CAAC,sBACf,kBAAkB,+BAOrC,CAAC;AAEJ,eAAO,MAAM,iBAAiB,8FAC+D,gBAAgB,oBAGxG,oBAAoB,KACtB,qBAAqB,QAAQ,IAAI,EAAE,CAyBrC,CAAC"}
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"}
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createUtxoTracker = exports.createUtxoProvider = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const util_1 = require("./util");
6
- const createUtxoProvider = (walletProvider, addresses, tipBlockHeight$, retryBackoffConfig) => util_1.coldObservableProvider(() => walletProvider.utxoDelegationAndRewards(addresses).then(({ utxo }) => utxo), retryBackoffConfig, tipBlockHeight$, util_1.utxoEquals);
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
7
  exports.createUtxoProvider = createUtxoProvider;
8
- const createUtxoTracker = ({ walletProvider, addresses, transactionsInFlight$, retryBackoffConfig, tipBlockHeight$ }, { utxoSource$ = new util_1.TrackerSubject(exports.createUtxoProvider(walletProvider, addresses, tipBlockHeight$, retryBackoffConfig)) } = {}) => {
8
+ const createUtxoTracker = ({ walletProvider, addresses$, transactionsInFlight$, retryBackoffConfig, tipBlockHeight$ }, { utxoSource$ = new util_1.TrackerSubject(exports.createUtxoProvider(walletProvider, addresses$, tipBlockHeight$, retryBackoffConfig)) } = {}) => {
9
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
10
  return {
11
11
  available$,