@canton-network/wallet-gateway-remote 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/jwt-auth-service.d.ts.map +1 -1
- package/dist/auth/jwt-auth-service.js +23 -3
- package/dist/auth/jwt-unsafe-auth-service.d.ts.map +1 -1
- package/dist/auth/jwt-unsafe-auth-service.js +7 -1
- package/dist/config/Config.test.js +1 -1
- package/dist/dapp-api/controller.d.ts.map +1 -1
- package/dist/dapp-api/controller.js +5 -9
- package/dist/dapp-api/rpc-gen/typings.d.ts +32 -5
- package/dist/dapp-api/rpc-gen/typings.d.ts.map +1 -1
- package/dist/example-config.js +2 -2
- package/dist/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.d.ts.map +1 -1
- package/dist/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.js +1 -0
- package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.d.ts.map +1 -1
- package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.js +1 -0
- package/dist/ledger/wallet-allocation/signing-providers/kernel-wallet-allocator.d.ts.map +1 -1
- package/dist/ledger/wallet-allocation/signing-providers/kernel-wallet-allocator.js +1 -0
- package/dist/ledger/wallet-allocation/signing-providers/participant-wallet-allocator.d.ts.map +1 -1
- package/dist/ledger/wallet-allocation/signing-providers/participant-wallet-allocator.js +1 -0
- package/dist/ledger/wallet-allocation/wallet-allocation-service.d.ts +2 -2
- package/dist/ledger/wallet-allocation/wallet-allocation-service.d.ts.map +1 -1
- package/dist/ledger/wallet-allocation/wallet-allocation-service.js +10 -4
- package/dist/ledger/wallet-allocation/wallet-allocation-service.test.js +13 -12
- package/dist/ledger/wallet-sync-service.d.ts +4 -1
- package/dist/ledger/wallet-sync-service.d.ts.map +1 -1
- package/dist/ledger/wallet-sync-service.js +97 -18
- package/dist/ledger/wallet-sync-service.test.js +79 -0
- package/dist/user-api/controller.d.ts.map +1 -1
- package/dist/user-api/controller.js +57 -11
- package/dist/user-api/rpc-gen/typings.d.ts +11 -0
- package/dist/user-api/rpc-gen/typings.d.ts.map +1 -1
- package/dist/web/frontend/404/index.html +2 -2
- package/dist/web/frontend/approve/index.html +5 -4
- package/dist/web/frontend/assets/404-CwWne4gl.js +8 -0
- package/dist/web/frontend/assets/approve-sXtkk0nx.js +20 -0
- package/dist/web/frontend/assets/{callback-D_VLeaX-.js → callback-5r0xYoAY.js} +1 -1
- package/dist/web/frontend/assets/index-BY0dSIJ0.js +1698 -0
- package/dist/web/frontend/assets/index-C4_-rNJw.js +1 -0
- package/dist/web/frontend/assets/login-DwOvzCWW.js +7 -0
- package/dist/web/frontend/assets/settings-lXZlQ6-V.js +37 -0
- package/dist/web/frontend/assets/{state-PjJJ3Anb.js → state-Zh2baU_h.js} +1 -1
- package/dist/web/frontend/assets/{transactions-DGdh8VAO.js → transactions-gLP4M5t0.js} +3 -3
- package/dist/web/frontend/assets/{utils-D5kQDwtZ.js → utils-CI12TM_E.js} +1 -1
- package/dist/web/frontend/assets/{wallets-CjjRt-cQ.js → wallets-Cmwexted.js} +2 -2
- package/dist/web/frontend/callback/index.html +2 -2
- package/dist/web/frontend/index.html +1 -1
- package/dist/web/frontend/login/index.html +4 -3
- package/dist/web/frontend/settings/index.html +3 -3
- package/dist/web/frontend/transactions/index.html +4 -4
- package/dist/web/frontend/wallets/index.html +4 -4
- package/package.json +20 -20
- package/dist/web/frontend/assets/404-DzH9sSlT.js +0 -8
- package/dist/web/frontend/assets/approve-Duv1K5LE.js +0 -17
- package/dist/web/frontend/assets/index-Bj5VTWmh.js +0 -1686
- package/dist/web/frontend/assets/login-B-jF6DLr.js +0 -7
- package/dist/web/frontend/assets/settings-DZpeOwSh.js +0 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-auth-service.d.ts","sourceRoot":"","sources":["../../src/auth/jwt-auth-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"jwt-auth-service.d.ts","sourceRoot":"","sources":["../../src/auth/jwt-auth-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,WAwF5D,CAAA"}
|
|
@@ -9,6 +9,12 @@ import { createRemoteJWKSet, decodeJwt, jwtVerify } from 'jose';
|
|
|
9
9
|
*/
|
|
10
10
|
export const jwtAuthService = (store, logger) => ({
|
|
11
11
|
verifyToken: async (accessToken) => {
|
|
12
|
+
const getEmail = (value) => {
|
|
13
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
};
|
|
12
18
|
if (!accessToken || !accessToken.startsWith('Bearer ')) {
|
|
13
19
|
return undefined;
|
|
14
20
|
}
|
|
@@ -39,7 +45,12 @@ export const jwtAuthService = (store, logger) => ({
|
|
|
39
45
|
logger.warn('JWT does not contain a subject');
|
|
40
46
|
return undefined;
|
|
41
47
|
}
|
|
42
|
-
|
|
48
|
+
const email = getEmail(decoded.email);
|
|
49
|
+
return {
|
|
50
|
+
userId: sub,
|
|
51
|
+
accessToken: jwt,
|
|
52
|
+
...(email ? { email } : {}),
|
|
53
|
+
};
|
|
43
54
|
}
|
|
44
55
|
logger.debug(idp, 'Using IDP');
|
|
45
56
|
const response = await fetch(idp.configUrl);
|
|
@@ -51,8 +62,17 @@ export const jwtAuthService = (store, logger) => ({
|
|
|
51
62
|
if (!payload.sub) {
|
|
52
63
|
return undefined;
|
|
53
64
|
}
|
|
54
|
-
logger.debug({
|
|
55
|
-
|
|
65
|
+
logger.debug({
|
|
66
|
+
userId: payload.sub,
|
|
67
|
+
accessToken: jwt,
|
|
68
|
+
email: getEmail(decoded.email),
|
|
69
|
+
}, 'JWT verified');
|
|
70
|
+
const email = getEmail(decoded.email);
|
|
71
|
+
return {
|
|
72
|
+
userId: payload.sub,
|
|
73
|
+
accessToken: jwt,
|
|
74
|
+
...(email ? { email } : {}),
|
|
75
|
+
};
|
|
56
76
|
}
|
|
57
77
|
catch (error) {
|
|
58
78
|
if (error instanceof Error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-unsafe-auth-service.d.ts","sourceRoot":"","sources":["../../src/auth/jwt-unsafe-auth-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"jwt-unsafe-auth-service.d.ts","sourceRoot":"","sources":["../../src/auth/jwt-unsafe-auth-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAgB,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,WA2D5D,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { jwtUserEmail } from '@canton-network/core-wallet-auth';
|
|
3
4
|
import { decodeJwt } from 'jose';
|
|
4
5
|
/**
|
|
5
6
|
* Creates an AuthService that verifies unsafe JWT tokens.
|
|
@@ -41,8 +42,13 @@ export const jwtAuthService = (store, logger) => ({
|
|
|
41
42
|
logger.warn(`Cannot verify token for non-self-signed IDP: ${iss}`);
|
|
42
43
|
return undefined;
|
|
43
44
|
}
|
|
45
|
+
const email = jwtUserEmail(jwt);
|
|
44
46
|
// TODO: Verify JWT signature using idp.clientSecret / idp.admin.clientSecret
|
|
45
|
-
return {
|
|
47
|
+
return {
|
|
48
|
+
userId: sub,
|
|
49
|
+
accessToken: jwt,
|
|
50
|
+
...(email ? { email } : {}),
|
|
51
|
+
};
|
|
46
52
|
}
|
|
47
53
|
catch (error) {
|
|
48
54
|
if (error instanceof Error) {
|
|
@@ -7,7 +7,7 @@ test('config from json file', async () => {
|
|
|
7
7
|
expect(resp.bootstrap.networks[0].name).toBe('Local (OAuth IDP)');
|
|
8
8
|
expect(resp.bootstrap.networks[0].ledgerApi.baseUrl).toBe('http://127.0.0.1:5003');
|
|
9
9
|
expect(resp.bootstrap.networks[0].auth.clientId).toBe('operator');
|
|
10
|
-
expect(resp.bootstrap.networks[0].auth.scope).toBe('openid daml_ledger_api offline_access');
|
|
10
|
+
expect(resp.bootstrap.networks[0].auth.scope).toBe('openid email daml_ledger_api offline_access');
|
|
11
11
|
expect(resp.bootstrap.networks[0].auth.method).toBe('authorization_code');
|
|
12
12
|
expect(resp.bootstrap.networks[2].auth.method).toBe('client_credentials');
|
|
13
13
|
if (resp.bootstrap.networks[2].auth.method === 'client_credentials') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/dapp-api/controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAEH,WAAW,EAEd,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/dapp-api/controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAEH,WAAW,EAEd,MAAM,kCAAkC,CAAA;AAYzC,OAAO,EAAE,KAAK,EAAe,MAAM,mCAAmC,CAAA;AAQtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAI7B,eAAO,MAAM,cAAc,GACvB,YAAY,gBAAgB,EAC5B,SAAS,MAAM,EACf,SAAS,MAAM,EACf,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,SAAS,MAAM,EACf,QAAQ,MAAM,GAAG,IAAI,EACrB,UAAU,WAAW;;;;;;;;;;;;;;CAoRxB,CAAA"}
|
|
@@ -89,20 +89,16 @@ export const dappController = (kernelInfo, dappUrl, userUrl, store, notification
|
|
|
89
89
|
});
|
|
90
90
|
let result;
|
|
91
91
|
switch (params.requestMethod) {
|
|
92
|
-
case '
|
|
93
|
-
result = await ledgerClient.getWithRetry(params.resource);
|
|
92
|
+
case 'get':
|
|
93
|
+
result = await ledgerClient.getWithRetry(params.resource, undefined, { path: params.path ?? {}, query: params.query ?? {} });
|
|
94
94
|
break;
|
|
95
|
-
case '
|
|
96
|
-
result = await ledgerClient.postWithRetry(params.resource, params.body
|
|
97
|
-
? JSON.parse(params.body)
|
|
98
|
-
: undefined);
|
|
95
|
+
case 'post':
|
|
96
|
+
result = await ledgerClient.postWithRetry(params.resource, params.body, undefined, { query: params.query ?? {}, path: params.path ?? {} });
|
|
99
97
|
break;
|
|
100
98
|
default:
|
|
101
99
|
throw new Error(`Unsupported request method: ${params.requestMethod}`);
|
|
102
100
|
}
|
|
103
|
-
return
|
|
104
|
-
response: JSON.stringify(result),
|
|
105
|
-
};
|
|
101
|
+
return result;
|
|
106
102
|
},
|
|
107
103
|
prepareExecute: async (params) => {
|
|
108
104
|
const wallet = await store.getPrimaryWallet();
|
|
@@ -84,9 +84,27 @@ export type PackageIdSelectionPreference = PackageId[];
|
|
|
84
84
|
*
|
|
85
85
|
*/
|
|
86
86
|
export type Message = string;
|
|
87
|
-
export type RequestMethod = '
|
|
87
|
+
export type RequestMethod = 'get' | 'post' | 'patch' | 'put' | 'delete';
|
|
88
88
|
export type Resource = string;
|
|
89
|
-
export
|
|
89
|
+
export interface Body {
|
|
90
|
+
[key: string]: any;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
*
|
|
94
|
+
* Query parameters as key-value pairs.
|
|
95
|
+
*
|
|
96
|
+
*/
|
|
97
|
+
export interface Query {
|
|
98
|
+
[key: string]: any;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
*
|
|
102
|
+
* Path parameters as key-value pairs.
|
|
103
|
+
*
|
|
104
|
+
*/
|
|
105
|
+
export interface Path {
|
|
106
|
+
[key: string]: any;
|
|
107
|
+
}
|
|
90
108
|
/**
|
|
91
109
|
*
|
|
92
110
|
* The unique identifier of the Provider.
|
|
@@ -209,7 +227,6 @@ export interface Session {
|
|
|
209
227
|
*
|
|
210
228
|
*/
|
|
211
229
|
export type Signature = string;
|
|
212
|
-
export type Response = string;
|
|
213
230
|
/**
|
|
214
231
|
*
|
|
215
232
|
* Set as primary wallet for dApp usage.
|
|
@@ -288,7 +305,15 @@ export interface Wallet {
|
|
|
288
305
|
topologyTransactions?: TopologyTransactions;
|
|
289
306
|
disabled?: Disabled;
|
|
290
307
|
reason?: Reason;
|
|
308
|
+
rights: Rights;
|
|
291
309
|
}
|
|
310
|
+
export type PartyLevelRight = any;
|
|
311
|
+
/**
|
|
312
|
+
*
|
|
313
|
+
* The rights of the wallet.
|
|
314
|
+
*
|
|
315
|
+
*/
|
|
316
|
+
export type Rights = PartyLevelRight[];
|
|
292
317
|
/**
|
|
293
318
|
*
|
|
294
319
|
* The status of the transaction.
|
|
@@ -414,6 +439,8 @@ export interface LedgerApiParams {
|
|
|
414
439
|
requestMethod: RequestMethod;
|
|
415
440
|
resource: Resource;
|
|
416
441
|
body?: Body;
|
|
442
|
+
query?: Query;
|
|
443
|
+
path?: Path;
|
|
417
444
|
}
|
|
418
445
|
export interface StatusEvent {
|
|
419
446
|
provider: Provider;
|
|
@@ -440,11 +467,11 @@ export interface SignMessageResult {
|
|
|
440
467
|
}
|
|
441
468
|
/**
|
|
442
469
|
*
|
|
443
|
-
* Ledger Api
|
|
470
|
+
* Ledger Api response
|
|
444
471
|
*
|
|
445
472
|
*/
|
|
446
473
|
export interface LedgerApiResult {
|
|
447
|
-
|
|
474
|
+
[key: string]: any;
|
|
448
475
|
}
|
|
449
476
|
/**
|
|
450
477
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/typings.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAC1B;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,EAAE,CAAA;AAC3B;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACrC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,CAAC,EAAE,cAAc,CAAA;CAClC;AACD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,EAAE,CAAA;AACpD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,SAAS,EAAE,CAAA;AACtD;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/typings.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAC1B;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,EAAE,CAAA;AAC3B;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACrC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,CAAC,EAAE,cAAc,CAAA;CAClC;AACD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,EAAE,CAAA;AACpD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,SAAS,EAAE,CAAA;AACtD;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;AACvE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,WAAW,IAAI;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,WAAW,KAAK;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;AACtE;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAA;AACxB;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,UAAU,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AACD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAA;AACxC;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAClC,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AACD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAChC;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B;AACD;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;CACjB;AACD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAA;AAC7B;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAA;AAClE;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,CAAA;AACzB;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAA;AACtC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAA;AACzC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAA;AAC9B;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;AACtC;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,CAAA;AACrC;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,SAAS,CAAA;CACvB;AACD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAA;AACnC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACnC,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,KAAK,CAAA;CACf;AACD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,sBAAsB,CAAA;CAClC;AACD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,CAAA;AACvC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACrC;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,gBAAgB,CAAA;CACrC;AACD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,cAAc,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,wBAAwB,CAAA;CACpC;AACD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAA;AACnC;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;CACvB;AACD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,EAAE,UAAU,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,4BAA4B,CAAC,EAAE,4BAA4B,CAAA;CAC9D;AACD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;CACnB;AACD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,IAAI,CAAA;CACd;AACD,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,aAAa,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AACD;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,IAAI,CAAA;AACvB,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAA;CACnB;AACD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,SAAS,CAAA;CACvB;AACD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAA;AAC3C;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAA;AACzC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACpB,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,CAAA;AAC1B;;;;GAIG;AAEH,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;AAC/C,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;AAClD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AAC5C,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AACrD,MAAM,MAAM,cAAc,GAAG,CACzB,MAAM,EAAE,oBAAoB,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAClC,MAAM,MAAM,WAAW,GAAG,CACtB,MAAM,EAAE,iBAAiB,KACxB,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC/B,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;AAC7E,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;AAClD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;AACxD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAA;AACjE,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAC5D,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA"}
|
package/dist/example-config.js
CHANGED
|
@@ -50,7 +50,7 @@ export default {
|
|
|
50
50
|
method: 'self_signed',
|
|
51
51
|
issuer: 'self-signed',
|
|
52
52
|
audience: '<REPLACE_PARTICIPANT_AUDIENCE>',
|
|
53
|
-
scope: 'openid daml_ledger_api offline_access',
|
|
53
|
+
scope: 'openid email daml_ledger_api offline_access',
|
|
54
54
|
clientId: '<REPLACE_CLIENT_ID>',
|
|
55
55
|
clientSecret: 'unsafe',
|
|
56
56
|
},
|
|
@@ -74,7 +74,7 @@ export default {
|
|
|
74
74
|
auth: {
|
|
75
75
|
method: 'authorization_code',
|
|
76
76
|
clientId: '<REPLACE_USER_CLIENT_ID>',
|
|
77
|
-
scope: 'openid daml_ledger_api offline_access',
|
|
77
|
+
scope: 'openid email daml_ledger_api offline_access',
|
|
78
78
|
audience: '<REPLACE_PARTICIPANT_AUDIENCE>',
|
|
79
79
|
},
|
|
80
80
|
adminAuth: {
|
package/dist/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockdaemon-wallet-allocator.d.ts","sourceRoot":"","sources":["../../../../src/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EAEH,sBAAsB,EAEzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAYtE,qBAAa,0BAA2B,YAAW,eAAe;IAE1D,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBAHb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,sBAAsB;IAG3C,YAAY,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"blockdaemon-wallet-allocator.d.ts","sourceRoot":"","sources":["../../../../src/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EAEH,sBAAsB,EAEzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAYtE,qBAAa,0BAA2B,YAAW,eAAe;IAE1D,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBAHb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,sBAAsB;IAG3C,YAAY,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC;IAwGZ,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA8D7E"}
|
package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fireblocks-wallet-allocator.d.ts","sourceRoot":"","sources":["../../../../src/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EAEH,sBAAsB,EAEzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAYtE,qBAAa,yBAA0B,YAAW,eAAe;IAEzD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBAHb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,sBAAsB;IAG3C,YAAY,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"fireblocks-wallet-allocator.d.ts","sourceRoot":"","sources":["../../../../src/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EAEH,sBAAsB,EAEzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAYtE,qBAAa,yBAA0B,YAAW,eAAe;IAEzD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBAHb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,sBAAsB;IAG3C,YAAY,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC;IA6FZ,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkE7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-wallet-allocator.d.ts","sourceRoot":"","sources":["../../../../src/ledger/wallet-allocation/signing-providers/kernel-wallet-allocator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EAEH,sBAAsB,EAEzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAUtE,qBAAa,qBAAsB,YAAW,eAAe;IAErD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBAHb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,sBAAsB;IAG3C,YAAY,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"kernel-wallet-allocator.d.ts","sourceRoot":"","sources":["../../../../src/ledger/wallet-allocation/signing-providers/kernel-wallet-allocator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EAEH,sBAAsB,EAEzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAUtE,qBAAa,qBAAsB,YAAW,eAAe;IAErD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBAHb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,sBAAsB;IAG3C,YAAY,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC;IAiDZ,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiC7E"}
|
package/dist/ledger/wallet-allocation/signing-providers/participant-wallet-allocator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"participant-wallet-allocator.d.ts","sourceRoot":"","sources":["../../../../src/ledger/wallet-allocation/signing-providers/participant-wallet-allocator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,qBAAa,0BAA2B,YAAW,eAAe;IAE1D,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;gBAFd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB;IAG5C,YAAY,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"participant-wallet-allocator.d.ts","sourceRoot":"","sources":["../../../../src/ledger/wallet-allocation/signing-providers/participant-wallet-allocator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,qBAAa,0BAA2B,YAAW,eAAe;IAE1D,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;gBAFd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB;IAG5C,YAAY,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,MAAM,CAAC;IAoBZ,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAY7E"}
|
|
@@ -14,7 +14,7 @@ export declare class WalletAllocationService {
|
|
|
14
14
|
private readonly fireblocksAllocator?;
|
|
15
15
|
private readonly blockdaemonAllocator?;
|
|
16
16
|
constructor(store: Store, logger: Logger, partyAllocator: PartyAllocationService, signingDrivers?: Partial<Record<SigningProvider, SigningDriverInterface>>);
|
|
17
|
-
createWallet(userId: UserId, partyHint: PartyHint, primary: Primary, signingProviderId: SigningProvider): Promise<Wallet>;
|
|
18
|
-
allocateParty(userId: UserId, existingWallet: Wallet, signingProviderId: SigningProvider): Promise<void>;
|
|
17
|
+
createWallet(userId: UserId, email: string | undefined, partyHint: PartyHint, primary: Primary, signingProviderId: SigningProvider): Promise<Wallet>;
|
|
18
|
+
allocateParty(userId: UserId, email: string | undefined, existingWallet: Wallet, signingProviderId: SigningProvider): Promise<void>;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=wallet-allocation-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-allocation-service.d.ts","sourceRoot":"","sources":["../../../src/ledger/wallet-allocation/wallet-allocation-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAMtE,MAAM,WAAW,eAAe;IAC5B,YAAY,CACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC,CAAA;IAClB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvE;AAED,qBAAa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA4B;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAA4B;gBAG9D,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB,EACtC,cAAc,GAAE,OAAO,CACnB,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAC7C;IAuCG,YAAY,CACrB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,eAAe,GACnC,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"wallet-allocation-service.d.ts","sourceRoot":"","sources":["../../../src/ledger/wallet-allocation/wallet-allocation-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAMtE,MAAM,WAAW,eAAe;IAC5B,YAAY,CACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC,CAAA;IAClB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvE;AAED,qBAAa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA4B;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAA4B;gBAG9D,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,sBAAsB,EACtC,cAAc,GAAE,OAAO,CACnB,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAC7C;IAuCG,YAAY,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,eAAe,GACnC,OAAO,CAAC,MAAM,CAAC;IAiDL,aAAa,CACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,eAAe,GACnC,OAAO,CAAC,IAAI,CAAC;CA4CnB"}
|
|
@@ -21,7 +21,7 @@ export class WalletAllocationService {
|
|
|
21
21
|
this.blockdaemonAllocator = new BlockdaemonWalletAllocator(store, logger, partyAllocator, blockdaemonDriver);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
async createWallet(userId, partyHint, primary, signingProviderId) {
|
|
24
|
+
async createWallet(userId, email, partyHint, primary, signingProviderId) {
|
|
25
25
|
switch (signingProviderId) {
|
|
26
26
|
case SigningProvider.PARTICIPANT:
|
|
27
27
|
return this.participantAllocator.createWallet(userId, partyHint, primary);
|
|
@@ -39,12 +39,15 @@ export class WalletAllocationService {
|
|
|
39
39
|
if (!this.blockdaemonAllocator) {
|
|
40
40
|
throw new Error('Blockdaemon signing driver not available');
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
if (!email) {
|
|
43
|
+
throw new Error('Email is required for Blockdaemon wallet allocation');
|
|
44
|
+
}
|
|
45
|
+
return this.blockdaemonAllocator.createWallet(email, partyHint, primary);
|
|
43
46
|
default:
|
|
44
47
|
throw new Error(`Unsupported signing provider: ${signingProviderId}`);
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
|
-
async allocateParty(userId, existingWallet, signingProviderId) {
|
|
50
|
+
async allocateParty(userId, email, existingWallet, signingProviderId) {
|
|
48
51
|
switch (signingProviderId) {
|
|
49
52
|
case SigningProvider.PARTICIPANT:
|
|
50
53
|
return this.participantAllocator.allocateParty(userId, existingWallet);
|
|
@@ -62,7 +65,10 @@ export class WalletAllocationService {
|
|
|
62
65
|
if (!this.blockdaemonAllocator) {
|
|
63
66
|
throw new Error('Blockdaemon signing driver not available');
|
|
64
67
|
}
|
|
65
|
-
|
|
68
|
+
if (!email) {
|
|
69
|
+
throw new Error('Email is required for Blockdaemon wallet allocation');
|
|
70
|
+
}
|
|
71
|
+
return this.blockdaemonAllocator.allocateParty(email, existingWallet);
|
|
66
72
|
default:
|
|
67
73
|
throw new Error(`Unsupported signing provider: ${signingProviderId}`);
|
|
68
74
|
}
|
|
@@ -16,6 +16,7 @@ const createWallet = (partyId, overrides = {}) => ({
|
|
|
16
16
|
namespace: 'namespace',
|
|
17
17
|
networkId: 'network1',
|
|
18
18
|
disabled: false,
|
|
19
|
+
rights: [],
|
|
19
20
|
...overrides,
|
|
20
21
|
});
|
|
21
22
|
const createAllocatedParty = (partyId, hint, namespace) => ({
|
|
@@ -128,7 +129,7 @@ describe('WalletAllocationService', () => {
|
|
|
128
129
|
it('createWallet allocates new party and adds wallet', async () => {
|
|
129
130
|
const expectedParty = createAllocatedParty('alice::participant1', 'alice', 'participant1');
|
|
130
131
|
mockPartyAllocator.allocateParty.mockResolvedValue(expectedParty);
|
|
131
|
-
const result = await service.createWallet('user-1', 'alice', false, SigningProvider.PARTICIPANT);
|
|
132
|
+
const result = await service.createWallet('user-1', undefined, 'alice', false, SigningProvider.PARTICIPANT);
|
|
132
133
|
expect(mockPartyAllocator.allocateParty).toHaveBeenCalledWith('user-1', 'alice');
|
|
133
134
|
expect(mockStore.addWallet).toHaveBeenCalledWith(expect.objectContaining({
|
|
134
135
|
partyId: 'alice::participant1',
|
|
@@ -146,7 +147,7 @@ describe('WalletAllocationService', () => {
|
|
|
146
147
|
namespace: 'namespace',
|
|
147
148
|
signingProviderId: SigningProvider.PARTICIPANT,
|
|
148
149
|
});
|
|
149
|
-
await service.allocateParty('user-1', existingWallet, SigningProvider.PARTICIPANT);
|
|
150
|
+
await service.allocateParty('user-1', undefined, existingWallet, SigningProvider.PARTICIPANT);
|
|
150
151
|
expect(mockPartyAllocator.allocateParty).toHaveBeenCalledWith('user-1', 'alice');
|
|
151
152
|
expect(mockStore.updateWallet).toHaveBeenCalledWith({
|
|
152
153
|
partyId: 'alice::participant1',
|
|
@@ -160,7 +161,7 @@ describe('WalletAllocationService', () => {
|
|
|
160
161
|
const expectedParty = createAllocatedParty('bob::fingerprint', 'bob', 'fingerprint');
|
|
161
162
|
mockPartyAllocator.createFingerprintFromKey.mockReturnValue('fingerprint');
|
|
162
163
|
mockPartyAllocator.allocateParty.mockResolvedValue(expectedParty);
|
|
163
|
-
const result = await service.createWallet('user-1', 'bob', false, SigningProvider.WALLET_KERNEL);
|
|
164
|
+
const result = await service.createWallet('user-1', undefined, 'bob', false, SigningProvider.WALLET_KERNEL);
|
|
164
165
|
expect(mockStore.addWallet).toHaveBeenCalledWith(expect.objectContaining({
|
|
165
166
|
partyId: 'bob::fingerprint',
|
|
166
167
|
status: 'allocated',
|
|
@@ -186,7 +187,7 @@ describe('WalletAllocationService', () => {
|
|
|
186
187
|
publicKey: 'existing-public-key',
|
|
187
188
|
signingProviderId: SigningProvider.WALLET_KERNEL,
|
|
188
189
|
});
|
|
189
|
-
await service.allocateParty('user-1', existingWallet, SigningProvider.WALLET_KERNEL);
|
|
190
|
+
await service.allocateParty('user-1', undefined, existingWallet, SigningProvider.WALLET_KERNEL);
|
|
190
191
|
expect(mockController.signTransaction).toHaveBeenCalledWith(expect.objectContaining({
|
|
191
192
|
txHash: 'test-hash',
|
|
192
193
|
keyIdentifier: { publicKey: 'existing-public-key' },
|
|
@@ -199,13 +200,13 @@ describe('WalletAllocationService', () => {
|
|
|
199
200
|
});
|
|
200
201
|
it('throws when Wallet Kernel signing driver not available', async () => {
|
|
201
202
|
const serviceWithoutDriver = createService({});
|
|
202
|
-
await expect(serviceWithoutDriver.createWallet('user-1', 'bob', false, SigningProvider.WALLET_KERNEL)).rejects.toThrow('Wallet Kernel signing driver not available');
|
|
203
|
+
await expect(serviceWithoutDriver.createWallet('user-1', undefined, 'bob', false, SigningProvider.WALLET_KERNEL)).rejects.toThrow('Wallet Kernel signing driver not available');
|
|
203
204
|
});
|
|
204
205
|
});
|
|
205
206
|
describe('Fireblocks', () => {
|
|
206
207
|
it('throws when Fireblocks signing driver not available', async () => {
|
|
207
208
|
const serviceWithoutFireblocks = createService({});
|
|
208
|
-
await expect(serviceWithoutFireblocks.createWallet('user-1', 'alice', false, SigningProvider.FIREBLOCKS)).rejects.toThrow('Fireblocks signing driver not available');
|
|
209
|
+
await expect(serviceWithoutFireblocks.createWallet('user-1', undefined, 'alice', false, SigningProvider.FIREBLOCKS)).rejects.toThrow('Fireblocks signing driver not available');
|
|
209
210
|
});
|
|
210
211
|
it('createWallet returns allocated when signTransaction returns signed', async () => {
|
|
211
212
|
const serviceWithFireblocks = createService({
|
|
@@ -219,7 +220,7 @@ describe('WalletAllocationService', () => {
|
|
|
219
220
|
}),
|
|
220
221
|
});
|
|
221
222
|
mockPartyAllocator.allocatePartyWithExistingWallet.mockResolvedValue('alice::namespace');
|
|
222
|
-
const result = await serviceWithFireblocks.createWallet('user-1', 'alice', false, SigningProvider.FIREBLOCKS);
|
|
223
|
+
const result = await serviceWithFireblocks.createWallet('user-1', undefined, 'alice', false, SigningProvider.FIREBLOCKS);
|
|
223
224
|
expect(result.status).toBe('allocated');
|
|
224
225
|
expect(result.partyId).toBe('alice::namespace');
|
|
225
226
|
expect(mockPartyAllocator.allocatePartyWithExistingWallet).toHaveBeenCalled();
|
|
@@ -235,7 +236,7 @@ describe('WalletAllocationService', () => {
|
|
|
235
236
|
},
|
|
236
237
|
}),
|
|
237
238
|
});
|
|
238
|
-
const result = await serviceWithFireblocks.createWallet('user-1', 'alice', false, SigningProvider.FIREBLOCKS);
|
|
239
|
+
const result = await serviceWithFireblocks.createWallet('user-1', undefined, 'alice', false, SigningProvider.FIREBLOCKS);
|
|
239
240
|
expect(result.status).toBe('initialized');
|
|
240
241
|
expect(mockPartyAllocator.allocatePartyWithExistingWallet).not.toHaveBeenCalled();
|
|
241
242
|
expect(mockStore.addWallet).toHaveBeenCalled();
|
|
@@ -253,7 +254,7 @@ describe('WalletAllocationService', () => {
|
|
|
253
254
|
},
|
|
254
255
|
}),
|
|
255
256
|
});
|
|
256
|
-
const result = await serviceWithFireblocks.createWallet('user-1', 'alice', false, SigningProvider.FIREBLOCKS);
|
|
257
|
+
const result = await serviceWithFireblocks.createWallet('user-1', undefined, 'alice', false, SigningProvider.FIREBLOCKS);
|
|
257
258
|
expect(result.status).toBe('removed');
|
|
258
259
|
expect(result.reason).toBe(expectedReason);
|
|
259
260
|
expect(mockPartyAllocator.allocatePartyWithExistingWallet).not.toHaveBeenCalled();
|
|
@@ -263,7 +264,7 @@ describe('WalletAllocationService', () => {
|
|
|
263
264
|
describe('Blockdaemon', () => {
|
|
264
265
|
it('throws when Blockdaemon signing driver not available', async () => {
|
|
265
266
|
const serviceWithoutBlockdaemon = createService({});
|
|
266
|
-
await expect(serviceWithoutBlockdaemon.createWallet('user-1', 'alice', false, SigningProvider.BLOCKDAEMON)).rejects.toThrow('Blockdaemon signing driver not available');
|
|
267
|
+
await expect(serviceWithoutBlockdaemon.createWallet('user-1', 'user-1@example.com', 'alice', false, SigningProvider.BLOCKDAEMON)).rejects.toThrow('Blockdaemon signing driver not available');
|
|
267
268
|
});
|
|
268
269
|
it('createWallet returns initialized when signTransaction returns pending', async () => {
|
|
269
270
|
const serviceWithBlockdaemon = createService({
|
|
@@ -271,7 +272,7 @@ describe('WalletAllocationService', () => {
|
|
|
271
272
|
signTransactionResult: { status: 'pending', txId: 'tx-1' },
|
|
272
273
|
}),
|
|
273
274
|
});
|
|
274
|
-
const result = await serviceWithBlockdaemon.createWallet('user-1', 'alice', false, SigningProvider.BLOCKDAEMON);
|
|
275
|
+
const result = await serviceWithBlockdaemon.createWallet('user-1', 'user-1@example.com', 'alice', false, SigningProvider.BLOCKDAEMON);
|
|
275
276
|
expect(result.status).toBe('initialized');
|
|
276
277
|
expect(result.reason).toBe(WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_PENDING);
|
|
277
278
|
expect(result.externalTxId).toBe('tx-1');
|
|
@@ -291,7 +292,7 @@ describe('WalletAllocationService', () => {
|
|
|
291
292
|
}),
|
|
292
293
|
});
|
|
293
294
|
mockPartyAllocator.allocatePartyWithExistingWallet.mockResolvedValue('alice::namespace');
|
|
294
|
-
const result = await serviceWithBlockdaemon.createWallet('user-1', 'alice', false, SigningProvider.BLOCKDAEMON);
|
|
295
|
+
const result = await serviceWithBlockdaemon.createWallet('user-1', 'user-1@example.com', 'alice', false, SigningProvider.BLOCKDAEMON);
|
|
295
296
|
expect(result.status).toBe('allocated');
|
|
296
297
|
expect(result.partyId).toBe('alice::namespace');
|
|
297
298
|
expect(mockPartyAllocator.allocatePartyWithExistingWallet).toHaveBeenCalled();
|
|
@@ -13,6 +13,8 @@ export declare class WalletSyncService {
|
|
|
13
13
|
private signingDrivers;
|
|
14
14
|
private partyAllocator;
|
|
15
15
|
constructor(store: Store, ledgerClient: LedgerClient, authContext: AuthContext, logger: Logger, signingDrivers: Partial<Record<SigningProvider, SigningDriverInterface>> | undefined, partyAllocator: PartyAllocationService);
|
|
16
|
+
private static readonly EMPTY_RIGHTS;
|
|
17
|
+
private sameRights;
|
|
16
18
|
run(timeoutMs: number): Promise<void>;
|
|
17
19
|
protected resolveSigningProvider(namespace: string): Promise<{
|
|
18
20
|
signingProviderId: SigningProvider.PARTICIPANT;
|
|
@@ -22,10 +24,11 @@ export declare class WalletSyncService {
|
|
|
22
24
|
publicKey: string;
|
|
23
25
|
matched: boolean;
|
|
24
26
|
}>;
|
|
25
|
-
private
|
|
27
|
+
private getRightsSnapshot;
|
|
26
28
|
isWalletSyncNeeded(): Promise<boolean>;
|
|
27
29
|
private handleWalletsWithoutParty;
|
|
28
30
|
private handlePartiesWithoutWallet;
|
|
31
|
+
private handleRightsUpdates;
|
|
29
32
|
syncWallets(): Promise<SyncWalletsResult>;
|
|
30
33
|
}
|
|
31
34
|
//# sourceMappingURL=wallet-sync-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-sync-service.d.ts","sourceRoot":"","sources":["../../src/ledger/wallet-sync-service.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,YAAY,EAEf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"wallet-sync-service.d.ts","sourceRoot":"","sources":["../../src/ledger/wallet-sync-service.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,YAAY,EAEf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EACH,KAAK,EAIR,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAGlE,qBAAa,iBAAiB;IAEtB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,cAAc;gBAPd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,CAC3B,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,YAAK,EACE,cAAc,EAAE,sBAAsB;IAGlD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAE5D,OAAO,CAAC,UAAU;IAUZ,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAU3B,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAC5D;QACI,iBAAiB,EAAE,eAAe,CAAC,WAAW,CAAA;QAC9C,OAAO,EAAE,OAAO,CAAA;KACnB,GACD;QACI,iBAAiB,EAAE,OAAO,CACtB,eAAe,EACf,eAAe,CAAC,WAAW,CAC9B,CAAA;QACD,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,OAAO,CAAA;KACnB,CACN;YA4Ha,iBAAiB;IA2DzB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;YA8D9B,yBAAyB;YAkEzB,0BAA0B;YAgD1B,mBAAmB;IAsB3B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAuGlD"}
|