@canton-network/wallet-gateway-remote 0.20.0 → 0.21.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.
Files changed (63) hide show
  1. package/dist/dapp-api/controller.d.ts.map +1 -1
  2. package/dist/dapp-api/controller.js +5 -9
  3. package/dist/dapp-api/rpc-gen/typings.d.ts +1 -1
  4. package/dist/dapp-api/rpc-gen/typings.d.ts.map +1 -1
  5. package/dist/ledger/party-allocation-service.d.ts +1 -2
  6. package/dist/ledger/party-allocation-service.d.ts.map +1 -1
  7. package/dist/ledger/party-allocation-service.js +2 -4
  8. package/dist/ledger/party-allocation-service.test.js +7 -4
  9. package/dist/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.d.ts +17 -0
  10. package/dist/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.d.ts.map +1 -0
  11. package/dist/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.js +146 -0
  12. package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.d.ts +17 -0
  13. package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.d.ts.map +1 -0
  14. package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.js +140 -0
  15. package/dist/ledger/wallet-allocation/signing-providers/kernel-wallet-allocator.d.ts +17 -0
  16. package/dist/ledger/wallet-allocation/signing-providers/kernel-wallet-allocator.d.ts.map +1 -0
  17. package/dist/ledger/wallet-allocation/signing-providers/kernel-wallet-allocator.js +79 -0
  18. package/dist/ledger/wallet-allocation/signing-providers/participant-wallet-allocator.d.ts +15 -0
  19. package/dist/ledger/wallet-allocation/signing-providers/participant-wallet-allocator.d.ts.map +1 -0
  20. package/dist/ledger/wallet-allocation/signing-providers/participant-wallet-allocator.js +37 -0
  21. package/dist/ledger/wallet-allocation/wallet-allocation-service.d.ts +20 -0
  22. package/dist/ledger/wallet-allocation/wallet-allocation-service.d.ts.map +1 -0
  23. package/dist/ledger/wallet-allocation/wallet-allocation-service.js +70 -0
  24. package/dist/ledger/wallet-allocation/wallet-allocation-service.test.d.ts +2 -0
  25. package/dist/ledger/wallet-allocation/wallet-allocation-service.test.d.ts.map +1 -0
  26. package/dist/ledger/wallet-allocation/wallet-allocation-service.test.js +301 -0
  27. package/dist/ledger/wallet-sync-service.d.ts +7 -12
  28. package/dist/ledger/wallet-sync-service.d.ts.map +1 -1
  29. package/dist/ledger/wallet-sync-service.js +128 -100
  30. package/dist/ledger/wallet-sync-service.test.js +194 -46
  31. package/dist/user-api/controller.d.ts +1 -0
  32. package/dist/user-api/controller.d.ts.map +1 -1
  33. package/dist/user-api/controller.js +53 -247
  34. package/dist/user-api/rpc-gen/index.d.ts +3 -0
  35. package/dist/user-api/rpc-gen/index.d.ts.map +1 -1
  36. package/dist/user-api/rpc-gen/index.js +1 -0
  37. package/dist/user-api/rpc-gen/typings.d.ts +32 -35
  38. package/dist/user-api/rpc-gen/typings.d.ts.map +1 -1
  39. package/dist/web/frontend/404/index.html +2 -2
  40. package/dist/web/frontend/approve/index.html +4 -3
  41. package/dist/web/frontend/assets/{404-CKmKuu6H.js → 404-C-OWOQ3D.js} +1 -1
  42. package/dist/web/frontend/assets/approve-CPkaFbuR.js +17 -0
  43. package/dist/web/frontend/assets/callback-Bev8B02C.js +1 -0
  44. package/dist/web/frontend/assets/index-CZYV-CqB.js +1679 -0
  45. package/dist/web/frontend/assets/login-D2fXBXBX.js +7 -0
  46. package/dist/web/frontend/assets/{settings-Br8FgNOa.js → settings-laHcyEOv.js} +1 -1
  47. package/dist/web/frontend/assets/{state-1o1CuDWy.js → state-BZtCpgb6.js} +1 -1
  48. package/dist/web/frontend/assets/transactions-n26INLpW.js +28 -0
  49. package/dist/web/frontend/assets/utils-DqekxUsS.js +1 -0
  50. package/dist/web/frontend/assets/wallets-dk9ilN4k.js +62 -0
  51. package/dist/web/frontend/callback/index.html +2 -2
  52. package/dist/web/frontend/index.html +1 -1
  53. package/dist/web/frontend/login/index.html +3 -3
  54. package/dist/web/frontend/settings/index.html +3 -3
  55. package/dist/web/frontend/transactions/index.html +4 -3
  56. package/dist/web/frontend/wallets/index.html +4 -3
  57. package/package.json +19 -19
  58. package/dist/web/frontend/assets/approve-MzXNo4XO.js +0 -17
  59. package/dist/web/frontend/assets/callback-CcXLRr7Q.js +0 -1
  60. package/dist/web/frontend/assets/index-BnEARqU4.js +0 -1679
  61. package/dist/web/frontend/assets/login-Btlo0Zla.js +0 -7
  62. package/dist/web/frontend/assets/transactions-Cnu9eUFe.js +0 -28
  63. package/dist/web/frontend/assets/wallets-Dj5yeBJd.js +0 -63
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/dapp-api/controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAW/E,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;;;;;;;;;;;;;;CA+QxB,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;AAWzC,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;;;;;;;;;;;;;;CAuRxB,CAAA"}
@@ -1,6 +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 { assertConnected } from '@canton-network/core-wallet-auth';
3
+ import { assertConnected, AuthTokenProvider, } from '@canton-network/core-wallet-auth';
4
4
  import buildController from './rpc-gen/index.js';
5
5
  import { LedgerClient, } from '@canton-network/core-ledger-client';
6
6
  import { v4 } from 'uuid';
@@ -22,8 +22,7 @@ export const dappController = (kernelInfo, dappUrl, userUrl, store, notification
22
22
  const ledgerClient = new LedgerClient({
23
23
  baseUrl: new URL(network.ledgerApi.baseUrl),
24
24
  logger,
25
- isAdmin: false,
26
- accessToken: context.accessToken,
25
+ accessTokenProvider: AuthTokenProvider.fromToken(context.accessToken, logger),
27
26
  });
28
27
  const status = await networkStatus(ledgerClient);
29
28
  const notifier = notificationService.getNotifier(context.userId);
@@ -86,8 +85,7 @@ export const dappController = (kernelInfo, dappUrl, userUrl, store, notification
86
85
  const ledgerClient = new LedgerClient({
87
86
  baseUrl: new URL(network.ledgerApi.baseUrl),
88
87
  logger,
89
- isAdmin: false,
90
- accessToken: assertConnected(context).accessToken,
88
+ accessTokenProvider: AuthTokenProvider.fromToken(assertConnected(context).accessToken, logger),
91
89
  });
92
90
  let result;
93
91
  switch (params.requestMethod) {
@@ -118,8 +116,7 @@ export const dappController = (kernelInfo, dappUrl, userUrl, store, notification
118
116
  const ledgerClient = new LedgerClient({
119
117
  baseUrl: new URL(network.ledgerApi.baseUrl),
120
118
  logger,
121
- isAdmin: false,
122
- accessToken: context.accessToken,
119
+ accessTokenProvider: AuthTokenProvider.fromToken(context.accessToken, logger),
123
120
  });
124
121
  const userId = context.userId;
125
122
  const notifier = notificationService.getNotifier(userId);
@@ -180,8 +177,7 @@ export const dappController = (kernelInfo, dappUrl, userUrl, store, notification
180
177
  const ledgerClient = new LedgerClient({
181
178
  baseUrl: new URL(network.ledgerApi.baseUrl),
182
179
  logger,
183
- isAdmin: false,
184
- accessToken: context.accessToken,
180
+ accessTokenProvider: AuthTokenProvider.fromToken(context.accessToken, logger),
185
181
  });
186
182
  const status = await networkStatus(ledgerClient);
187
183
  return {
@@ -227,7 +227,7 @@ export type PartyId = string;
227
227
  * The status of the wallet.
228
228
  *
229
229
  */
230
- export type WalletStatus = 'initialized' | 'allocated';
230
+ export type WalletStatus = 'initialized' | 'allocated' | 'removed';
231
231
  /**
232
232
  *
233
233
  * The party hint and name of the wallet.
@@ -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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"}
@@ -14,12 +14,11 @@ export declare class PartyAllocationService {
14
14
  private logger;
15
15
  private ledgerClient;
16
16
  private synchronizerId;
17
- constructor({ synchronizerId, accessTokenProvider, httpLedgerUrl, logger, accessToken, }: {
17
+ constructor({ synchronizerId, accessTokenProvider, httpLedgerUrl, logger, }: {
18
18
  synchronizerId?: string;
19
19
  accessTokenProvider: AccessTokenProvider;
20
20
  httpLedgerUrl: string;
21
21
  logger: Logger;
22
- accessToken?: string;
23
22
  });
24
23
  /**
25
24
  * Allocates an internal participant party for a 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,EAE9B,MAAM,oCAAoC,CAAA;AAE3C,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;IAenD;;;;;OAKG;IACH,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAsB5D;;;;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;YAgCrB,qBAAqB;CAsCtC"}
1
+ {"version":3,"file":"party-allocation-service.d.ts","sourceRoot":"","sources":["../../src/ledger/party-allocation-service.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,2BAA2B,EAE9B,MAAM,oCAAoC,CAAA;AAE3C,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,GACT,EAAE;QACC,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,mBAAmB,EAAE,mBAAmB,CAAA;QACxC,aAAa,EAAE,MAAM,CAAA;QACrB,MAAM,EAAE,MAAM,CAAA;KACjB;IAUD;;;;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;IAenD;;;;;OAKG;IACH,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAsB5D;;;;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;YAgCrB,qBAAqB;CAsCtC"}
@@ -6,15 +6,13 @@ import { createHash } from 'node:crypto';
6
6
  * This service provides an abstraction for Canton party allocation that seamlessly handles both internal and external parties.
7
7
  */
8
8
  export class PartyAllocationService {
9
- constructor({ synchronizerId, accessTokenProvider, httpLedgerUrl, logger, accessToken, }) {
9
+ constructor({ synchronizerId, accessTokenProvider, httpLedgerUrl, logger, }) {
10
10
  this.logger = logger;
11
11
  this.synchronizerId = synchronizerId;
12
12
  this.ledgerClient = new LedgerClient({
13
13
  baseUrl: new URL(httpLedgerUrl),
14
14
  logger: this.logger,
15
- isAdmin: true,
16
- accessToken: accessToken ?? '',
17
- accessTokenProvider: accessTokenProvider,
15
+ accessTokenProvider,
18
16
  });
19
17
  }
20
18
  async allocateParty(userId, hint, publicKey, signingCallback) {
@@ -60,12 +60,15 @@ describe('PartyAllocationService', () => {
60
60
  const pas = await import('./party-allocation-service.js');
61
61
  // Mock AccessTokenProvider
62
62
  const mockAccessTokenProvider = {
63
- getUserAccessToken: jest
64
- .fn()
65
- .mockResolvedValue('user.jwt'),
66
- getAdminAccessToken: jest
63
+ getAccessToken: jest
67
64
  .fn()
68
65
  .mockResolvedValue('admin.jwt'),
66
+ getAuthContext: jest
67
+ .fn()
68
+ .mockResolvedValue({
69
+ userId: 'admin',
70
+ accessToken: 'admin.jwt',
71
+ }),
69
72
  };
70
73
  service = new pas.PartyAllocationService({
71
74
  synchronizerId: network.synchronizerId,
@@ -0,0 +1,17 @@
1
+ import { UserId } from '@canton-network/core-wallet-auth';
2
+ import { Store, Wallet } from '@canton-network/core-wallet-store';
3
+ import { SigningDriverInterface } from '@canton-network/core-signing-lib';
4
+ import { Logger } from 'pino';
5
+ import { PartyAllocationService } from '../../party-allocation-service.js';
6
+ import { PartyHint, Primary } from '../../../user-api/rpc-gen/typings.js';
7
+ import type { WalletAllocator } from '../wallet-allocation-service.js';
8
+ export declare class BlockdaemonWalletAllocator implements WalletAllocator {
9
+ private store;
10
+ private logger;
11
+ private partyAllocator;
12
+ private signingDriver;
13
+ constructor(store: Store, logger: Logger, partyAllocator: PartyAllocationService, signingDriver: SigningDriverInterface);
14
+ createWallet(userId: UserId, partyHint: PartyHint, primary?: Primary): Promise<Wallet>;
15
+ allocateParty(userId: UserId, existingWallet: Wallet): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=blockdaemon-wallet-allocator.d.ts.map
@@ -0,0 +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;IAuGZ,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA8D7E"}
@@ -0,0 +1,146 @@
1
+ // Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { SigningProvider, } from '@canton-network/core-signing-lib';
4
+ import { WALLET_DISABLED_REASON } from '@canton-network/core-types';
5
+ function handleSigningError(result) {
6
+ if ('error' in result) {
7
+ throw new Error(`Error from signing driver: ${result.error_description}`);
8
+ }
9
+ return result;
10
+ }
11
+ export class BlockdaemonWalletAllocator {
12
+ constructor(store, logger, partyAllocator, signingDriver) {
13
+ this.store = store;
14
+ this.logger = logger;
15
+ this.partyAllocator = partyAllocator;
16
+ this.signingDriver = signingDriver;
17
+ }
18
+ async createWallet(userId, partyHint, primary = false) {
19
+ const driver = this.signingDriver.controller(userId);
20
+ const key = await driver.createKey({
21
+ name: partyHint,
22
+ });
23
+ if ('error' in key) {
24
+ throw new Error(`Failed to create key: ${key.error_description}`);
25
+ }
26
+ const namespace = this.partyAllocator.createFingerprintFromKey(key.publicKey);
27
+ const transactions = await this.partyAllocator.generateTopologyTransactions(partyHint, key.publicKey);
28
+ const topologyTransactions = transactions.topologyTransactions ?? [];
29
+ topologyTransactions.forEach((tx, idx) => {
30
+ this.logger.info(`BLOCKDAEMON: topologyTransaction[${idx}] length=${tx.length} preview=${tx.substring(0, 100)}...`);
31
+ });
32
+ const internalTxId = crypto
33
+ .randomUUID()
34
+ .replace(/-/g, '')
35
+ .substring(0, 16);
36
+ const txPayload = JSON.stringify(topologyTransactions);
37
+ const { status, txId } = await driver
38
+ .signTransaction({
39
+ tx: Buffer.from(txPayload).toString('base64'),
40
+ txHash: transactions.multiHash,
41
+ keyIdentifier: {
42
+ publicKey: key.publicKey,
43
+ },
44
+ internalTxId,
45
+ })
46
+ .then(handleSigningError);
47
+ const network = await this.store.getCurrentNetwork();
48
+ const walletBase = {
49
+ partyId: `${partyHint}::${namespace}`,
50
+ hint: partyHint,
51
+ namespace,
52
+ signingProviderId: SigningProvider.BLOCKDAEMON,
53
+ networkId: network.id,
54
+ primary,
55
+ publicKey: key.publicKey,
56
+ externalTxId: txId,
57
+ topologyTransactions: topologyTransactions.join(', '),
58
+ };
59
+ let wallet;
60
+ if (status === 'signed') {
61
+ const { signature } = await driver
62
+ .getTransaction({
63
+ userId,
64
+ txId,
65
+ })
66
+ .then(handleSigningError);
67
+ if (!signature) {
68
+ throw new Error('Transaction signed but no signature found in result');
69
+ }
70
+ const partyId = await this.partyAllocator.allocatePartyWithExistingWallet(namespace, topologyTransactions, signature, userId);
71
+ wallet = {
72
+ ...walletBase,
73
+ partyId,
74
+ status: 'allocated',
75
+ };
76
+ }
77
+ else if (status === 'pending') {
78
+ wallet = {
79
+ ...walletBase,
80
+ status: 'initialized',
81
+ reason: WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_PENDING,
82
+ };
83
+ }
84
+ else {
85
+ const reason = status === 'rejected'
86
+ ? WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_REJECTED
87
+ : WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_FAILED;
88
+ wallet = {
89
+ ...walletBase,
90
+ status: 'removed',
91
+ disabled: true,
92
+ reason,
93
+ };
94
+ }
95
+ await this.store.addWallet(wallet);
96
+ return wallet;
97
+ }
98
+ async allocateParty(userId, existingWallet) {
99
+ if (!existingWallet.externalTxId ||
100
+ !existingWallet.topologyTransactions) {
101
+ throw new Error('Existing wallet is missing field externalTxId or topologyTransactions');
102
+ }
103
+ const driver = this.signingDriver.controller(userId);
104
+ const { signature, status } = await driver
105
+ .getTransaction({
106
+ userId,
107
+ txId: existingWallet.externalTxId,
108
+ })
109
+ .then(handleSigningError);
110
+ let walletUpdate = {
111
+ partyId: existingWallet.partyId,
112
+ networkId: existingWallet.networkId,
113
+ };
114
+ if (status === 'signed') {
115
+ if (!signature) {
116
+ throw new Error('Transaction signed but no signature found in result');
117
+ }
118
+ const partyId = await this.partyAllocator.allocatePartyWithExistingWallet(existingWallet.namespace, existingWallet.topologyTransactions.split(', '), signature, userId);
119
+ walletUpdate = {
120
+ ...walletUpdate,
121
+ partyId,
122
+ status: 'allocated',
123
+ reason: '',
124
+ };
125
+ }
126
+ else if (status === 'pending') {
127
+ walletUpdate = {
128
+ ...walletUpdate,
129
+ status: 'initialized',
130
+ reason: WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_PENDING,
131
+ };
132
+ }
133
+ else {
134
+ const reason = status === 'rejected'
135
+ ? WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_REJECTED
136
+ : WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_FAILED;
137
+ walletUpdate = {
138
+ ...walletUpdate,
139
+ status: 'removed',
140
+ disabled: true,
141
+ reason,
142
+ };
143
+ }
144
+ return this.store.updateWallet(walletUpdate);
145
+ }
146
+ }
@@ -0,0 +1,17 @@
1
+ import { UserId } from '@canton-network/core-wallet-auth';
2
+ import { Store, Wallet } from '@canton-network/core-wallet-store';
3
+ import { SigningDriverInterface } from '@canton-network/core-signing-lib';
4
+ import { Logger } from 'pino';
5
+ import { PartyAllocationService } from '../../party-allocation-service.js';
6
+ import { PartyHint, Primary } from '../../../user-api/rpc-gen/typings.js';
7
+ import type { WalletAllocator } from '../wallet-allocation-service.js';
8
+ export declare class FireblocksWalletAllocator implements WalletAllocator {
9
+ private store;
10
+ private logger;
11
+ private partyAllocator;
12
+ private signingDriver;
13
+ constructor(store: Store, logger: Logger, partyAllocator: PartyAllocationService, signingDriver: SigningDriverInterface);
14
+ createWallet(userId: UserId, partyHint: PartyHint, primary?: Primary): Promise<Wallet>;
15
+ allocateParty(userId: UserId, existingWallet: Wallet): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=fireblocks-wallet-allocator.d.ts.map
@@ -0,0 +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;IA4FZ,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkE7E"}
@@ -0,0 +1,140 @@
1
+ // Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { SigningProvider, } from '@canton-network/core-signing-lib';
4
+ import { WALLET_DISABLED_REASON } from '@canton-network/core-types';
5
+ function handleSigningError(result) {
6
+ if ('error' in result) {
7
+ throw new Error(`Error from signing driver: ${result.error_description}`);
8
+ }
9
+ return result;
10
+ }
11
+ export class FireblocksWalletAllocator {
12
+ constructor(store, logger, partyAllocator, signingDriver) {
13
+ this.store = store;
14
+ this.logger = logger;
15
+ this.partyAllocator = partyAllocator;
16
+ this.signingDriver = signingDriver;
17
+ }
18
+ async createWallet(userId, partyHint, primary = false) {
19
+ const driver = this.signingDriver.controller(userId);
20
+ const keys = await driver.getKeys().then(handleSigningError);
21
+ const key = keys?.keys?.find((k) => k.name === 'Canton Party');
22
+ if (!key)
23
+ throw new Error('Fireblocks key not found');
24
+ const formattedPublicKey = Buffer.from(key.publicKey, 'hex').toString('base64');
25
+ const namespace = this.partyAllocator.createFingerprintFromKey(formattedPublicKey);
26
+ const transactions = await this.partyAllocator.generateTopologyTransactions(partyHint, formattedPublicKey);
27
+ const topologyTransactions = transactions.topologyTransactions ?? [];
28
+ const { status, txId } = await driver
29
+ .signTransaction({
30
+ tx: '',
31
+ txHash: Buffer.from(transactions.multiHash, 'base64').toString('hex'),
32
+ keyIdentifier: {
33
+ publicKey: key.publicKey,
34
+ },
35
+ })
36
+ .then(handleSigningError);
37
+ const network = await this.store.getCurrentNetwork();
38
+ const walletBase = {
39
+ partyId: `${partyHint}::${namespace}`,
40
+ hint: partyHint,
41
+ namespace,
42
+ signingProviderId: SigningProvider.FIREBLOCKS,
43
+ networkId: network.id,
44
+ primary,
45
+ publicKey: key.publicKey,
46
+ externalTxId: txId,
47
+ topologyTransactions: topologyTransactions.join(', '),
48
+ };
49
+ let wallet;
50
+ if (status === 'signed') {
51
+ const { signature } = await driver
52
+ .getTransaction({
53
+ userId,
54
+ txId,
55
+ })
56
+ .then(handleSigningError);
57
+ if (!signature) {
58
+ throw new Error('Transaction signed but no signature found in result');
59
+ }
60
+ const partyId = await this.partyAllocator.allocatePartyWithExistingWallet(namespace, topologyTransactions, Buffer.from(signature, 'hex').toString('base64'), userId);
61
+ wallet = {
62
+ ...walletBase,
63
+ partyId,
64
+ status: 'allocated',
65
+ };
66
+ }
67
+ else if (status === 'pending') {
68
+ wallet = {
69
+ ...walletBase,
70
+ status: 'initialized',
71
+ reason: WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_PENDING,
72
+ };
73
+ }
74
+ else {
75
+ const reason = status === 'rejected'
76
+ ? WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_REJECTED
77
+ : WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_FAILED;
78
+ wallet = {
79
+ ...walletBase,
80
+ status: 'removed',
81
+ disabled: true,
82
+ reason,
83
+ };
84
+ }
85
+ await this.store.addWallet(wallet);
86
+ return wallet;
87
+ }
88
+ async allocateParty(userId, existingWallet) {
89
+ if (!existingWallet.externalTxId ||
90
+ !existingWallet.topologyTransactions) {
91
+ throw new Error('Existing wallet is missing field externalTxId or topologyTransactions');
92
+ }
93
+ const driver = this.signingDriver.controller(userId);
94
+ const keys = await driver.getKeys().then(handleSigningError);
95
+ const key = keys?.keys?.find((k) => k.name === 'Canton Party');
96
+ if (!key)
97
+ throw new Error('Fireblocks key not found');
98
+ const { signature, status } = await driver
99
+ .getTransaction({
100
+ userId,
101
+ txId: existingWallet.externalTxId,
102
+ })
103
+ .then(handleSigningError);
104
+ let walletUpdate = {
105
+ partyId: existingWallet.partyId,
106
+ networkId: existingWallet.networkId,
107
+ };
108
+ if (status === 'signed') {
109
+ if (!signature) {
110
+ throw new Error('Transaction signed but no signature found in result');
111
+ }
112
+ const partyId = await this.partyAllocator.allocatePartyWithExistingWallet(existingWallet.namespace, existingWallet.topologyTransactions.split(', '), Buffer.from(signature, 'hex').toString('base64'), userId);
113
+ walletUpdate = {
114
+ ...walletUpdate,
115
+ partyId,
116
+ status: 'allocated',
117
+ reason: '',
118
+ };
119
+ }
120
+ else if (status === 'pending') {
121
+ walletUpdate = {
122
+ ...walletUpdate,
123
+ status: 'initialized',
124
+ reason: WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_PENDING,
125
+ };
126
+ }
127
+ else {
128
+ const reason = status === 'rejected'
129
+ ? WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_REJECTED
130
+ : WALLET_DISABLED_REASON.TOPOLOGY_TRANSACTION_FAILED;
131
+ walletUpdate = {
132
+ ...walletUpdate,
133
+ status: 'removed',
134
+ disabled: true,
135
+ reason,
136
+ };
137
+ }
138
+ return this.store.updateWallet(walletUpdate);
139
+ }
140
+ }
@@ -0,0 +1,17 @@
1
+ import { UserId } from '@canton-network/core-wallet-auth';
2
+ import { Store, Wallet } from '@canton-network/core-wallet-store';
3
+ import { SigningDriverInterface } from '@canton-network/core-signing-lib';
4
+ import { Logger } from 'pino';
5
+ import { PartyAllocationService } from '../../party-allocation-service.js';
6
+ import { PartyHint, Primary } from '../../../user-api/rpc-gen/typings.js';
7
+ import type { WalletAllocator } from '../wallet-allocation-service.js';
8
+ export declare class KernelWalletAllocator implements WalletAllocator {
9
+ private store;
10
+ private logger;
11
+ private partyAllocator;
12
+ private signingDriver;
13
+ constructor(store: Store, logger: Logger, partyAllocator: PartyAllocationService, signingDriver: SigningDriverInterface);
14
+ createWallet(userId: UserId, partyHint: PartyHint, primary?: Primary): Promise<Wallet>;
15
+ allocateParty(userId: UserId, existingWallet: Wallet): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=kernel-wallet-allocator.d.ts.map
@@ -0,0 +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;IAgDZ,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiC7E"}
@@ -0,0 +1,79 @@
1
+ // Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { SigningProvider, } from '@canton-network/core-signing-lib';
4
+ function handleSigningError(result) {
5
+ if ('error' in result) {
6
+ throw new Error(`Error from signing driver: ${result.error_description}`);
7
+ }
8
+ return result;
9
+ }
10
+ export class KernelWalletAllocator {
11
+ constructor(store, logger, partyAllocator, signingDriver) {
12
+ this.store = store;
13
+ this.logger = logger;
14
+ this.partyAllocator = partyAllocator;
15
+ this.signingDriver = signingDriver;
16
+ }
17
+ async createWallet(userId, partyHint, primary = false) {
18
+ const driver = this.signingDriver.controller(userId);
19
+ const key = await driver
20
+ .createKey({
21
+ name: partyHint,
22
+ })
23
+ .then(handleSigningError);
24
+ const party = await this.partyAllocator.allocateParty(userId, partyHint, key.publicKey, async (hash) => {
25
+ const { signature } = await driver
26
+ .signTransaction({
27
+ tx: '',
28
+ txHash: hash,
29
+ keyIdentifier: {
30
+ publicKey: key.publicKey,
31
+ },
32
+ })
33
+ .then(handleSigningError);
34
+ if (!signature) {
35
+ throw new Error('No signature returned from signing driver');
36
+ }
37
+ return signature;
38
+ });
39
+ const network = await this.store.getCurrentNetwork();
40
+ const wallet = {
41
+ partyId: party.partyId,
42
+ hint: party.hint,
43
+ namespace: party.namespace,
44
+ signingProviderId: SigningProvider.WALLET_KERNEL,
45
+ networkId: network.id,
46
+ status: 'allocated',
47
+ primary,
48
+ publicKey: key.publicKey,
49
+ externalTxId: '',
50
+ topologyTransactions: '',
51
+ };
52
+ await this.store.addWallet(wallet);
53
+ return wallet;
54
+ }
55
+ async allocateParty(userId, existingWallet) {
56
+ const driver = this.signingDriver.controller(userId);
57
+ const signingCallback = async (hash) => {
58
+ const result = await driver
59
+ .signTransaction({
60
+ tx: '',
61
+ txHash: hash,
62
+ keyIdentifier: { publicKey: existingWallet.publicKey },
63
+ })
64
+ .then(handleSigningError);
65
+ if (!result.signature) {
66
+ throw new Error('No signature returned from signing driver');
67
+ }
68
+ return result.signature;
69
+ };
70
+ const party = await this.partyAllocator.allocateParty(userId, existingWallet.hint, existingWallet.publicKey, signingCallback);
71
+ const network = await this.store.getCurrentNetwork();
72
+ const updateWallet = {
73
+ networkId: network.id,
74
+ partyId: party.partyId,
75
+ status: 'allocated',
76
+ };
77
+ return await this.store.updateWallet(updateWallet);
78
+ }
79
+ }
@@ -0,0 +1,15 @@
1
+ import { UserId } from '@canton-network/core-wallet-auth';
2
+ import { Store, Wallet } from '@canton-network/core-wallet-store';
3
+ import { Logger } from 'pino';
4
+ import { PartyAllocationService } from '../../party-allocation-service.js';
5
+ import { PartyHint, Primary } from '../../../user-api/rpc-gen/typings.js';
6
+ import type { WalletAllocator } from '../wallet-allocation-service.js';
7
+ export declare class ParticipantWalletAllocator implements WalletAllocator {
8
+ private store;
9
+ private logger;
10
+ private partyAllocator;
11
+ constructor(store: Store, logger: Logger, partyAllocator: PartyAllocationService);
12
+ createWallet(userId: UserId, partyHint: PartyHint, primary?: Primary): Promise<Wallet>;
13
+ allocateParty(userId: UserId, existingWallet: Wallet): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=participant-wallet-allocator.d.ts.map
@@ -0,0 +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;IAmBZ,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAY7E"}
@@ -0,0 +1,37 @@
1
+ // Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { SigningProvider } from '@canton-network/core-signing-lib';
4
+ export class ParticipantWalletAllocator {
5
+ constructor(store, logger, partyAllocator) {
6
+ this.store = store;
7
+ this.logger = logger;
8
+ this.partyAllocator = partyAllocator;
9
+ }
10
+ async createWallet(userId, partyHint, primary = false) {
11
+ const party = await this.partyAllocator.allocateParty(userId, partyHint);
12
+ const network = await this.store.getCurrentNetwork();
13
+ const wallet = {
14
+ partyId: party.partyId,
15
+ hint: party.hint,
16
+ namespace: party.namespace,
17
+ signingProviderId: SigningProvider.PARTICIPANT,
18
+ networkId: network.id,
19
+ status: 'allocated',
20
+ primary,
21
+ publicKey: party.namespace,
22
+ externalTxId: '',
23
+ topologyTransactions: '',
24
+ };
25
+ await this.store.addWallet(wallet);
26
+ return wallet;
27
+ }
28
+ async allocateParty(userId, existingWallet) {
29
+ const party = await this.partyAllocator.allocateParty(userId, existingWallet.hint);
30
+ const network = await this.store.getCurrentNetwork();
31
+ return await this.store.updateWallet({
32
+ partyId: party.partyId,
33
+ networkId: network.id,
34
+ status: 'allocated',
35
+ });
36
+ }
37
+ }