@canton-network/wallet-gateway-remote 0.27.0 → 1.0.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.
@@ -16,7 +16,8 @@ export declare class WalletSyncService {
16
16
  private static readonly EMPTY_RIGHTS;
17
17
  private sameRights;
18
18
  run(timeoutMs: number): Promise<void>;
19
- protected resolveSigningProvider(namespace: string): Promise<{
19
+ private getParticipantNamespace;
20
+ protected resolveSigningProvider(partyNamespace: string, participantNamespace: string): Promise<{
20
21
  signingProviderId: SigningProvider.PARTICIPANT;
21
22
  matched: boolean;
22
23
  } | {
@@ -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,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;IA8DzB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;YA8D9B,yBAAyB;YAkEzB,0BAA0B;YAgD1B,mBAAmB;IAsB3B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAuGlD"}
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;YAU7B,uBAAuB;cAkBrB,sBAAsB,CAClC,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,MAAM,GAC7B,OAAO,CACJ;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;YAwGa,iBAAiB;IA8DzB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;YA8D9B,yBAAyB;YA2EzB,0BAA0B;YAoD1B,mBAAmB;IAsB3B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAgHlD"}
@@ -28,27 +28,23 @@ export class WalletSyncService {
28
28
  await new Promise((res) => setTimeout(res, timeoutMs));
29
29
  }
30
30
  }
31
- async resolveSigningProvider(namespace) {
31
+ async getParticipantNamespace() {
32
+ const { participantId } = await this.ledgerClient.getWithRetry('/v2/parties/participant-id', defaultRetryableOptions);
33
+ // Extract the namespace part from participantId
34
+ // Format is hint::namespace
35
+ const [, extractedNamespace] = participantId.split('::');
36
+ if (extractedNamespace) {
37
+ return extractedNamespace;
38
+ }
39
+ else {
40
+ throw new Error(`Invalid participantId format: expected "hint::namespace", got "${participantId}"`);
41
+ }
42
+ }
43
+ // Protected for tests
44
+ async resolveSigningProvider(partyNamespace, participantNamespace) {
32
45
  try {
33
- // Check if namespace matches participant namespace first
34
- // (participant parties have namespace === participantId's namespace)
35
- let participantNamespace;
36
- try {
37
- const { participantId } = await this.ledgerClient.getWithRetry('/v2/parties/participant-id', defaultRetryableOptions);
38
- // Extract the namespace part from participantId
39
- // Format is hint::namespace
40
- const [, extractedNamespace] = participantId.split('::');
41
- if (extractedNamespace) {
42
- participantNamespace = extractedNamespace;
43
- }
44
- else {
45
- this.logger.warn({ participantId }, `Invalid participantId format: expected "hint::namespace", got "${participantId}"`);
46
- }
47
- }
48
- catch (err) {
49
- this.logger.warn({ err }, 'Failed to get participant namespace');
50
- }
51
- if (participantNamespace && namespace === participantNamespace) {
46
+ if (participantNamespace &&
47
+ partyNamespace === participantNamespace) {
52
48
  return {
53
49
  signingProviderId: SigningProvider.PARTICIPANT,
54
50
  matched: true,
@@ -82,9 +78,9 @@ export class WalletSyncService {
82
78
  if (!normalizedKey)
83
79
  continue;
84
80
  const keyNamespace = this.partyAllocator.createFingerprintFromKey(normalizedKey);
85
- if (keyNamespace === namespace) {
81
+ if (keyNamespace === partyNamespace) {
86
82
  this.logger.info({
87
- namespace,
83
+ namespace: partyNamespace,
88
84
  providerId,
89
85
  keyId: key.id,
90
86
  publicKey: key.publicKey,
@@ -104,14 +100,14 @@ export class WalletSyncService {
104
100
  }
105
101
  }
106
102
  // No match found - use participant as default provider
107
- this.logger.warn({ namespace }, 'No signing provider match found for namespace, using participant as default and marking wallet as unmatched (disabled)');
103
+ this.logger.warn({ namespace: partyNamespace }, 'No signing provider match found for namespace, using participant as default and marking wallet as unmatched (disabled)');
108
104
  return {
109
105
  signingProviderId: SigningProvider.PARTICIPANT,
110
106
  matched: false,
111
107
  };
112
108
  }
113
109
  catch (err) {
114
- this.logger.error({ err, namespace }, 'Error resolving signing provider, using participant as default and marking wallet as unmatched (disabled)');
110
+ this.logger.error({ err, namespace: partyNamespace }, 'Error resolving signing provider, using participant as default and marking wallet as unmatched (disabled)');
115
111
  // On error, use participant as default but mark as unmatched
116
112
  return {
117
113
  signingProviderId: SigningProvider.PARTICIPANT,
@@ -217,12 +213,12 @@ export class WalletSyncService {
217
213
  }
218
214
  // Participant wallets: disable when party not on ledger (participant node reset, namespace changed).
219
215
  // Other wallets: mark as initialized so user can re-allocate (e.g. after external signing).
220
- async handleWalletsWithoutParty(enabledWallets, partiesWithRights) {
221
- const walletsWithoutParty = enabledWallets.filter((wallet) => !partiesWithRights.has(wallet.partyId));
222
- const markedForAllocateWallets = [];
223
- const disabledExistingWallets = [];
216
+ async handleWalletsWithoutParty(allocatedWallets, partiesWithRights) {
217
+ const walletsWithoutParty = allocatedWallets.filter((wallet) => !partiesWithRights.has(wallet.partyId));
218
+ const updatedToInitialized = [];
219
+ const updatedToDisabled = [];
224
220
  for (const wallet of walletsWithoutParty) {
225
- if (wallet.status !== 'allocated')
221
+ if (wallet.status !== 'allocated' || wallet.disabled)
226
222
  continue;
227
223
  try {
228
224
  if (wallet.signingProviderId === SigningProvider.PARTICIPANT) {
@@ -230,6 +226,12 @@ export class WalletSyncService {
230
226
  partyId: wallet.partyId,
231
227
  signingProviderId: wallet.signingProviderId,
232
228
  }, 'Participant wallet party not on ledger, disabling (participant namespace changed)');
229
+ const disabledWallet = {
230
+ ...wallet,
231
+ disabled: true,
232
+ reason: WALLET_DISABLED_REASON.PARTICIPANT_NAMESPACE_CHANGED,
233
+ ...(wallet.primary && { primary: false }),
234
+ };
233
235
  await this.store.updateWallet({
234
236
  partyId: wallet.partyId,
235
237
  networkId: wallet.networkId,
@@ -237,7 +239,7 @@ export class WalletSyncService {
237
239
  reason: WALLET_DISABLED_REASON.PARTICIPANT_NAMESPACE_CHANGED,
238
240
  ...(wallet.primary && { primary: false }),
239
241
  });
240
- disabledExistingWallets.push(wallet);
242
+ updatedToDisabled.push(disabledWallet);
241
243
  }
242
244
  else {
243
245
  this.logger.info({
@@ -250,7 +252,12 @@ export class WalletSyncService {
250
252
  status: 'initialized',
251
253
  ...(wallet.primary && { primary: false }),
252
254
  });
253
- markedForAllocateWallets.push(wallet);
255
+ const reinitialized = {
256
+ ...wallet,
257
+ status: 'initialized',
258
+ ...(wallet.primary && { primary: false }),
259
+ };
260
+ updatedToInitialized.push(reinitialized);
254
261
  }
255
262
  }
256
263
  catch (err) {
@@ -258,16 +265,15 @@ export class WalletSyncService {
258
265
  }
259
266
  }
260
267
  return {
261
- markedForAllocateWallets,
262
- walletsWithoutParty,
263
- disabledExistingWallets,
268
+ updatedToInitialized,
269
+ updatedToDisabled,
264
270
  };
265
271
  }
266
272
  // Creates wallets for parties user has rights to
267
- async handlePartiesWithoutWallet(newParties, networkId, rightsByParty) {
273
+ async handlePartiesWithoutWallet(newParties, networkId, rightsByParty, participantNamespace) {
268
274
  return await Promise.all(newParties.map(async (partyId) => {
269
275
  const [hint, namespace] = partyId.split('::');
270
- const resolvedSigningProvider = await this.resolveSigningProvider(namespace);
276
+ const resolvedSigningProvider = await this.resolveSigningProvider(namespace, participantNamespace);
271
277
  const isMatched = resolvedSigningProvider.matched;
272
278
  const walletPublicKey = resolvedSigningProvider.signingProviderId ===
273
279
  SigningProvider.PARTICIPANT
@@ -316,6 +322,7 @@ export class WalletSyncService {
316
322
  async syncWallets() {
317
323
  this.logger.info('Starting wallet sync...');
318
324
  try {
325
+ const participantNamespace = await this.getParticipantNamespace();
319
326
  const network = await this.store.getCurrentNetwork();
320
327
  this.logger.info(network, 'Current network');
321
328
  const { rightsByParty, rightsByUser } = await this.getRightsSnapshot();
@@ -332,13 +339,14 @@ export class WalletSyncService {
332
339
  const newParties = partiesWithRights.filter((party) => !existingPartiesOnNetwork.has(`${party}:${network.id}`)
333
340
  // todo: filter on idp id
334
341
  );
335
- const { markedForAllocateWallets, walletsWithoutParty, disabledExistingWallets, } = await this.handleWalletsWithoutParty(existingAllocatedWallets, new Set(partiesWithRights));
342
+ const { updatedToInitialized, updatedToDisabled } = await this.handleWalletsWithoutParty(existingAllocatedWallets, new Set(partiesWithRights));
336
343
  const rightsUpdatedWallets = await this.handleRightsUpdates(existingAllocatedWallets, rightsByParty);
337
344
  this.logger.info({
338
345
  newParties,
339
- markedForAllocate: markedForAllocateWallets.map((w) => w.partyId),
346
+ updatedToInitialized: updatedToInitialized.map((w) => w.partyId),
347
+ updatedToDisabled: updatedToDisabled.map((w) => w.partyId),
340
348
  }, 'Wallets without parties');
341
- const newParticipantWallets = await this.handlePartiesWithoutWallet(newParties, network.id, rightsByParty);
349
+ const newParticipantWallets = await this.handlePartiesWithoutWallet(newParties, network.id, rightsByParty, participantNamespace);
342
350
  // Set primary wallet if none exists, or if primary is on an initialized wallet
343
351
  const networkWallets = await this.store.getWallets();
344
352
  const primaryWallet = networkWallets.find((w) => w.primary);
@@ -349,19 +357,27 @@ export class WalletSyncService {
349
357
  await this.store.setPrimaryWallet(allocatedWallets[0].partyId);
350
358
  this.logger.info(`Set ${allocatedWallets[0].partyId} as primary wallet in network ${network.id}`);
351
359
  }
360
+ const newWallets = newParticipantWallets;
361
+ const updatedRaw = [
362
+ ...updatedToInitialized,
363
+ ...rightsUpdatedWallets,
364
+ ];
365
+ const added = newWallets.filter((wallet) => !wallet.disabled);
366
+ const updated = updatedRaw.filter((wallet) => !wallet.disabled);
352
367
  const disabled = [
353
- ...newParticipantWallets.filter((wallet) => wallet.disabled),
354
- ...disabledExistingWallets,
368
+ ...newWallets.filter((wallet) => wallet.disabled),
369
+ ...updatedRaw.filter((wallet) => wallet.disabled),
370
+ ...updatedToDisabled,
355
371
  ];
356
372
  this.logger.info({
357
- added: newParticipantWallets,
358
- updated: [...walletsWithoutParty, ...rightsUpdatedWallets],
359
- disabled: disabled,
373
+ added,
374
+ updated,
375
+ disabled,
360
376
  }, 'Wallet sync completed.');
361
377
  return {
362
- added: newParticipantWallets,
363
- updated: [...walletsWithoutParty, ...rightsUpdatedWallets],
364
- disabled: disabled,
378
+ added,
379
+ updated,
380
+ disabled,
365
381
  };
366
382
  }
367
383
  catch (err) {
@@ -9,6 +9,7 @@ import { ParticipantSigningDriver } from '@canton-network/core-signing-participa
9
9
  import { StoreSql, connection, migrator, } from '@canton-network/core-signing-store-sql';
10
10
  import { PartyLevelRight, } from '@canton-network/core-wallet-store';
11
11
  import { StoreInternal } from '@canton-network/core-wallet-store-inmemory';
12
+ import { WALLET_DISABLED_REASON } from '@canton-network/core-types';
12
13
  import { WalletSyncService } from './wallet-sync-service.js';
13
14
  import { PartyAllocationService } from './party-allocation-service.js';
14
15
  const { mockLedgerGet } = vi.hoisted(() => ({
@@ -24,8 +25,8 @@ vi.mock('@canton-network/core-ledger-client', () => ({
24
25
  }));
25
26
  // Test subclass to expose protected method
26
27
  class TestableWalletSyncService extends WalletSyncService {
27
- async resolveSigningProvider(namespace) {
28
- return super.resolveSigningProvider(namespace);
28
+ async resolveSigningProvider(partyNamespace, participantNamespace) {
29
+ return super.resolveSigningProvider(partyNamespace, participantNamespace);
29
30
  }
30
31
  }
31
32
  const testATP = (user, token) => ({
@@ -90,11 +91,7 @@ describe('WalletSyncService - resolveSigningProvider', () => {
90
91
  });
91
92
  it('resolves participant when namespace matches participant namespace', async () => {
92
93
  const participantNamespace = 'participant-namespace-123';
93
- const participantId = `participant1::${participantNamespace}`;
94
- mockLedgerGet.mockResolvedValueOnce({
95
- participantId,
96
- });
97
- const result = await service.resolveSigningProvider(participantNamespace);
94
+ const result = await service.resolveSigningProvider(participantNamespace, participantNamespace);
98
95
  expect(result).not.toBeNull();
99
96
  expect(result).toEqual({
100
97
  matched: true,
@@ -112,10 +109,8 @@ describe('WalletSyncService - resolveSigningProvider', () => {
112
109
  throw new Error(`Failed to create key in test: ${key.error_description}`);
113
110
  }
114
111
  const namespace = partyAllocator.createFingerprintFromKey(key.publicKey);
115
- mockLedgerGet.mockResolvedValueOnce({
116
- participantId: 'participant1::different-participant-namespace',
117
- });
118
- const result = await service.resolveSigningProvider(namespace);
112
+ const differentParticipantNamespace = 'different-participant-namespace';
113
+ const result = await service.resolveSigningProvider(namespace, differentParticipantNamespace);
119
114
  expect(result).not.toBeNull();
120
115
  if (result) {
121
116
  expect(result.signingProviderId).toBe(SigningProvider.WALLET_KERNEL);
@@ -149,10 +144,8 @@ describe('WalletSyncService - resolveSigningProvider', () => {
149
144
  const serviceWithFireblocks = new TestableWalletSyncService(store, ledgerClient, authContext, mockLogger, {
150
145
  [SigningProvider.FIREBLOCKS]: mockFireblocksDriver,
151
146
  }, partyAllocator);
152
- mockLedgerGet.mockResolvedValueOnce({
153
- participantId: 'participant1::different-participant-namespace',
154
- });
155
- const result = await serviceWithFireblocks.resolveSigningProvider(namespace);
147
+ const differentParticipantNamespace = 'different-participant-namespace';
148
+ const result = await serviceWithFireblocks.resolveSigningProvider(namespace, differentParticipantNamespace);
156
149
  expect(result).not.toBeNull();
157
150
  if (result) {
158
151
  expect(result.signingProviderId).toBe(SigningProvider.FIREBLOCKS);
@@ -161,12 +154,10 @@ describe('WalletSyncService - resolveSigningProvider', () => {
161
154
  }
162
155
  }
163
156
  });
164
- it('returns unmatched na defaults ot participant when no signing provider match is found', async () => {
157
+ it('returns unmatched and defaults to participant when no signing provider match is found', async () => {
165
158
  const unknownNamespace = 'unknown-namespace-123';
166
- mockLedgerGet.mockResolvedValueOnce({
167
- participantId: 'participant1::different-participant-namespace',
168
- });
169
- const result = await service.resolveSigningProvider(unknownNamespace);
159
+ const differentParticipantNamespace = 'different-participant-namespace';
160
+ const result = await service.resolveSigningProvider(unknownNamespace, differentParticipantNamespace);
170
161
  expect(result).toEqual({
171
162
  matched: false,
172
163
  signingProviderId: SigningProvider.PARTICIPANT,
@@ -309,6 +300,9 @@ describe('WalletSyncService - multi-network features', () => {
309
300
  await store.addWallet(createWallet('party1::namespace', 'network1'));
310
301
  const addWalletSpy = vi.spyOn(store, 'addWallet');
311
302
  mockLedgerGet
303
+ .mockResolvedValueOnce({
304
+ participantId: 'participant1::namespace',
305
+ })
312
306
  .mockResolvedValueOnce({
313
307
  rights: [
314
308
  {
@@ -330,9 +324,6 @@ describe('WalletSyncService - multi-network features', () => {
330
324
  },
331
325
  },
332
326
  ],
333
- })
334
- .mockResolvedValueOnce({
335
- participantId: 'participant1::namespace',
336
327
  });
337
328
  await service.syncWallets();
338
329
  // Should only add wallet for party3 (party1 already exists)
@@ -346,6 +337,9 @@ describe('WalletSyncService - multi-network features', () => {
346
337
  await setSession('network1');
347
338
  // Mock ledger client to return rights for party1
348
339
  mockLedgerGet
340
+ .mockResolvedValueOnce({
341
+ participantId: 'participant1::namespace',
342
+ })
349
343
  .mockResolvedValueOnce({
350
344
  rights: [
351
345
  {
@@ -358,9 +352,6 @@ describe('WalletSyncService - multi-network features', () => {
358
352
  },
359
353
  },
360
354
  ],
361
- })
362
- .mockResolvedValueOnce({
363
- participantId: 'participant1::namespace',
364
355
  });
365
356
  await service.syncWallets();
366
357
  // Should add party1 for network1
@@ -421,7 +412,11 @@ describe('WalletSyncService - multi-network features', () => {
421
412
  // Sync on network1 (party already exists, should not add)
422
413
  await setSession('network1');
423
414
  // Only need one mock since resolveSigningProvider won't be called if party already exists
424
- mockLedgerGet.mockResolvedValueOnce({
415
+ mockLedgerGet
416
+ .mockResolvedValueOnce({
417
+ participantId: 'participant1::namespace',
418
+ })
419
+ .mockResolvedValueOnce({
425
420
  rights: [
426
421
  {
427
422
  kind: {
@@ -444,7 +439,11 @@ describe('WalletSyncService - multi-network features', () => {
444
439
  });
445
440
  expect(walletsBeforeSync.length).toBe(0);
446
441
  mockLedgerGet.mockClear();
447
- // First mock: getPartiesRightsMap calls ledgerClient.getWithRetry('/v2/users/{user-id}/rights')
442
+ // First mock: resolveSigningProvider calls ledgerClient.getWithRetry('/v2/parties/participant-id')
443
+ mockLedgerGet.mockResolvedValueOnce({
444
+ participantId: 'participant1::namespace',
445
+ });
446
+ // Second mock: getPartiesRightsMap calls ledgerClient.getWithRetry('/v2/users/{user-id}/rights')
448
447
  mockLedgerGet.mockResolvedValueOnce({
449
448
  rights: [
450
449
  {
@@ -458,10 +457,6 @@ describe('WalletSyncService - multi-network features', () => {
458
457
  },
459
458
  ],
460
459
  });
461
- // Second mock: resolveSigningProvider calls adminLedgerClient.getWithRetry('/v2/parties/participant-id')
462
- mockLedgerGet.mockResolvedValueOnce({
463
- participantId: 'participant1::namespace',
464
- });
465
460
  expect(mockLedgerGet).toHaveBeenCalledTimes(0);
466
461
  const syncResult = await service.syncWallets();
467
462
  expect(mockLedgerGet).toHaveBeenCalledTimes(2); // Once for rights, once for participantId
@@ -530,6 +525,9 @@ describe('WalletSyncService - multi-network features', () => {
530
525
  await setSession('network1');
531
526
  await store.addWallet(createWallet('party1::namespace', 'network1'));
532
527
  mockLedgerGet
528
+ .mockResolvedValueOnce({
529
+ participantId: 'participant1::namespace',
530
+ })
533
531
  .mockResolvedValueOnce({
534
532
  rights: [
535
533
  {
@@ -540,12 +538,9 @@ describe('WalletSyncService - multi-network features', () => {
540
538
  },
541
539
  },
542
540
  ],
543
- })
544
- .mockResolvedValueOnce({
545
- participantId: 'participant1::namespace',
546
541
  });
547
542
  const updateWalletSpy = vi.spyOn(store, 'updateWallet');
548
- await service.syncWallets();
543
+ const result = await service.syncWallets();
549
544
  expect(updateWalletSpy).toHaveBeenCalledWith(expect.objectContaining({
550
545
  partyId: 'party1::namespace',
551
546
  networkId: 'network1',
@@ -554,6 +549,11 @@ describe('WalletSyncService - multi-network features', () => {
554
549
  const wallets = await store.getWallets();
555
550
  const party1Wallet = wallets.find((w) => w.partyId === 'party1::namespace');
556
551
  expect(party1Wallet?.status).toBe('initialized');
552
+ expect(result.added.length).toBe(1);
553
+ expect(result.updated.length).toBe(1);
554
+ expect(result.disabled.length).toBe(0);
555
+ expect(result.added[0].partyId).toBe('party2::namespace');
556
+ expect(result.updated[0].partyId).toBe('party1::namespace');
557
557
  });
558
558
  it('syncWallets skips wallet when status is already initialized', async () => {
559
559
  const network1 = createNetwork('network1');
@@ -563,6 +563,9 @@ describe('WalletSyncService - multi-network features', () => {
563
563
  initializedWallet.status = 'initialized';
564
564
  await store.addWallet(initializedWallet);
565
565
  mockLedgerGet
566
+ .mockResolvedValueOnce({
567
+ participantId: 'participant1::namespace',
568
+ })
566
569
  .mockResolvedValueOnce({
567
570
  rights: [
568
571
  {
@@ -573,16 +576,17 @@ describe('WalletSyncService - multi-network features', () => {
573
576
  },
574
577
  },
575
578
  ],
576
- })
577
- .mockResolvedValueOnce({
578
- participantId: 'participant1::namespace',
579
579
  });
580
580
  const updateWalletSpy = vi.spyOn(store, 'updateWallet');
581
- await service.syncWallets();
581
+ const result = await service.syncWallets();
582
582
  expect(updateWalletSpy).not.toHaveBeenCalled();
583
583
  const wallets = await store.getWallets();
584
584
  const party1Wallet = wallets.find((w) => w.partyId === 'party1::namespace');
585
585
  expect(party1Wallet?.status).toBe('initialized');
586
+ expect(result.added.length).toBe(1);
587
+ expect(result.disabled.length).toBe(0);
588
+ expect(result.updated.length).toBe(0);
589
+ expect(result.added[0].partyId).toBe('party2::namespace');
586
590
  });
587
591
  it('syncWallets marks multiple wallets as initialized when parties not on ledger', async () => {
588
592
  const network1 = createNetwork('network1');
@@ -591,6 +595,9 @@ describe('WalletSyncService - multi-network features', () => {
591
595
  await store.addWallet(createWallet('party1::namespace', 'network1'));
592
596
  await store.addWallet(createWallet('party2::namespace', 'network1'));
593
597
  mockLedgerGet
598
+ .mockResolvedValueOnce({
599
+ participantId: 'participant1::namespace',
600
+ })
594
601
  .mockResolvedValueOnce({
595
602
  rights: [
596
603
  {
@@ -601,12 +608,9 @@ describe('WalletSyncService - multi-network features', () => {
601
608
  },
602
609
  },
603
610
  ],
604
- })
605
- .mockResolvedValueOnce({
606
- participantId: 'participant1::namespace',
607
611
  });
608
612
  const updateWalletSpy = vi.spyOn(store, 'updateWallet');
609
- await service.syncWallets();
613
+ const result = await service.syncWallets();
610
614
  expect(updateWalletSpy).toHaveBeenCalledTimes(2);
611
615
  expect(updateWalletSpy).toHaveBeenCalledWith(expect.objectContaining({
612
616
  partyId: 'party1::namespace',
@@ -618,6 +622,10 @@ describe('WalletSyncService - multi-network features', () => {
618
622
  networkId: 'network1',
619
623
  status: 'initialized',
620
624
  }));
625
+ expect(result.added.length).toBe(1);
626
+ expect(result.disabled.length).toBe(0);
627
+ expect(result.updated.length).toBe(2);
628
+ expect(result.added[0].partyId).toBe('party3::namespace');
621
629
  });
622
630
  it('syncWallets disables participant wallet when party not on ledger', async () => {
623
631
  const network1 = createNetwork('network1');
@@ -627,6 +635,9 @@ describe('WalletSyncService - multi-network features', () => {
627
635
  participantWallet.signingProviderId = SigningProvider.PARTICIPANT;
628
636
  await store.addWallet(participantWallet);
629
637
  mockLedgerGet
638
+ .mockResolvedValueOnce({
639
+ participantId: 'participant1::namespace',
640
+ })
630
641
  .mockResolvedValueOnce({
631
642
  rights: [
632
643
  {
@@ -637,12 +648,9 @@ describe('WalletSyncService - multi-network features', () => {
637
648
  },
638
649
  },
639
650
  ],
640
- })
641
- .mockResolvedValueOnce({
642
- participantId: 'participant1::namespace',
643
651
  });
644
652
  const updateWalletSpy = vi.spyOn(store, 'updateWallet');
645
- await service.syncWallets();
653
+ const result = await service.syncWallets();
646
654
  expect(updateWalletSpy).toHaveBeenCalledWith(expect.objectContaining({
647
655
  partyId: 'party1::namespace',
648
656
  networkId: 'network1',
@@ -653,6 +661,91 @@ describe('WalletSyncService - multi-network features', () => {
653
661
  const party1Wallet = wallets.find((w) => w.partyId === 'party1::namespace');
654
662
  expect(party1Wallet?.disabled).toBe(true);
655
663
  expect(party1Wallet?.reason).toBe('participant namespace changed');
664
+ expect(result.added.length).toBe(1);
665
+ expect(result.updated.length).toBe(0);
666
+ expect(result.disabled.length).toBe(1);
667
+ expect(result.added[0].partyId).toBe('party2::namespace');
668
+ expect(result.disabled[0].partyId).toBe('party1::namespace');
669
+ });
670
+ it('syncWallets reports proper changes while adding a wallet when there are disabled wallets', async () => {
671
+ const network1 = createNetwork('network1');
672
+ await store.addNetwork(network1);
673
+ await setSession('network1');
674
+ const disabledWallet = createWallet('party1::namespace', 'network1', true);
675
+ await store.addWallet(disabledWallet);
676
+ mockLedgerGet
677
+ .mockResolvedValueOnce({
678
+ participantId: 'participant1::namespace',
679
+ })
680
+ .mockResolvedValueOnce({
681
+ rights: [
682
+ {
683
+ kind: {
684
+ CanActAs: {
685
+ value: { party: 'party2::namespace' },
686
+ },
687
+ },
688
+ },
689
+ ],
690
+ });
691
+ const updateWalletSpy = vi.spyOn(store, 'updateWallet');
692
+ const addWalletSpy = vi.spyOn(store, 'addWallet');
693
+ const result = await service.syncWallets();
694
+ expect(updateWalletSpy).not.toHaveBeenCalled();
695
+ expect(addWalletSpy).toHaveBeenCalledWith(expect.objectContaining({
696
+ partyId: 'party2::namespace',
697
+ networkId: 'network1',
698
+ disabled: false,
699
+ }));
700
+ const wallets = await store.getWallets();
701
+ const party1Wallet = wallets.find((w) => w.partyId === 'party1::namespace');
702
+ expect(party1Wallet?.disabled).toBe(true);
703
+ expect(result.added.length).toBe(1);
704
+ expect(result.updated.length).toBe(0);
705
+ expect(result.disabled.length).toBe(0);
706
+ expect(result.added[0].partyId).toBe('party2::namespace');
707
+ });
708
+ it('syncWallets reports proper changes while adding a disabled wallet when there are disabled wallets', async () => {
709
+ const network1 = createNetwork('network1');
710
+ await store.addNetwork(network1);
711
+ await setSession('network1');
712
+ const disabledWallet = createWallet('party1::unknown-namespace-123', 'network1', true);
713
+ await store.addWallet(disabledWallet);
714
+ mockLedgerGet
715
+ .mockResolvedValueOnce({
716
+ participantId: 'participant1::namespace',
717
+ })
718
+ .mockResolvedValueOnce({
719
+ rights: [
720
+ {
721
+ kind: {
722
+ CanActAs: {
723
+ value: {
724
+ party: 'party2::unknown-namespace-123',
725
+ },
726
+ },
727
+ },
728
+ },
729
+ ],
730
+ });
731
+ const updateWalletSpy = vi.spyOn(store, 'updateWallet');
732
+ const addWalletSpy = vi.spyOn(store, 'addWallet');
733
+ const result = await service.syncWallets();
734
+ expect(updateWalletSpy).not.toHaveBeenCalled();
735
+ expect(addWalletSpy).toHaveBeenCalledWith(expect.objectContaining({
736
+ partyId: 'party2::unknown-namespace-123',
737
+ networkId: 'network1',
738
+ disabled: true,
739
+ reason: WALLET_DISABLED_REASON.NO_SIGNING_PROVIDER_MATCHED,
740
+ }));
741
+ const wallets = await store.getWallets();
742
+ const party1Wallet = wallets.find((w) => w.partyId === 'party2::unknown-namespace-123');
743
+ expect(party1Wallet?.disabled).toBe(true);
744
+ expect(party1Wallet?.reason).toBe(WALLET_DISABLED_REASON.NO_SIGNING_PROVIDER_MATCHED);
745
+ expect(result.added.length).toBe(0);
746
+ expect(result.updated.length).toBe(0);
747
+ expect(result.disabled.length).toBe(1);
748
+ expect(result.disabled[0].partyId).toBe('party2::unknown-namespace-123');
656
749
  });
657
750
  });
658
751
  describe('Wallet sync - rights tracking', () => {
@@ -688,7 +781,15 @@ describe('WalletSyncService - multi-network features', () => {
688
781
  ...createWallet('party1::namespace', 'network1'),
689
782
  rights: [PartyLevelRight.CanActAs],
690
783
  });
691
- mockLedgerGet.mockResolvedValueOnce({
784
+ await store.addWallet({
785
+ ...createWallet('party3::namespace', 'network1'),
786
+ rights: [PartyLevelRight.CanActAs],
787
+ });
788
+ mockLedgerGet
789
+ .mockResolvedValueOnce({
790
+ participantId: 'participant1::namespace',
791
+ })
792
+ .mockResolvedValueOnce({
692
793
  rights: [
693
794
  {
694
795
  kind: {
@@ -699,6 +800,15 @@ describe('WalletSyncService - multi-network features', () => {
699
800
  },
700
801
  },
701
802
  },
803
+ {
804
+ kind: {
805
+ CanActAs: {
806
+ value: {
807
+ party: 'party2::namespace',
808
+ },
809
+ },
810
+ },
811
+ },
702
812
  ],
703
813
  });
704
814
  const result = await service.syncWallets();
@@ -711,12 +821,21 @@ describe('WalletSyncService - multi-network features', () => {
711
821
  const wallets = await store.getWallets();
712
822
  const updatedWallet = wallets.find((w) => w.partyId === 'party1::namespace');
713
823
  expect(updatedWallet?.rights).toEqual([PartyLevelRight.CanReadAs]);
824
+ // party2 wallet added
825
+ expect(result.added.length).toBe(1);
826
+ // party1 wallet updated rights
827
+ // party3 wallet updated to initialized (no rights)
828
+ expect(result.updated.length).toBe(2);
714
829
  });
715
830
  it('syncWallets does not create wallets from CanReadAsAnyParty alone', async () => {
716
831
  const network1 = createNetwork('network1');
717
832
  await store.addNetwork(network1);
718
833
  await setSession('network1');
719
- mockLedgerGet.mockResolvedValueOnce({
834
+ mockLedgerGet
835
+ .mockResolvedValueOnce({
836
+ participantId: 'participant1::namespace',
837
+ })
838
+ .mockResolvedValueOnce({
720
839
  rights: [
721
840
  {
722
841
  kind: {
@@ -233,8 +233,23 @@ export interface Wallet {
233
233
  reason?: Reason;
234
234
  rights: Rights;
235
235
  }
236
+ /**
237
+ *
238
+ * Non-disabled wallets added in this syncWallets call.
239
+ *
240
+ */
236
241
  export type SyncWalletsResultAdded = Wallet[];
242
+ /**
243
+ *
244
+ * Existing wallets that either got downgraded to status initialized or their rights changed in this syncWallets call.
245
+ *
246
+ */
237
247
  export type SyncWalletsResultUpdated = Wallet[];
248
+ /**
249
+ *
250
+ * Either wallets added in this iteration that are disabled, or existing wallet that were updated to be disabled in this syncWallets call.
251
+ *
252
+ */
238
253
  export type SyncWalletsResultDisabled = Wallet[];
239
254
  /**
240
255
  *
@@ -440,7 +455,7 @@ export interface RemovePartyResult {
440
455
  export type ListWalletsResult = Wallet[];
441
456
  /**
442
457
  *
443
- * Added and removed wallets as a result of the sync.
458
+ * Added, updated and disabled wallets as a result of the sync.
444
459
  *
445
460
  */
446
461
  export interface SyncWalletsResult {
@@ -1 +1 @@
1
- {"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/user-api/rpc-gen/typings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/user-api/rpc-gen/typings.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,CAAA;AACzB;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAChC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAA;AACvC,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAC1B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,QAAQ,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,SAAS,CAAA;IACb,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,WAAW,CAAA;IACxB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACvB;AACD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAChC;;;;GAIG;AACH,MAAM,MAAM,EAAE,GAAG,MAAM,CAAA;AACvB;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,GAAG,CAAA;AACtB;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,WAAW,GAAG;IAChB,EAAE,EAAE,EAAE,CAAA;IACN,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;CACxB;AACD;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAA;AAC7B;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAA;AACtC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,EAAE,CAAA;AACpC;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,EAAE,CAAA;AACpD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CAC1C;AACD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAClC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAA;AAChC,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,CAAA;AACxB;;;;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,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,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,MAAM,eAAe,GAAG,GAAG,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;AACrC;;;;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;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,EAAE,CAAA;AAC7C;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,EAAE,CAAA;AAC/C;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,EAAE,CAAA;AAChD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAA;AACtC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAA;AACrC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,cAAc,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC9B;AACD,MAAM,MAAM,eAAe,GAAG,SAAS,CAAA;AACvC,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;CAC7B;AACD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAA;AACzC,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,gBAAgB,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;CAC7B;AACD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAA;AACrC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;CAC7B;AACD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAChC;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,MAAM,cAAc,GAAG,GAAG,CAAA;AAChC;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,EAAE,CAAA;IACN,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAA;AAChC;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAA;AACxC;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAC5C;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,aAAa,CAAA;IACjB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,YAAY,CAAA;CAC9B;AACD,MAAM,MAAM,YAAY,GAAG,WAAW,EAAE,CAAA;AACxC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAA;AACjC,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAA;CACnB;AACD,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,WAAW,CAAA;CAC3B;AACD,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,GAAG,CAAA;CACX;AACD,MAAM,WAAW,eAAe;IAC5B,kBAAkB,EAAE,kBAAkB,CAAA;CACzC;AACD,MAAM,WAAW,kBAAkB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;CACvC;AACD,MAAM,WAAW,4BAA4B;IACzC,OAAO,EAAE,OAAO,CAAA;CACnB;AACD,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAA;CACnB;AACD,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAA;CACnB;AACD,MAAM,WAAW,iBAAiB;IAC9B,MAAM,CAAC,EAAE,YAAY,CAAA;CACxB;AACD,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACnB;AACD,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;CACrB;AACD,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,SAAS,CAAA;CACvB;AACD,MAAM,WAAW,oBAAoB;IACjC,aAAa,EAAE,aAAa,CAAA;CAC/B;AACD,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,aAAa,CAAA;CAC/B;AACD;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,IAAI,CAAA;AACvB,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,QAAQ,CAAA;CACrB;AACD,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,IAAI,CAAA;CACb;AACD,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,WAAW,4BAA4B;IACzC,MAAM,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,WAAW,iBAAiB;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAA;AACxC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,sBAAsB,CAAA;IAC7B,OAAO,EAAE,wBAAwB,CAAA;IACjC,QAAQ,EAAE,yBAAyB,CAAA;CACtC;AACD,MAAM,WAAW,wBAAwB;IACrC,gBAAgB,EAAE,gBAAgB,CAAA;CACrC;AACD,MAAM,MAAM,UAAU,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,CAAA;AACtB,MAAM,WAAW,aAAa;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,EAAE,CAAA;IACN,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,QAAQ,CAAA;CACrB;AACD,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,aAAa,CAAA;IACjB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,YAAY,CAAA;CAC9B;AACD,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,YAAY,CAAA;CAC7B;AACD,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;CACvB;AACD;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAC1E,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAC5D,MAAM,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAClE,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;AACpD,MAAM,MAAM,YAAY,GAAG,CACvB,MAAM,EAAE,kBAAkB,KACzB,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAChC,MAAM,MAAM,sBAAsB,GAAG,CACjC,MAAM,EAAE,4BAA4B,KACnC,OAAO,CAAC,4BAA4B,CAAC,CAAA;AAC1C,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAChF,MAAM,MAAM,YAAY,GAAG,CACvB,MAAM,EAAE,kBAAkB,KACzB,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC/B,MAAM,MAAM,WAAW,GAAG,CACtB,MAAM,EAAE,iBAAiB,KACxB,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC/B,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC1D,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,wBAAwB,CAAC,CAAA;AACxE,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;AAC9D,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;AACvE,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAChF,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AAC/C,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAC5D,MAAM,MAAM,cAAc,GAAG,CACzB,MAAM,EAAE,oBAAoB,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAClC,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAA;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAC5B,MAAM,EAAE,uBAAuB,KAC9B,OAAO,CAAC,IAAI,CAAC,CAAA;AAClB,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canton-network/wallet-gateway-remote",
3
- "version": "0.27.0",
3
+ "version": "1.0.0",
4
4
  "description": "A server-side Wallet Gateway implementation over HTTP",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -38,23 +38,23 @@
38
38
  "access": "public"
39
39
  },
40
40
  "dependencies": {
41
- "@canton-network/core-ledger-client": "^0.36.0",
42
- "@canton-network/core-rpc-errors": "^0.22.0",
43
- "@canton-network/core-rpc-transport": "^0.12.0",
44
- "@canton-network/core-signing-blockdaemon": "^0.28.0",
45
- "@canton-network/core-signing-fireblocks": "^0.28.0",
46
- "@canton-network/core-signing-internal": "^0.31.0",
47
- "@canton-network/core-signing-lib": "^0.30.0",
48
- "@canton-network/core-signing-participant": "^0.31.0",
49
- "@canton-network/core-signing-store-sql": "^0.32.0",
50
- "@canton-network/core-tx-visualizer": "^0.26.0",
51
- "@canton-network/core-types": "^0.26.0",
52
- "@canton-network/core-wallet-auth": "^0.27.0",
53
- "@canton-network/core-wallet-dapp-rpc-client": "^0.33.0",
54
- "@canton-network/core-wallet-store": "^0.31.0",
55
- "@canton-network/core-wallet-store-sql": "^0.31.0",
56
- "@canton-network/core-wallet-ui-components": "^0.33.0",
57
- "@canton-network/core-wallet-user-rpc-client": "^0.32.0",
41
+ "@canton-network/core-ledger-client": "^1.0.0",
42
+ "@canton-network/core-rpc-errors": "^1.0.0",
43
+ "@canton-network/core-rpc-transport": "^1.0.0",
44
+ "@canton-network/core-signing-blockdaemon": "^1.0.0",
45
+ "@canton-network/core-signing-fireblocks": "^1.0.0",
46
+ "@canton-network/core-signing-internal": "^1.0.0",
47
+ "@canton-network/core-signing-lib": "^1.0.0",
48
+ "@canton-network/core-signing-participant": "^1.0.0",
49
+ "@canton-network/core-signing-store-sql": "^1.0.0",
50
+ "@canton-network/core-tx-visualizer": "^1.0.0",
51
+ "@canton-network/core-types": "^1.0.0",
52
+ "@canton-network/core-wallet-auth": "^1.0.0",
53
+ "@canton-network/core-wallet-dapp-rpc-client": "^1.0.0",
54
+ "@canton-network/core-wallet-store": "^1.0.0",
55
+ "@canton-network/core-wallet-store-sql": "^1.0.0",
56
+ "@canton-network/core-wallet-ui-components": "^1.0.0",
57
+ "@canton-network/core-wallet-user-rpc-client": "^1.0.0",
58
58
  "@commander-js/extra-typings": "^14.0.0",
59
59
  "commander": "^14.0.3",
60
60
  "cors": "^2.8.6",
@@ -72,7 +72,7 @@
72
72
  "zod": "^4.3.6"
73
73
  },
74
74
  "devDependencies": {
75
- "@canton-network/core-wallet-store-inmemory": "^0.32.0",
75
+ "@canton-network/core-wallet-store-inmemory": "^1.0.0",
76
76
  "@types/cors": "^2.8.19",
77
77
  "@types/express": "^5.0.6",
78
78
  "@types/node": "^25.3.3",