@cardano-sdk/web-extension 0.18.0 → 0.20.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 (135) hide show
  1. package/dist/cjs/observableWallet/util.d.ts +2 -0
  2. package/dist/cjs/observableWallet/util.d.ts.map +1 -1
  3. package/dist/cjs/observableWallet/util.js +9 -1
  4. package/dist/cjs/observableWallet/util.js.map +1 -1
  5. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  6. package/dist/cjs/walletManager/SignerManager/KeyAgentFactory.d.ts +10 -0
  7. package/dist/cjs/walletManager/SignerManager/KeyAgentFactory.d.ts.map +1 -0
  8. package/dist/cjs/walletManager/SignerManager/KeyAgentFactory.js +13 -0
  9. package/dist/cjs/walletManager/SignerManager/KeyAgentFactory.js.map +1 -0
  10. package/dist/cjs/walletManager/SignerManager/SignerManager.d.ts +21 -0
  11. package/dist/cjs/walletManager/SignerManager/SignerManager.d.ts.map +1 -0
  12. package/dist/cjs/walletManager/SignerManager/SignerManager.js +124 -0
  13. package/dist/cjs/walletManager/SignerManager/SignerManager.js.map +1 -0
  14. package/dist/cjs/walletManager/SignerManager/consumeSignerManagerApi.d.ts +3 -0
  15. package/dist/cjs/walletManager/SignerManager/consumeSignerManagerApi.d.ts.map +1 -0
  16. package/dist/cjs/walletManager/SignerManager/consumeSignerManagerApi.js +11 -0
  17. package/dist/cjs/walletManager/SignerManager/consumeSignerManagerApi.js.map +1 -0
  18. package/dist/cjs/walletManager/SignerManager/exposeSignerManagerApi.d.ts +7 -0
  19. package/dist/cjs/walletManager/SignerManager/exposeSignerManagerApi.d.ts.map +1 -0
  20. package/dist/cjs/walletManager/SignerManager/exposeSignerManagerApi.js +13 -0
  21. package/dist/cjs/walletManager/SignerManager/exposeSignerManagerApi.js.map +1 -0
  22. package/dist/cjs/walletManager/SignerManager/index.d.ts +7 -0
  23. package/dist/cjs/walletManager/SignerManager/index.d.ts.map +1 -0
  24. package/dist/cjs/walletManager/SignerManager/index.js +23 -0
  25. package/dist/cjs/walletManager/SignerManager/index.js.map +1 -0
  26. package/dist/cjs/walletManager/SignerManager/types.d.ts +51 -0
  27. package/dist/cjs/walletManager/SignerManager/types.d.ts.map +1 -0
  28. package/dist/cjs/walletManager/SignerManager/types.js +3 -0
  29. package/dist/cjs/walletManager/SignerManager/types.js.map +1 -0
  30. package/dist/cjs/walletManager/SignerManager/util.d.ts +5 -0
  31. package/dist/cjs/walletManager/SignerManager/util.d.ts.map +1 -0
  32. package/dist/cjs/walletManager/SignerManager/util.js +10 -0
  33. package/dist/cjs/walletManager/SignerManager/util.js.map +1 -0
  34. package/dist/cjs/walletManager/WalletRepository/WalletRepository.d.ts +5 -4
  35. package/dist/cjs/walletManager/WalletRepository/WalletRepository.d.ts.map +1 -1
  36. package/dist/cjs/walletManager/WalletRepository/WalletRepository.js +68 -42
  37. package/dist/cjs/walletManager/WalletRepository/WalletRepository.js.map +1 -1
  38. package/dist/cjs/walletManager/WalletRepository/types.d.ts +10 -32
  39. package/dist/cjs/walletManager/WalletRepository/types.d.ts.map +1 -1
  40. package/dist/cjs/walletManager/WalletRepository/types.js +0 -8
  41. package/dist/cjs/walletManager/WalletRepository/types.js.map +1 -1
  42. package/dist/cjs/walletManager/index.d.ts +3 -2
  43. package/dist/cjs/walletManager/index.d.ts.map +1 -1
  44. package/dist/cjs/walletManager/index.js +3 -2
  45. package/dist/cjs/walletManager/index.js.map +1 -1
  46. package/dist/cjs/walletManager/types.d.ts +43 -0
  47. package/dist/cjs/walletManager/types.d.ts.map +1 -0
  48. package/dist/cjs/walletManager/types.js +11 -0
  49. package/dist/cjs/walletManager/types.js.map +1 -0
  50. package/dist/cjs/walletManager/util.d.ts +10 -4
  51. package/dist/cjs/walletManager/util.d.ts.map +1 -1
  52. package/dist/cjs/walletManager/util.js +23 -10
  53. package/dist/cjs/walletManager/util.js.map +1 -1
  54. package/dist/cjs/walletManager/walletManager.d.ts +34 -0
  55. package/dist/cjs/walletManager/walletManager.d.ts.map +1 -0
  56. package/dist/cjs/walletManager/walletManager.js +176 -0
  57. package/dist/cjs/walletManager/walletManager.js.map +1 -0
  58. package/dist/cjs/walletManager/walletManager.types.d.ts +19 -9
  59. package/dist/cjs/walletManager/walletManager.types.d.ts.map +1 -1
  60. package/dist/esm/observableWallet/util.d.ts +2 -0
  61. package/dist/esm/observableWallet/util.d.ts.map +1 -1
  62. package/dist/esm/observableWallet/util.js +8 -0
  63. package/dist/esm/observableWallet/util.js.map +1 -1
  64. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  65. package/dist/esm/walletManager/SignerManager/KeyAgentFactory.d.ts +10 -0
  66. package/dist/esm/walletManager/SignerManager/KeyAgentFactory.d.ts.map +1 -0
  67. package/dist/esm/walletManager/SignerManager/KeyAgentFactory.js +9 -0
  68. package/dist/esm/walletManager/SignerManager/KeyAgentFactory.js.map +1 -0
  69. package/dist/esm/walletManager/SignerManager/SignerManager.d.ts +21 -0
  70. package/dist/esm/walletManager/SignerManager/SignerManager.d.ts.map +1 -0
  71. package/dist/esm/walletManager/SignerManager/SignerManager.js +120 -0
  72. package/dist/esm/walletManager/SignerManager/SignerManager.js.map +1 -0
  73. package/dist/esm/walletManager/SignerManager/consumeSignerManagerApi.d.ts +3 -0
  74. package/dist/esm/walletManager/SignerManager/consumeSignerManagerApi.d.ts.map +1 -0
  75. package/dist/esm/walletManager/SignerManager/consumeSignerManagerApi.js +7 -0
  76. package/dist/esm/walletManager/SignerManager/consumeSignerManagerApi.js.map +1 -0
  77. package/dist/esm/walletManager/SignerManager/exposeSignerManagerApi.d.ts +7 -0
  78. package/dist/esm/walletManager/SignerManager/exposeSignerManagerApi.d.ts.map +1 -0
  79. package/dist/esm/walletManager/SignerManager/exposeSignerManagerApi.js +9 -0
  80. package/dist/esm/walletManager/SignerManager/exposeSignerManagerApi.js.map +1 -0
  81. package/dist/esm/walletManager/SignerManager/index.d.ts +7 -0
  82. package/dist/esm/walletManager/SignerManager/index.d.ts.map +1 -0
  83. package/dist/esm/walletManager/SignerManager/index.js +7 -0
  84. package/dist/esm/walletManager/SignerManager/index.js.map +1 -0
  85. package/dist/esm/walletManager/SignerManager/types.d.ts +51 -0
  86. package/dist/esm/walletManager/SignerManager/types.d.ts.map +1 -0
  87. package/dist/esm/walletManager/SignerManager/types.js +2 -0
  88. package/dist/esm/walletManager/SignerManager/types.js.map +1 -0
  89. package/dist/esm/walletManager/SignerManager/util.d.ts +5 -0
  90. package/dist/esm/walletManager/SignerManager/util.d.ts.map +1 -0
  91. package/dist/esm/walletManager/SignerManager/util.js +7 -0
  92. package/dist/esm/walletManager/SignerManager/util.js.map +1 -0
  93. package/dist/esm/walletManager/WalletRepository/WalletRepository.d.ts +5 -4
  94. package/dist/esm/walletManager/WalletRepository/WalletRepository.d.ts.map +1 -1
  95. package/dist/esm/walletManager/WalletRepository/WalletRepository.js +70 -44
  96. package/dist/esm/walletManager/WalletRepository/WalletRepository.js.map +1 -1
  97. package/dist/esm/walletManager/WalletRepository/types.d.ts +10 -32
  98. package/dist/esm/walletManager/WalletRepository/types.d.ts.map +1 -1
  99. package/dist/esm/walletManager/WalletRepository/types.js +1 -7
  100. package/dist/esm/walletManager/WalletRepository/types.js.map +1 -1
  101. package/dist/esm/walletManager/index.d.ts +3 -2
  102. package/dist/esm/walletManager/index.d.ts.map +1 -1
  103. package/dist/esm/walletManager/index.js +3 -2
  104. package/dist/esm/walletManager/index.js.map +1 -1
  105. package/dist/esm/walletManager/types.d.ts +43 -0
  106. package/dist/esm/walletManager/types.d.ts.map +1 -0
  107. package/dist/esm/walletManager/types.js +8 -0
  108. package/dist/esm/walletManager/types.js.map +1 -0
  109. package/dist/esm/walletManager/util.d.ts +10 -4
  110. package/dist/esm/walletManager/util.d.ts.map +1 -1
  111. package/dist/esm/walletManager/util.js +18 -9
  112. package/dist/esm/walletManager/util.js.map +1 -1
  113. package/dist/esm/walletManager/walletManager.d.ts +34 -0
  114. package/dist/esm/walletManager/walletManager.d.ts.map +1 -0
  115. package/dist/esm/walletManager/walletManager.js +171 -0
  116. package/dist/esm/walletManager/walletManager.js.map +1 -0
  117. package/dist/esm/walletManager/walletManager.types.d.ts +19 -9
  118. package/dist/esm/walletManager/walletManager.types.d.ts.map +1 -1
  119. package/package.json +12 -10
  120. package/dist/cjs/walletManager/walletManagerUi.d.ts +0 -17
  121. package/dist/cjs/walletManager/walletManagerUi.d.ts.map +0 -1
  122. package/dist/cjs/walletManager/walletManagerUi.js +0 -67
  123. package/dist/cjs/walletManager/walletManagerUi.js.map +0 -1
  124. package/dist/cjs/walletManager/walletManagerWorker.d.ts +0 -21
  125. package/dist/cjs/walletManager/walletManagerWorker.d.ts.map +0 -1
  126. package/dist/cjs/walletManager/walletManagerWorker.js +0 -114
  127. package/dist/cjs/walletManager/walletManagerWorker.js.map +0 -1
  128. package/dist/esm/walletManager/walletManagerUi.d.ts +0 -17
  129. package/dist/esm/walletManager/walletManagerUi.d.ts.map +0 -1
  130. package/dist/esm/walletManager/walletManagerUi.js +0 -63
  131. package/dist/esm/walletManager/walletManagerUi.js.map +0 -1
  132. package/dist/esm/walletManager/walletManagerWorker.d.ts +0 -21
  133. package/dist/esm/walletManager/walletManagerWorker.d.ts.map +0 -1
  134. package/dist/esm/walletManager/walletManagerWorker.js +0 -110
  135. package/dist/esm/walletManager/walletManagerWorker.js.map +0 -1
@@ -0,0 +1,10 @@
1
+ import { InMemoryKeyAgent, InMemoryKeyAgentProps, KeyAgentDependencies } from '@cardano-sdk/key-management';
2
+ import { LedgerKeyAgent, LedgerKeyAgentProps } from '@cardano-sdk/hardware-ledger';
3
+ import { TrezorKeyAgent, TrezorKeyAgentProps } from '@cardano-sdk/hardware-trezor';
4
+ export declare const createKeyAgentFactory: (dependencies: KeyAgentDependencies) => {
5
+ InMemory: (props: InMemoryKeyAgentProps) => InMemoryKeyAgent;
6
+ Ledger: (props: LedgerKeyAgentProps) => LedgerKeyAgent;
7
+ Trezor: (props: TrezorKeyAgentProps) => TrezorKeyAgent;
8
+ };
9
+ export declare type KeyAgentFactory = ReturnType<typeof createKeyAgentFactory>;
10
+ //# sourceMappingURL=KeyAgentFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyAgentFactory.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/KeyAgentFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnF,eAAO,MAAM,qBAAqB,iBAAkB,oBAAoB;sBACpD,qBAAqB;oBACvB,mBAAmB;oBACnB,mBAAmB;CACnC,CAAC;AAEH,oBAAY,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { InMemoryKeyAgent } from '@cardano-sdk/key-management';
2
+ import { LedgerKeyAgent } from '@cardano-sdk/hardware-ledger';
3
+ import { TrezorKeyAgent } from '@cardano-sdk/hardware-trezor';
4
+ export const createKeyAgentFactory = (dependencies) => ({
5
+ InMemory: (props) => new InMemoryKeyAgent(props, dependencies),
6
+ Ledger: (props) => new LedgerKeyAgent(props, dependencies),
7
+ Trezor: (props) => new TrezorKeyAgent(props, dependencies)
8
+ });
9
+ //# sourceMappingURL=KeyAgentFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyAgentFactory.js","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/KeyAgentFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA+C,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAuB,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAuB,MAAM,8BAA8B,CAAC;AAEnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAkC,EAAE,EAAE,CAAC,CAAC;IAC5E,QAAQ,EAAE,CAAC,KAA4B,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC;IACrF,MAAM,EAAE,CAAC,KAA0B,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC;IAC/E,MAAM,EAAE,CAAC,KAA0B,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC;CAChF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { SignBlobResult, TrezorConfig } from '@cardano-sdk/key-management';
3
+ import { KeyAgentFactory } from './KeyAgentFactory';
4
+ import { RequestContext, SignDataProps, SignDataRequest, SignTransactionProps, SignerManagerConfirmationApi, SignerManagerSignApi, TransactionWitnessRequest } from './types';
5
+ import { Subject } from 'rxjs';
6
+ export declare type HardwareKeyAgentOptions = TrezorConfig;
7
+ export declare type SignerManagerProps = {
8
+ hwOptions: HardwareKeyAgentOptions;
9
+ };
10
+ export declare type SignerManagerDependencies = {
11
+ keyAgentFactory: KeyAgentFactory;
12
+ };
13
+ export declare class SignerManager<WalletMetadata extends {}> implements SignerManagerConfirmationApi<WalletMetadata>, SignerManagerSignApi<WalletMetadata> {
14
+ #private;
15
+ readonly transactionWitnessRequest$: Subject<TransactionWitnessRequest<WalletMetadata>>;
16
+ readonly signDataRequest$: Subject<SignDataRequest<WalletMetadata>>;
17
+ constructor(props: SignerManagerProps, { keyAgentFactory }: SignerManagerDependencies);
18
+ signTransaction({ tx, signContext, options }: SignTransactionProps, requestContext: RequestContext<WalletMetadata>): Promise<Cardano.Signatures>;
19
+ signData(props: SignDataProps, requestContext: RequestContext<WalletMetadata>): Promise<SignBlobResult>;
20
+ }
21
+ //# sourceMappingURL=SignerManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignerManager.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/SignerManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAY,cAAc,EAAE,YAAY,EAAU,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAEL,cAAc,EACd,aAAa,EACb,eAAe,EAEf,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,oBAAY,uBAAuB,GAAG,YAAY,CAAC;AAEnD,oBAAY,kBAAkB,GAAG;IAC/B,SAAS,EAAE,uBAAuB,CAAC;CACpC,CAAC;AAEF,oBAAY,yBAAyB,GAAG;IACtC,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAuBF,qBAAa,aAAa,CAAC,cAAc,SAAS,EAAE,CAClD,YAAW,4BAA4B,CAAC,cAAc,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC;;IAE7F,QAAQ,CAAC,0BAA0B,qDAA4D;IAC/F,QAAQ,CAAC,gBAAgB,2CAAkD;gBAI/D,KAAK,EAAE,kBAAkB,EAAE,EAAE,eAAe,EAAE,EAAE,yBAAyB;IAK/E,eAAe,CACnB,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,oBAAoB,EAClD,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,GAC7C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAsBxB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CA6F9G"}
@@ -0,0 +1,120 @@
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 _SignerManager_instances, _SignerManager_hwOptions, _SignerManager_keyAgentFactory, _SignerManager_signRequest;
13
+ import { Serialization } from '@cardano-sdk/core';
14
+ import { WalletType } from '../types';
15
+ import { errors } from '@cardano-sdk/key-management';
16
+ import { Subject } from 'rxjs';
17
+ const clearPassphrase = (passphrase) => {
18
+ for (let i = 0; i < passphrase.length; i++) {
19
+ passphrase[i] = 0;
20
+ }
21
+ };
22
+ const bubbleResolveReject = async (action, resolve, reject) => {
23
+ try {
24
+ const result = action();
25
+ resolve(result);
26
+ return result;
27
+ }
28
+ catch (error) {
29
+ reject(error);
30
+ throw error;
31
+ }
32
+ };
33
+ export class SignerManager {
34
+ constructor(props, { keyAgentFactory }) {
35
+ _SignerManager_instances.add(this);
36
+ this.transactionWitnessRequest$ = new Subject();
37
+ this.signDataRequest$ = new Subject();
38
+ _SignerManager_hwOptions.set(this, void 0);
39
+ _SignerManager_keyAgentFactory.set(this, void 0);
40
+ __classPrivateFieldSet(this, _SignerManager_hwOptions, props.hwOptions, "f");
41
+ __classPrivateFieldSet(this, _SignerManager_keyAgentFactory, keyAgentFactory, "f");
42
+ }
43
+ async signTransaction({ tx, signContext, options }, requestContext) {
44
+ const transaction = Serialization.Transaction.fromCbor(tx);
45
+ return __classPrivateFieldGet(this, _SignerManager_instances, "m", _SignerManager_signRequest).call(this, this.transactionWitnessRequest$, {
46
+ requestContext,
47
+ signContext,
48
+ transaction,
49
+ walletType: requestContext.wallet.type
50
+ }, (keyAgent) => keyAgent.signTransaction({
51
+ body: transaction.body().toCore(),
52
+ hash: transaction.getId()
53
+ }, signContext, options));
54
+ }
55
+ async signData(props, requestContext) {
56
+ return __classPrivateFieldGet(this, _SignerManager_instances, "m", _SignerManager_signRequest).call(this, this.signDataRequest$, {
57
+ ...props,
58
+ requestContext,
59
+ walletType: requestContext.wallet.type
60
+ }, (keyAgent) => keyAgent.signBlob(props.derivationPath, props.blob));
61
+ }
62
+ }
63
+ _SignerManager_hwOptions = new WeakMap(), _SignerManager_keyAgentFactory = new WeakMap(), _SignerManager_instances = new WeakSet(), _SignerManager_signRequest = function _SignerManager_signRequest(emitter$, request, sign) {
64
+ return new Promise((resolve, reject) => {
65
+ if (!emitter$.observed) {
66
+ return reject(new errors.AuthenticationError('Internal error: signDataRequest$ not observed'));
67
+ }
68
+ const account = request.requestContext.wallet.accounts.find(({ accountIndex }) => accountIndex === request.requestContext.accountIndex);
69
+ if (!account) {
70
+ return reject(new errors.ProofGenerationError(`Account not found: ${request.requestContext.accountIndex}`));
71
+ }
72
+ const commonRequestProps = {
73
+ ...request,
74
+ reject: async (reason) => reject(new errors.AuthenticationError(reason))
75
+ };
76
+ emitter$.next(request.walletType === WalletType.InMemory
77
+ ? {
78
+ ...commonRequestProps,
79
+ sign: async (passphrase) => bubbleResolveReject(async () => {
80
+ const wallet = request.requestContext.wallet;
81
+ try {
82
+ const result = await sign(__classPrivateFieldGet(this, _SignerManager_keyAgentFactory, "f").InMemory({
83
+ accountIndex: account.accountIndex,
84
+ chainId: request.requestContext.chainId,
85
+ encryptedRootPrivateKeyBytes: [
86
+ ...Buffer.from(wallet.encryptedSecrets.rootPrivateKeyBytes, 'hex')
87
+ ],
88
+ extendedAccountPublicKey: wallet.extendedAccountPublicKey,
89
+ getPassphrase: async () => passphrase
90
+ }));
91
+ clearPassphrase(passphrase);
92
+ return result;
93
+ }
94
+ catch (error) {
95
+ clearPassphrase(passphrase);
96
+ throw error;
97
+ }
98
+ }, resolve, reject),
99
+ walletType: request.walletType
100
+ }
101
+ : {
102
+ ...commonRequestProps,
103
+ sign: async () => bubbleResolveReject(async () => sign(request.walletType === WalletType.Ledger
104
+ ? __classPrivateFieldGet(this, _SignerManager_keyAgentFactory, "f").Ledger({
105
+ accountIndex: request.requestContext.accountIndex,
106
+ chainId: request.requestContext.chainId,
107
+ communicationType: __classPrivateFieldGet(this, _SignerManager_hwOptions, "f").communicationType,
108
+ extendedAccountPublicKey: request.requestContext.wallet.extendedAccountPublicKey
109
+ })
110
+ : __classPrivateFieldGet(this, _SignerManager_keyAgentFactory, "f").Trezor({
111
+ accountIndex: request.requestContext.accountIndex,
112
+ chainId: request.requestContext.chainId,
113
+ extendedAccountPublicKey: request.requestContext.wallet.extendedAccountPublicKey,
114
+ trezorConfig: __classPrivateFieldGet(this, _SignerManager_hwOptions, "f")
115
+ })), resolve, reject),
116
+ walletType: request.walletType
117
+ });
118
+ });
119
+ };
120
+ //# sourceMappingURL=SignerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignerManager.js","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/SignerManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { MessengerDependencies } from '../../messaging';
2
+ export declare const consumeSignerManagerApi: (dependencies: MessengerDependencies) => import("./types").SignerManagerSignApi<any> & import("@cardano-sdk/util").Shutdown;
3
+ //# sourceMappingURL=consumeSignerManagerApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumeSignerManagerApi.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/consumeSignerManagerApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAoB,MAAM,iBAAiB,CAAC;AAG1E,eAAO,MAAM,uBAAuB,iBAAkB,qBAAqB,uFAOxE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { consumeRemoteApi } from '../../messaging';
2
+ import { signerManagerApiChannel, signerManagerApiProperties } from './util';
3
+ export const consumeSignerManagerApi = (dependencies) => consumeRemoteApi({
4
+ baseChannel: signerManagerApiChannel,
5
+ properties: signerManagerApiProperties
6
+ }, dependencies);
7
+ //# sourceMappingURL=consumeSignerManagerApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumeSignerManagerApi.js","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/consumeSignerManagerApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAmC,EAAE,EAAE,CAC7E,gBAAgB,CACd;IACE,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE,0BAA0B;CACvC,EACD,YAAY,CACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { MessengerDependencies } from '../../messaging';
2
+ import { SignerManagerSignApi } from './types';
3
+ export interface ExposeSignerManagerProps {
4
+ signerManager: SignerManagerSignApi<any>;
5
+ }
6
+ export declare const exposeSignerManagerApi: ({ signerManager }: ExposeSignerManagerProps, dependencies: MessengerDependencies) => import("@cardano-sdk/util").Shutdown;
7
+ //# sourceMappingURL=exposeSignerManagerApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposeSignerManagerApi.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/exposeSignerManagerApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAa,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAI/C,MAAM,WAAW,wBAAwB;IAEvC,aAAa,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC;CAC1C;AAED,eAAO,MAAM,sBAAsB,sBACd,wBAAwB,gBAC7B,qBAAqB,yCASlC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { exposeApi } from '../../messaging';
2
+ import { of } from 'rxjs';
3
+ import { signerManagerApiChannel, signerManagerApiProperties } from './util';
4
+ export const exposeSignerManagerApi = ({ signerManager }, dependencies) => exposeApi({
5
+ api$: of(signerManager),
6
+ baseChannel: signerManagerApiChannel,
7
+ properties: signerManagerApiProperties
8
+ }, dependencies);
9
+ //# sourceMappingURL=exposeSignerManagerApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposeSignerManagerApi.js","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/exposeSignerManagerApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AAO7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,EAAE,aAAa,EAA4B,EAC3C,YAAmC,EACnC,EAAE,CACF,SAAS,CACP;IACE,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;IACvB,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE,0BAA0B;CACvC,EACD,YAAY,CACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './SignerManager';
3
+ export * from './KeyAgentFactory';
4
+ export * from './util';
5
+ export * from './exposeSignerManagerApi';
6
+ export * from './consumeSignerManagerApi';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './SignerManager';
3
+ export * from './KeyAgentFactory';
4
+ export * from './util';
5
+ export * from './exposeSignerManagerApi';
6
+ export * from './consumeSignerManagerApi';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { AccountKeyDerivationPath, MessageSender, SignBlobResult, SignTransactionContext, SignTransactionOptions } from '@cardano-sdk/key-management';
2
+ import { AnyBip32Wallet, WalletType } from '../types';
3
+ import { Cardano, Serialization, TxCBOR } from '@cardano-sdk/core';
4
+ import { HexBlob } from '@cardano-sdk/util';
5
+ import { Observable } from 'rxjs';
6
+ export declare type RequestContext<WalletMetadata extends {}> = {
7
+ wallet: AnyBip32Wallet<WalletMetadata>;
8
+ accountIndex: number;
9
+ chainId: Cardano.ChainId;
10
+ };
11
+ export declare type RequestBase<WalletMetadata extends {}> = {
12
+ requestContext: RequestContext<WalletMetadata>;
13
+ reject(reason: string): Promise<void>;
14
+ };
15
+ declare type SignRequestInMemory<R> = {
16
+ walletType: WalletType.InMemory;
17
+ sign(passphrase: Uint8Array): Promise<R>;
18
+ };
19
+ declare type SignRequestHardware<R> = {
20
+ walletType: WalletType.Trezor | WalletType.Ledger;
21
+ sign(): Promise<R>;
22
+ };
23
+ export declare type SignRequest<R> = SignRequestHardware<R> | SignRequestInMemory<R>;
24
+ export declare type TransactionWitnessRequest<WalletMetadata extends {}> = RequestBase<WalletMetadata> & {
25
+ transaction: Serialization.Transaction;
26
+ signContext: SignTransactionContext;
27
+ } & SignRequest<Cardano.Signatures>;
28
+ export declare type SignDataContext = {
29
+ sender?: MessageSender;
30
+ };
31
+ export declare type SignDataProps = {
32
+ derivationPath: AccountKeyDerivationPath;
33
+ blob: HexBlob;
34
+ signContext: SignDataContext;
35
+ };
36
+ export declare type SignDataRequest<WalletMetadata extends {}> = RequestBase<WalletMetadata> & SignDataProps & SignRequest<SignBlobResult>;
37
+ export declare type SignTransactionProps = {
38
+ tx: TxCBOR;
39
+ signContext: SignTransactionContext;
40
+ options?: SignTransactionOptions;
41
+ };
42
+ export interface SignerManagerConfirmationApi<WalletMetadata extends {}> {
43
+ transactionWitnessRequest$: Observable<TransactionWitnessRequest<WalletMetadata>>;
44
+ signDataRequest$: Observable<SignDataRequest<WalletMetadata>>;
45
+ }
46
+ export interface SignerManagerSignApi<WalletMetadata extends {}> {
47
+ signTransaction(props: SignTransactionProps, requestContext: RequestContext<WalletMetadata>): Promise<Cardano.Signatures>;
48
+ signData(props: SignDataProps, requestContext: RequestContext<WalletMetadata>): Promise<SignBlobResult>;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,oBAAY,cAAc,CAAC,cAAc,SAAS,EAAE,IAAI;IACtD,MAAM,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;CAC1B,CAAC;AAEF,oBAAY,WAAW,CAAC,cAAc,SAAS,EAAE,IAAI;IACnD,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AAEF,aAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC;IAChC,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,aAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAElD,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF,oBAAY,WAAW,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE7E,oBAAY,yBAAyB,CAAC,cAAc,SAAS,EAAE,IAAI,WAAW,CAAC,cAAc,CAAC,GAAG;IAC/F,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC;IACvC,WAAW,EAAE,sBAAsB,CAAC;CACrC,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAEpC,oBAAY,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAEzD,oBAAY,aAAa,GAAG;IAC1B,cAAc,EAAE,wBAAwB,CAAC;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,oBAAY,eAAe,CAAC,cAAc,SAAS,EAAE,IAAI,WAAW,CAAC,cAAc,CAAC,GAClF,aAAa,GACb,WAAW,CAAC,cAAc,CAAC,CAAC;AAE9B,oBAAY,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,sBAAsB,CAAC;IACpC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,4BAA4B,CAAC,cAAc,SAAS,EAAE;IACrE,0BAA0B,EAAE,UAAU,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC,CAAC;IAClF,gBAAgB,EAAE,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,oBAAoB,CAAC,cAAc,SAAS,EAAE;IAC7D,eAAe,CACb,KAAK,EAAE,oBAAoB,EAC3B,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,GAC7C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACzG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { RemoteApiProperties } from '../../messaging';
2
+ import { SignerManagerSignApi } from './types';
3
+ export declare const signerManagerApiChannel = "signerManager";
4
+ export declare const signerManagerApiProperties: RemoteApiProperties<SignerManagerSignApi<any>>;
5
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAyB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAGvD,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAGrF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { RemoteApiPropertyType } from '../../messaging';
2
+ export const signerManagerApiChannel = 'signerManager';
3
+ export const signerManagerApiProperties = {
4
+ signData: RemoteApiPropertyType.MethodReturningPromise,
5
+ signTransaction: RemoteApiPropertyType.MethodReturningPromise
6
+ };
7
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/walletManager/SignerManager/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAGvD,MAAM,CAAC,MAAM,0BAA0B,GAAmD;IACxF,QAAQ,EAAE,qBAAqB,CAAC,sBAAsB;IACtD,eAAe,EAAE,qBAAqB,CAAC,sBAAsB;CAC9D,CAAC"}
@@ -1,4 +1,5 @@
1
- import { AccountId, AddAccountProps, AddWalletProps, AnyWallet, UpdateMetadataProps, WalletId, WalletRepositoryApi } from './types';
1
+ import { AddAccountProps, AddWalletProps, RemoveAccountProps, UpdateMetadataProps, WalletRepositoryApi } from './types';
2
+ import { AnyWallet, WalletId } from '../types';
2
3
  import { Logger } from 'ts-log';
3
4
  import { Observable } from 'rxjs';
4
5
  import { storage } from '@cardano-sdk/wallet';
@@ -11,9 +12,9 @@ export declare class WalletRepository<AccountMetadata extends {}> implements Wal
11
12
  readonly wallets$: Observable<AnyWallet<AccountMetadata>[]>;
12
13
  constructor({ logger, store }: WalletRepositoryDependencies<AccountMetadata>);
13
14
  addWallet(props: AddWalletProps<AccountMetadata>): Promise<WalletId>;
14
- addAccount({ walletId, accountIndex, metadata }: AddAccountProps<AccountMetadata>): Promise<AccountId>;
15
- updateMetadata<ID extends AccountId | WalletId>({ target, metadata }: UpdateMetadataProps<AccountMetadata, ID>): Promise<ID>;
16
- removeAccount(accountId: AccountId): Promise<AccountId>;
15
+ addAccount(props: AddAccountProps<AccountMetadata>): Promise<AddAccountProps<AccountMetadata>>;
16
+ updateMetadata(props: UpdateMetadataProps<AccountMetadata>): Promise<UpdateMetadataProps<AccountMetadata>>;
17
+ removeAccount(props: RemoveAccountProps): Promise<RemoveAccountProps>;
17
18
  removeWallet(walletId: WalletId): Promise<WalletId>;
18
19
  }
19
20
  //# sourceMappingURL=WalletRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WalletRepository.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/WalletRepository/WalletRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,SAAS,EAET,mBAAmB,EACnB,QAAQ,EACR,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAsD,MAAM,MAAM,CAAC;AAItF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,MAAM,WAAW,4BAA4B,CAAC,eAAe,SAAS,EAAE;IACtE,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AAmBD,qBAAa,gBAAgB,CAAC,eAAe,SAAS,EAAE,CAAE,YAAW,mBAAmB,CAAC,eAAe,CAAC;;IAGvG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAEhD,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,4BAA4B,CAAC,eAAe,CAAC;IAMtE,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsB1E,UAAU,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAqCtG,cAAc,CAAC,EAAE,SAAS,SAAS,GAAG,QAAQ,EAAE,EAC9C,MAAM,EACN,QAAQ,EACT,EAAE,mBAAmB,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;IAmCzD,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAqBvD,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;CAepD"}
1
+ {"version":3,"file":"WalletRepository.d.ts","sourceRoot":"","sources":["../../../../src/walletManager/WalletRepository/WalletRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACxH,OAAO,EAAE,SAAS,EAAgB,QAAQ,EAAc,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAA4D,MAAM,MAAM,CAAC;AAI5F,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,MAAM,WAAW,4BAA4B,CAAC,eAAe,SAAS,EAAE;IACtE,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AA0BD,qBAAa,gBAAgB,CAAC,eAAe,SAAS,EAAE,CAAE,YAAW,mBAAmB,CAAC,eAAe,CAAC;;IAGvG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAEhD,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,4BAA4B,CAAC,eAAe,CAAC;IActE,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsC1E,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAoC9F,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAuC1G,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgCrE,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;CAuBpD"}
@@ -9,31 +9,35 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
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
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _WalletRepository_logger, _WalletRepository_store;
13
- import { WalletType } from './types';
14
- import { Bip32PublicKey, Hash28ByteBase16 } from '@cardano-sdk/crypto';
15
- import { defer, firstValueFrom, map, shareReplay, switchMap } from 'rxjs';
16
- import { Serialization } from '@cardano-sdk/core';
12
+ var _WalletRepository_instances, _WalletRepository_logger, _WalletRepository_store, _WalletRepository_getWallets;
13
+ import { WalletType } from '../types';
14
+ import { defer, firstValueFrom, map, shareReplay, switchMap, take } from 'rxjs';
17
15
  import { WalletConflictError } from '../errors';
18
- import { contextLogger, isNotNil } from '@cardano-sdk/util';
16
+ import { contextLogger } from '@cardano-sdk/util';
17
+ import { getWalletId } from '../util';
19
18
  const cloneSplice = (array, start, deleteCount, ...items) => [
20
19
  ...array.slice(0, start),
21
20
  ...items,
22
21
  ...array.slice(start + deleteCount)
23
22
  ];
24
- const findAccount = (wallets, accountId) => wallets
25
- .map((wallet, walletIndex) => {
26
- if (wallet.type === WalletType.Script)
23
+ const findAccount = (wallets, walletId, accountIndex) => {
24
+ const walletIdx = wallets.findIndex((w) => w.walletId === walletId);
25
+ const wallet = wallets[walletIdx];
26
+ if (!wallet || wallet.type === WalletType.Script)
27
27
  return;
28
- const accountIndex = wallet.accounts.findIndex((a) => a.accountId === accountId);
29
- if (accountIndex < 0)
28
+ const accountIdx = wallet.accounts.findIndex((acc) => acc.accountIndex === accountIndex);
29
+ if (accountIdx < 0)
30
30
  return;
31
- const account = wallet.accounts[accountIndex];
32
- return { account, accountIndex, wallet, walletIndex };
33
- })
34
- .find(isNotNil);
31
+ return {
32
+ account: wallet.accounts[accountIdx],
33
+ accountIdx,
34
+ wallet,
35
+ walletIdx
36
+ };
37
+ };
35
38
  export class WalletRepository {
36
39
  constructor({ logger, store }) {
40
+ _WalletRepository_instances.add(this);
37
41
  _WalletRepository_logger.set(this, void 0);
38
42
  _WalletRepository_store.set(this, void 0);
39
43
  __classPrivateFieldSet(this, _WalletRepository_store, store, "f");
@@ -42,22 +46,30 @@ export class WalletRepository {
42
46
  }
43
47
  async addWallet(props) {
44
48
  __classPrivateFieldGet(this, _WalletRepository_logger, "f").debug('addWallet', props.type);
45
- const walletId = props.type === WalletType.Script
46
- ? Serialization.Script.fromCore(props.script).hash()
47
- : Hash28ByteBase16(await Bip32PublicKey.fromHex(props.extendedAccountPublicKey).hash());
48
- return firstValueFrom(this.wallets$.pipe(switchMap((wallets) => {
49
+ const walletId = await getWalletId(props.type === WalletType.Script ? props.script : props.extendedAccountPublicKey);
50
+ return firstValueFrom(__classPrivateFieldGet(this, _WalletRepository_instances, "m", _WalletRepository_getWallets).call(this).pipe(switchMap((wallets) => {
49
51
  if (wallets.some((wallet) => wallet.walletId === walletId)) {
50
52
  throw new WalletConflictError(`Wallet '${walletId}' already exists`);
51
53
  }
54
+ if (props.type === WalletType.Script) {
55
+ for (const ownSigner of props.ownSigners) {
56
+ if (!wallets.some((wallet) => wallet.walletId === ownSigner.walletId &&
57
+ wallet.type !== WalletType.Script &&
58
+ wallet.accounts.some((account) => account.accountIndex === ownSigner.accountIndex))) {
59
+ throw new WalletConflictError(`Wallet or account does not exist: ${ownSigner.walletId}/${ownSigner.accountIndex}`);
60
+ }
61
+ }
62
+ }
52
63
  return __classPrivateFieldGet(this, _WalletRepository_store, "f").setAll([
53
64
  ...wallets,
54
65
  props.type === WalletType.Script ? { ...props, walletId } : { ...props, accounts: [], walletId }
55
66
  ]);
56
67
  }), map(() => walletId)));
57
68
  }
58
- addAccount({ walletId, accountIndex, metadata }) {
69
+ addAccount(props) {
70
+ const { walletId, accountIndex, metadata } = props;
59
71
  __classPrivateFieldGet(this, _WalletRepository_logger, "f").debug('addAccount', walletId, accountIndex, metadata);
60
- return firstValueFrom(this.wallets$.pipe(switchMap((wallets) => {
72
+ return firstValueFrom(__classPrivateFieldGet(this, _WalletRepository_instances, "m", _WalletRepository_getWallets).call(this).pipe(switchMap((wallets) => {
61
73
  const walletIndex = wallets.findIndex((w) => w.walletId === walletId);
62
74
  if (walletIndex < 0) {
63
75
  throw new WalletConflictError(`Wallet '${walletId}' does not exist`);
@@ -69,68 +81,82 @@ export class WalletRepository {
69
81
  if (wallet.accounts.some((acc) => acc.accountIndex === accountIndex)) {
70
82
  throw new WalletConflictError(`Account #${accountIndex} for wallet '${walletId}' already exists`);
71
83
  }
72
- const accountId = `${walletId}-${accountIndex}`;
73
84
  return __classPrivateFieldGet(this, _WalletRepository_store, "f")
74
85
  .setAll(cloneSplice(wallets, walletIndex, 1, {
75
86
  ...wallet,
76
87
  accounts: [
77
88
  ...wallet.accounts,
78
89
  {
79
- accountId,
80
90
  accountIndex,
81
91
  metadata
82
92
  }
83
93
  ]
84
94
  }))
85
- .pipe(map(() => accountId));
95
+ .pipe(map(() => props));
86
96
  })));
87
97
  }
88
- updateMetadata({ target, metadata }) {
89
- __classPrivateFieldGet(this, _WalletRepository_logger, "f").debug('updateMetadata', target, metadata);
90
- return firstValueFrom(this.wallets$.pipe(switchMap((wallets) => {
91
- const bip32Account = findAccount(wallets, target);
92
- if (bip32Account) {
93
- return __classPrivateFieldGet(this, _WalletRepository_store, "f").setAll(cloneSplice(wallets, bip32Account.walletIndex, 1, {
98
+ updateMetadata(props) {
99
+ const { walletId, accountIndex, metadata } = props;
100
+ __classPrivateFieldGet(this, _WalletRepository_logger, "f").debug('updateMetadata', walletId, accountIndex, metadata);
101
+ return firstValueFrom(__classPrivateFieldGet(this, _WalletRepository_instances, "m", _WalletRepository_getWallets).call(this).pipe(switchMap((wallets) => {
102
+ if (typeof accountIndex !== 'undefined') {
103
+ const bip32Account = findAccount(wallets, walletId, accountIndex);
104
+ if (!bip32Account) {
105
+ throw new WalletConflictError(`Account not found: ${walletId}/${accountIndex}`);
106
+ }
107
+ return __classPrivateFieldGet(this, _WalletRepository_store, "f").setAll(cloneSplice(wallets, bip32Account.walletIdx, 1, {
94
108
  ...bip32Account.wallet,
95
- accounts: cloneSplice(bip32Account.wallet.accounts, bip32Account.accountIndex, 1, {
109
+ accounts: cloneSplice(bip32Account.wallet.accounts, bip32Account.accountIdx, 1, {
96
110
  ...bip32Account.account,
97
111
  metadata
98
112
  })
99
113
  }));
100
114
  }
101
- const scriptWalletIndex = wallets.findIndex((wallet) => wallet.walletId === target && wallet.type === WalletType.Script);
115
+ const scriptWalletIndex = wallets.findIndex((wallet) => wallet.walletId === walletId && wallet.type === WalletType.Script);
102
116
  if (scriptWalletIndex >= 0) {
103
117
  return __classPrivateFieldGet(this, _WalletRepository_store, "f").setAll(cloneSplice(wallets, scriptWalletIndex, 1, {
104
118
  ...wallets[scriptWalletIndex],
105
119
  metadata
106
120
  }));
107
121
  }
108
- throw new WalletConflictError(`BIP32 AccountId or script WalletId not found: ${target}`);
109
- }), map(() => target)));
122
+ throw new WalletConflictError(`Script wallet not found: ${walletId}`);
123
+ }), map(() => props)));
110
124
  }
111
- removeAccount(accountId) {
112
- __classPrivateFieldGet(this, _WalletRepository_logger, "f").debug('removeAccount', accountId);
113
- return firstValueFrom(this.wallets$.pipe(switchMap((wallets) => {
114
- const bip32Account = findAccount(wallets, accountId);
125
+ removeAccount(props) {
126
+ const { walletId, accountIndex } = props;
127
+ __classPrivateFieldGet(this, _WalletRepository_logger, "f").debug('removeAccount', walletId, accountIndex);
128
+ return firstValueFrom(__classPrivateFieldGet(this, _WalletRepository_instances, "m", _WalletRepository_getWallets).call(this).pipe(switchMap((wallets) => {
129
+ const bip32Account = findAccount(wallets, walletId, accountIndex);
115
130
  if (!bip32Account) {
116
- throw new WalletConflictError(`Account '${accountId}' does not exist`);
131
+ throw new WalletConflictError(`Account '${walletId}/${accountIndex}' does not exist`);
117
132
  }
118
- return __classPrivateFieldGet(this, _WalletRepository_store, "f").setAll(cloneSplice(wallets, bip32Account.walletIndex, 1, {
133
+ const dependentWallet = wallets.find((wallet) => wallet.type === WalletType.Script &&
134
+ wallet.ownSigners.some((signer) => signer.walletId === walletId && signer.accountIndex === accountIndex));
135
+ if (dependentWallet) {
136
+ throw new WalletConflictError(`Wallet '${dependentWallet.walletId}' depends on account '${walletId}/${accountIndex}'`);
137
+ }
138
+ return __classPrivateFieldGet(this, _WalletRepository_store, "f").setAll(cloneSplice(wallets, bip32Account.walletIdx, 1, {
119
139
  ...bip32Account.wallet,
120
- accounts: cloneSplice(bip32Account.wallet.accounts, bip32Account.accountIndex, 1)
140
+ accounts: cloneSplice(bip32Account.wallet.accounts, bip32Account.accountIdx, 1)
121
141
  }));
122
- }), map(() => accountId)));
142
+ }), map(() => props)));
123
143
  }
124
144
  removeWallet(walletId) {
125
145
  __classPrivateFieldGet(this, _WalletRepository_logger, "f").debug('removeWallet', walletId);
126
- return firstValueFrom(this.wallets$.pipe(switchMap((wallets) => {
146
+ return firstValueFrom(__classPrivateFieldGet(this, _WalletRepository_instances, "m", _WalletRepository_getWallets).call(this).pipe(take(1), switchMap((wallets) => {
127
147
  const walletIndex = wallets.findIndex((w) => w.walletId === walletId);
128
148
  if (walletIndex < 0) {
129
149
  throw new WalletConflictError(`Wallet '${walletId}' does not exist`);
130
150
  }
151
+ const dependentWallet = wallets.find((wallet) => wallet.type === WalletType.Script && wallet.ownSigners.some((signer) => signer.walletId === walletId));
152
+ if (dependentWallet) {
153
+ throw new WalletConflictError(`Wallet '${dependentWallet.walletId}' depends on wallet '${walletId}'`);
154
+ }
131
155
  return __classPrivateFieldGet(this, _WalletRepository_store, "f").setAll(cloneSplice(wallets, walletIndex, 1));
132
156
  }), map(() => walletId)));
133
157
  }
134
158
  }
135
- _WalletRepository_logger = new WeakMap(), _WalletRepository_store = new WeakMap();
159
+ _WalletRepository_logger = new WeakMap(), _WalletRepository_store = new WeakMap(), _WalletRepository_instances = new WeakSet(), _WalletRepository_getWallets = function _WalletRepository_getWallets() {
160
+ return this.wallets$.pipe(take(1));
161
+ };
136
162
  //# sourceMappingURL=WalletRepository.js.map