@canton-network/wallet-gateway-remote 0.7.0 → 0.8.1

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 (42) hide show
  1. package/README.md +11 -1
  2. package/dist/config/Config.d.ts +1 -1
  3. package/dist/dapp-api/controller.d.ts.map +1 -1
  4. package/dist/dapp-api/controller.js +27 -13
  5. package/dist/dapp-api/rpc-gen/typings.d.ts +95 -12
  6. package/dist/dapp-api/rpc-gen/typings.d.ts.map +1 -1
  7. package/dist/example-config.d.ts +82 -0
  8. package/dist/example-config.d.ts.map +1 -0
  9. package/dist/example-config.js +84 -0
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +23 -7
  13. package/dist/ledger/party-allocation-service.d.ts +8 -2
  14. package/dist/ledger/party-allocation-service.d.ts.map +1 -1
  15. package/dist/ledger/party-allocation-service.js +9 -6
  16. package/dist/ledger/party-allocation-service.test.js +6 -1
  17. package/dist/user-api/controller.d.ts +2 -0
  18. package/dist/user-api/controller.d.ts.map +1 -1
  19. package/dist/user-api/controller.js +47 -4
  20. package/dist/user-api/rpc-gen/index.d.ts +6 -0
  21. package/dist/user-api/rpc-gen/index.d.ts.map +1 -1
  22. package/dist/user-api/rpc-gen/index.js +2 -0
  23. package/dist/user-api/rpc-gen/typings.d.ts +38 -3
  24. package/dist/user-api/rpc-gen/typings.d.ts.map +1 -1
  25. package/dist/user-api/server.test.js +8 -5
  26. package/dist/web/frontend/404/index.html +2 -2
  27. package/dist/web/frontend/approve/index.html +5 -6
  28. package/dist/web/frontend/assets/{404--ggMeLNi.js → 404-BhnG8uW2.js} +1 -1
  29. package/dist/web/frontend/assets/{approve-BauIyUbe.js → approve-CiAdcAC8.js} +14 -8
  30. package/dist/web/frontend/assets/{callback-CSr6jalP.js → callback-B-QdpyCB.js} +1 -1
  31. package/dist/web/frontend/assets/{index-Lj4FSLif.js → index-VETtcU5U.js} +62 -54
  32. package/dist/web/frontend/assets/{login-DSxjvFmj.js → login-PmaIEbs3.js} +1 -1
  33. package/dist/web/frontend/assets/settings-CgGWPM-g.js +26 -0
  34. package/dist/web/frontend/assets/{state-DirtiRBm.js → state-D5uRt1ad.js} +1 -1
  35. package/dist/web/frontend/assets/{wallets-D7tP8D1r.js → wallets-D2PxGVS2.js} +1 -1
  36. package/dist/web/frontend/callback/index.html +2 -2
  37. package/dist/web/frontend/index.html +3 -4
  38. package/dist/web/frontend/login/index.html +5 -6
  39. package/dist/web/frontend/settings/index.html +5 -6
  40. package/dist/web/frontend/wallets/index.html +5 -6
  41. package/package.json +17 -17
  42. package/dist/web/frontend/assets/settings-DS2QQIMl.js +0 -26
package/README.md CHANGED
@@ -26,7 +26,17 @@ By default, the service runs on port `3030`, but this can be overridden via the
26
26
 
27
27
  ## Configuration
28
28
 
29
- A configuration file is required to start up the Gateway. See [config.json](https://github.com/hyperledger-labs/splice-wallet-kernel/blob/main/wallet-gateway/test/config.json) for an example.
29
+ A configuration file is required to start up the Gateway. Create an example config to edit as a starting point:
30
+
31
+ ```bash
32
+ wallet-gateway --config-example > config.json
33
+ ```
34
+
35
+ To show the full [JSON Schema](https://json-schema.org/) representation of the configuration file:
36
+
37
+ ```bash
38
+ wallet-gateway --config-schema
39
+ ```
30
40
 
31
41
  # Developing
32
42
 
@@ -40,7 +40,7 @@ export declare const configSchema: z.ZodObject<{
40
40
  id: z.ZodString;
41
41
  name: z.ZodString;
42
42
  description: z.ZodString;
43
- synchronizerId: z.ZodString;
43
+ synchronizerId: z.ZodOptional<z.ZodString>;
44
44
  identityProviderId: z.ZodString;
45
45
  ledgerApi: z.ZodObject<{
46
46
  baseUrl: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/dapp-api/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAO/E,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAQzD,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;AAG7B,eAAO,MAAM,cAAc,GACvB,YAAY,gBAAgB,EAC5B,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,SAAS,MAAM,EACf,UAAU,WAAW;;;;;;;;;;;;;CA4MxB,CAAA"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/dapp-api/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAQ/E,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAQzD,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;AAG7B,eAAO,MAAM,cAAc,GACvB,YAAY,gBAAgB,EAC5B,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,SAAS,MAAM,EACf,UAAU,WAAW;;;;;;;;;;;;;CAkNxB,CAAA"}
@@ -10,7 +10,7 @@ export const dappController = (kernelInfo, store, notificationService, _logger,
10
10
  const logger = _logger.child({ component: 'dapp-controller' });
11
11
  return buildController({
12
12
  connect: async () => {
13
- if (!context) {
13
+ if (!context || !(await store.getSession())) {
14
14
  return {
15
15
  sessionToken: '',
16
16
  status: {
@@ -46,6 +46,8 @@ export const dappController = (kernelInfo, store, notificationService, _logger,
46
46
  notifier.emit('statusChanged', {
47
47
  kernel: kernelInfo,
48
48
  isConnected: false,
49
+ isNetworkConnected: false,
50
+ networkReason: 'Unauthenticated',
49
51
  userUrl: 'http://localhost:3030/login/', // TODO: pull user URL from config
50
52
  });
51
53
  }
@@ -84,9 +86,12 @@ export const dappController = (kernelInfo, store, notificationService, _logger,
84
86
  const ledgerClient = new LedgerClient(new URL(network.ledgerApi.baseUrl), logger, false, context.accessToken);
85
87
  const userId = context.userId;
86
88
  const notifier = notificationService.getNotifier(userId);
87
- const commandId = v4();
89
+ params.commandId = params.commandId || v4();
90
+ const commandId = params.commandId;
88
91
  notifier.emit('txChanged', { status: 'pending', commandId });
89
- const { preparedTransactionHash, preparedTransaction = '' } = await prepareSubmission(context.userId, wallet.partyId, network.synchronizerId, params.commands, ledgerClient, commandId);
92
+ const synchronizerId = network.synchronizerId ??
93
+ (await ledgerClient.getSynchronizerId());
94
+ const { preparedTransactionHash, preparedTransaction = '' } = await prepareSubmission(context.userId, wallet.partyId, synchronizerId, params, ledgerClient);
90
95
  store.setTransaction({
91
96
  commandId,
92
97
  status: 'pending',
@@ -96,7 +101,7 @@ export const dappController = (kernelInfo, store, notificationService, _logger,
96
101
  });
97
102
  return {
98
103
  // TODO: pull user base URL / port from config
99
- userUrl: `http://localhost:3030/approve/index.html?commandId=${commandId}&partyId=${wallet.partyId}&txHash=${encodeURIComponent(preparedTransactionHash)}&tx=${encodeURIComponent(preparedTransaction)}`,
104
+ userUrl: `http://localhost:3030/approve/index.html?commandId=${commandId}`,
100
105
  };
101
106
  },
102
107
  prepareReturn: async (params) => {
@@ -109,10 +114,10 @@ export const dappController = (kernelInfo, store, notificationService, _logger,
109
114
  throw new Error('No primary wallet found');
110
115
  }
111
116
  const ledgerClient = new LedgerClient(new URL(network.ledgerApi.baseUrl), logger, false, context.accessToken);
112
- return prepareSubmission(context.userId, wallet.partyId, network.synchronizerId, params.commands, ledgerClient);
117
+ return prepareSubmission(context.userId, wallet.partyId, network.synchronizerId, params, ledgerClient);
113
118
  },
114
119
  status: async () => {
115
- if (!context) {
120
+ if (!context || !(await store.getSession())) {
116
121
  return {
117
122
  kernel: kernelInfo,
118
123
  isConnected: false,
@@ -149,18 +154,27 @@ export const dappController = (kernelInfo, store, notificationService, _logger,
149
154
  },
150
155
  });
151
156
  };
152
- async function prepareSubmission(userId, partyId, synchronizerId, commands, ledgerClient, commandId) {
157
+ async function prepareSubmission(userId, partyId, synchronizerId, params, ledgerClient) {
158
+ // Map disclosed contracts to ledger api format (which wrongly defines optional fields as mandatory)
159
+ const disclosedContracts = params.disclosedContracts?.map((d) => {
160
+ return {
161
+ templateId: d.templateId || '',
162
+ contractId: d.contractId || '',
163
+ createdEventBlob: d.createdEventBlob,
164
+ synchronizerId: d.synchronizerId || '',
165
+ };
166
+ }) || [];
153
167
  const prepareParams = {
154
168
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- because OpenRPC codegen type is incompatible with ledger codegen type
155
- commands: commands,
156
- commandId: commandId || v4(),
169
+ commands: params.commands,
170
+ commandId: params.commandId || v4(),
157
171
  userId,
158
- actAs: [partyId],
159
- readAs: [],
160
- disclosedContracts: [],
172
+ actAs: params.actAs || [partyId],
173
+ readAs: params.readAs || [],
174
+ disclosedContracts,
161
175
  synchronizerId,
162
176
  verboseHashing: false,
163
- packageIdSelectionPreference: [],
177
+ packageIdSelectionPreference: params.packageIdSelectionPreference || [],
164
178
  };
165
179
  return await ledgerClient.postWithRetry('/v2/interactive-submission/prepare', prepareParams);
166
180
  }
@@ -1,3 +1,9 @@
1
+ /**
2
+ *
3
+ * The unique identifier of the command associated with the transaction.
4
+ *
5
+ */
6
+ export type CommandId = string;
1
7
  /**
2
8
  *
3
9
  * Structure representing JS commands for transaction execution
@@ -6,6 +12,73 @@
6
12
  export interface JsCommands {
7
13
  [key: string]: any;
8
14
  }
15
+ /**
16
+ *
17
+ * The party that signed the transaction.
18
+ *
19
+ */
20
+ export type Party = string;
21
+ /**
22
+ *
23
+ * Set of parties on whose behalf the command should be executed, if submitted. If not set, the primary wallet's party is used.
24
+ *
25
+ */
26
+ export type ActAs = Party[];
27
+ /**
28
+ *
29
+ * Set of parties that should be granted read access to the command, if submitted. If not set, no additional read parties are granted.
30
+ *
31
+ */
32
+ export type ReadAs = Party[];
33
+ /**
34
+ *
35
+ * The template identifier of the disclosed contract.
36
+ *
37
+ */
38
+ export type TemplateId = string;
39
+ /**
40
+ *
41
+ * The unique identifier of the disclosed contract.
42
+ *
43
+ */
44
+ export type ContractId = string;
45
+ /**
46
+ *
47
+ * The blob data of the created event for the disclosed contract.
48
+ *
49
+ */
50
+ export type CreatedEventBlob = string;
51
+ /**
52
+ *
53
+ * If not set, a suitable synchronizer that this node is connected to will be chosen.
54
+ *
55
+ */
56
+ export type SynchronizerId = string;
57
+ /**
58
+ *
59
+ * Structure representing a disclosed contract for transaction execution
60
+ *
61
+ */
62
+ export interface DisclosedContract {
63
+ templateId?: TemplateId;
64
+ contractId?: ContractId;
65
+ createdEventBlob: CreatedEventBlob;
66
+ synchronizerId?: SynchronizerId;
67
+ [k: string]: any;
68
+ }
69
+ /**
70
+ *
71
+ * List of contract IDs to be disclosed with the command.
72
+ *
73
+ */
74
+ export type DisclosedContracts = DisclosedContract[];
75
+ export type PackageId = string;
76
+ /**
77
+ *
78
+ * The package-id selection preference of the client for resolving package names and interface instances in command submission and interpretation
79
+ *
80
+ */
81
+ export type PackageIdSelectionPreference = PackageId[];
9
82
  export type RequestMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
10
83
  export type Resource = string;
11
84
  export type Body = string;
@@ -185,12 +258,6 @@ export interface Wallet {
185
258
  *
186
259
  */
187
260
  export type StatusPending = 'pending';
188
- /**
189
- *
190
- * The unique identifier of the command associated with the transaction.
191
- *
192
- */
193
- export type CommandId = string;
194
261
  /**
195
262
  *
196
263
  * Event emitted when a transaction is pending.
@@ -218,12 +285,6 @@ export type Signature = string;
218
285
  *
219
286
  */
220
287
  export type SignedBy = string;
221
- /**
222
- *
223
- * The party that signed the transaction.
224
- *
225
- */
226
- export type Party = string;
227
288
  /**
228
289
  *
229
290
  * Payload for the TxChangedSignedEvent.
@@ -291,12 +352,34 @@ export interface TxChangedFailedEvent {
291
352
  status: StatusFailed;
292
353
  commandId: CommandId;
293
354
  }
355
+ /**
356
+ *
357
+ * Structure representing the request for prepare and execute calls
358
+ *
359
+ */
294
360
  export interface PrepareReturnParams {
361
+ commandId?: CommandId;
295
362
  commands: JsCommands;
363
+ actAs?: ActAs;
364
+ readAs?: ReadAs;
365
+ disclosedContracts?: DisclosedContracts;
366
+ synchronizerId?: SynchronizerId;
367
+ packageIdSelectionPreference?: PackageIdSelectionPreference;
296
368
  [k: string]: any;
297
369
  }
370
+ /**
371
+ *
372
+ * Structure representing the request for prepare and execute calls
373
+ *
374
+ */
298
375
  export interface PrepareExecuteParams {
376
+ commandId?: CommandId;
299
377
  commands: JsCommands;
378
+ actAs?: ActAs;
379
+ readAs?: ReadAs;
380
+ disclosedContracts?: DisclosedContracts;
381
+ synchronizerId?: SynchronizerId;
382
+ packageIdSelectionPreference?: PackageIdSelectionPreference;
300
383
  [k: string]: any;
301
384
  }
302
385
  export interface LedgerApiParams {
@@ -1 +1 @@
1
- {"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/typings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/typings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ declare const _default: {
2
+ kernel: {
3
+ id: string;
4
+ clientType: "remote";
5
+ url: string;
6
+ userUrl: string;
7
+ };
8
+ signingStore: {
9
+ connection: {
10
+ type: "sqlite";
11
+ database: string;
12
+ };
13
+ };
14
+ store: {
15
+ connection: {
16
+ type: "sqlite";
17
+ database: string;
18
+ };
19
+ idps: ({
20
+ id: string;
21
+ type: "self_signed";
22
+ issuer: string;
23
+ configUrl?: never;
24
+ } | {
25
+ id: string;
26
+ type: "oauth";
27
+ issuer: string;
28
+ configUrl: string;
29
+ })[];
30
+ networks: ({
31
+ id: string;
32
+ name: string;
33
+ description: string;
34
+ identityProviderId: string;
35
+ auth: {
36
+ method: "self_signed";
37
+ issuer: string;
38
+ audience: string;
39
+ scope: string;
40
+ clientId: string;
41
+ clientSecret: string;
42
+ };
43
+ adminAuth: {
44
+ method: "self_signed";
45
+ issuer: string;
46
+ scope: string;
47
+ audience: string;
48
+ clientId: string;
49
+ clientSecret: string;
50
+ };
51
+ ledgerApi: {
52
+ baseUrl: string;
53
+ };
54
+ } | {
55
+ id: string;
56
+ name: string;
57
+ description: string;
58
+ identityProviderId: string;
59
+ auth: {
60
+ method: "authorization_code";
61
+ clientId: string;
62
+ scope: string;
63
+ audience: string;
64
+ issuer?: never;
65
+ clientSecret?: never;
66
+ };
67
+ adminAuth: {
68
+ method: "client_credentials";
69
+ scope: string;
70
+ audience: string;
71
+ clientId: string;
72
+ clientSecret: string;
73
+ issuer?: never;
74
+ };
75
+ ledgerApi: {
76
+ baseUrl: string;
77
+ };
78
+ })[];
79
+ };
80
+ };
81
+ export default _default;
82
+ //# sourceMappingURL=example-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example-config.d.ts","sourceRoot":"","sources":["../src/example-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wBAoFkB"}
@@ -0,0 +1,84 @@
1
+ // Copyright (c) 2025 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export default {
4
+ kernel: {
5
+ id: 'remote-da',
6
+ clientType: 'remote',
7
+ url: 'http://localhost:3030/api/v0/dapp',
8
+ userUrl: 'http://localhost:3030',
9
+ },
10
+ signingStore: {
11
+ connection: {
12
+ type: 'sqlite',
13
+ database: 'signing_store.sqlite',
14
+ },
15
+ },
16
+ store: {
17
+ connection: {
18
+ type: 'sqlite',
19
+ database: 'store.sqlite',
20
+ },
21
+ idps: [
22
+ {
23
+ id: 'idp-example-self-signed',
24
+ type: 'self_signed',
25
+ issuer: 'unsafe-auth',
26
+ },
27
+ {
28
+ id: 'idp-example-oauth',
29
+ type: 'oauth',
30
+ issuer: 'https://oauth.example.com/',
31
+ configUrl: 'https://oauth.example.com/.well-known/openid-configuration',
32
+ },
33
+ ],
34
+ networks: [
35
+ {
36
+ id: 'canton:example-self-signed',
37
+ name: 'Canton Local (Self Signed)',
38
+ description: 'A network that connects to a Canton participant using self-signed tokens',
39
+ identityProviderId: 'idp-example-self-signed',
40
+ auth: {
41
+ method: 'self_signed',
42
+ issuer: 'self-signed',
43
+ audience: '<REPLACE_PARTICIPANT_AUDIENCE>',
44
+ scope: 'openid daml_ledger_api offline_access',
45
+ clientId: '<REPLACE_CLIENT_ID>',
46
+ clientSecret: 'unsafe',
47
+ },
48
+ adminAuth: {
49
+ method: 'self_signed',
50
+ issuer: 'self-signed',
51
+ scope: 'daml_ledger_api',
52
+ audience: '<REPLACE_PARTICIPANT_AUDIENCE>',
53
+ clientId: '<REPLACE_ADMIN_CLIENT_ID>',
54
+ clientSecret: 'unsafe',
55
+ },
56
+ ledgerApi: {
57
+ baseUrl: 'http://127.0.0.1:2975',
58
+ },
59
+ },
60
+ {
61
+ id: 'canton:example-oauth',
62
+ name: 'Canton Local (OAuth IDP)',
63
+ description: 'A network that connects to a Canton participant using an OAuth IDP',
64
+ identityProviderId: 'idp-example-oauth',
65
+ auth: {
66
+ method: 'authorization_code',
67
+ clientId: '<REPLACE_USER_CLIENT_ID>',
68
+ scope: 'openid daml_ledger_api offline_access',
69
+ audience: '<REPLACE_PARTICIPANT_AUDIENCE>',
70
+ },
71
+ adminAuth: {
72
+ method: 'client_credentials',
73
+ scope: 'daml_ledger_api',
74
+ audience: '<REPLACE_PARTICIPANT_AUDIENCE>',
75
+ clientId: '<REPLACE_ADMIN_CLIENT_ID>',
76
+ clientSecret: '<REPLACE_ADMIN_CLIENT_SECRET>',
77
+ },
78
+ ledgerApi: {
79
+ baseUrl: 'http://127.0.0.1:2975',
80
+ },
81
+ },
82
+ ],
83
+ },
84
+ };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  declare const options: {
3
3
  config: string;
4
+ configSchema: boolean;
5
+ configExample: boolean;
4
6
  port: string | true;
5
7
  logFormat: "json" | "pretty";
6
- storeType: "sqlite" | "postgres";
7
8
  };
8
9
  export type CliOptions = typeof options;
9
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAuDA,QAAA,MAAM,OAAO;;;;;CAAiB,CAAA;AAE9B,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAiEA,QAAA,MAAM,OAAO;;;;;;CAAiB,CAAA;AAE9B,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAA"}
package/dist/index.js CHANGED
@@ -9,6 +9,9 @@ import { readFileSync } from 'fs';
9
9
  import { join, dirname } from 'path';
10
10
  import { fileURLToPath } from 'url';
11
11
  import pino from 'pino';
12
+ import z from 'zod';
13
+ import { configSchema } from './config/Config.js';
14
+ import exampleConfig from './example-config.js';
12
15
  const __filename = fileURLToPath(import.meta.url);
13
16
  const __dirname = dirname(__filename);
14
17
  const pkg = JSON.parse(readFileSync(join(__dirname, '../package.json'), 'utf8'));
@@ -17,14 +20,21 @@ const program = new Command()
17
20
  .version(pkg.version)
18
21
  .description('Run a remotely hosted Wallet Gateway')
19
22
  .option('-c, --config <path>', 'set config path', './config.json')
23
+ .option('--config-schema', 'output the config schema and exit', false)
24
+ .option('--config-example', 'output an example config and exit', false)
20
25
  .option('-p, --port [port]', 'set port', '3030')
21
26
  .addOption(new Option('-f, --log-format <format>', 'set log format')
22
27
  .choices(['json', 'pretty'])
23
28
  .default('pretty'))
24
- .addOption(new Option('-s, --store-type <type>', 'set store type')
25
- .choices(['sqlite', 'postgres'])
26
- .default('sqlite'))
27
29
  .action((opts) => {
30
+ if (opts.configSchema) {
31
+ console.log(JSON.stringify(z.toJSONSchema(configSchema), null, 2));
32
+ process.exit(0);
33
+ }
34
+ if (opts.configExample) {
35
+ console.log(JSON.stringify(exampleConfig, null, 2));
36
+ process.exit(0);
37
+ }
28
38
  // Define project-global logger
29
39
  const logger = pino({
30
40
  name: 'main',
@@ -43,9 +53,15 @@ const program = new Command()
43
53
  // Parse only the options (without executing commands) to get config path
44
54
  program.parseOptions(process.argv);
45
55
  const options = program.opts();
46
- const config = ConfigUtils.loadConfigFile(options.config);
47
- // Add the `db` command now, before final parse
48
- const cli = createCLI(config.store);
49
- program.addCommand(cli.name('db'));
56
+ // Add a documented stub
57
+ let db = new Command('db')
58
+ .description('Database management commands')
59
+ .allowUnknownOption(true);
60
+ const hasDb = process.argv.slice(2).includes('db');
61
+ if (hasDb) {
62
+ const config = ConfigUtils.loadConfigFile(options.config);
63
+ db = createCLI(config.store);
64
+ }
65
+ program.addCommand(db.name('db'));
50
66
  // Now parse normally for execution/help
51
67
  program.parseAsync(process.argv);
@@ -11,10 +11,16 @@ type SigningCbFn = (hash: string) => Promise<string>;
11
11
  * This service provides an abstraction for Canton party allocation that seamlessly handles both internal and external parties.
12
12
  */
13
13
  export declare class PartyAllocationService {
14
- private synchronizerId;
15
14
  private logger;
16
15
  private ledgerClient;
17
- constructor(synchronizerId: string, accessTokenProvider: AccessTokenProvider, httpLedgerUrl: string, logger: Logger, accessToken?: string);
16
+ private synchronizerId;
17
+ constructor({ synchronizerId, accessTokenProvider, httpLedgerUrl, logger, accessToken, }: {
18
+ synchronizerId?: string;
19
+ accessTokenProvider: AccessTokenProvider;
20
+ httpLedgerUrl: string;
21
+ logger: Logger;
22
+ accessToken?: string;
23
+ });
18
24
  /**
19
25
  * Allocates an internal participant party for a user.
20
26
  * @param userId The ID of the user.
@@ -1 +1 @@
1
- {"version":3,"file":"party-allocation-service.d.ts","sourceRoot":"","sources":["../../src/ledger/party-allocation-service.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,2BAA2B,EAG9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAEpD;;GAEG;AACH,qBAAa,sBAAsB;IAI3B,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,MAAM;IANlB,OAAO,CAAC,YAAY,CAAc;gBAGtB,cAAc,EAAE,MAAM,EAC9B,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACtB,WAAW,GAAE,MAAW;IAW5B;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAE1E;;;;;;OAMG;IACG,aAAa,CACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,WAAW,GAC7B,OAAO,CAAC,cAAc,CAAC;IAoB1B;;;OAGG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMnD;;;;OAIG;IACG,4BAA4B,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,CAAC;IAavC;;;;;;OAMG;IACG,+BAA+B,CACjC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;YA8BJ,qBAAqB;YAuBrB,qBAAqB;CAoCtC"}
1
+ {"version":3,"file":"party-allocation-service.d.ts","sourceRoot":"","sources":["../../src/ledger/party-allocation-service.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,2BAA2B,EAG9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAEpD;;GAEG;AACH,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,cAAc,CAAoB;gBAE9B,EACR,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,MAAM,EACN,WAAW,GACd,EAAE;QACC,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,mBAAmB,EAAE,mBAAmB,CAAA;QACxC,aAAa,EAAE,MAAM,CAAA;QACrB,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB;IAYD;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAE1E;;;;;;OAMG;IACG,aAAa,CACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,WAAW,GAC7B,OAAO,CAAC,cAAc,CAAC;IAoB1B;;;OAGG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMnD;;;;OAIG;IACG,4BAA4B,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,CAAC;IAevC;;;;;;OAMG;IACG,+BAA+B,CACjC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;YAgCJ,qBAAqB;YAuBrB,qBAAqB;CAsCtC"}
@@ -5,10 +5,10 @@ import { LedgerClient, TopologyWriteService, } from '@canton-network/core-ledger
5
5
  * This service provides an abstraction for Canton party allocation that seamlessly handles both internal and external parties.
6
6
  */
7
7
  export class PartyAllocationService {
8
- constructor(synchronizerId, accessTokenProvider, httpLedgerUrl, logger, accessToken = '') {
9
- this.synchronizerId = synchronizerId;
8
+ constructor({ synchronizerId, accessTokenProvider, httpLedgerUrl, logger, accessToken, }) {
10
9
  this.logger = logger;
11
- this.ledgerClient = new LedgerClient(new URL(httpLedgerUrl), this.logger, true, accessToken, accessTokenProvider);
10
+ this.synchronizerId = synchronizerId;
11
+ this.ledgerClient = new LedgerClient(new URL(httpLedgerUrl), this.logger, true, accessToken ?? '', accessTokenProvider);
12
12
  }
13
13
  async allocateParty(userId, hint, publicKey, signingCallback) {
14
14
  if (publicKey !== undefined && signingCallback !== undefined) {
@@ -22,10 +22,12 @@ export class PartyAllocationService {
22
22
  return TopologyWriteService.createFingerprintFromKey(publicKey);
23
23
  }
24
24
  async generateTopologyTransactions(hint, publicKey) {
25
- return this.ledgerClient.generateTopology(this.synchronizerId, publicKey, hint);
25
+ const synchronizerId = this.synchronizerId ?? (await this.ledgerClient.getSynchronizerId());
26
+ return this.ledgerClient.generateTopology(synchronizerId, publicKey, hint);
26
27
  }
27
28
  async allocatePartyWithExistingWallet(namespace, transactions, signature, userId) {
28
- const res = await this.ledgerClient.allocateExternalParty(this.synchronizerId, transactions.map((transaction) => ({
29
+ const synchronizerId = this.synchronizerId ?? (await this.ledgerClient.getSynchronizerId());
30
+ const res = await this.ledgerClient.allocateExternalParty(synchronizerId, transactions.map((transaction) => ({
29
31
  transaction,
30
32
  })), [
31
33
  {
@@ -51,10 +53,11 @@ export class PartyAllocationService {
51
53
  return { hint, namespace, partyId: res.partyDetails.party };
52
54
  }
53
55
  async allocateExternalParty(userId, hint, publicKey, signingCallback) {
56
+ const synchronizerId = this.synchronizerId ?? (await this.ledgerClient.getSynchronizerId());
54
57
  const namespace = this.createFingerprintFromKey(publicKey);
55
58
  const transactions = await this.generateTopologyTransactions(hint, publicKey);
56
59
  const signature = await signingCallback(transactions.multiHash);
57
- const res = await this.ledgerClient.allocateExternalParty(this.synchronizerId, transactions.topologyTransactions.map((transaction) => ({
60
+ const res = await this.ledgerClient.allocateExternalParty(synchronizerId, transactions.topologyTransactions.map((transaction) => ({
58
61
  transaction,
59
62
  })), [
60
63
  {
@@ -74,7 +74,12 @@ describe('PartyAllocationService', () => {
74
74
  .fn()
75
75
  .mockResolvedValue('admin.jwt'),
76
76
  };
77
- service = new pas.PartyAllocationService(network.synchronizerId, mockAccessTokenProvider, network.ledgerApi.baseUrl, mockLogger);
77
+ service = new pas.PartyAllocationService({
78
+ synchronizerId: network.synchronizerId,
79
+ accessTokenProvider: mockAccessTokenProvider,
80
+ httpLedgerUrl: network.ledgerApi.baseUrl,
81
+ logger: mockLogger,
82
+ });
78
83
  });
79
84
  it('allocates an internal party', async () => {
80
85
  mockLedgerGet.mockResolvedValueOnce({ participantId: 'participantid' });
@@ -20,7 +20,9 @@ export declare const userController: (kernelInfo: KernelInfo, store: Store, noti
20
20
  sign: import("./rpc-gen/typings.js").Sign;
21
21
  execute: import("./rpc-gen/typings.js").Execute;
22
22
  addSession: import("./rpc-gen/typings.js").AddSession;
23
+ removeSession: import("./rpc-gen/typings.js").RemoveSession;
23
24
  listSessions: import("./rpc-gen/typings.js").ListSessions;
25
+ getTransaction: import("./rpc-gen/typings.js").GetTransaction;
24
26
  };
25
27
  export {};
26
28
  //# sourceMappingURL=controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/user-api/controller.ts"],"names":[],"mappings":"AAqBA,OAAO,EACH,KAAK,EAIR,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAGH,WAAW,EAId,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AAQzC,KAAK,uBAAuB,GAAG,OAAO,CAClC,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,CAAA;AAED,eAAO,MAAM,cAAc,GACvB,YAAY,UAAU,EACtB,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,aAAa,WAAW,GAAG,SAAS,EACpC,SAAS,uBAAuB,EAChC,SAAS,MAAM;;;;;;;;;;;;;;;;CAskBlB,CAAA"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/user-api/controller.ts"],"names":[],"mappings":"AAwBA,OAAO,EACH,KAAK,EAIR,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAGH,WAAW,EAId,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EACH,sBAAsB,EACtB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AASzC,KAAK,uBAAuB,GAAG,OAAO,CAClC,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,CAAA;AAED,eAAO,MAAM,cAAc,GACvB,YAAY,UAAU,EACtB,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,aAAa,WAAW,GAAG,SAAS,EACpC,SAAS,uBAAuB,EAChC,SAAS,MAAM;;;;;;;;;;;;;;;;;;CAinBlB,CAAA"}