@bsv/wallet-toolbox 1.1.25 → 1.1.26

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 (123) hide show
  1. package/docs/client.md +78 -2313
  2. package/docs/wallet.md +78 -2313
  3. package/out/src/Wallet.d.ts +1 -6
  4. package/out/src/Wallet.d.ts.map +1 -1
  5. package/out/src/Wallet.js +2 -29
  6. package/out/src/Wallet.js.map +1 -1
  7. package/out/src/index.all.d.ts +0 -9
  8. package/out/src/index.all.d.ts.map +1 -1
  9. package/out/src/index.all.js +0 -9
  10. package/out/src/index.all.js.map +1 -1
  11. package/out/src/index.client.d.ts +0 -9
  12. package/out/src/index.client.d.ts.map +1 -1
  13. package/out/src/index.client.js +0 -9
  14. package/out/src/index.client.js.map +1 -1
  15. package/out/tsconfig.all.tsbuildinfo +1 -1
  16. package/package.json +3 -3
  17. package/src/Wallet.ts +3 -47
  18. package/src/index.all.ts +0 -9
  19. package/src/index.client.ts +0 -9
  20. package/out/src/CWIStyleWalletManager.d.ts +0 -411
  21. package/out/src/CWIStyleWalletManager.d.ts.map +0 -1
  22. package/out/src/CWIStyleWalletManager.js +0 -1131
  23. package/out/src/CWIStyleWalletManager.js.map +0 -1
  24. package/out/src/SetupClient.d.ts +0 -249
  25. package/out/src/SetupClient.d.ts.map +0 -1
  26. package/out/src/SetupClient.js +0 -252
  27. package/out/src/SetupClient.js.map +0 -1
  28. package/out/src/SimpleWalletManager.d.ts +0 -169
  29. package/out/src/SimpleWalletManager.d.ts.map +0 -1
  30. package/out/src/SimpleWalletManager.js +0 -315
  31. package/out/src/SimpleWalletManager.js.map +0 -1
  32. package/out/src/WalletAuthenticationManager.d.ts +0 -33
  33. package/out/src/WalletAuthenticationManager.d.ts.map +0 -1
  34. package/out/src/WalletAuthenticationManager.js +0 -107
  35. package/out/src/WalletAuthenticationManager.js.map +0 -1
  36. package/out/src/WalletPermissionsManager.d.ts +0 -575
  37. package/out/src/WalletPermissionsManager.d.ts.map +0 -1
  38. package/out/src/WalletPermissionsManager.js +0 -1807
  39. package/out/src/WalletPermissionsManager.js.map +0 -1
  40. package/out/src/WalletSettingsManager.d.ts +0 -59
  41. package/out/src/WalletSettingsManager.d.ts.map +0 -1
  42. package/out/src/WalletSettingsManager.js +0 -168
  43. package/out/src/WalletSettingsManager.js.map +0 -1
  44. package/out/src/__tests/CWIStyleWalletManager.test.d.ts +0 -2
  45. package/out/src/__tests/CWIStyleWalletManager.test.d.ts.map +0 -1
  46. package/out/src/__tests/CWIStyleWalletManager.test.js +0 -472
  47. package/out/src/__tests/CWIStyleWalletManager.test.js.map +0 -1
  48. package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts +0 -2
  49. package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts.map +0 -1
  50. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js +0 -239
  51. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js.map +0 -1
  52. package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts +0 -2
  53. package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts.map +0 -1
  54. package/out/src/__tests/WalletPermissionsManager.checks.test.js +0 -644
  55. package/out/src/__tests/WalletPermissionsManager.checks.test.js.map +0 -1
  56. package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts +0 -2
  57. package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts.map +0 -1
  58. package/out/src/__tests/WalletPermissionsManager.encryption.test.js +0 -295
  59. package/out/src/__tests/WalletPermissionsManager.encryption.test.js.map +0 -1
  60. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts +0 -82
  61. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts.map +0 -1
  62. package/out/src/__tests/WalletPermissionsManager.fixtures.js +0 -260
  63. package/out/src/__tests/WalletPermissionsManager.fixtures.js.map +0 -1
  64. package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts +0 -2
  65. package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts.map +0 -1
  66. package/out/src/__tests/WalletPermissionsManager.flows.test.js +0 -389
  67. package/out/src/__tests/WalletPermissionsManager.flows.test.js.map +0 -1
  68. package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts +0 -2
  69. package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts.map +0 -1
  70. package/out/src/__tests/WalletPermissionsManager.initialization.test.js +0 -227
  71. package/out/src/__tests/WalletPermissionsManager.initialization.test.js.map +0 -1
  72. package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts +0 -2
  73. package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts.map +0 -1
  74. package/out/src/__tests/WalletPermissionsManager.proxying.test.js +0 -566
  75. package/out/src/__tests/WalletPermissionsManager.proxying.test.js.map +0 -1
  76. package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts +0 -2
  77. package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts.map +0 -1
  78. package/out/src/__tests/WalletPermissionsManager.tokens.test.js +0 -460
  79. package/out/src/__tests/WalletPermissionsManager.tokens.test.js.map +0 -1
  80. package/out/src/utility/identityUtils.d.ts +0 -31
  81. package/out/src/utility/identityUtils.d.ts.map +0 -1
  82. package/out/src/utility/identityUtils.js +0 -114
  83. package/out/src/utility/identityUtils.js.map +0 -1
  84. package/out/src/wab-client/WABClient.d.ts +0 -38
  85. package/out/src/wab-client/WABClient.d.ts.map +0 -1
  86. package/out/src/wab-client/WABClient.js +0 -95
  87. package/out/src/wab-client/WABClient.js.map +0 -1
  88. package/out/src/wab-client/__tests/WABClient.test.d.ts +0 -2
  89. package/out/src/wab-client/__tests/WABClient.test.d.ts.map +0 -1
  90. package/out/src/wab-client/__tests/WABClient.test.js +0 -47
  91. package/out/src/wab-client/__tests/WABClient.test.js.map +0 -1
  92. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +0 -34
  93. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +0 -1
  94. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +0 -16
  95. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +0 -1
  96. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +0 -7
  97. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +0 -1
  98. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +0 -40
  99. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +0 -1
  100. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +0 -28
  101. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +0 -1
  102. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +0 -73
  103. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +0 -1
  104. package/src/CWIStyleWalletManager.ts +0 -1891
  105. package/src/SimpleWalletManager.ts +0 -553
  106. package/src/WalletAuthenticationManager.ts +0 -183
  107. package/src/WalletPermissionsManager.ts +0 -2639
  108. package/src/WalletSettingsManager.ts +0 -241
  109. package/src/__tests/CWIStyleWalletManager.test.ts +0 -709
  110. package/src/__tests/WalletPermissionsManager.callbacks.test.ts +0 -328
  111. package/src/__tests/WalletPermissionsManager.checks.test.ts +0 -857
  112. package/src/__tests/WalletPermissionsManager.encryption.test.ts +0 -407
  113. package/src/__tests/WalletPermissionsManager.fixtures.ts +0 -283
  114. package/src/__tests/WalletPermissionsManager.flows.test.ts +0 -490
  115. package/src/__tests/WalletPermissionsManager.initialization.test.ts +0 -333
  116. package/src/__tests/WalletPermissionsManager.proxying.test.ts +0 -753
  117. package/src/__tests/WalletPermissionsManager.tokens.test.ts +0 -584
  118. package/src/utility/identityUtils.ts +0 -170
  119. package/src/wab-client/WABClient.ts +0 -103
  120. package/src/wab-client/__tests/WABClient.test.ts +0 -58
  121. package/src/wab-client/auth-method-interactors/AuthMethodInteractor.ts +0 -47
  122. package/src/wab-client/auth-method-interactors/PersonaIDInteractor.ts +0 -45
  123. package/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.ts +0 -82
@@ -1,169 +0,0 @@
1
- import { WalletInterface, OriginatorDomainNameStringUnder250Bytes, GetPublicKeyArgs, GetPublicKeyResult, RevealCounterpartyKeyLinkageArgs, RevealCounterpartyKeyLinkageResult, RevealSpecificKeyLinkageArgs, RevealSpecificKeyLinkageResult, WalletEncryptArgs, WalletEncryptResult, WalletDecryptArgs, WalletDecryptResult, CreateHmacArgs, CreateHmacResult, VerifyHmacArgs, VerifyHmacResult, CreateSignatureArgs, CreateSignatureResult, VerifySignatureArgs, VerifySignatureResult, CreateActionArgs, CreateActionResult, SignActionArgs, SignActionResult, AbortActionArgs, AbortActionResult, ListActionsArgs, ListActionsResult, InternalizeActionArgs, InternalizeActionResult, ListOutputsArgs, ListOutputsResult, RelinquishOutputArgs, RelinquishOutputResult, AcquireCertificateArgs, AcquireCertificateResult, ListCertificatesArgs, ListCertificatesResult, ProveCertificateArgs, ProveCertificateResult, RelinquishCertificateArgs, RelinquishCertificateResult, DiscoverByIdentityKeyArgs, DiscoverByAttributesArgs, DiscoverCertificatesResult, AuthenticatedResult, GetHeightResult, GetHeaderArgs, GetHeaderResult, GetNetworkResult, GetVersionResult } from '@bsv/sdk';
2
- import { PrivilegedKeyManager } from './sdk/PrivilegedKeyManager';
3
- /**
4
- * SimpleWalletManager is a slimmed-down wallet manager that only requires two things to authenticate:
5
- * 1. A primary key (32 bytes), which represents the core secret for the wallet.
6
- * 2. A privileged key manager (an instance of `PrivilegedKeyManager`), responsible for
7
- * more sensitive operations.
8
- *
9
- * Once both pieces are provided (or if a snapshot containing the primary key is loaded,
10
- * and the privileged key manager is provided separately), the wallet becomes authenticated.
11
- *
12
- * After authentication, calls to the standard wallet methods (`createAction`, `signAction`, etc.)
13
- * are proxied to an underlying `WalletInterface` instance returned by a user-supplied `walletBuilder`.
14
- *
15
- * **Important**: This manager does not handle user password flows, recovery, or on-chain
16
- * token management. It is a straightforward wrapper that ensures the user has provided
17
- * both their main secret (primary key) and a privileged key manager before allowing usage.
18
- *
19
- * It also prevents calls from the special "admin originator" from being used externally.
20
- * (Any call that tries to use the admin originator as its originator, other than the manager itself,
21
- * will result in an error, ensuring that only internal operations can use that originator.)
22
- *
23
- * The manager can also save and load snapshots of its state. In this simplified version,
24
- * the snapshot only contains the primary key. If you load a snapshot, you still need to
25
- * re-provide the privileged key manager to complete authentication.
26
- */
27
- export declare class SimpleWalletManager implements WalletInterface {
28
- /**
29
- * Whether the user is currently authenticated (meaning both the primary key
30
- * and privileged key manager have been provided).
31
- */
32
- authenticated: boolean;
33
- /**
34
- * The domain name of the administrative originator (wallet operator / vendor, or your own).
35
- */
36
- private adminOriginator;
37
- /**
38
- * A function that, given the user's primary key and privileged key manager,
39
- * returns a new `WalletInterface` instance that handles the actual signing,
40
- * encryption, transaction building, etc.
41
- */
42
- private walletBuilder;
43
- /**
44
- * The underlying wallet instance that is built once authenticated.
45
- */
46
- private underlying?;
47
- /**
48
- * The privileged key manager, responsible for sensitive tasks.
49
- */
50
- private underlyingPrivilegedKeyManager?;
51
- /**
52
- * The primary key (32 bytes) that unlocks the wallet functionality.
53
- */
54
- private primaryKey?;
55
- /**
56
- * Constructs a new `SimpleWalletManager`.
57
- *
58
- * @param adminOriginator The domain name of the administrative originator.
59
- * @param walletBuilder A function that, given a primary key and privileged key manager,
60
- * returns a fully functional `WalletInterface`.
61
- * @param stateSnapshot If provided, a previously saved snapshot of the wallet's state.
62
- * If the snapshot contains a primary key, it will be loaded immediately
63
- * (though you will still need to provide a privileged key manager to authenticate).
64
- */
65
- constructor(adminOriginator: OriginatorDomainNameStringUnder250Bytes, walletBuilder: (primaryKey: number[], privilegedKeyManager: PrivilegedKeyManager) => Promise<WalletInterface>, stateSnapshot?: number[]);
66
- /**
67
- * Provides the primary key (32 bytes) needed for authentication.
68
- * If a privileged key manager has already been provided, we attempt to build
69
- * the underlying wallet. Otherwise, we wait until the manager is also provided.
70
- *
71
- * @param key A 32-byte primary key.
72
- */
73
- providePrimaryKey(key: number[]): Promise<void>;
74
- /**
75
- * Provides the privileged key manager needed for sensitive tasks.
76
- * If a primary key has already been provided (or loaded from a snapshot),
77
- * we attempt to build the underlying wallet. Otherwise, we wait until the key is provided.
78
- *
79
- * @param manager An instance of `PrivilegedKeyManager`.
80
- */
81
- providePrivilegedKeyManager(manager: PrivilegedKeyManager): Promise<void>;
82
- /**
83
- * Internal method that checks if we have both the primary key and privileged manager.
84
- * If so, we build the underlying wallet instance and become authenticated.
85
- */
86
- private tryBuildUnderlying;
87
- /**
88
- * Destroys the underlying wallet, returning to a default (unauthenticated) state.
89
- *
90
- * This clears the primary key, the privileged key manager, and the `authenticated` flag.
91
- */
92
- destroy(): void;
93
- /**
94
- * Saves the current wallet state (including just the primary key)
95
- * into an encrypted snapshot. This snapshot can be stored and later
96
- * passed to `loadSnapshot` to restore the primary key (and partially authenticate).
97
- *
98
- * **Note**: The snapshot does NOT include the privileged key manager.
99
- * You must still provide that separately after loading the snapshot
100
- * in order to complete authentication.
101
- *
102
- * @remarks
103
- * Storing the snapshot (which contains the primary key) provides a significant
104
- * portion of the wallet's secret material. It must be protected carefully.
105
- *
106
- * @returns A byte array representing the encrypted snapshot.
107
- * @throws {Error} if no primary key is currently set.
108
- */
109
- saveSnapshot(): number[];
110
- /**
111
- * Loads a previously saved state snapshot (produced by `saveSnapshot`).
112
- * This will restore the primary key but will **not** restore the privileged key manager
113
- * (that must be provided separately to complete authentication).
114
- *
115
- * @param snapshot A byte array that was previously returned by `saveSnapshot`.
116
- * @throws {Error} If the snapshot format is invalid or decryption fails.
117
- */
118
- loadSnapshot(snapshot: number[]): Promise<void>;
119
- /**
120
- * Returns whether the user is currently authenticated (the wallet has a primary key
121
- * and a privileged key manager). If not authenticated, an error is thrown.
122
- *
123
- * @param _ Not used in this manager.
124
- * @param originator The originator domain, which must not be the admin originator.
125
- * @throws If not authenticated, or if the originator is the admin.
126
- */
127
- isAuthenticated(_: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AuthenticatedResult>;
128
- /**
129
- * Blocks until the user is authenticated (by providing primaryKey and privileged manager).
130
- * If not authenticated yet, it waits until that occurs.
131
- *
132
- * @param _ Not used in this manager.
133
- * @param originator The originator domain, which must not be the admin originator.
134
- * @throws If the originator is the admin.
135
- */
136
- waitForAuthentication(_: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AuthenticatedResult>;
137
- getPublicKey(args: GetPublicKeyArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetPublicKeyResult>;
138
- revealCounterpartyKeyLinkage(args: RevealCounterpartyKeyLinkageArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<RevealCounterpartyKeyLinkageResult>;
139
- revealSpecificKeyLinkage(args: RevealSpecificKeyLinkageArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<RevealSpecificKeyLinkageResult>;
140
- encrypt(args: WalletEncryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletEncryptResult>;
141
- decrypt(args: WalletDecryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletDecryptResult>;
142
- createHmac(args: CreateHmacArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<CreateHmacResult>;
143
- verifyHmac(args: VerifyHmacArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<VerifyHmacResult>;
144
- createSignature(args: CreateSignatureArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<CreateSignatureResult>;
145
- verifySignature(args: VerifySignatureArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<VerifySignatureResult>;
146
- createAction(args: CreateActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<CreateActionResult>;
147
- signAction(args: SignActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<SignActionResult>;
148
- abortAction(args: AbortActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AbortActionResult>;
149
- listActions(args: ListActionsArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListActionsResult>;
150
- internalizeAction(args: InternalizeActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<InternalizeActionResult>;
151
- listOutputs(args: ListOutputsArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListOutputsResult>;
152
- relinquishOutput(args: RelinquishOutputArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<RelinquishOutputResult>;
153
- acquireCertificate(args: AcquireCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AcquireCertificateResult>;
154
- listCertificates(args: ListCertificatesArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListCertificatesResult>;
155
- proveCertificate(args: ProveCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ProveCertificateResult>;
156
- relinquishCertificate(args: RelinquishCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<RelinquishCertificateResult>;
157
- discoverByIdentityKey(args: DiscoverByIdentityKeyArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>;
158
- discoverByAttributes(args: DiscoverByAttributesArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>;
159
- getHeight(_: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetHeightResult>;
160
- getHeaderForHeight(args: GetHeaderArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetHeaderResult>;
161
- getNetwork(_: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetNetworkResult>;
162
- getVersion(_: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetVersionResult>;
163
- /**
164
- * A small helper that throws if the user is not authenticated or if the
165
- * provided originator is the admin (which is not permitted externally).
166
- */
167
- private ensureCanCall;
168
- }
169
- //# sourceMappingURL=SimpleWalletManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SimpleWalletManager.d.ts","sourceRoot":"","sources":["../../src/SimpleWalletManager.ts"],"names":[],"mappings":"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"}
@@ -1,315 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SimpleWalletManager = void 0;
4
- const sdk_1 = require("@bsv/sdk");
5
- /**
6
- * SimpleWalletManager is a slimmed-down wallet manager that only requires two things to authenticate:
7
- * 1. A primary key (32 bytes), which represents the core secret for the wallet.
8
- * 2. A privileged key manager (an instance of `PrivilegedKeyManager`), responsible for
9
- * more sensitive operations.
10
- *
11
- * Once both pieces are provided (or if a snapshot containing the primary key is loaded,
12
- * and the privileged key manager is provided separately), the wallet becomes authenticated.
13
- *
14
- * After authentication, calls to the standard wallet methods (`createAction`, `signAction`, etc.)
15
- * are proxied to an underlying `WalletInterface` instance returned by a user-supplied `walletBuilder`.
16
- *
17
- * **Important**: This manager does not handle user password flows, recovery, or on-chain
18
- * token management. It is a straightforward wrapper that ensures the user has provided
19
- * both their main secret (primary key) and a privileged key manager before allowing usage.
20
- *
21
- * It also prevents calls from the special "admin originator" from being used externally.
22
- * (Any call that tries to use the admin originator as its originator, other than the manager itself,
23
- * will result in an error, ensuring that only internal operations can use that originator.)
24
- *
25
- * The manager can also save and load snapshots of its state. In this simplified version,
26
- * the snapshot only contains the primary key. If you load a snapshot, you still need to
27
- * re-provide the privileged key manager to complete authentication.
28
- */
29
- class SimpleWalletManager {
30
- /**
31
- * Constructs a new `SimpleWalletManager`.
32
- *
33
- * @param adminOriginator The domain name of the administrative originator.
34
- * @param walletBuilder A function that, given a primary key and privileged key manager,
35
- * returns a fully functional `WalletInterface`.
36
- * @param stateSnapshot If provided, a previously saved snapshot of the wallet's state.
37
- * If the snapshot contains a primary key, it will be loaded immediately
38
- * (though you will still need to provide a privileged key manager to authenticate).
39
- */
40
- constructor(adminOriginator, walletBuilder, stateSnapshot) {
41
- this.authenticated = false;
42
- this.adminOriginator = adminOriginator;
43
- this.walletBuilder = walletBuilder;
44
- if (stateSnapshot) {
45
- this.loadSnapshot(stateSnapshot);
46
- }
47
- }
48
- /**
49
- * Provides the primary key (32 bytes) needed for authentication.
50
- * If a privileged key manager has already been provided, we attempt to build
51
- * the underlying wallet. Otherwise, we wait until the manager is also provided.
52
- *
53
- * @param key A 32-byte primary key.
54
- */
55
- async providePrimaryKey(key) {
56
- this.primaryKey = key;
57
- await this.tryBuildUnderlying();
58
- }
59
- /**
60
- * Provides the privileged key manager needed for sensitive tasks.
61
- * If a primary key has already been provided (or loaded from a snapshot),
62
- * we attempt to build the underlying wallet. Otherwise, we wait until the key is provided.
63
- *
64
- * @param manager An instance of `PrivilegedKeyManager`.
65
- */
66
- async providePrivilegedKeyManager(manager) {
67
- this.underlyingPrivilegedKeyManager = manager;
68
- await this.tryBuildUnderlying();
69
- }
70
- /**
71
- * Internal method that checks if we have both the primary key and privileged manager.
72
- * If so, we build the underlying wallet instance and become authenticated.
73
- */
74
- async tryBuildUnderlying() {
75
- if (this.authenticated) {
76
- throw new Error('The user is already authenticated.');
77
- }
78
- if (!this.primaryKey || !this.underlyingPrivilegedKeyManager) {
79
- return;
80
- }
81
- // Build the underlying wallet:
82
- this.underlying = await this.walletBuilder(this.primaryKey, this.underlyingPrivilegedKeyManager);
83
- this.authenticated = true;
84
- }
85
- /**
86
- * Destroys the underlying wallet, returning to a default (unauthenticated) state.
87
- *
88
- * This clears the primary key, the privileged key manager, and the `authenticated` flag.
89
- */
90
- destroy() {
91
- this.underlying = undefined;
92
- this.underlyingPrivilegedKeyManager = undefined;
93
- this.authenticated = false;
94
- this.primaryKey = undefined;
95
- }
96
- /**
97
- * Saves the current wallet state (including just the primary key)
98
- * into an encrypted snapshot. This snapshot can be stored and later
99
- * passed to `loadSnapshot` to restore the primary key (and partially authenticate).
100
- *
101
- * **Note**: The snapshot does NOT include the privileged key manager.
102
- * You must still provide that separately after loading the snapshot
103
- * in order to complete authentication.
104
- *
105
- * @remarks
106
- * Storing the snapshot (which contains the primary key) provides a significant
107
- * portion of the wallet's secret material. It must be protected carefully.
108
- *
109
- * @returns A byte array representing the encrypted snapshot.
110
- * @throws {Error} if no primary key is currently set.
111
- */
112
- saveSnapshot() {
113
- if (!this.primaryKey) {
114
- throw new Error('No primary key is set; cannot save snapshot.');
115
- }
116
- // Generate a random snapshot encryption key:
117
- const snapshotKey = (0, sdk_1.Random)(32);
118
- // For this simple wallet manager, we only store the primary key.
119
- const writer = new sdk_1.Utils.Writer();
120
- // Write a 1-byte version:
121
- writer.writeUInt8(1);
122
- // Write a varint length and then the primary key bytes:
123
- writer.writeVarIntNum(this.primaryKey.length);
124
- writer.write(this.primaryKey);
125
- const snapshotPreimage = writer.toArray();
126
- // Encrypt the data with the snapshotKey:
127
- const encryptedPayload = new sdk_1.SymmetricKey(snapshotKey).encrypt(snapshotPreimage);
128
- // Build the final snapshot: [ snapshotKey (32 bytes) + encryptedPayload ]
129
- const snapshotWriter = new sdk_1.Utils.Writer();
130
- snapshotWriter.write(snapshotKey);
131
- snapshotWriter.write(encryptedPayload);
132
- return snapshotWriter.toArray();
133
- }
134
- /**
135
- * Loads a previously saved state snapshot (produced by `saveSnapshot`).
136
- * This will restore the primary key but will **not** restore the privileged key manager
137
- * (that must be provided separately to complete authentication).
138
- *
139
- * @param snapshot A byte array that was previously returned by `saveSnapshot`.
140
- * @throws {Error} If the snapshot format is invalid or decryption fails.
141
- */
142
- async loadSnapshot(snapshot) {
143
- try {
144
- const reader = new sdk_1.Utils.Reader(snapshot);
145
- // First 32 bytes is the snapshotKey:
146
- const snapshotKey = reader.read(32);
147
- // The rest is the encrypted payload:
148
- const encryptedPayload = reader.read();
149
- // Decrypt the payload with the snapshotKey:
150
- const decrypted = new sdk_1.SymmetricKey(snapshotKey).decrypt(encryptedPayload);
151
- const payloadReader = new sdk_1.Utils.Reader(decrypted);
152
- // Check version:
153
- const version = payloadReader.readUInt8();
154
- if (version !== 1) {
155
- throw new Error(`Unsupported snapshot version: ${version}`);
156
- }
157
- // Read the varint length and the primary key:
158
- const pkLength = payloadReader.readVarIntNum();
159
- const pk = payloadReader.read(pkLength);
160
- this.primaryKey = pk;
161
- // Attempt to build the underlying wallet if the privileged manager is already provided:
162
- await this.tryBuildUnderlying();
163
- }
164
- catch (error) {
165
- throw new Error(`Failed to load snapshot: ${error.message}`);
166
- }
167
- }
168
- /**
169
- * Returns whether the user is currently authenticated (the wallet has a primary key
170
- * and a privileged key manager). If not authenticated, an error is thrown.
171
- *
172
- * @param _ Not used in this manager.
173
- * @param originator The originator domain, which must not be the admin originator.
174
- * @throws If not authenticated, or if the originator is the admin.
175
- */
176
- async isAuthenticated(_, originator) {
177
- this.ensureCanCall(originator);
178
- return { authenticated: true };
179
- }
180
- /**
181
- * Blocks until the user is authenticated (by providing primaryKey and privileged manager).
182
- * If not authenticated yet, it waits until that occurs.
183
- *
184
- * @param _ Not used in this manager.
185
- * @param originator The originator domain, which must not be the admin originator.
186
- * @throws If the originator is the admin.
187
- */
188
- async waitForAuthentication(_, originator) {
189
- if (originator === this.adminOriginator) {
190
- throw new Error('External applications cannot use the admin originator.');
191
- }
192
- while (!this.authenticated) {
193
- await new Promise(resolve => setTimeout(resolve, 100));
194
- }
195
- return { authenticated: true };
196
- }
197
- async getPublicKey(args, originator) {
198
- this.ensureCanCall(originator);
199
- return this.underlying.getPublicKey(args, originator);
200
- }
201
- async revealCounterpartyKeyLinkage(args, originator) {
202
- this.ensureCanCall(originator);
203
- return this.underlying.revealCounterpartyKeyLinkage(args, originator);
204
- }
205
- async revealSpecificKeyLinkage(args, originator) {
206
- this.ensureCanCall(originator);
207
- return this.underlying.revealSpecificKeyLinkage(args, originator);
208
- }
209
- async encrypt(args, originator) {
210
- this.ensureCanCall(originator);
211
- return this.underlying.encrypt(args, originator);
212
- }
213
- async decrypt(args, originator) {
214
- this.ensureCanCall(originator);
215
- return this.underlying.decrypt(args, originator);
216
- }
217
- async createHmac(args, originator) {
218
- this.ensureCanCall(originator);
219
- return this.underlying.createHmac(args, originator);
220
- }
221
- async verifyHmac(args, originator) {
222
- this.ensureCanCall(originator);
223
- return this.underlying.verifyHmac(args, originator);
224
- }
225
- async createSignature(args, originator) {
226
- this.ensureCanCall(originator);
227
- return this.underlying.createSignature(args, originator);
228
- }
229
- async verifySignature(args, originator) {
230
- this.ensureCanCall(originator);
231
- return this.underlying.verifySignature(args, originator);
232
- }
233
- async createAction(args, originator) {
234
- this.ensureCanCall(originator);
235
- return this.underlying.createAction(args, originator);
236
- }
237
- async signAction(args, originator) {
238
- this.ensureCanCall(originator);
239
- return this.underlying.signAction(args, originator);
240
- }
241
- async abortAction(args, originator) {
242
- this.ensureCanCall(originator);
243
- return this.underlying.abortAction(args, originator);
244
- }
245
- async listActions(args, originator) {
246
- this.ensureCanCall(originator);
247
- return this.underlying.listActions(args, originator);
248
- }
249
- async internalizeAction(args, originator) {
250
- this.ensureCanCall(originator);
251
- return this.underlying.internalizeAction(args, originator);
252
- }
253
- async listOutputs(args, originator) {
254
- this.ensureCanCall(originator);
255
- return this.underlying.listOutputs(args, originator);
256
- }
257
- async relinquishOutput(args, originator) {
258
- this.ensureCanCall(originator);
259
- return this.underlying.relinquishOutput(args, originator);
260
- }
261
- async acquireCertificate(args, originator) {
262
- this.ensureCanCall(originator);
263
- return this.underlying.acquireCertificate(args, originator);
264
- }
265
- async listCertificates(args, originator) {
266
- this.ensureCanCall(originator);
267
- return this.underlying.listCertificates(args, originator);
268
- }
269
- async proveCertificate(args, originator) {
270
- this.ensureCanCall(originator);
271
- return this.underlying.proveCertificate(args, originator);
272
- }
273
- async relinquishCertificate(args, originator) {
274
- this.ensureCanCall(originator);
275
- return this.underlying.relinquishCertificate(args, originator);
276
- }
277
- async discoverByIdentityKey(args, originator) {
278
- this.ensureCanCall(originator);
279
- return this.underlying.discoverByIdentityKey(args, originator);
280
- }
281
- async discoverByAttributes(args, originator) {
282
- this.ensureCanCall(originator);
283
- return this.underlying.discoverByAttributes(args, originator);
284
- }
285
- async getHeight(_, originator) {
286
- this.ensureCanCall(originator);
287
- return this.underlying.getHeight({}, originator);
288
- }
289
- async getHeaderForHeight(args, originator) {
290
- this.ensureCanCall(originator);
291
- return this.underlying.getHeaderForHeight(args, originator);
292
- }
293
- async getNetwork(_, originator) {
294
- this.ensureCanCall(originator);
295
- return this.underlying.getNetwork({}, originator);
296
- }
297
- async getVersion(_, originator) {
298
- this.ensureCanCall(originator);
299
- return this.underlying.getVersion({}, originator);
300
- }
301
- /**
302
- * A small helper that throws if the user is not authenticated or if the
303
- * provided originator is the admin (which is not permitted externally).
304
- */
305
- ensureCanCall(originator) {
306
- if (originator === this.adminOriginator) {
307
- throw new Error('External applications cannot use the admin originator.');
308
- }
309
- if (!this.authenticated) {
310
- throw new Error('User is not authenticated.');
311
- }
312
- }
313
- }
314
- exports.SimpleWalletManager = SimpleWalletManager;
315
- //# sourceMappingURL=SimpleWalletManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SimpleWalletManager.js","sourceRoot":"","sources":["../../src/SimpleWalletManager.ts"],"names":[],"mappings":";;;AAAA,kCAwDiB;AAGjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,mBAAmB;IAqC9B;;;;;;;;;OASG;IACH,YACE,eAAwD,EACxD,aAG6B,EAC7B,aAAwB;QAExB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAElC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CAAC,GAAa;QACnC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;QACrB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;IACjC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,2BAA2B,CAC/B,OAA6B;QAE7B,IAAI,CAAC,8BAA8B,GAAG,OAAO,CAAA;QAC7C,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;IACjC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB;QAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC;YAC7D,OAAM;QACR,CAAC;QACD,+BAA+B;QAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CACxC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,8BAA8B,CACpC,CAAA;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;IAC3B,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,8BAA8B,GAAG,SAAS,CAAA;QAC/C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACjE,CAAC;QAED,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAA,YAAM,EAAC,EAAE,CAAC,CAAA;QAE9B,iEAAiE;QACjE,MAAM,MAAM,GAAG,IAAI,WAAK,CAAC,MAAM,EAAE,CAAA;QACjC,0BAA0B;QAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACpB,wDAAwD;QACxD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAE7B,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAEzC,yCAAyC;QACzC,MAAM,gBAAgB,GAAG,IAAI,kBAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAC5D,gBAAgB,CACL,CAAA;QAEb,0EAA0E;QAC1E,MAAM,cAAc,GAAG,IAAI,WAAK,CAAC,MAAM,EAAE,CAAA;QACzC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACjC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAEtC,OAAO,cAAc,CAAC,OAAO,EAAE,CAAA;IACjC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAAC,QAAkB;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,WAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAEzC,qCAAqC;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAEnC,qCAAqC;YACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;YAEtC,4CAA4C;YAC5C,MAAM,SAAS,GAAG,IAAI,kBAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CACrD,gBAAgB,CACL,CAAA;YAEb,MAAM,aAAa,GAAG,IAAI,WAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAEjD,iBAAiB;YACjB,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,CAAA;YACzC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAA;YAC7D,CAAC;YAED,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,EAAE,CAAA;YAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEvC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;YAEpB,wFAAwF;YACxF,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA6B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,CAAK,EACL,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,qBAAqB,CACzB,CAAK,EACL,UAAoD;QAEpD,IAAI,UAAU,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAAsB,EACtB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,IAAsC,EACtC,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,4BAA4B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,IAAkC,EAClC,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAAuB,EACvB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAAuB,EACvB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAoB,EACpB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAoB,EACpB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,IAAyB,EACzB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,IAAyB,EACzB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAAsB,EACtB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAoB,EACpB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAqB,EACrB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAqB,EACrB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,IAA2B,EAC3B,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAqB,EACrB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,IAA0B,EAC1B,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,IAA4B,EAC5B,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,IAA0B,EAC1B,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,IAA0B,EAC1B,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,IAA+B,EAC/B,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,IAA+B,EAC/B,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,IAA8B,EAC9B,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,SAAS,CACb,CAAK,EACL,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,IAAmB,EACnB,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,UAAU,CACd,CAAK,EACL,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CACd,CAAK,EACL,UAAoD;QAEpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAC,UAAW,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;IACpD,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,UAAoD;QACxE,IAAI,UAAU,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;CACF;AArdD,kDAqdC"}
@@ -1,33 +0,0 @@
1
- import { CWIStyleWalletManager, UMPTokenInteractor } from './CWIStyleWalletManager';
2
- import { PrivilegedKeyManager } from './sdk/PrivilegedKeyManager';
3
- import { WalletInterface } from '@bsv/sdk';
4
- import { WABClient } from './wab-client/WABClient';
5
- import { AuthMethodInteractor } from './wab-client/auth-method-interactors/AuthMethodInteractor';
6
- /**
7
- * WalletAuthenticationManager
8
- *
9
- * A wallet manager that integrates
10
- * with a WABClient for user authentication flows (e.g. Twilio phone).
11
- */
12
- export declare class WalletAuthenticationManager extends CWIStyleWalletManager {
13
- private wabClient;
14
- private authMethod?;
15
- private tempPresentationKey?;
16
- constructor(adminOriginator: string, walletBuilder: (primaryKey: number[], privilegedKeyManager: PrivilegedKeyManager) => Promise<WalletInterface>, interactor: UMPTokenInteractor | undefined, recoveryKeySaver: (key: number[]) => Promise<true>, passwordRetriever: (reason: string, test: (passwordCandidate: string) => boolean) => Promise<string>, wabClient: WABClient, authMethod?: AuthMethodInteractor, stateSnapshot?: number[]);
17
- /**
18
- * Sets (or switches) the chosen AuthMethodInteractor at runtime,
19
- * in case the user changes their mind or picks a new method in the UI.
20
- */
21
- setAuthMethod(method: AuthMethodInteractor): void;
22
- /**
23
- * Initiate the WAB-based flow, e.g. sending an SMS code or starting an ID check,
24
- * using the chosen AuthMethodInteractor.
25
- */
26
- startAuth(payload: any): Promise<void>;
27
- /**
28
- * Completes the WAB-based flow, retrieving the final presentationKey from WAB if successful.
29
- */
30
- completeAuth(payload: any): Promise<void>;
31
- private generateTemporaryPresentationKey;
32
- }
33
- //# sourceMappingURL=WalletAuthenticationManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalletAuthenticationManager.d.ts","sourceRoot":"","sources":["../../src/WalletAuthenticationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAEnB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EACL,eAAe,EAOhB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAA;AAEhG;;;;;GAKG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;IACpE,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAsB;IACzC,OAAO,CAAC,mBAAmB,CAAC,CAAQ;gBAGlC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,CACb,UAAU,EAAE,MAAM,EAAE,EACpB,oBAAoB,EAAE,oBAAoB,KACvC,OAAO,CAAC,eAAe,CAAC,EAC7B,UAAU,EAAE,kBAAkB,YAAkC,EAChE,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EAClD,iBAAiB,EAAE,CACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,KACzC,OAAO,CAAC,MAAM,CAAC,EACpB,SAAS,EAAE,SAAS,EACpB,UAAU,CAAC,EAAE,oBAAoB,EACjC,aAAa,CAAC,EAAE,MAAM,EAAE;IAiE1B;;;OAGG;IACI,aAAa,CAAC,MAAM,EAAE,oBAAoB;IAIjD;;;OAGG;IACU,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnD;;OAEG;IACU,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCtD,OAAO,CAAC,gCAAgC;CAKzC"}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WalletAuthenticationManager = void 0;
4
- const CWIStyleWalletManager_1 = require("./CWIStyleWalletManager");
5
- const sdk_1 = require("@bsv/sdk");
6
- /**
7
- * WalletAuthenticationManager
8
- *
9
- * A wallet manager that integrates
10
- * with a WABClient for user authentication flows (e.g. Twilio phone).
11
- */
12
- class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWalletManager {
13
- constructor(adminOriginator, walletBuilder, interactor = new CWIStyleWalletManager_1.OverlayUMPTokenInteractor(), recoveryKeySaver, passwordRetriever, wabClient, authMethod, stateSnapshot) {
14
- super(adminOriginator, walletBuilder, interactor, recoveryKeySaver, passwordRetriever,
15
- // Here, we provide a custom new wallet funder that uses the Secret Server
16
- async (presentationKey, wallet, adminOriginator) => {
17
- const faucetResultJSON = await this.wabClient.requestFaucet(sdk_1.Utils.toHex(presentationKey));
18
- if (!faucetResultJSON.k || !faucetResultJSON.tx) {
19
- throw new Error('Invalid');
20
- }
21
- const faucetTx = sdk_1.Transaction.fromBinary(faucetResultJSON.tx);
22
- const faucetRedeemTXCreationResult = await wallet.createAction({
23
- inputBEEF: faucetTx.toBEEF(),
24
- inputs: [
25
- {
26
- outpoint: `${faucetTx.id('hex')}.0`,
27
- unlockingScriptLength: 104,
28
- inputDescription: 'Fund from faucet'
29
- }
30
- ],
31
- description: 'Fund wallet'
32
- }, adminOriginator);
33
- const faucetRedeemTX = sdk_1.Transaction.fromAtomicBEEF(faucetRedeemTXCreationResult.signableTransaction.tx);
34
- const faucetRedemptionPuzzle = new sdk_1.RPuzzle();
35
- const randomRedemptionPrivateKey = sdk_1.PrivateKey.fromRandom();
36
- const faucetRedeemUnlocker = faucetRedemptionPuzzle.unlock(new sdk_1.BigNumber(faucetResultJSON.k, 16), randomRedemptionPrivateKey);
37
- const faucetRedeemUnlockingScript = await faucetRedeemUnlocker.sign(faucetRedeemTX, 0);
38
- await wallet.signAction({
39
- reference: faucetRedeemTXCreationResult.signableTransaction.reference,
40
- spends: {
41
- 0: {
42
- unlockingScript: faucetRedeemUnlockingScript.toHex()
43
- }
44
- }
45
- });
46
- }, stateSnapshot);
47
- this.wabClient = wabClient;
48
- this.authMethod = authMethod;
49
- }
50
- /**
51
- * Sets (or switches) the chosen AuthMethodInteractor at runtime,
52
- * in case the user changes their mind or picks a new method in the UI.
53
- */
54
- setAuthMethod(method) {
55
- this.authMethod = method;
56
- }
57
- /**
58
- * Initiate the WAB-based flow, e.g. sending an SMS code or starting an ID check,
59
- * using the chosen AuthMethodInteractor.
60
- */
61
- async startAuth(payload) {
62
- if (!this.authMethod) {
63
- throw new Error('No AuthMethod selected in WalletAuthenticationManager');
64
- }
65
- this.tempPresentationKey = this.generateTemporaryPresentationKey();
66
- // For example, if this.authMethod is Twilio, `payload` might contain { phoneNumber: "+1..." }
67
- const startRes = await this.wabClient.startAuthMethod(this.authMethod,
68
- // The user might not have a presentationKey yet, so we generate one locally to pass to the server.
69
- // If it’s an existing user on the WAB side, the WAB will give us the stored key later.
70
- // But we do need some placeholder key for the 'startAuth' call:
71
- this.tempPresentationKey, payload);
72
- if (!startRes.success) {
73
- throw new Error(startRes.message || 'Failed to start WAB auth method');
74
- }
75
- }
76
- /**
77
- * Completes the WAB-based flow, retrieving the final presentationKey from WAB if successful.
78
- */
79
- async completeAuth(payload) {
80
- if (!this.authMethod || !this.tempPresentationKey) {
81
- throw new Error('No AuthMethod selected in WalletAuthenticationManager or startAuth has yet to be called.');
82
- }
83
- // Unser the temp presentation key early (for security)
84
- const tempKey = this.tempPresentationKey;
85
- this.tempPresentationKey = undefined;
86
- const result = await this.wabClient.completeAuthMethod(this.authMethod, tempKey, payload);
87
- if (!result.success || !result.presentationKey) {
88
- throw new Error(result.message || 'Failed to complete WAB auth');
89
- }
90
- // We now have the final 256-bit key in hex from the WAB
91
- const presentationKeyHex = result.presentationKey;
92
- const presentationKeyBytes = sdk_1.Utils.toArray(presentationKeyHex, 'hex');
93
- // Provide this presentation key to the underlying CWI logic:
94
- // This sets 'this.presentationKey' and determines if it's a new or existing user
95
- // based on whether a UMP token exists on chain. We'll do "presentation-key-and-password"
96
- // for new user flows, for example, or user might choose "presentation-key-and-recovery-key" if we wanted.
97
- // Either way, WAB has now done its job and we are off to base-layer CWI logic at this point!
98
- await this.providePresentationKey(presentationKeyBytes);
99
- }
100
- generateTemporaryPresentationKey() {
101
- // For the 'startAuth' call, we can generate a random 32 bytes → 64 hex chars.
102
- const randomBytes = (0, sdk_1.Random)(32); // array of length 32
103
- return sdk_1.Utils.toHex(randomBytes);
104
- }
105
- }
106
- exports.WalletAuthenticationManager = WalletAuthenticationManager;
107
- //# sourceMappingURL=WalletAuthenticationManager.js.map