@bsv/wallet-toolbox 1.4.2 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/docs/client.md +225 -79
- package/docs/monitor.md +32 -1
- package/docs/wallet.md +225 -79
- package/mobile/out/src/WalletPermissionsManager.d.ts +60 -1
- package/mobile/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/mobile/out/src/WalletPermissionsManager.js +222 -15
- package/mobile/out/src/WalletPermissionsManager.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskNewHeader.js +1 -0
- package/mobile/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/mobile/package-lock.json +2 -2
- package/mobile/package.json +1 -1
- package/out/src/WalletPermissionsManager.d.ts +60 -1
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +222 -15
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/__tests/WalletPermissionsManager.initialization.test.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +1 -0
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/WalletPermissionsManager.ts +317 -26
- package/src/__tests/WalletPermissionsManager.initialization.test.ts +1 -1
- package/src/monitor/tasks/TaskCheckNoSends.ts +0 -1
- package/src/monitor/tasks/TaskNewHeader.ts +2 -1
package/mobile/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsv/wallet-toolbox-mobile",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bsv/wallet-toolbox-mobile",
|
|
9
|
-
"version": "1.4.
|
|
9
|
+
"version": "1.4.4",
|
|
10
10
|
"license": "SEE LICENSE IN license.md",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@bsv/sdk": "^1.6.0"
|
package/mobile/package.json
CHANGED
|
@@ -1,4 +1,42 @@
|
|
|
1
1
|
import { WalletInterface, WalletProtocol, Base64String, PubKeyHex } from '@bsv/sdk';
|
|
2
|
+
/**
|
|
3
|
+
* Describes a group of permissions that can be requested together.
|
|
4
|
+
* This structure is based on BRC-73.
|
|
5
|
+
*/
|
|
6
|
+
export interface GroupedPermissions {
|
|
7
|
+
description?: string;
|
|
8
|
+
spendingAuthorization?: {
|
|
9
|
+
amount: number;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
protocolPermissions?: Array<{
|
|
13
|
+
protocolID: WalletProtocol;
|
|
14
|
+
counterparty?: string;
|
|
15
|
+
description: string;
|
|
16
|
+
}>;
|
|
17
|
+
basketAccess?: Array<{
|
|
18
|
+
basket: string;
|
|
19
|
+
description: string;
|
|
20
|
+
}>;
|
|
21
|
+
certificateAccess?: Array<{
|
|
22
|
+
type: string;
|
|
23
|
+
fields: string[];
|
|
24
|
+
verifierPublicKey: string;
|
|
25
|
+
description: string;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The object passed to the UI when a grouped permission is requested.
|
|
30
|
+
*/
|
|
31
|
+
export interface GroupedPermissionRequest {
|
|
32
|
+
originator: string;
|
|
33
|
+
requestID: string;
|
|
34
|
+
permissions: GroupedPermissions;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Signature for functions that handle a grouped permission request event.
|
|
38
|
+
*/
|
|
39
|
+
export type GroupedPermissionEventHandler = (request: GroupedPermissionRequest) => void | Promise<void>;
|
|
2
40
|
/**
|
|
3
41
|
* Describes a single requested permission that the user must either grant or deny.
|
|
4
42
|
*
|
|
@@ -98,6 +136,7 @@ export interface WalletPermissionsManagerCallbacks {
|
|
|
98
136
|
onBasketAccessRequested?: PermissionEventHandler[];
|
|
99
137
|
onCertificateAccessRequested?: PermissionEventHandler[];
|
|
100
138
|
onSpendingAuthorizationRequested?: PermissionEventHandler[];
|
|
139
|
+
onGroupedPermissionRequested?: GroupedPermissionEventHandler[];
|
|
101
140
|
}
|
|
102
141
|
/**
|
|
103
142
|
* Configuration object for the WalletPermissionsManager. If a given option is `false`,
|
|
@@ -188,6 +227,10 @@ export interface PermissionsManagerConfig {
|
|
|
188
227
|
* do we seek spending authorization?
|
|
189
228
|
*/
|
|
190
229
|
seekSpendingPermissions?: boolean;
|
|
230
|
+
/**
|
|
231
|
+
* If true, triggers a grouped permission request flow based on the originator's `manifest.json`.
|
|
232
|
+
*/
|
|
233
|
+
seekGroupedPermission?: boolean;
|
|
191
234
|
/**
|
|
192
235
|
* If false, permissions are checked without regard for whether we are in
|
|
193
236
|
* privileged mode. Privileged status is ignored with respect to whether
|
|
@@ -261,7 +304,7 @@ export declare class WalletPermissionsManager implements WalletInterface {
|
|
|
261
304
|
* @param handler A function that handles the event
|
|
262
305
|
* @returns A numeric ID you can use to unbind later
|
|
263
306
|
*/
|
|
264
|
-
bindCallback(eventName: keyof WalletPermissionsManagerCallbacks, handler: PermissionEventHandler): number;
|
|
307
|
+
bindCallback(eventName: keyof WalletPermissionsManagerCallbacks, handler: PermissionEventHandler | GroupedPermissionEventHandler): number;
|
|
265
308
|
/**
|
|
266
309
|
* Unbinds a previously registered callback by either its numeric ID (returned by `bindCallback`)
|
|
267
310
|
* or by exact function reference.
|
|
@@ -302,6 +345,22 @@ export declare class WalletPermissionsManager implements WalletInterface {
|
|
|
302
345
|
* @param requestID requestID identifying which request to deny
|
|
303
346
|
*/
|
|
304
347
|
denyPermission(requestID: string): Promise<void>;
|
|
348
|
+
/**
|
|
349
|
+
* Grants a previously requested grouped permission.
|
|
350
|
+
* @param params.requestID The ID of the request being granted.
|
|
351
|
+
* @param params.granted A subset of the originally requested permissions that the user has granted.
|
|
352
|
+
* @param params.expiry An optional expiry time (in seconds) for the new permission tokens.
|
|
353
|
+
*/
|
|
354
|
+
grantGroupedPermission(params: {
|
|
355
|
+
requestID: string;
|
|
356
|
+
granted: Partial<GroupedPermissions>;
|
|
357
|
+
expiry?: number;
|
|
358
|
+
}): Promise<void>;
|
|
359
|
+
/**
|
|
360
|
+
* Denies a previously requested grouped permission.
|
|
361
|
+
* @param requestID The ID of the request being denied.
|
|
362
|
+
*/
|
|
363
|
+
denyGroupedPermission(requestID: string): Promise<void>;
|
|
305
364
|
/**
|
|
306
365
|
* Ensures the originator has protocol usage permission.
|
|
307
366
|
* If no valid (unexpired) permission token is found, triggers a permission request flow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletPermissionsManager.d.ts","sourceRoot":"","sources":["../../src/WalletPermissionsManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WalletPermissionsManager.d.ts","sourceRoot":"","sources":["../../src/WalletPermissionsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.WalletPermissionsManager = void 0;
|
|
4
4
|
const sdk_1 = require("@bsv/sdk");
|
|
5
5
|
const sdk_2 = require("./sdk");
|
|
6
|
+
////// TODO: ADD SUPPORT FOR ADMIN COUNTERPARTIES BASED ON WALLET STORAGE
|
|
7
|
+
////// PROHIBITION OF SPECIAL OPERATIONS IS ALSO CRITICAL.
|
|
8
|
+
////// !!!!!!!! SECURITY-CRITICAL ADDITION — DO NOT USE UNTIL IMPLEMENTED.
|
|
9
|
+
function deepEqual(object1, object2) {
|
|
10
|
+
if (object1 === null || object1 === undefined || object2 === null || object2 === undefined) {
|
|
11
|
+
return object1 === object2;
|
|
12
|
+
}
|
|
13
|
+
const keys1 = Object.keys(object1);
|
|
14
|
+
const keys2 = Object.keys(object2);
|
|
15
|
+
if (keys1.length !== keys2.length) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
for (const key of keys1) {
|
|
19
|
+
const val1 = object1[key];
|
|
20
|
+
const val2 = object2[key];
|
|
21
|
+
const areObjects = isObject(val1) && isObject(val2);
|
|
22
|
+
if ((areObjects && !deepEqual(val1, val2)) || (!areObjects && val1 !== val2)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
function isObject(object) {
|
|
29
|
+
return object != null && typeof object === 'object';
|
|
30
|
+
}
|
|
6
31
|
/**
|
|
7
32
|
* A map from each permission type to a special "admin basket" name used for storing
|
|
8
33
|
* the tokens. The tokens themselves are unspent transaction outputs (UTXOs) with a
|
|
@@ -52,7 +77,8 @@ class WalletPermissionsManager {
|
|
|
52
77
|
onProtocolPermissionRequested: [],
|
|
53
78
|
onBasketAccessRequested: [],
|
|
54
79
|
onCertificateAccessRequested: [],
|
|
55
|
-
onSpendingAuthorizationRequested: []
|
|
80
|
+
onSpendingAuthorizationRequested: [],
|
|
81
|
+
onGroupedPermissionRequested: []
|
|
56
82
|
};
|
|
57
83
|
/**
|
|
58
84
|
* We queue parallel requests for the same resource so that only one
|
|
@@ -89,6 +115,7 @@ class WalletPermissionsManager {
|
|
|
89
115
|
seekCertificateListingPermissions: true,
|
|
90
116
|
encryptWalletMetadata: true,
|
|
91
117
|
seekSpendingPermissions: true,
|
|
118
|
+
seekGroupedPermission: true,
|
|
92
119
|
differentiatePrivilegedOperations: true,
|
|
93
120
|
...config // override with user-specified config
|
|
94
121
|
};
|
|
@@ -182,14 +209,15 @@ class WalletPermissionsManager {
|
|
|
182
209
|
this.activeRequests.delete(params.requestID);
|
|
183
210
|
// 3) If `ephemeral !== true`, we create or renew an on-chain token
|
|
184
211
|
if (!params.ephemeral) {
|
|
185
|
-
|
|
212
|
+
const request = matching.request;
|
|
213
|
+
if (!request.renewal) {
|
|
186
214
|
// brand-new permission token
|
|
187
|
-
await this.createPermissionOnChain(
|
|
215
|
+
await this.createPermissionOnChain(request, params.expiry || Math.floor(Date.now() / 1000) + 3600 * 24 * 30, // default 30-day expiry
|
|
188
216
|
params.amount);
|
|
189
217
|
}
|
|
190
218
|
else {
|
|
191
219
|
// renewal => spend the old token, produce a new one
|
|
192
|
-
await this.renewPermissionOnChain(
|
|
220
|
+
await this.renewPermissionOnChain(request.previousToken, request, params.expiry || Math.floor(Date.now() / 1000) + 3600 * 24 * 30, params.amount);
|
|
193
221
|
}
|
|
194
222
|
}
|
|
195
223
|
// Update the cache regardless of ephemeral status
|
|
@@ -215,6 +243,93 @@ class WalletPermissionsManager {
|
|
|
215
243
|
}
|
|
216
244
|
this.activeRequests.delete(requestID);
|
|
217
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Grants a previously requested grouped permission.
|
|
248
|
+
* @param params.requestID The ID of the request being granted.
|
|
249
|
+
* @param params.granted A subset of the originally requested permissions that the user has granted.
|
|
250
|
+
* @param params.expiry An optional expiry time (in seconds) for the new permission tokens.
|
|
251
|
+
*/
|
|
252
|
+
async grantGroupedPermission(params) {
|
|
253
|
+
var _a, _b, _c;
|
|
254
|
+
const matching = this.activeRequests.get(params.requestID);
|
|
255
|
+
if (!matching) {
|
|
256
|
+
throw new Error('Request ID not found.');
|
|
257
|
+
}
|
|
258
|
+
const originalRequest = matching.request;
|
|
259
|
+
const { originator, permissions: requestedPermissions } = originalRequest;
|
|
260
|
+
// --- Validation: Ensure granted permissions are a subset of what was requested ---
|
|
261
|
+
if (params.granted.spendingAuthorization &&
|
|
262
|
+
!deepEqual(params.granted.spendingAuthorization, requestedPermissions.spendingAuthorization)) {
|
|
263
|
+
throw new Error('Granted spending authorization does not match the original request.');
|
|
264
|
+
}
|
|
265
|
+
if ((_a = params.granted.protocolPermissions) === null || _a === void 0 ? void 0 : _a.some(g => { var _a; return !((_a = requestedPermissions.protocolPermissions) === null || _a === void 0 ? void 0 : _a.find(r => deepEqual(r, g))); })) {
|
|
266
|
+
throw new Error('Granted protocol permissions are not a subset of the original request.');
|
|
267
|
+
}
|
|
268
|
+
if ((_b = params.granted.basketAccess) === null || _b === void 0 ? void 0 : _b.some(g => { var _a; return !((_a = requestedPermissions.basketAccess) === null || _a === void 0 ? void 0 : _a.find(r => deepEqual(r, g))); })) {
|
|
269
|
+
throw new Error('Granted basket access permissions are not a subset of the original request.');
|
|
270
|
+
}
|
|
271
|
+
if ((_c = params.granted.certificateAccess) === null || _c === void 0 ? void 0 : _c.some(g => { var _a; return !((_a = requestedPermissions.certificateAccess) === null || _a === void 0 ? void 0 : _a.find(r => deepEqual(r, g))); })) {
|
|
272
|
+
throw new Error('Granted certificate access permissions are not a subset of the original request.');
|
|
273
|
+
}
|
|
274
|
+
// --- End Validation ---
|
|
275
|
+
const expiry = params.expiry || Math.floor(Date.now() / 1000) + 3600 * 24 * 30; // 30-day default
|
|
276
|
+
if (params.granted.spendingAuthorization) {
|
|
277
|
+
await this.createPermissionOnChain({
|
|
278
|
+
type: 'spending',
|
|
279
|
+
originator,
|
|
280
|
+
spending: { satoshis: params.granted.spendingAuthorization.amount },
|
|
281
|
+
reason: params.granted.spendingAuthorization.description
|
|
282
|
+
}, 0, // No expiry for spending tokens
|
|
283
|
+
params.granted.spendingAuthorization.amount);
|
|
284
|
+
}
|
|
285
|
+
for (const p of params.granted.protocolPermissions || []) {
|
|
286
|
+
await this.createPermissionOnChain({
|
|
287
|
+
type: 'protocol',
|
|
288
|
+
originator,
|
|
289
|
+
privileged: false, // No privileged protocols allowed in groups for added security.
|
|
290
|
+
protocolID: p.protocolID,
|
|
291
|
+
counterparty: p.counterparty || 'self',
|
|
292
|
+
reason: p.description
|
|
293
|
+
}, expiry);
|
|
294
|
+
}
|
|
295
|
+
for (const b of params.granted.basketAccess || []) {
|
|
296
|
+
await this.createPermissionOnChain({ type: 'basket', originator, basket: b.basket, reason: b.description }, expiry);
|
|
297
|
+
}
|
|
298
|
+
for (const c of params.granted.certificateAccess || []) {
|
|
299
|
+
await this.createPermissionOnChain({
|
|
300
|
+
type: 'certificate',
|
|
301
|
+
originator,
|
|
302
|
+
privileged: false, // No certificates on the privileged identity are allowed as part of groups.
|
|
303
|
+
certificate: {
|
|
304
|
+
verifier: c.verifierPublicKey,
|
|
305
|
+
certType: c.type,
|
|
306
|
+
fields: c.fields
|
|
307
|
+
},
|
|
308
|
+
reason: c.description
|
|
309
|
+
}, expiry);
|
|
310
|
+
}
|
|
311
|
+
// Resolve all pending promises for this request
|
|
312
|
+
for (const p of matching.pending) {
|
|
313
|
+
p.resolve(true);
|
|
314
|
+
}
|
|
315
|
+
this.activeRequests.delete(params.requestID);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Denies a previously requested grouped permission.
|
|
319
|
+
* @param requestID The ID of the request being denied.
|
|
320
|
+
*/
|
|
321
|
+
async denyGroupedPermission(requestID) {
|
|
322
|
+
const matching = this.activeRequests.get(requestID);
|
|
323
|
+
if (!matching) {
|
|
324
|
+
throw new Error('Request ID not found.');
|
|
325
|
+
}
|
|
326
|
+
const err = new Error('The user has denied the request for permission.');
|
|
327
|
+
err.code = 'ERR_PERMISSION_DENIED';
|
|
328
|
+
for (const p of matching.pending) {
|
|
329
|
+
p.reject(err);
|
|
330
|
+
}
|
|
331
|
+
this.activeRequests.delete(requestID);
|
|
332
|
+
}
|
|
218
333
|
/* ---------------------------------------------------------------------
|
|
219
334
|
* 3) THE "ENSURE" METHODS: CHECK IF PERMISSION EXISTS, OTHERWISE PROMPT
|
|
220
335
|
* --------------------------------------------------------------------- */
|
|
@@ -1513,17 +1628,6 @@ class WalletPermissionsManager {
|
|
|
1513
1628
|
...signResult,
|
|
1514
1629
|
signableTransaction: undefined
|
|
1515
1630
|
};
|
|
1516
|
-
// const userWantedImmediate = args.options?.signAndProcess !== false
|
|
1517
|
-
// const weOverrode =
|
|
1518
|
-
// modifiedOptions.signAndProcess === false &&
|
|
1519
|
-
// args.options?.signAndProcess !== false
|
|
1520
|
-
// // Check if all inputs already have valid unlockingScripts (no partial signatures needed)
|
|
1521
|
-
const allInputsHaveScripts = tx.inputs.every(i => i.unlockingScript);
|
|
1522
|
-
// // If user wanted immediate broadcast and we forcibly suppressed it, we can finalize now by calling signAction with no additional scripts:
|
|
1523
|
-
// if (allInputsHaveScripts && userWantedImmediate && weOverrode) {
|
|
1524
|
-
// }
|
|
1525
|
-
// // Otherwise, return the partial transaction so the caller can do signAction.
|
|
1526
|
-
// return createResult
|
|
1527
1631
|
}
|
|
1528
1632
|
async signAction(...args) {
|
|
1529
1633
|
return this.underlying.signAction(...args);
|
|
@@ -1832,6 +1936,109 @@ class WalletPermissionsManager {
|
|
|
1832
1936
|
return this.underlying.isAuthenticated(...args);
|
|
1833
1937
|
}
|
|
1834
1938
|
async waitForAuthentication(...args) {
|
|
1939
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
1940
|
+
const [_, originator] = args;
|
|
1941
|
+
if (this.config.seekGroupedPermission && originator) {
|
|
1942
|
+
// 1. Fetch manifest.json from the originator
|
|
1943
|
+
let groupPermissions;
|
|
1944
|
+
try {
|
|
1945
|
+
const proto = originator.startsWith('localhost:') ? 'http' : 'https';
|
|
1946
|
+
const response = await fetch(`${proto}://${originator}/manifest.json`);
|
|
1947
|
+
if (response.ok) {
|
|
1948
|
+
const manifest = await response.json();
|
|
1949
|
+
if ((_a = manifest === null || manifest === void 0 ? void 0 : manifest.babbage) === null || _a === void 0 ? void 0 : _a.groupPermissions) {
|
|
1950
|
+
groupPermissions = manifest.babbage.groupPermissions;
|
|
1951
|
+
}
|
|
1952
|
+
}
|
|
1953
|
+
}
|
|
1954
|
+
catch (e) {
|
|
1955
|
+
// Ignore fetch/parse errors, just proceed without group permissions.
|
|
1956
|
+
}
|
|
1957
|
+
if (groupPermissions) {
|
|
1958
|
+
// 2. Filter out already-granted permissions
|
|
1959
|
+
const permissionsToRequest = {
|
|
1960
|
+
protocolPermissions: [],
|
|
1961
|
+
basketAccess: [],
|
|
1962
|
+
certificateAccess: []
|
|
1963
|
+
};
|
|
1964
|
+
if (groupPermissions.spendingAuthorization) {
|
|
1965
|
+
const hasAuth = await this.hasSpendingAuthorization({
|
|
1966
|
+
originator,
|
|
1967
|
+
satoshis: groupPermissions.spendingAuthorization.amount
|
|
1968
|
+
});
|
|
1969
|
+
if (!hasAuth) {
|
|
1970
|
+
permissionsToRequest.spendingAuthorization = groupPermissions.spendingAuthorization;
|
|
1971
|
+
}
|
|
1972
|
+
}
|
|
1973
|
+
for (const p of groupPermissions.protocolPermissions || []) {
|
|
1974
|
+
const hasPerm = await this.hasProtocolPermission({
|
|
1975
|
+
originator,
|
|
1976
|
+
privileged: false, // Privilege is never allowed here
|
|
1977
|
+
protocolID: p.protocolID,
|
|
1978
|
+
counterparty: p.counterparty || 'self'
|
|
1979
|
+
});
|
|
1980
|
+
if (!hasPerm) {
|
|
1981
|
+
permissionsToRequest.protocolPermissions.push(p);
|
|
1982
|
+
}
|
|
1983
|
+
}
|
|
1984
|
+
for (const b of groupPermissions.basketAccess || []) {
|
|
1985
|
+
const hasAccess = await this.hasBasketAccess({
|
|
1986
|
+
originator,
|
|
1987
|
+
basket: b.basket
|
|
1988
|
+
});
|
|
1989
|
+
if (!hasAccess) {
|
|
1990
|
+
permissionsToRequest.basketAccess.push(b);
|
|
1991
|
+
}
|
|
1992
|
+
}
|
|
1993
|
+
for (const c of groupPermissions.certificateAccess || []) {
|
|
1994
|
+
const hasAccess = await this.hasCertificateAccess({
|
|
1995
|
+
originator,
|
|
1996
|
+
privileged: false, // Privilege is never allowed here for security
|
|
1997
|
+
verifier: c.verifierPublicKey,
|
|
1998
|
+
certType: c.type,
|
|
1999
|
+
fields: c.fields
|
|
2000
|
+
});
|
|
2001
|
+
if (!hasAccess) {
|
|
2002
|
+
permissionsToRequest.certificateAccess.push(c);
|
|
2003
|
+
}
|
|
2004
|
+
}
|
|
2005
|
+
// 3. If any permissions are left to request, start the flow
|
|
2006
|
+
const hasRequests = permissionsToRequest.spendingAuthorization ||
|
|
2007
|
+
((_c = (_b = permissionsToRequest.protocolPermissions) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0 ||
|
|
2008
|
+
((_e = (_d = permissionsToRequest.basketAccess) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0) > 0 ||
|
|
2009
|
+
((_g = (_f = permissionsToRequest.certificateAccess) === null || _f === void 0 ? void 0 : _f.length) !== null && _g !== void 0 ? _g : 0) > 0;
|
|
2010
|
+
if (hasRequests) {
|
|
2011
|
+
const key = `group:${originator}`;
|
|
2012
|
+
if (this.activeRequests.has(key)) {
|
|
2013
|
+
// Another call is already waiting, piggyback on it
|
|
2014
|
+
await new Promise((resolve, reject) => {
|
|
2015
|
+
this.activeRequests.get(key).pending.push({ resolve, reject });
|
|
2016
|
+
});
|
|
2017
|
+
}
|
|
2018
|
+
else {
|
|
2019
|
+
// This is the first call, create a new request
|
|
2020
|
+
try {
|
|
2021
|
+
await new Promise(async (resolve, reject) => {
|
|
2022
|
+
this.activeRequests.set(key, {
|
|
2023
|
+
request: { originator, permissions: permissionsToRequest },
|
|
2024
|
+
pending: [{ resolve, reject }]
|
|
2025
|
+
});
|
|
2026
|
+
await this.callEvent('onGroupedPermissionRequested', {
|
|
2027
|
+
requestID: key,
|
|
2028
|
+
originator,
|
|
2029
|
+
permissions: permissionsToRequest
|
|
2030
|
+
});
|
|
2031
|
+
});
|
|
2032
|
+
}
|
|
2033
|
+
catch (e) {
|
|
2034
|
+
// Permission was denied, re-throw to stop execution
|
|
2035
|
+
throw e;
|
|
2036
|
+
}
|
|
2037
|
+
}
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
// Finally, after handling grouped permissions, call the underlying method.
|
|
1835
2042
|
return this.underlying.waitForAuthentication(...args);
|
|
1836
2043
|
}
|
|
1837
2044
|
async getHeight(...args) {
|