@cardano-sdk/wallet 0.34.5 → 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.
- package/dist/cjs/{PersonalWallet/PersonalWallet.d.ts → Wallets/BaseWallet.d.ts} +31 -17
- package/dist/cjs/Wallets/BaseWallet.d.ts.map +1 -0
- package/dist/cjs/{PersonalWallet/PersonalWallet.js → Wallets/BaseWallet.js} +171 -132
- package/dist/cjs/Wallets/BaseWallet.js.map +1 -0
- package/dist/cjs/Wallets/index.d.ts +3 -0
- package/dist/cjs/Wallets/index.d.ts.map +1 -0
- package/dist/cjs/{PersonalWallet → Wallets}/index.js +2 -1
- package/dist/cjs/Wallets/index.js.map +1 -0
- package/dist/cjs/Wallets/internals.d.ts +4 -0
- package/dist/cjs/Wallets/internals.d.ts.map +1 -0
- package/dist/cjs/Wallets/internals.js +30 -0
- package/dist/cjs/Wallets/internals.js.map +1 -0
- package/dist/cjs/Wallets/util.d.ts +16 -0
- package/dist/cjs/Wallets/util.d.ts.map +1 -0
- package/dist/cjs/Wallets/util.js +40 -0
- package/dist/cjs/Wallets/util.js.map +1 -0
- package/dist/cjs/cip30.d.ts.map +1 -1
- package/dist/cjs/cip30.js +12 -8
- package/dist/cjs/cip30.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/inMemoryStores/inMemoryWalletStores.d.ts +3 -1
- package/dist/cjs/persistence/inMemoryStores/inMemoryWalletStores.d.ts.map +1 -1
- package/dist/cjs/persistence/inMemoryStores/inMemoryWalletStores.js +5 -1
- package/dist/cjs/persistence/inMemoryStores/inMemoryWalletStores.js.map +1 -1
- package/dist/cjs/persistence/pouchDbStores/pouchDbWalletStores.d.ts +3 -1
- package/dist/cjs/persistence/pouchDbStores/pouchDbWalletStores.d.ts.map +1 -1
- package/dist/cjs/persistence/pouchDbStores/pouchDbWalletStores.js +5 -1
- package/dist/cjs/persistence/pouchDbStores/pouchDbWalletStores.js.map +1 -1
- package/dist/cjs/persistence/types.d.ts +2 -1
- package/dist/cjs/persistence/types.d.ts.map +1 -1
- package/dist/cjs/services/BalanceTracker.d.ts.map +1 -1
- package/dist/cjs/services/BalanceTracker.js +3 -3
- package/dist/cjs/services/BalanceTracker.js.map +1 -1
- package/dist/cjs/services/DelegationTracker/DelegationDistributionTracker.d.ts.map +1 -1
- package/dist/cjs/services/DelegationTracker/DelegationDistributionTracker.js +1 -1
- package/dist/cjs/services/DelegationTracker/DelegationDistributionTracker.js.map +1 -1
- package/dist/cjs/services/DelegationTracker/RewardAccounts.d.ts +3 -3
- package/dist/cjs/services/DelegationTracker/RewardAccounts.d.ts.map +1 -1
- package/dist/cjs/services/DelegationTracker/RewardAccounts.js +12 -12
- package/dist/cjs/services/DelegationTracker/RewardAccounts.js.map +1 -1
- package/dist/cjs/services/PublicStakeKeysTracker.d.ts +2 -2
- package/dist/cjs/services/PublicStakeKeysTracker.d.ts.map +1 -1
- package/dist/cjs/services/PublicStakeKeysTracker.js +3 -3
- package/dist/cjs/services/PublicStakeKeysTracker.js.map +1 -1
- package/dist/cjs/services/TransactionsTracker.d.ts +4 -1
- package/dist/cjs/services/TransactionsTracker.d.ts.map +1 -1
- package/dist/cjs/services/TransactionsTracker.js +39 -2
- package/dist/cjs/services/TransactionsTracker.js.map +1 -1
- package/dist/cjs/services/WalletUtil.d.ts +7 -1
- package/dist/cjs/services/WalletUtil.d.ts.map +1 -1
- package/dist/cjs/services/WalletUtil.js +25 -7
- package/dist/cjs/services/WalletUtil.js.map +1 -1
- package/dist/cjs/services/types.d.ts +3 -3
- package/dist/cjs/services/types.d.ts.map +1 -1
- package/dist/cjs/services/types.js.map +1 -1
- package/dist/cjs/services/util/equals.d.ts +2 -1
- package/dist/cjs/services/util/equals.d.ts.map +1 -1
- package/dist/cjs/services/util/equals.js +4 -1
- package/dist/cjs/services/util/equals.js.map +1 -1
- package/dist/cjs/services/util/index.d.ts +1 -0
- package/dist/cjs/services/util/index.d.ts.map +1 -1
- package/dist/cjs/services/util/index.js +1 -0
- package/dist/cjs/services/util/index.js.map +1 -1
- package/dist/cjs/services/util/newAndStoredMulticast.d.ts +13 -0
- package/dist/cjs/services/util/newAndStoredMulticast.d.ts.map +1 -0
- package/dist/cjs/services/util/newAndStoredMulticast.js +7 -0
- package/dist/cjs/services/util/newAndStoredMulticast.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +8 -5
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/{PersonalWallet/PersonalWallet.d.ts → Wallets/BaseWallet.d.ts} +31 -17
- package/dist/esm/Wallets/BaseWallet.d.ts.map +1 -0
- package/dist/esm/Wallets/BaseWallet.js +462 -0
- package/dist/esm/Wallets/BaseWallet.js.map +1 -0
- package/dist/esm/Wallets/index.d.ts +3 -0
- package/dist/esm/Wallets/index.d.ts.map +1 -0
- package/dist/esm/Wallets/index.js +3 -0
- package/dist/esm/Wallets/index.js.map +1 -0
- package/dist/esm/Wallets/internals.d.ts +4 -0
- package/dist/esm/Wallets/internals.d.ts.map +1 -0
- package/dist/esm/Wallets/internals.js +26 -0
- package/dist/esm/Wallets/internals.js.map +1 -0
- package/dist/esm/Wallets/util.d.ts +16 -0
- package/dist/esm/Wallets/util.d.ts.map +1 -0
- package/dist/esm/Wallets/util.js +35 -0
- package/dist/esm/Wallets/util.js.map +1 -0
- package/dist/esm/cip30.d.ts.map +1 -1
- package/dist/esm/cip30.js +12 -8
- package/dist/esm/cip30.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence/inMemoryStores/inMemoryWalletStores.d.ts +3 -1
- package/dist/esm/persistence/inMemoryStores/inMemoryWalletStores.d.ts.map +1 -1
- package/dist/esm/persistence/inMemoryStores/inMemoryWalletStores.js +3 -0
- package/dist/esm/persistence/inMemoryStores/inMemoryWalletStores.js.map +1 -1
- package/dist/esm/persistence/pouchDbStores/pouchDbWalletStores.d.ts +3 -1
- package/dist/esm/persistence/pouchDbStores/pouchDbWalletStores.d.ts.map +1 -1
- package/dist/esm/persistence/pouchDbStores/pouchDbWalletStores.js +3 -0
- package/dist/esm/persistence/pouchDbStores/pouchDbWalletStores.js.map +1 -1
- package/dist/esm/persistence/types.d.ts +2 -1
- package/dist/esm/persistence/types.d.ts.map +1 -1
- package/dist/esm/services/BalanceTracker.d.ts.map +1 -1
- package/dist/esm/services/BalanceTracker.js +3 -3
- package/dist/esm/services/BalanceTracker.js.map +1 -1
- package/dist/esm/services/DelegationTracker/DelegationDistributionTracker.d.ts.map +1 -1
- package/dist/esm/services/DelegationTracker/DelegationDistributionTracker.js +1 -1
- package/dist/esm/services/DelegationTracker/DelegationDistributionTracker.js.map +1 -1
- package/dist/esm/services/DelegationTracker/RewardAccounts.d.ts +3 -3
- package/dist/esm/services/DelegationTracker/RewardAccounts.d.ts.map +1 -1
- package/dist/esm/services/DelegationTracker/RewardAccounts.js +10 -10
- package/dist/esm/services/DelegationTracker/RewardAccounts.js.map +1 -1
- package/dist/esm/services/PublicStakeKeysTracker.d.ts +2 -2
- package/dist/esm/services/PublicStakeKeysTracker.d.ts.map +1 -1
- package/dist/esm/services/PublicStakeKeysTracker.js +3 -3
- package/dist/esm/services/PublicStakeKeysTracker.js.map +1 -1
- package/dist/esm/services/TransactionsTracker.d.ts +4 -1
- package/dist/esm/services/TransactionsTracker.d.ts.map +1 -1
- package/dist/esm/services/TransactionsTracker.js +41 -4
- package/dist/esm/services/TransactionsTracker.js.map +1 -1
- package/dist/esm/services/WalletUtil.d.ts +7 -1
- package/dist/esm/services/WalletUtil.d.ts.map +1 -1
- package/dist/esm/services/WalletUtil.js +25 -7
- package/dist/esm/services/WalletUtil.js.map +1 -1
- package/dist/esm/services/types.d.ts +3 -3
- package/dist/esm/services/types.d.ts.map +1 -1
- package/dist/esm/services/types.js.map +1 -1
- package/dist/esm/services/util/equals.d.ts +2 -1
- package/dist/esm/services/util/equals.d.ts.map +1 -1
- package/dist/esm/services/util/equals.js +2 -0
- package/dist/esm/services/util/equals.js.map +1 -1
- package/dist/esm/services/util/index.d.ts +1 -0
- package/dist/esm/services/util/index.d.ts.map +1 -1
- package/dist/esm/services/util/index.js +1 -0
- package/dist/esm/services/util/index.js.map +1 -1
- package/dist/esm/services/util/newAndStoredMulticast.d.ts +13 -0
- package/dist/esm/services/util/newAndStoredMulticast.d.ts.map +1 -0
- package/dist/esm/services/util/newAndStoredMulticast.js +3 -0
- package/dist/esm/services/util/newAndStoredMulticast.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +8 -5
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +13 -13
- package/dist/cjs/PersonalWallet/PersonalWallet.d.ts.map +0 -1
- package/dist/cjs/PersonalWallet/PersonalWallet.js.map +0 -1
- package/dist/cjs/PersonalWallet/index.d.ts +0 -2
- package/dist/cjs/PersonalWallet/index.d.ts.map +0 -1
- package/dist/cjs/PersonalWallet/index.js.map +0 -1
- package/dist/esm/PersonalWallet/PersonalWallet.d.ts.map +0 -1
- package/dist/esm/PersonalWallet/PersonalWallet.js +0 -425
- package/dist/esm/PersonalWallet/PersonalWallet.js.map +0 -1
- package/dist/esm/PersonalWallet/index.d.ts +0 -2
- package/dist/esm/PersonalWallet/index.d.ts.map +0 -1
- package/dist/esm/PersonalWallet/index.js +0 -2
- package/dist/esm/PersonalWallet/index.js.map +0 -1
package/dist/cjs/types.d.ts
CHANGED
|
@@ -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,
|
|
6
|
-
import { InitializeTxProps, InitializeTxResult,
|
|
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
|
-
|
|
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 |
|
|
59
|
+
submitTx(tx: Cardano.Tx | TxCBOR | WitnessedTx): Promise<Cardano.TransactionId>;
|
|
57
60
|
createTxBuilder(): TxBuilder;
|
|
58
61
|
discoverAddresses(): Promise<WalletAddress[]>;
|
|
59
62
|
shutdown(): void;
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,EACP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;
|
|
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,
|
|
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
|
|
17
|
+
export interface BaseWalletProps {
|
|
18
18
|
readonly name: string;
|
|
19
19
|
readonly polling?: PollingConfig;
|
|
20
20
|
readonly retryBackoffConfig?: RetryBackoffConfig;
|
|
21
21
|
}
|
|
22
|
-
export
|
|
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
|
|
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
|
|
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 }:
|
|
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,
|
|
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 |
|
|
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
|
-
|
|
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=
|
|
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
|