@cardano-sdk/wallet 0.34.4 → 0.35.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 (161) hide show
  1. package/dist/cjs/{PersonalWallet/PersonalWallet.d.ts → Wallets/BaseWallet.d.ts} +31 -17
  2. package/dist/cjs/Wallets/BaseWallet.d.ts.map +1 -0
  3. package/dist/cjs/{PersonalWallet/PersonalWallet.js → Wallets/BaseWallet.js} +171 -132
  4. package/dist/cjs/Wallets/BaseWallet.js.map +1 -0
  5. package/dist/cjs/Wallets/index.d.ts +3 -0
  6. package/dist/cjs/Wallets/index.d.ts.map +1 -0
  7. package/dist/cjs/{PersonalWallet → Wallets}/index.js +2 -1
  8. package/dist/cjs/Wallets/index.js.map +1 -0
  9. package/dist/cjs/Wallets/internals.d.ts +4 -0
  10. package/dist/cjs/Wallets/internals.d.ts.map +1 -0
  11. package/dist/cjs/Wallets/internals.js +30 -0
  12. package/dist/cjs/Wallets/internals.js.map +1 -0
  13. package/dist/cjs/Wallets/util.d.ts +16 -0
  14. package/dist/cjs/Wallets/util.d.ts.map +1 -0
  15. package/dist/cjs/Wallets/util.js +40 -0
  16. package/dist/cjs/Wallets/util.js.map +1 -0
  17. package/dist/cjs/cip30.d.ts.map +1 -1
  18. package/dist/cjs/cip30.js +12 -8
  19. package/dist/cjs/cip30.js.map +1 -1
  20. package/dist/cjs/index.d.ts +1 -1
  21. package/dist/cjs/index.d.ts.map +1 -1
  22. package/dist/cjs/index.js +1 -1
  23. package/dist/cjs/index.js.map +1 -1
  24. package/dist/cjs/persistence/inMemoryStores/inMemoryWalletStores.d.ts +3 -1
  25. package/dist/cjs/persistence/inMemoryStores/inMemoryWalletStores.d.ts.map +1 -1
  26. package/dist/cjs/persistence/inMemoryStores/inMemoryWalletStores.js +5 -1
  27. package/dist/cjs/persistence/inMemoryStores/inMemoryWalletStores.js.map +1 -1
  28. package/dist/cjs/persistence/pouchDbStores/pouchDbWalletStores.d.ts +3 -1
  29. package/dist/cjs/persistence/pouchDbStores/pouchDbWalletStores.d.ts.map +1 -1
  30. package/dist/cjs/persistence/pouchDbStores/pouchDbWalletStores.js +5 -1
  31. package/dist/cjs/persistence/pouchDbStores/pouchDbWalletStores.js.map +1 -1
  32. package/dist/cjs/persistence/types.d.ts +2 -1
  33. package/dist/cjs/persistence/types.d.ts.map +1 -1
  34. package/dist/cjs/services/BalanceTracker.d.ts.map +1 -1
  35. package/dist/cjs/services/BalanceTracker.js +3 -3
  36. package/dist/cjs/services/BalanceTracker.js.map +1 -1
  37. package/dist/cjs/services/DelegationTracker/DelegationDistributionTracker.d.ts.map +1 -1
  38. package/dist/cjs/services/DelegationTracker/DelegationDistributionTracker.js +1 -1
  39. package/dist/cjs/services/DelegationTracker/DelegationDistributionTracker.js.map +1 -1
  40. package/dist/cjs/services/DelegationTracker/RewardAccounts.d.ts +3 -3
  41. package/dist/cjs/services/DelegationTracker/RewardAccounts.d.ts.map +1 -1
  42. package/dist/cjs/services/DelegationTracker/RewardAccounts.js +12 -12
  43. package/dist/cjs/services/DelegationTracker/RewardAccounts.js.map +1 -1
  44. package/dist/cjs/services/PublicStakeKeysTracker.d.ts +2 -2
  45. package/dist/cjs/services/PublicStakeKeysTracker.d.ts.map +1 -1
  46. package/dist/cjs/services/PublicStakeKeysTracker.js +3 -3
  47. package/dist/cjs/services/PublicStakeKeysTracker.js.map +1 -1
  48. package/dist/cjs/services/TransactionsTracker.d.ts +4 -1
  49. package/dist/cjs/services/TransactionsTracker.d.ts.map +1 -1
  50. package/dist/cjs/services/TransactionsTracker.js +39 -2
  51. package/dist/cjs/services/TransactionsTracker.js.map +1 -1
  52. package/dist/cjs/services/WalletUtil.d.ts +7 -1
  53. package/dist/cjs/services/WalletUtil.d.ts.map +1 -1
  54. package/dist/cjs/services/WalletUtil.js +25 -7
  55. package/dist/cjs/services/WalletUtil.js.map +1 -1
  56. package/dist/cjs/services/types.d.ts +3 -3
  57. package/dist/cjs/services/types.d.ts.map +1 -1
  58. package/dist/cjs/services/types.js.map +1 -1
  59. package/dist/cjs/services/util/equals.d.ts +2 -1
  60. package/dist/cjs/services/util/equals.d.ts.map +1 -1
  61. package/dist/cjs/services/util/equals.js +4 -1
  62. package/dist/cjs/services/util/equals.js.map +1 -1
  63. package/dist/cjs/services/util/index.d.ts +1 -0
  64. package/dist/cjs/services/util/index.d.ts.map +1 -1
  65. package/dist/cjs/services/util/index.js +1 -0
  66. package/dist/cjs/services/util/index.js.map +1 -1
  67. package/dist/cjs/services/util/newAndStoredMulticast.d.ts +13 -0
  68. package/dist/cjs/services/util/newAndStoredMulticast.d.ts.map +1 -0
  69. package/dist/cjs/services/util/newAndStoredMulticast.js +7 -0
  70. package/dist/cjs/services/util/newAndStoredMulticast.js.map +1 -0
  71. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  72. package/dist/cjs/types.d.ts +8 -5
  73. package/dist/cjs/types.d.ts.map +1 -1
  74. package/dist/cjs/types.js.map +1 -1
  75. package/dist/esm/{PersonalWallet/PersonalWallet.d.ts → Wallets/BaseWallet.d.ts} +31 -17
  76. package/dist/esm/Wallets/BaseWallet.d.ts.map +1 -0
  77. package/dist/esm/Wallets/BaseWallet.js +462 -0
  78. package/dist/esm/Wallets/BaseWallet.js.map +1 -0
  79. package/dist/esm/Wallets/index.d.ts +3 -0
  80. package/dist/esm/Wallets/index.d.ts.map +1 -0
  81. package/dist/esm/Wallets/index.js +3 -0
  82. package/dist/esm/Wallets/index.js.map +1 -0
  83. package/dist/esm/Wallets/internals.d.ts +4 -0
  84. package/dist/esm/Wallets/internals.d.ts.map +1 -0
  85. package/dist/esm/Wallets/internals.js +26 -0
  86. package/dist/esm/Wallets/internals.js.map +1 -0
  87. package/dist/esm/Wallets/util.d.ts +16 -0
  88. package/dist/esm/Wallets/util.d.ts.map +1 -0
  89. package/dist/esm/Wallets/util.js +35 -0
  90. package/dist/esm/Wallets/util.js.map +1 -0
  91. package/dist/esm/cip30.d.ts.map +1 -1
  92. package/dist/esm/cip30.js +12 -8
  93. package/dist/esm/cip30.js.map +1 -1
  94. package/dist/esm/index.d.ts +1 -1
  95. package/dist/esm/index.d.ts.map +1 -1
  96. package/dist/esm/index.js +1 -1
  97. package/dist/esm/index.js.map +1 -1
  98. package/dist/esm/persistence/inMemoryStores/inMemoryWalletStores.d.ts +3 -1
  99. package/dist/esm/persistence/inMemoryStores/inMemoryWalletStores.d.ts.map +1 -1
  100. package/dist/esm/persistence/inMemoryStores/inMemoryWalletStores.js +3 -0
  101. package/dist/esm/persistence/inMemoryStores/inMemoryWalletStores.js.map +1 -1
  102. package/dist/esm/persistence/pouchDbStores/pouchDbWalletStores.d.ts +3 -1
  103. package/dist/esm/persistence/pouchDbStores/pouchDbWalletStores.d.ts.map +1 -1
  104. package/dist/esm/persistence/pouchDbStores/pouchDbWalletStores.js +3 -0
  105. package/dist/esm/persistence/pouchDbStores/pouchDbWalletStores.js.map +1 -1
  106. package/dist/esm/persistence/types.d.ts +2 -1
  107. package/dist/esm/persistence/types.d.ts.map +1 -1
  108. package/dist/esm/services/BalanceTracker.d.ts.map +1 -1
  109. package/dist/esm/services/BalanceTracker.js +3 -3
  110. package/dist/esm/services/BalanceTracker.js.map +1 -1
  111. package/dist/esm/services/DelegationTracker/DelegationDistributionTracker.d.ts.map +1 -1
  112. package/dist/esm/services/DelegationTracker/DelegationDistributionTracker.js +1 -1
  113. package/dist/esm/services/DelegationTracker/DelegationDistributionTracker.js.map +1 -1
  114. package/dist/esm/services/DelegationTracker/RewardAccounts.d.ts +3 -3
  115. package/dist/esm/services/DelegationTracker/RewardAccounts.d.ts.map +1 -1
  116. package/dist/esm/services/DelegationTracker/RewardAccounts.js +10 -10
  117. package/dist/esm/services/DelegationTracker/RewardAccounts.js.map +1 -1
  118. package/dist/esm/services/PublicStakeKeysTracker.d.ts +2 -2
  119. package/dist/esm/services/PublicStakeKeysTracker.d.ts.map +1 -1
  120. package/dist/esm/services/PublicStakeKeysTracker.js +3 -3
  121. package/dist/esm/services/PublicStakeKeysTracker.js.map +1 -1
  122. package/dist/esm/services/TransactionsTracker.d.ts +4 -1
  123. package/dist/esm/services/TransactionsTracker.d.ts.map +1 -1
  124. package/dist/esm/services/TransactionsTracker.js +41 -4
  125. package/dist/esm/services/TransactionsTracker.js.map +1 -1
  126. package/dist/esm/services/WalletUtil.d.ts +7 -1
  127. package/dist/esm/services/WalletUtil.d.ts.map +1 -1
  128. package/dist/esm/services/WalletUtil.js +25 -7
  129. package/dist/esm/services/WalletUtil.js.map +1 -1
  130. package/dist/esm/services/types.d.ts +3 -3
  131. package/dist/esm/services/types.d.ts.map +1 -1
  132. package/dist/esm/services/types.js.map +1 -1
  133. package/dist/esm/services/util/equals.d.ts +2 -1
  134. package/dist/esm/services/util/equals.d.ts.map +1 -1
  135. package/dist/esm/services/util/equals.js +2 -0
  136. package/dist/esm/services/util/equals.js.map +1 -1
  137. package/dist/esm/services/util/index.d.ts +1 -0
  138. package/dist/esm/services/util/index.d.ts.map +1 -1
  139. package/dist/esm/services/util/index.js +1 -0
  140. package/dist/esm/services/util/index.js.map +1 -1
  141. package/dist/esm/services/util/newAndStoredMulticast.d.ts +13 -0
  142. package/dist/esm/services/util/newAndStoredMulticast.d.ts.map +1 -0
  143. package/dist/esm/services/util/newAndStoredMulticast.js +3 -0
  144. package/dist/esm/services/util/newAndStoredMulticast.js.map +1 -0
  145. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  146. package/dist/esm/types.d.ts +8 -5
  147. package/dist/esm/types.d.ts.map +1 -1
  148. package/dist/esm/types.js.map +1 -1
  149. package/package.json +13 -13
  150. package/dist/cjs/PersonalWallet/PersonalWallet.d.ts.map +0 -1
  151. package/dist/cjs/PersonalWallet/PersonalWallet.js.map +0 -1
  152. package/dist/cjs/PersonalWallet/index.d.ts +0 -2
  153. package/dist/cjs/PersonalWallet/index.d.ts.map +0 -1
  154. package/dist/cjs/PersonalWallet/index.js.map +0 -1
  155. package/dist/esm/PersonalWallet/PersonalWallet.d.ts.map +0 -1
  156. package/dist/esm/PersonalWallet/PersonalWallet.js +0 -425
  157. package/dist/esm/PersonalWallet/PersonalWallet.js.map +0 -1
  158. package/dist/esm/PersonalWallet/index.d.ts +0 -2
  159. package/dist/esm/PersonalWallet/index.d.ts.map +0 -1
  160. package/dist/esm/PersonalWallet/index.js +0 -2
  161. package/dist/esm/PersonalWallet/index.js.map +0 -1
@@ -2,8 +2,8 @@ import { Asset, Cardano, EpochInfo, EraSummary, HandleResolution, NetworkInfoPro
2
2
  import { BalanceTracker, DelegationTracker, TransactionsTracker, UtxoTracker } from './services';
3
3
  import { Cip30DataSignature } from '@cardano-sdk/dapp-connector';
4
4
  import { Ed25519PublicKeyHex } from '@cardano-sdk/crypto';
5
- import { GroupedAddress, MessageSender, SignTransactionOptions, cip8 } from '@cardano-sdk/key-management';
6
- import { InitializeTxProps, InitializeTxResult, SignedTx, TxBuilder, TxContext } from '@cardano-sdk/tx-construction';
5
+ import { GroupedAddress, MessageSender, SignTransactionContext, WitnessedTx, cip8 } from '@cardano-sdk/key-management';
6
+ import { InitializeTxProps, InitializeTxResult, TxBuilder, TxContext } from '@cardano-sdk/tx-construction';
7
7
  import { Observable } from 'rxjs';
8
8
  import { PubStakeKeyAndStatus } from './services/PublicStakeKeysTracker';
9
9
  import { Shutdown } from '@cardano-sdk/util';
@@ -16,7 +16,10 @@ export interface SyncStatus extends Shutdown {
16
16
  }
17
17
  export declare type FinalizeTxProps = Omit<TxContext, 'signingContext'> & {
18
18
  tx: Cardano.TxBodyWithHash;
19
- signingOptions?: SignTransactionOptions;
19
+ signingContext?: Partial<SignTransactionContext>;
20
+ };
21
+ export declare type UpdateWitnessProps = {
22
+ tx: Cardano.Tx;
20
23
  sender?: MessageSender;
21
24
  };
22
25
  export declare type HandleInfo = HandleResolution & Asset.AssetInfo;
@@ -49,11 +52,11 @@ export interface ObservableWallet {
49
52
  readonly fatalError$: Observable<unknown>;
50
53
  readonly syncStatus: SyncStatus;
51
54
  getName(): Promise<string>;
52
- getPubDRepKey(): Promise<Ed25519PublicKeyHex>;
55
+ getPubDRepKey(): Promise<Ed25519PublicKeyHex | undefined>;
53
56
  initializeTx(props: InitializeTxProps): Promise<InitializeTxResult>;
54
57
  finalizeTx(props: FinalizeTxProps): Promise<Cardano.Tx>;
55
58
  signData(props: SignDataProps): Promise<Cip30DataSignature>;
56
- submitTx(tx: Cardano.Tx | TxCBOR | SignedTx): Promise<Cardano.TransactionId>;
59
+ submitTx(tx: Cardano.Tx | TxCBOR | WitnessedTx): Promise<Cardano.TransactionId>;
57
60
  createTxBuilder(): TxBuilder;
58
61
  discoverAddresses(): Promise<WalletAddress[]>;
59
62
  shutdown(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAiEO,MAAM,eAAe,GAAG,CAAC,OAAsB,EAA4B,EAAE,CAAC,SAAS,IAAI,OAAO,CAAC;AAA7F,QAAA,eAAe,mBAA8E;AAEnG,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAA6B,EAAE,CAAC,CAAC,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC;AAApG,QAAA,gBAAgB,oBAAoF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAqEO,MAAM,eAAe,GAAG,CAAC,OAAsB,EAA4B,EAAE,CAAC,SAAS,IAAI,OAAO,CAAC;AAA7F,QAAA,eAAe,mBAA8E;AAEnG,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAA6B,EAAE,CAAC,CAAC,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC;AAApG,QAAA,gBAAgB,oBAAoF"}
@@ -1,27 +1,43 @@
1
1
  import { AddressDiscovery, BalanceTracker, ConnectionStatusTracker, DelegationTracker, OutgoingTx, PollingConfig, TrackedAssetProvider, TrackedChainHistoryProvider, TrackedRewardsProvider, TrackedStakePoolProvider, TrackedUtxoProvider, TrackedWalletNetworkInfoProvider, TransactionsTracker, UtxoTracker, WalletUtil } from '../services';
2
2
  import { AssetProvider, Cardano, ChainHistoryProvider, EpochInfo, EraSummary, HandleProvider, RewardsProvider, StakePoolProvider, TxCBOR, TxSubmitProvider, UtxoProvider } from '@cardano-sdk/core';
3
- import { Assets, FinalizeTxProps, HandleInfo, ObservableWallet, SignDataProps, SyncStatus, WalletNetworkInfoProvider } from '../types';
3
+ import { Assets, FinalizeTxProps, HandleInfo, ObservableWallet, SignDataProps, SyncStatus, UpdateWitnessProps, WalletNetworkInfoProvider } from '../types';
4
4
  import { BehaviorObservable, TrackerSubject } from '@cardano-sdk/util-rxjs';
5
5
  import { Observable, Subject } from 'rxjs';
6
- import { Bip32Account, GroupedAddress, Witnesser } from '@cardano-sdk/key-management';
6
+ import { Bip32Account, GroupedAddress, WitnessedTx, Witnesser } from '@cardano-sdk/key-management';
7
7
  import { ChangeAddressResolver, InputSelector } from '@cardano-sdk/input-selection';
8
8
  import { Cip30DataSignature } from '@cardano-sdk/dapp-connector';
9
9
  import { Ed25519PublicKeyHex } from '@cardano-sdk/crypto';
10
- import { GenericTxBuilder, InitializeTxProps, InitializeTxResult, SignedTx, TxBuilderDependencies } from '@cardano-sdk/tx-construction';
10
+ import { GenericTxBuilder, InitializeTxProps, InitializeTxResult, TxBuilderDependencies } from '@cardano-sdk/tx-construction';
11
11
  import { Logger } from 'ts-log';
12
12
  import { PubStakeKeyAndStatus } from '../services/PublicStakeKeysTracker';
13
13
  import { RetryBackoffConfig } from 'backoff-rxjs';
14
14
  import { Shutdown } from '@cardano-sdk/util';
15
15
  import { WalletStores } from '../persistence';
16
16
  import type { KoraLabsHandleProvider } from '@cardano-sdk/cardano-services-client';
17
- export interface PersonalWalletProps {
17
+ export interface BaseWalletProps {
18
18
  readonly name: string;
19
19
  readonly polling?: PollingConfig;
20
20
  readonly retryBackoffConfig?: RetryBackoffConfig;
21
21
  }
22
- export interface PersonalWalletDependencies {
22
+ export declare enum PublicCredentialsManagerType {
23
+ SCRIPT_CREDENTIALS_MANAGER = "SCRIPT_CREDENTIALS_MANAGER",
24
+ BIP32_CREDENTIALS_MANAGER = "BIP32_CREDENTIALS_MANAGER"
25
+ }
26
+ export interface Bip32PublicCredentialsManager {
27
+ __type: PublicCredentialsManagerType.BIP32_CREDENTIALS_MANAGER;
28
+ bip32Account: Bip32Account;
29
+ addressDiscovery: AddressDiscovery;
30
+ }
31
+ export interface ScriptPublicCredentialsManager {
32
+ __type: PublicCredentialsManagerType.SCRIPT_CREDENTIALS_MANAGER;
33
+ paymentScript: Cardano.RequireAllOfScript | Cardano.RequireAnyOfScript | Cardano.RequireAtLeastScript;
34
+ stakingScript: Cardano.RequireAllOfScript | Cardano.RequireAnyOfScript | Cardano.RequireAtLeastScript;
35
+ }
36
+ export declare type PublicCredentialsManager = ScriptPublicCredentialsManager | Bip32PublicCredentialsManager;
37
+ export declare const isScriptPublicCredentialsManager: (credManager: PublicCredentialsManager) => credManager is ScriptPublicCredentialsManager;
38
+ export declare const isBip32PublicCredentialsManager: (credManager: PublicCredentialsManager) => credManager is Bip32PublicCredentialsManager;
39
+ export interface BaseWalletDependencies {
23
40
  readonly witnesser: Witnesser;
24
- readonly bip32Account: Bip32Account;
25
41
  readonly txSubmitProvider: TxSubmitProvider;
26
42
  readonly stakePoolProvider: StakePoolProvider;
27
43
  readonly assetProvider: AssetProvider;
@@ -34,7 +50,7 @@ export interface PersonalWalletDependencies {
34
50
  readonly stores?: WalletStores;
35
51
  readonly logger: Logger;
36
52
  readonly connectionStatusTracker$?: ConnectionStatusTracker;
37
- readonly addressDiscovery?: AddressDiscovery;
53
+ readonly publicCredentialsManager: PublicCredentialsManager;
38
54
  }
39
55
  export interface SubmitTxOptions {
40
56
  mightBeAlreadySubmitted?: boolean;
@@ -44,11 +60,9 @@ export declare const DEFAULT_POLLING_CONFIG: {
44
60
  maxIntervalMultiplier: number;
45
61
  pollInterval: number;
46
62
  };
47
- export declare const DEFAULT_LOOK_AHEAD_SEARCH = 20;
48
- export declare class PersonalWallet implements ObservableWallet {
63
+ export declare class BaseWallet implements ObservableWallet {
49
64
  #private;
50
65
  readonly witnesser: Witnesser;
51
- readonly bip32Account: Bip32Account;
52
66
  readonly currentEpoch$: TrackerSubject<EpochInfo>;
53
67
  readonly txSubmitProvider: TxSubmitProvider;
54
68
  readonly utxoProvider: TrackedUtxoProvider;
@@ -74,22 +88,22 @@ export declare class PersonalWallet implements ObservableWallet {
74
88
  readonly handleProvider: HandleProvider;
75
89
  readonly changeAddressResolver: ChangeAddressResolver;
76
90
  readonly publicStakeKeys$: TrackerSubject<PubStakeKeyAndStatus[]>;
77
- private drepPubKey;
78
91
  handles$: Observable<HandleInfo[]>;
79
- constructor({ name, polling: { interval: pollInterval, maxInterval, consideredOutOfSyncAfter }, retryBackoffConfig }: PersonalWalletProps, { txSubmitProvider, stakePoolProvider, witnesser, bip32Account: addressManager, assetProvider, handleProvider, networkInfoProvider, utxoProvider, chainHistoryProvider, rewardsProvider, logger, inputSelector, stores, connectionStatusTracker$, addressDiscovery }: PersonalWalletDependencies);
92
+ constructor({ name, polling: { interval: pollInterval, maxInterval, consideredOutOfSyncAfter }, retryBackoffConfig }: BaseWalletProps, { txSubmitProvider, stakePoolProvider, witnesser, assetProvider, handleProvider, networkInfoProvider, utxoProvider, chainHistoryProvider, rewardsProvider, logger, inputSelector, publicCredentialsManager, stores, connectionStatusTracker$ }: BaseWalletDependencies);
80
93
  getName(): Promise<string>;
81
94
  initializeTx(props: InitializeTxProps): Promise<InitializeTxResult>;
82
- finalizeTx({ tx, sender, ...rest }: FinalizeTxProps, stubSign?: boolean): Promise<Cardano.Tx>;
95
+ finalizeTx({ tx, signingOptions, signingContext, auxiliaryData, isValid, witness }: FinalizeTxProps): Promise<Cardano.Tx>;
83
96
  private initializeHandles;
84
97
  createTxBuilder(): GenericTxBuilder;
85
- submitTx(input: Cardano.Tx | TxCBOR | OutgoingTx | SignedTx, options?: SubmitTxOptions): Promise<Cardano.TransactionId>;
86
- signData(props: SignDataProps): Promise<Cip30DataSignature>;
98
+ submitTx(input: Cardano.Tx | TxCBOR | OutgoingTx | WitnessedTx, options?: SubmitTxOptions): Promise<Cardano.TransactionId>;
87
99
  sync(): void;
88
100
  shutdown(): void;
89
101
  setInputSelector(selector: InputSelector): void;
90
102
  getInputSelector(): InputSelector;
91
103
  getTxBuilderDependencies(): TxBuilderDependencies;
92
- getPubDRepKey(): Promise<Ed25519PublicKeyHex>;
104
+ signData(props: SignDataProps): Promise<Cip30DataSignature>;
105
+ getPubDRepKey(): Promise<Ed25519PublicKeyHex | undefined>;
93
106
  discoverAddresses(): Promise<GroupedAddress[]>;
107
+ updateWitness({ tx, sender }: UpdateWitnessProps): Promise<Cardano.Tx>;
94
108
  }
95
- //# sourceMappingURL=PersonalWallet.d.ts.map
109
+ //# sourceMappingURL=BaseWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseWallet.d.ts","sourceRoot":"","sources":["../../../src/Wallets/BaseWallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,462 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ 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");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ 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");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _BaseWallet_instances, _BaseWallet_inputSelector, _BaseWallet_logger, _BaseWallet_tip$, _BaseWallet_newTransactions, _BaseWallet_reemitSubscriptions, _BaseWallet_failedFromReemitter$, _BaseWallet_trackedTxSubmitProvider, _BaseWallet_addressTracker, _BaseWallet_publicCredentialsManager, _BaseWallet_submittingPromises, _BaseWallet_submitTx, _BaseWallet_isTxInFlight, _BaseWallet_firstValueFromSettled;
13
+ import { ConnectionStatus, DynamicChangeAddressResolver, PersistentDocumentTrackerSubject, SmartTxSubmitProvider, TipTracker, TrackedAssetProvider, TrackedChainHistoryProvider, TrackedRewardsProvider, TrackedStakePoolProvider, TrackedTxSubmitProvider, TrackedUtxoProvider, TrackedWalletNetworkInfoProvider, TransactionFailure, createAddressTracker, createAssetsTracker, createBalanceTracker, createDelegationTracker, createHandlesTracker, createProviderStatusTracker, createSimpleConnectionStatusTracker, createTransactionReemitter, createTransactionsTracker, createUtxoTracker, createWalletUtil, currentEpochTracker, distinctBlock, distinctEraSummaries } from '../services';
14
+ import { CardanoNodeUtil, ProviderError, Serialization, TxCBOR } from '@cardano-sdk/core';
15
+ import { TrackerSubject, coldObservableProvider } from '@cardano-sdk/util-rxjs';
16
+ import { BehaviorSubject, EMPTY, Subject, Subscription, catchError, distinctUntilChanged, filter, firstValueFrom, from, map, mergeMap, of, switchMap, take, tap, throwError } from 'rxjs';
17
+ import { cip8, util } from '@cardano-sdk/key-management';
18
+ import { roundRobinRandomImprove } from '@cardano-sdk/input-selection';
19
+ import { GenericTxBuilder, InvalidConfigurationError, initializeTx } from '@cardano-sdk/tx-construction';
20
+ import { createPublicStakeKeysTracker } from '../services/PublicStakeKeysTracker';
21
+ import { contextLogger, deepEquals } from '@cardano-sdk/util';
22
+ import { createInMemoryWalletStores } from '../persistence';
23
+ import { getScriptAddress } from './internals';
24
+ import isEqual from 'lodash/isEqual';
25
+ import uniq from 'lodash/uniq';
26
+ export var PublicCredentialsManagerType;
27
+ (function (PublicCredentialsManagerType) {
28
+ PublicCredentialsManagerType["SCRIPT_CREDENTIALS_MANAGER"] = "SCRIPT_CREDENTIALS_MANAGER";
29
+ PublicCredentialsManagerType["BIP32_CREDENTIALS_MANAGER"] = "BIP32_CREDENTIALS_MANAGER";
30
+ })(PublicCredentialsManagerType || (PublicCredentialsManagerType = {}));
31
+ export const isScriptPublicCredentialsManager = (credManager) => credManager.__type === PublicCredentialsManagerType.SCRIPT_CREDENTIALS_MANAGER;
32
+ export const isBip32PublicCredentialsManager = (credManager) => !isScriptPublicCredentialsManager(credManager);
33
+ export const DEFAULT_POLLING_CONFIG = {
34
+ maxInterval: 5000 * 20,
35
+ maxIntervalMultiplier: 20,
36
+ pollInterval: 5000
37
+ };
38
+ const BLOCK_SLOT_GAP_MULTIPLIER = 2.5;
39
+ const isOutgoingTx = (input) => typeof input === 'object' && 'cbor' in input;
40
+ const isTxCBOR = (input) => typeof input === 'string';
41
+ const isWitnessedTx = (input) => typeof input === 'object' && 'context' in input;
42
+ const processOutgoingTx = (input) => {
43
+ if (isTxCBOR(input)) {
44
+ const tx = Serialization.Transaction.fromCbor(input);
45
+ return {
46
+ body: tx.toCore().body,
47
+ cbor: input,
48
+ id: tx.getId()
49
+ };
50
+ }
51
+ if (isWitnessedTx(input)) {
52
+ return {
53
+ body: input.tx.body,
54
+ cbor: input.cbor,
55
+ context: input.context,
56
+ id: input.tx.id
57
+ };
58
+ }
59
+ if (isOutgoingTx(input)) {
60
+ return input;
61
+ }
62
+ return {
63
+ body: input.body,
64
+ cbor: TxCBOR.serialize(input),
65
+ id: input.id
66
+ };
67
+ };
68
+ export class BaseWallet {
69
+ constructor({ name, polling: { interval: pollInterval = DEFAULT_POLLING_CONFIG.pollInterval, maxInterval = pollInterval * DEFAULT_POLLING_CONFIG.maxIntervalMultiplier, consideredOutOfSyncAfter = 1000 * 60 * 3 } = {}, retryBackoffConfig = {
70
+ initialInterval: Math.min(pollInterval, 1000),
71
+ maxInterval
72
+ } }, { txSubmitProvider, stakePoolProvider, witnesser, assetProvider, handleProvider, networkInfoProvider, utxoProvider, chainHistoryProvider, rewardsProvider, logger, inputSelector, publicCredentialsManager, stores = createInMemoryWalletStores(), connectionStatusTracker$ = createSimpleConnectionStatusTracker() }) {
73
+ _BaseWallet_instances.add(this);
74
+ _BaseWallet_inputSelector.set(this, void 0);
75
+ _BaseWallet_logger.set(this, void 0);
76
+ _BaseWallet_tip$.set(this, void 0);
77
+ _BaseWallet_newTransactions.set(this, {
78
+ failedToSubmit$: new Subject(),
79
+ pending$: new Subject(),
80
+ signed$: new Subject(),
81
+ submitting$: new Subject()
82
+ });
83
+ _BaseWallet_reemitSubscriptions.set(this, void 0);
84
+ _BaseWallet_failedFromReemitter$.set(this, void 0);
85
+ _BaseWallet_trackedTxSubmitProvider.set(this, void 0);
86
+ _BaseWallet_addressTracker.set(this, void 0);
87
+ _BaseWallet_publicCredentialsManager.set(this, void 0);
88
+ _BaseWallet_submittingPromises.set(this, {});
89
+ __classPrivateFieldSet(this, _BaseWallet_logger, contextLogger(logger, name), "f");
90
+ __classPrivateFieldSet(this, _BaseWallet_publicCredentialsManager, publicCredentialsManager, "f");
91
+ __classPrivateFieldSet(this, _BaseWallet_trackedTxSubmitProvider, new TrackedTxSubmitProvider(txSubmitProvider), "f");
92
+ this.utxoProvider = new TrackedUtxoProvider(utxoProvider);
93
+ this.networkInfoProvider = new TrackedWalletNetworkInfoProvider(networkInfoProvider);
94
+ this.stakePoolProvider = new TrackedStakePoolProvider(stakePoolProvider);
95
+ this.assetProvider = new TrackedAssetProvider(assetProvider);
96
+ this.handleProvider = handleProvider;
97
+ this.chainHistoryProvider = new TrackedChainHistoryProvider(chainHistoryProvider);
98
+ this.rewardsProvider = new TrackedRewardsProvider(rewardsProvider);
99
+ this.syncStatus = createProviderStatusTracker({
100
+ assetProvider: this.assetProvider,
101
+ chainHistoryProvider: this.chainHistoryProvider,
102
+ logger: contextLogger(__classPrivateFieldGet(this, _BaseWallet_logger, "f"), 'syncStatus'),
103
+ networkInfoProvider: this.networkInfoProvider,
104
+ rewardsProvider: this.rewardsProvider,
105
+ stakePoolProvider: this.stakePoolProvider,
106
+ utxoProvider: this.utxoProvider
107
+ }, { consideredOutOfSyncAfter });
108
+ this.witnesser = witnesser;
109
+ this.fatalError$ = new Subject();
110
+ const onFatalError = this.fatalError$.next.bind(this.fatalError$);
111
+ this.name = name;
112
+ const cancel$ = connectionStatusTracker$.pipe(tap((status) => (status === ConnectionStatus.up ? 'Connection UP' : 'Connection DOWN')), filter((status) => status === ConnectionStatus.down));
113
+ if (isBip32PublicCredentialsManager(__classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f"))) {
114
+ __classPrivateFieldSet(this, _BaseWallet_addressTracker, createAddressTracker({
115
+ addressDiscovery$: coldObservableProvider({
116
+ cancel$,
117
+ onFatalError,
118
+ provider: () => {
119
+ const credManager = __classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f");
120
+ return credManager.addressDiscovery.discover(credManager.bip32Account);
121
+ },
122
+ retryBackoffConfig
123
+ }).pipe(take(1), catchError((error) => {
124
+ __classPrivateFieldGet(this, _BaseWallet_logger, "f").error('Failed to complete the address discovery process', error);
125
+ throw error;
126
+ })),
127
+ logger: __classPrivateFieldGet(this, _BaseWallet_logger, "f"),
128
+ store: stores.addresses
129
+ }), "f");
130
+ this.addresses$ = __classPrivateFieldGet(this, _BaseWallet_addressTracker, "f").addresses$;
131
+ }
132
+ else {
133
+ const credManager = __classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f");
134
+ this.addresses$ = from(this.networkInfoProvider.genesisParameters()).pipe(map(({ networkId }) => networkId), distinctUntilChanged(), map((networkId) => [getScriptAddress(credManager.paymentScript, credManager.stakingScript, networkId)]));
135
+ }
136
+ __classPrivateFieldSet(this, _BaseWallet_tip$, this.tip$ = new TipTracker({
137
+ connectionStatus$: connectionStatusTracker$,
138
+ logger: contextLogger(__classPrivateFieldGet(this, _BaseWallet_logger, "f"), 'tip$'),
139
+ maxPollInterval: maxInterval,
140
+ minPollInterval: pollInterval,
141
+ provider$: coldObservableProvider({
142
+ cancel$,
143
+ onFatalError,
144
+ provider: this.networkInfoProvider.ledgerTip,
145
+ retryBackoffConfig
146
+ }),
147
+ store: stores.tip,
148
+ syncStatus: this.syncStatus
149
+ }), "f");
150
+ const tipBlockHeight$ = distinctBlock(this.tip$);
151
+ this.txSubmitProvider = new SmartTxSubmitProvider({ retryBackoffConfig }, {
152
+ connectionStatus$: connectionStatusTracker$,
153
+ tip$: this.tip$,
154
+ txSubmitProvider: __classPrivateFieldGet(this, _BaseWallet_trackedTxSubmitProvider, "f")
155
+ });
156
+ const eraSummariesTrigger = new BehaviorSubject(void 0);
157
+ this.eraSummaries$ = new PersistentDocumentTrackerSubject(coldObservableProvider({
158
+ cancel$,
159
+ equals: deepEquals,
160
+ onFatalError,
161
+ provider: this.networkInfoProvider.eraSummaries,
162
+ retryBackoffConfig,
163
+ trigger$: eraSummariesTrigger.pipe(tap(() => 'Trigger request era summaries'))
164
+ }), stores.eraSummaries);
165
+ this.currentEpoch$ = currentEpochTracker(this.tip$, this.eraSummaries$.pipe(tap((es) => __classPrivateFieldGet(this, _BaseWallet_logger, "f").debug('Era summaries are', es))));
166
+ this.currentEpoch$.pipe(map(() => void 0)).subscribe(eraSummariesTrigger);
167
+ const epoch$ = this.currentEpoch$.pipe(map((epoch) => epoch.epochNo), tap((epoch) => __classPrivateFieldGet(this, _BaseWallet_logger, "f").debug(`Current epoch is ${epoch}`)));
168
+ this.protocolParameters$ = new PersistentDocumentTrackerSubject(coldObservableProvider({
169
+ cancel$,
170
+ equals: isEqual,
171
+ onFatalError,
172
+ provider: this.networkInfoProvider.protocolParameters,
173
+ retryBackoffConfig,
174
+ trigger$: epoch$
175
+ }), stores.protocolParameters);
176
+ this.genesisParameters$ = new PersistentDocumentTrackerSubject(coldObservableProvider({
177
+ cancel$,
178
+ equals: isEqual,
179
+ onFatalError,
180
+ provider: this.networkInfoProvider.genesisParameters,
181
+ retryBackoffConfig,
182
+ trigger$: epoch$
183
+ }), stores.genesisParameters);
184
+ const addresses$ = this.addresses$.pipe(map((addresses) => addresses.map((groupedAddress) => groupedAddress.address)));
185
+ __classPrivateFieldSet(this, _BaseWallet_failedFromReemitter$, new Subject(), "f");
186
+ this.transactions = createTransactionsTracker({
187
+ addresses$,
188
+ chainHistoryProvider: this.chainHistoryProvider,
189
+ failedFromReemitter$: __classPrivateFieldGet(this, _BaseWallet_failedFromReemitter$, "f"),
190
+ inFlightTransactionsStore: stores.inFlightTransactions,
191
+ logger: contextLogger(__classPrivateFieldGet(this, _BaseWallet_logger, "f"), 'transactions'),
192
+ newTransactions: __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f"),
193
+ onFatalError,
194
+ retryBackoffConfig,
195
+ signedTransactionsStore: stores.signedTransactions,
196
+ tip$: this.tip$,
197
+ transactionsHistoryStore: stores.transactions
198
+ });
199
+ const transactionsReemitter = createTransactionReemitter({
200
+ genesisParameters$: this.genesisParameters$,
201
+ logger: contextLogger(__classPrivateFieldGet(this, _BaseWallet_logger, "f"), 'transactionsReemitter'),
202
+ maxInterval: maxInterval * BLOCK_SLOT_GAP_MULTIPLIER,
203
+ stores,
204
+ tipSlot$: this.tip$.pipe(map((tip) => tip.slot)),
205
+ transactions: this.transactions
206
+ });
207
+ __classPrivateFieldSet(this, _BaseWallet_reemitSubscriptions, new Subscription(), "f");
208
+ __classPrivateFieldGet(this, _BaseWallet_reemitSubscriptions, "f").add(transactionsReemitter.failed$.subscribe(__classPrivateFieldGet(this, _BaseWallet_failedFromReemitter$, "f")));
209
+ __classPrivateFieldGet(this, _BaseWallet_reemitSubscriptions, "f").add(transactionsReemitter.reemit$
210
+ .pipe(mergeMap((tx) => from(this.submitTx(tx, { mightBeAlreadySubmitted: true }))), catchError((err) => {
211
+ __classPrivateFieldGet(this, _BaseWallet_logger, "f").error('Failed to resubmit transaction', err);
212
+ return EMPTY;
213
+ }))
214
+ .subscribe());
215
+ this.utxo = createUtxoTracker({
216
+ addresses$,
217
+ logger: contextLogger(__classPrivateFieldGet(this, _BaseWallet_logger, "f"), 'utxo'),
218
+ onFatalError,
219
+ retryBackoffConfig,
220
+ stores,
221
+ tipBlockHeight$,
222
+ transactionsInFlight$: this.transactions.outgoing.inFlight$,
223
+ utxoProvider: this.utxoProvider
224
+ });
225
+ const eraSummaries$ = distinctEraSummaries(this.eraSummaries$);
226
+ this.delegation = createDelegationTracker({
227
+ epoch$,
228
+ eraSummaries$,
229
+ knownAddresses$: this.addresses$,
230
+ logger: contextLogger(__classPrivateFieldGet(this, _BaseWallet_logger, "f"), 'delegation'),
231
+ onFatalError,
232
+ retryBackoffConfig,
233
+ rewardAccountAddresses$: this.addresses$.pipe(map((addresses) => uniq(addresses.map((groupedAddress) => groupedAddress.rewardAccount)))),
234
+ rewardsTracker: this.rewardsProvider,
235
+ stakePoolProvider: this.stakePoolProvider,
236
+ stores,
237
+ transactionsTracker: this.transactions,
238
+ utxoTracker: this.utxo
239
+ });
240
+ __classPrivateFieldSet(this, _BaseWallet_inputSelector, inputSelector
241
+ ? inputSelector
242
+ : roundRobinRandomImprove({
243
+ changeAddressResolver: new DynamicChangeAddressResolver(this.syncStatus.isSettled$.pipe(filter((isSettled) => isSettled), switchMap(() => this.addresses$)), this.delegation.distribution$, () => firstValueFrom(this.delegation.portfolio$), logger)
244
+ }), "f");
245
+ this.publicStakeKeys$ = isBip32PublicCredentialsManager(__classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f"))
246
+ ? createPublicStakeKeysTracker({
247
+ addresses$: this.addresses$,
248
+ bip32Account: __classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f").bip32Account,
249
+ rewardAccounts$: this.delegation.rewardAccounts$
250
+ })
251
+ : new TrackerSubject(of(new Array()));
252
+ this.balance = createBalanceTracker(this.protocolParameters$, this.utxo, this.delegation);
253
+ this.assetInfo$ = new PersistentDocumentTrackerSubject(createAssetsTracker({
254
+ assetProvider: this.assetProvider,
255
+ logger: contextLogger(__classPrivateFieldGet(this, _BaseWallet_logger, "f"), 'assets$'),
256
+ onFatalError,
257
+ retryBackoffConfig,
258
+ transactionsTracker: this.transactions
259
+ }), stores.assets);
260
+ this.handles$ = this.handleProvider
261
+ ? this.initializeHandles(new PersistentDocumentTrackerSubject(coldObservableProvider({
262
+ cancel$,
263
+ equals: isEqual,
264
+ onFatalError,
265
+ provider: () => this.handleProvider.getPolicyIds(),
266
+ retryBackoffConfig
267
+ }), stores.policyIds))
268
+ : throwError(() => new InvalidConfigurationError('BaseWallet is missing a "handleProvider"'));
269
+ this.util = createWalletUtil({
270
+ protocolParameters$: this.protocolParameters$,
271
+ transactions: this.transactions,
272
+ utxo: this.utxo
273
+ });
274
+ this.getPubDRepKey().catch(() => void 0);
275
+ __classPrivateFieldGet(this, _BaseWallet_logger, "f").debug('Created');
276
+ }
277
+ async getName() {
278
+ return this.name;
279
+ }
280
+ async initializeTx(props) {
281
+ return initializeTx(props, this.getTxBuilderDependencies());
282
+ }
283
+ async finalizeTx({ tx, signingOptions, signingContext, auxiliaryData, isValid, witness }) {
284
+ const knownAddresses = await firstValueFrom(this.addresses$);
285
+ const dRepPublicKey = await this.getPubDRepKey();
286
+ const context = {
287
+ ...signingContext,
288
+ dRepPublicKey,
289
+ knownAddresses,
290
+ txInKeyPathMap: await util.createTxInKeyPathMap(tx.body, knownAddresses, this.util)
291
+ };
292
+ const emptyWitness = { signatures: new Map() };
293
+ const transaction = new Serialization.Transaction(Serialization.TransactionBody.fromCore(tx.body), Serialization.TransactionWitnessSet.fromCore({ ...emptyWitness, ...witness }), auxiliaryData ? Serialization.AuxiliaryData.fromCore(auxiliaryData) : undefined);
294
+ if (isValid !== undefined)
295
+ transaction.setIsValid(isValid);
296
+ const result = await this.witnesser.witness(transaction, context, signingOptions);
297
+ __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f").signed$.next(result);
298
+ return result.tx;
299
+ }
300
+ initializeHandles(handlePolicyIds$) {
301
+ return createHandlesTracker({
302
+ assetInfo$: this.assetInfo$,
303
+ handlePolicyIds$,
304
+ handleProvider: this.handleProvider,
305
+ logger: contextLogger(__classPrivateFieldGet(this, _BaseWallet_logger, "f"), 'handles$'),
306
+ utxo$: this.utxo.total$
307
+ });
308
+ }
309
+ createTxBuilder() {
310
+ return new GenericTxBuilder(this.getTxBuilderDependencies());
311
+ }
312
+ async submitTx(input, options = {}) {
313
+ const outgoingTx = processOutgoingTx(input);
314
+ if (__classPrivateFieldGet(this, _BaseWallet_submittingPromises, "f")[outgoingTx.id]) {
315
+ return __classPrivateFieldGet(this, _BaseWallet_submittingPromises, "f")[outgoingTx.id];
316
+ }
317
+ return (__classPrivateFieldGet(this, _BaseWallet_submittingPromises, "f")[outgoingTx.id] = (async () => {
318
+ try {
319
+ if (options.mightBeAlreadySubmitted || !(await __classPrivateFieldGet(this, _BaseWallet_instances, "m", _BaseWallet_isTxInFlight).call(this, outgoingTx.id))) {
320
+ await __classPrivateFieldGet(this, _BaseWallet_instances, "m", _BaseWallet_submitTx).call(this, outgoingTx, options);
321
+ }
322
+ }
323
+ finally {
324
+ delete __classPrivateFieldGet(this, _BaseWallet_submittingPromises, "f")[outgoingTx.id];
325
+ }
326
+ return outgoingTx.id;
327
+ })());
328
+ }
329
+ sync() {
330
+ __classPrivateFieldGet(this, _BaseWallet_tip$, "f").sync();
331
+ }
332
+ shutdown() {
333
+ this.utxo.shutdown();
334
+ this.transactions.shutdown();
335
+ this.eraSummaries$.complete();
336
+ this.protocolParameters$.complete();
337
+ this.genesisParameters$.complete();
338
+ __classPrivateFieldGet(this, _BaseWallet_tip$, "f").complete();
339
+ __classPrivateFieldGet(this, _BaseWallet_addressTracker, "f")?.shutdown();
340
+ this.assetProvider.stats.shutdown();
341
+ __classPrivateFieldGet(this, _BaseWallet_trackedTxSubmitProvider, "f").stats.shutdown();
342
+ this.networkInfoProvider.stats.shutdown();
343
+ this.stakePoolProvider.stats.shutdown();
344
+ this.utxoProvider.stats.shutdown();
345
+ this.rewardsProvider.stats.shutdown();
346
+ this.chainHistoryProvider.stats.shutdown();
347
+ this.currentEpoch$.complete();
348
+ this.delegation.shutdown();
349
+ this.assetInfo$.complete();
350
+ this.fatalError$.complete();
351
+ this.syncStatus.shutdown();
352
+ __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f").failedToSubmit$.complete();
353
+ __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f").pending$.complete();
354
+ __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f").submitting$.complete();
355
+ __classPrivateFieldGet(this, _BaseWallet_reemitSubscriptions, "f").unsubscribe();
356
+ __classPrivateFieldGet(this, _BaseWallet_failedFromReemitter$, "f").complete();
357
+ this.publicStakeKeys$.complete();
358
+ __classPrivateFieldGet(this, _BaseWallet_logger, "f").debug('Shutdown');
359
+ }
360
+ setInputSelector(selector) {
361
+ __classPrivateFieldSet(this, _BaseWallet_inputSelector, selector, "f");
362
+ }
363
+ getInputSelector() {
364
+ return __classPrivateFieldGet(this, _BaseWallet_inputSelector, "f");
365
+ }
366
+ getTxBuilderDependencies() {
367
+ return {
368
+ bip32Account: isBip32PublicCredentialsManager(__classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f"))
369
+ ? __classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f").bip32Account
370
+ : undefined,
371
+ handleProvider: this.handleProvider,
372
+ inputResolver: this.util,
373
+ inputSelector: __classPrivateFieldGet(this, _BaseWallet_inputSelector, "f"),
374
+ logger: __classPrivateFieldGet(this, _BaseWallet_logger, "f"),
375
+ outputValidator: this.util,
376
+ txBuilderProviders: {
377
+ addresses: {
378
+ add: (...newAddresses) => firstValueFrom(__classPrivateFieldGet(this, _BaseWallet_addressTracker, "f").addAddresses(newAddresses)),
379
+ get: () => firstValueFrom(this.addresses$)
380
+ },
381
+ genesisParameters: () => __classPrivateFieldGet(this, _BaseWallet_instances, "m", _BaseWallet_firstValueFromSettled).call(this, this.genesisParameters$),
382
+ protocolParameters: () => __classPrivateFieldGet(this, _BaseWallet_instances, "m", _BaseWallet_firstValueFromSettled).call(this, this.protocolParameters$),
383
+ rewardAccounts: () => __classPrivateFieldGet(this, _BaseWallet_instances, "m", _BaseWallet_firstValueFromSettled).call(this, this.delegation.rewardAccounts$),
384
+ tip: () => __classPrivateFieldGet(this, _BaseWallet_instances, "m", _BaseWallet_firstValueFromSettled).call(this, this.tip$),
385
+ utxoAvailable: () => __classPrivateFieldGet(this, _BaseWallet_instances, "m", _BaseWallet_firstValueFromSettled).call(this, this.utxo.available$)
386
+ },
387
+ witnesser: this.witnesser
388
+ };
389
+ }
390
+ async signData(props) {
391
+ if (isBip32PublicCredentialsManager(__classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f"))) {
392
+ return cip8.cip30signData({
393
+ knownAddresses: await firstValueFrom(this.addresses$),
394
+ witnesser: this.witnesser,
395
+ ...props
396
+ });
397
+ }
398
+ throw new Error('getPubDRepKey is not supported by script wallets');
399
+ }
400
+ async getPubDRepKey() {
401
+ if (isBip32PublicCredentialsManager(__classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f"))) {
402
+ return (await __classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f").bip32Account.derivePublicKey(util.DREP_KEY_DERIVATION_PATH)).hex();
403
+ }
404
+ return undefined;
405
+ }
406
+ async discoverAddresses() {
407
+ if (isBip32PublicCredentialsManager(__classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f"))) {
408
+ const addresses = await __classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f").addressDiscovery.discover(__classPrivateFieldGet(this, _BaseWallet_publicCredentialsManager, "f").bip32Account);
409
+ const knownAddresses = await firstValueFrom(this.addresses$);
410
+ const newAddresses = addresses.filter(({ address }) => !knownAddresses.some((knownAddr) => knownAddr.address === address));
411
+ await firstValueFrom(__classPrivateFieldGet(this, _BaseWallet_addressTracker, "f").addAddresses(newAddresses));
412
+ return firstValueFrom(this.addresses$);
413
+ }
414
+ return firstValueFrom(this.addresses$);
415
+ }
416
+ async updateWitness({ tx, sender }) {
417
+ return this.finalizeTx({
418
+ auxiliaryData: tx.auxiliaryData,
419
+ signingContext: {
420
+ sender
421
+ },
422
+ tx: { body: tx.body, hash: tx.id },
423
+ witness: tx.witness
424
+ });
425
+ }
426
+ }
427
+ _BaseWallet_inputSelector = new WeakMap(), _BaseWallet_logger = new WeakMap(), _BaseWallet_tip$ = new WeakMap(), _BaseWallet_newTransactions = new WeakMap(), _BaseWallet_reemitSubscriptions = new WeakMap(), _BaseWallet_failedFromReemitter$ = new WeakMap(), _BaseWallet_trackedTxSubmitProvider = new WeakMap(), _BaseWallet_addressTracker = new WeakMap(), _BaseWallet_publicCredentialsManager = new WeakMap(), _BaseWallet_submittingPromises = new WeakMap(), _BaseWallet_instances = new WeakSet(), _BaseWallet_submitTx = async function _BaseWallet_submitTx(outgoingTx, { mightBeAlreadySubmitted } = {}) {
428
+ __classPrivateFieldGet(this, _BaseWallet_logger, "f").debug(`Submitting transaction ${outgoingTx.id}`);
429
+ __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f").submitting$.next(outgoingTx);
430
+ try {
431
+ await this.txSubmitProvider.submitTx({
432
+ context: outgoingTx.context,
433
+ signedTransaction: outgoingTx.cbor
434
+ });
435
+ const { slot: submittedAt } = await firstValueFrom(this.tip$);
436
+ __classPrivateFieldGet(this, _BaseWallet_logger, "f").debug(`Submitted transaction ${outgoingTx.id} at slot ${submittedAt}`);
437
+ __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f").pending$.next(outgoingTx);
438
+ return outgoingTx.id;
439
+ }
440
+ catch (error) {
441
+ if (mightBeAlreadySubmitted &&
442
+ error instanceof ProviderError &&
443
+ (CardanoNodeUtil.isValueNotConservedError(error.innerError) ||
444
+ CardanoNodeUtil.isIncompleteWithdrawalsError(error.innerError))) {
445
+ __classPrivateFieldGet(this, _BaseWallet_logger, "f").debug(`Transaction ${outgoingTx.id} failed with ${error.innerError}, but it appears to be already submitted...`);
446
+ __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f").pending$.next(outgoingTx);
447
+ return outgoingTx.id;
448
+ }
449
+ __classPrivateFieldGet(this, _BaseWallet_newTransactions, "f").failedToSubmit$.next({
450
+ error,
451
+ reason: TransactionFailure.FailedToSubmit,
452
+ ...outgoingTx
453
+ });
454
+ throw error;
455
+ }
456
+ }, _BaseWallet_isTxInFlight = async function _BaseWallet_isTxInFlight(txId) {
457
+ const inFlightTxs = await firstValueFrom(this.transactions.outgoing.inFlight$);
458
+ return inFlightTxs.some((inFlight) => inFlight.id === txId);
459
+ }, _BaseWallet_firstValueFromSettled = function _BaseWallet_firstValueFromSettled(o$) {
460
+ return firstValueFrom(this.syncStatus.isSettled$.pipe(filter((isSettled) => isSettled), switchMap(() => o$)));
461
+ };
462
+ //# sourceMappingURL=BaseWallet.js.map