@canton-network/wallet-gateway-remote 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/auth/jwt-auth-service.d.ts.map +1 -1
- package/dist/auth/jwt-auth-service.js +6 -5
- package/dist/auth/jwt-auth-service.test.d.ts +2 -0
- package/dist/auth/jwt-auth-service.test.d.ts.map +1 -0
- package/dist/auth/jwt-auth-service.test.js +259 -0
- package/dist/auth/jwt-unsafe-auth-service.test.d.ts +2 -0
- package/dist/auth/jwt-unsafe-auth-service.test.d.ts.map +1 -0
- package/dist/auth/jwt-unsafe-auth-service.test.js +120 -0
- package/dist/config/Config.d.ts +64 -8
- package/dist/config/Config.d.ts.map +1 -1
- package/dist/config/Config.js +1 -0
- package/dist/config/ConfigUtils.d.ts.map +1 -1
- package/dist/config/ConfigUtils.js +3 -0
- package/dist/dapp-api/controller.d.ts +1 -0
- package/dist/dapp-api/controller.d.ts.map +1 -1
- package/dist/dapp-api/controller.js +87 -26
- package/dist/dapp-api/controller.test.d.ts +2 -0
- package/dist/dapp-api/controller.test.d.ts.map +1 -0
- package/dist/dapp-api/controller.test.js +516 -0
- package/dist/dapp-api/rpc-gen/index.d.ts +3 -0
- package/dist/dapp-api/rpc-gen/index.d.ts.map +1 -1
- package/dist/dapp-api/rpc-gen/index.js +1 -0
- package/dist/dapp-api/rpc-gen/typings.d.ts +99 -14
- package/dist/dapp-api/rpc-gen/typings.d.ts.map +1 -1
- package/dist/dapp-api/server.d.ts.map +1 -1
- package/dist/dapp-api/server.js +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +4 -6
- package/dist/ledger/transaction-service.d.ts +14 -11
- package/dist/ledger/transaction-service.d.ts.map +1 -1
- package/dist/ledger/transaction-service.js +95 -8
- package/dist/ledger/transaction-service.test.d.ts +2 -0
- package/dist/ledger/transaction-service.test.d.ts.map +1 -0
- package/dist/ledger/transaction-service.test.js +356 -0
- package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.d.ts +5 -2
- package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.d.ts.map +1 -1
- package/dist/ledger/wallet-allocation/signing-providers/fireblocks-wallet-allocator.js +7 -6
- package/dist/ledger/wallet-allocation/wallet-allocation-service.d.ts +11 -5
- package/dist/ledger/wallet-allocation/wallet-allocation-service.d.ts.map +1 -1
- package/dist/ledger/wallet-allocation/wallet-allocation-service.js +28 -14
- package/dist/ledger/wallet-allocation/wallet-allocation-service.test.js +550 -19
- package/dist/ledger/wallet-sync-service.js +3 -3
- package/dist/middleware/apiKeyAuth.d.ts +6 -0
- package/dist/middleware/apiKeyAuth.d.ts.map +1 -0
- package/dist/middleware/apiKeyAuth.js +88 -0
- package/dist/middleware/apiKeyAuth.test.d.ts +2 -0
- package/dist/middleware/apiKeyAuth.test.d.ts.map +1 -0
- package/dist/middleware/apiKeyAuth.test.js +126 -0
- package/dist/middleware/jsonRpcHandler.d.ts +11 -1
- package/dist/middleware/jsonRpcHandler.d.ts.map +1 -1
- package/dist/middleware/jsonRpcHandler.js +14 -15
- package/dist/middleware/jsonRpcHandler.test.d.ts +2 -0
- package/dist/middleware/jsonRpcHandler.test.d.ts.map +1 -0
- package/dist/middleware/jsonRpcHandler.test.js +254 -0
- package/dist/middleware/jwtAuth.d.ts.map +1 -1
- package/dist/middleware/jwtAuth.js +4 -0
- package/dist/middleware/jwtAuth.test.d.ts +2 -0
- package/dist/middleware/jwtAuth.test.d.ts.map +1 -0
- package/dist/middleware/jwtAuth.test.js +93 -0
- package/dist/middleware/rateLimit.js +2 -2
- package/dist/middleware/rateLimit.test.js +26 -0
- package/dist/middleware/sessionHandler.js +1 -1
- package/dist/middleware/sessionHandler.test.d.ts +2 -0
- package/dist/middleware/sessionHandler.test.d.ts.map +1 -0
- package/dist/middleware/sessionHandler.test.js +121 -0
- package/dist/notification/NotificationService.test.d.ts +2 -0
- package/dist/notification/NotificationService.test.d.ts.map +1 -0
- package/dist/notification/NotificationService.test.js +110 -0
- package/dist/signing/signing-drivers.d.ts +7 -0
- package/dist/signing/signing-drivers.d.ts.map +1 -0
- package/dist/signing/signing-drivers.js +3 -0
- package/dist/user-api/controller.d.ts +12 -4
- package/dist/user-api/controller.d.ts.map +1 -1
- package/dist/user-api/controller.js +330 -95
- package/dist/user-api/controller.test.d.ts +2 -0
- package/dist/user-api/controller.test.d.ts.map +1 -0
- package/dist/user-api/controller.test.js +862 -0
- package/dist/user-api/rpc-gen/index.d.ts +30 -0
- package/dist/user-api/rpc-gen/index.d.ts.map +1 -1
- package/dist/user-api/rpc-gen/index.js +10 -0
- package/dist/user-api/rpc-gen/typings.d.ts +170 -25
- package/dist/user-api/rpc-gen/typings.d.ts.map +1 -1
- package/dist/user-api/server.test.js +53 -0
- package/dist/utils.d.ts +19 -5
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +53 -2
- package/dist/utils.test.d.ts +2 -0
- package/dist/utils.test.d.ts.map +1 -0
- package/dist/utils.test.js +24 -0
- package/dist/web/frontend/404/index.html +2 -2
- package/dist/web/frontend/activities/index.html +3 -3
- package/dist/web/frontend/approve/index.html +4 -5
- package/dist/web/frontend/assets/404-MVLWUPwN.js +5 -0
- package/dist/web/frontend/assets/activities-DaWkmGqA.js +61 -0
- package/dist/web/frontend/assets/addIdentityProvider--rBb0ihb.js +28 -0
- package/dist/web/frontend/assets/addNetwork-C6UDsRkU.js +38 -0
- package/dist/web/frontend/assets/addParty-B3fFD1eM.js +45 -0
- package/dist/web/frontend/assets/approve-WbGL4E82.js +21 -0
- package/dist/web/frontend/assets/callback--tihEryB.js +1 -0
- package/dist/web/frontend/assets/identityProviders-Dra4qG6t.js +71 -0
- package/dist/web/frontend/assets/index-Bm76pXA_.js +91 -0
- package/dist/web/frontend/assets/index-D1dC4Cl9.js +4477 -0
- package/dist/web/frontend/assets/login-BC8a-kD_.js +10 -0
- package/dist/web/frontend/assets/networks-B3ztsogL.js +73 -0
- package/dist/web/frontend/assets/reviewIdentityProvider-Co420Dbk.js +43 -0
- package/dist/web/frontend/assets/reviewNetwork-B-Sh8pCH.js +43 -0
- package/dist/web/frontend/assets/{settings-B1ga2TK0.js → settings-DvyUjqLl.js} +1 -1
- package/dist/web/frontend/assets/state-Bq65GwdF.js +1 -0
- package/dist/web/frontend/assets/{utils-CT9Hzi7v.js → utils-B2iziW8V.js} +1 -1
- package/dist/web/frontend/callback/index.html +2 -2
- package/dist/web/frontend/identity-providers/add/index.html +3 -3
- package/dist/web/frontend/identity-providers/index.html +3 -3
- package/dist/web/frontend/identity-providers/review/index.html +3 -3
- package/dist/web/frontend/index.html +1 -1
- package/dist/web/frontend/login/index.html +3 -4
- package/dist/web/frontend/networks/add/index.html +3 -3
- package/dist/web/frontend/networks/index.html +3 -3
- package/dist/web/frontend/networks/review/index.html +3 -3
- package/dist/web/frontend/parties/add/index.html +5 -5
- package/dist/web/frontend/parties/index.html +4 -4
- package/dist/web/frontend/settings/index.html +3 -3
- package/package.json +40 -33
- package/dist/web/frontend/assets/404-B-o9ppJB.js +0 -5
- package/dist/web/frontend/assets/activities-CGjCIjUH.js +0 -61
- package/dist/web/frontend/assets/addIdentityProvider-CR4Wm9Tl.js +0 -28
- package/dist/web/frontend/assets/addNetwork-Dx0-SN4j.js +0 -38
- package/dist/web/frontend/assets/addParty-COhk_rFn.js +0 -41
- package/dist/web/frontend/assets/approve-B2w66l0J.js +0 -21
- package/dist/web/frontend/assets/callback-BTVon_yQ.js +0 -1
- package/dist/web/frontend/assets/identityProviders-CK8zSrd3.js +0 -71
- package/dist/web/frontend/assets/index-CF4BKzgl.js +0 -91
- package/dist/web/frontend/assets/index-DWz_3f3y.js +0 -1
- package/dist/web/frontend/assets/index-_pMHlJoE.js +0 -4042
- package/dist/web/frontend/assets/login-CVoPNVDw.js +0 -10
- package/dist/web/frontend/assets/networks-D1nPvUzM.js +0 -73
- package/dist/web/frontend/assets/reviewIdentityProvider-CNSf2qQv.js +0 -43
- package/dist/web/frontend/assets/reviewNetwork-DGLK-Ume.js +0 -43
- package/dist/web/frontend/assets/state-B2k3ak7d.js +0 -1
|
@@ -6,12 +6,60 @@
|
|
|
6
6
|
export type CommandId = string;
|
|
7
7
|
/**
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Inner shape is defined by the Canton Ledger API CreateCommand schema; do not re-specify here.
|
|
10
10
|
*
|
|
11
11
|
*/
|
|
12
|
-
export interface
|
|
12
|
+
export interface CreateCommandPayload {
|
|
13
13
|
[key: string]: any;
|
|
14
14
|
}
|
|
15
|
+
export interface CreateCommand {
|
|
16
|
+
CreateCommand: CreateCommandPayload;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* Inner shape is defined by the Canton Ledger API ExerciseCommand schema; do not re-specify here.
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
export interface ExerciseCommandPayload {
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
}
|
|
26
|
+
export interface ExerciseCommand {
|
|
27
|
+
ExerciseCommand: ExerciseCommandPayload;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
* Inner shape is defined by the Canton Ledger API CreateAndExerciseCommand schema; do not re-specify here.
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
export interface CreateAndExerciseCommandPayload {
|
|
35
|
+
[key: string]: any;
|
|
36
|
+
}
|
|
37
|
+
export interface CreateAndExerciseCommand {
|
|
38
|
+
CreateAndExerciseCommand: CreateAndExerciseCommandPayload;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* Inner shape is defined by the Canton Ledger API ExerciseByKeyCommand schema; do not re-specify here.
|
|
43
|
+
*
|
|
44
|
+
*/
|
|
45
|
+
export interface ExerciseByKeyCommandPayload {
|
|
46
|
+
[key: string]: any;
|
|
47
|
+
}
|
|
48
|
+
export interface ExerciseByKeyCommand {
|
|
49
|
+
ExerciseByKeyCommand: ExerciseByKeyCommandPayload;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
* A Daml command atom. Mirror of the Canton Ledger API Command union; inner shapes are intentionally opaque so the dApp layer never drifts from the Ledger API contract.
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
export type Command = CreateCommand | ExerciseCommand | CreateAndExerciseCommand | ExerciseByKeyCommand;
|
|
57
|
+
/**
|
|
58
|
+
*
|
|
59
|
+
* Non-empty array of Daml command atoms to submit atomically as a single transaction.
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
export type Commands = Command[];
|
|
15
63
|
/**
|
|
16
64
|
*
|
|
17
65
|
* The party that signed the transaction.
|
|
@@ -223,10 +271,10 @@ export interface Session {
|
|
|
223
271
|
}
|
|
224
272
|
/**
|
|
225
273
|
*
|
|
226
|
-
* The
|
|
274
|
+
* The unique identifier of the message associated with the message to be signed.
|
|
227
275
|
*
|
|
228
276
|
*/
|
|
229
|
-
export type
|
|
277
|
+
export type MessageId = string;
|
|
230
278
|
/**
|
|
231
279
|
*
|
|
232
280
|
* Set as primary wallet for dApp usage.
|
|
@@ -316,7 +364,7 @@ export type PartyLevelRight = any;
|
|
|
316
364
|
export type Rights = PartyLevelRight[];
|
|
317
365
|
/**
|
|
318
366
|
*
|
|
319
|
-
* The status of the
|
|
367
|
+
* The status of the message signature.
|
|
320
368
|
*
|
|
321
369
|
*/
|
|
322
370
|
export type StatusPending = 'pending';
|
|
@@ -331,10 +379,16 @@ export interface TxChangedPendingEvent {
|
|
|
331
379
|
}
|
|
332
380
|
/**
|
|
333
381
|
*
|
|
334
|
-
* The status of the
|
|
382
|
+
* The status of the message signature.
|
|
335
383
|
*
|
|
336
384
|
*/
|
|
337
385
|
export type StatusSigned = 'signed';
|
|
386
|
+
/**
|
|
387
|
+
*
|
|
388
|
+
* The signature of the message.
|
|
389
|
+
*
|
|
390
|
+
*/
|
|
391
|
+
export type Signature = string;
|
|
338
392
|
/**
|
|
339
393
|
*
|
|
340
394
|
* The identifier of the provider that signed the transaction.
|
|
@@ -395,7 +449,7 @@ export interface TxChangedExecutedEvent {
|
|
|
395
449
|
}
|
|
396
450
|
/**
|
|
397
451
|
*
|
|
398
|
-
* The status of the
|
|
452
|
+
* The status of the message signature.
|
|
399
453
|
*
|
|
400
454
|
*/
|
|
401
455
|
export type StatusFailed = 'failed';
|
|
@@ -408,6 +462,34 @@ export interface TxChangedFailedEvent {
|
|
|
408
462
|
status: StatusFailed;
|
|
409
463
|
commandId: CommandId;
|
|
410
464
|
}
|
|
465
|
+
/**
|
|
466
|
+
*
|
|
467
|
+
* Event emitted when a message signature is requested.
|
|
468
|
+
*
|
|
469
|
+
*/
|
|
470
|
+
export interface MessageSignaturePendingEvent {
|
|
471
|
+
status: StatusPending;
|
|
472
|
+
messageId: MessageId;
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
*
|
|
476
|
+
* Event emitted when a message signature is completed.
|
|
477
|
+
*
|
|
478
|
+
*/
|
|
479
|
+
export interface MessageSignatureSignedEvent {
|
|
480
|
+
status: StatusSigned;
|
|
481
|
+
messageId: MessageId;
|
|
482
|
+
signature: Signature;
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
*
|
|
486
|
+
* Event emitted when a message signature has failed.
|
|
487
|
+
*
|
|
488
|
+
*/
|
|
489
|
+
export interface MessageSignatureFailedEvent {
|
|
490
|
+
status: StatusFailed;
|
|
491
|
+
messageId: MessageId;
|
|
492
|
+
}
|
|
411
493
|
/**
|
|
412
494
|
*
|
|
413
495
|
* Structure representing the request for prepare and execute calls
|
|
@@ -415,7 +497,7 @@ export interface TxChangedFailedEvent {
|
|
|
415
497
|
*/
|
|
416
498
|
export interface PrepareExecuteParams {
|
|
417
499
|
commandId?: CommandId;
|
|
418
|
-
commands:
|
|
500
|
+
commands: Commands;
|
|
419
501
|
actAs?: ActAs;
|
|
420
502
|
readAs?: ReadAs;
|
|
421
503
|
disclosedContracts?: DisclosedContracts;
|
|
@@ -457,13 +539,9 @@ export type Null = null;
|
|
|
457
539
|
export interface PrepareExecuteResult {
|
|
458
540
|
userUrl: UserUrl;
|
|
459
541
|
}
|
|
460
|
-
/**
|
|
461
|
-
*
|
|
462
|
-
* Result of signing a message.
|
|
463
|
-
*
|
|
464
|
-
*/
|
|
465
542
|
export interface SignMessageResult {
|
|
466
|
-
|
|
543
|
+
messageId: MessageId;
|
|
544
|
+
userUrl: UserUrl;
|
|
467
545
|
}
|
|
468
546
|
/**
|
|
469
547
|
*
|
|
@@ -491,6 +569,12 @@ export type ListAccountsResult = Wallet[];
|
|
|
491
569
|
*
|
|
492
570
|
*/
|
|
493
571
|
export type TxChangedEvent = TxChangedPendingEvent | TxChangedSignedEvent | TxChangedExecutedEvent | TxChangedFailedEvent;
|
|
572
|
+
/**
|
|
573
|
+
*
|
|
574
|
+
* Event emitted when a message signature is requested or completed.
|
|
575
|
+
*
|
|
576
|
+
*/
|
|
577
|
+
export type MessageSignatureEvent = MessageSignaturePendingEvent | MessageSignatureSignedEvent | MessageSignatureFailedEvent;
|
|
494
578
|
/**
|
|
495
579
|
*
|
|
496
580
|
* Generated! Represents an alias to any of the provided schemas
|
|
@@ -510,4 +594,5 @@ export type AccountsChanged = () => Promise<AccountsChangedEvent>;
|
|
|
510
594
|
export type GetPrimaryAccount = () => Promise<Wallet>;
|
|
511
595
|
export type ListAccounts = () => Promise<ListAccountsResult>;
|
|
512
596
|
export type TxChanged = () => Promise<TxChangedEvent>;
|
|
597
|
+
export type MessageSignature = () => Promise<MessageSignatureEvent>;
|
|
513
598
|
//# sourceMappingURL=typings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/typings.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;;GAIG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/typings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/dapp-api/server.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAG7B,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAO9D,eAAO,MAAM,IAAI,GACb,OAAO,MAAM,EACb,KAAK,OAAO,CAAC,OAAO,EACpB,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,SAAS,MAAM,EACf,cAAc,YAAY,EAC1B,qBAAqB,mBAAmB,EACxC,aAAa,WAAW,EACxB,OAAO,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/dapp-api/server.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAG7B,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAO9D,eAAO,MAAM,IAAI,GACb,OAAO,MAAM,EACb,KAAK,OAAO,CAAC,OAAO,EACpB,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,SAAS,MAAM,EACf,cAAc,YAAY,EAC1B,qBAAqB,mBAAmB,EACxC,aAAa,WAAW,EACxB,OAAO,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,kGA4FlC,CAAA"}
|
package/dist/dapp-api/server.js
CHANGED
|
@@ -45,16 +45,21 @@ export const dapp = (route, app, logger, server, kernelInfo, dappUrl, userUrl, s
|
|
|
45
45
|
const onTxChanged = (...event) => {
|
|
46
46
|
writeSSE(res, 'txChanged', event);
|
|
47
47
|
};
|
|
48
|
+
const onMessageSignature = (...event) => {
|
|
49
|
+
writeSSE(res, 'messageSignature', event);
|
|
50
|
+
};
|
|
48
51
|
notifier.on('accountsChanged', onAccountsChanged);
|
|
49
52
|
notifier.on('connected', onConnected);
|
|
50
53
|
notifier.on('statusChanged', onStatusChanged);
|
|
51
54
|
notifier.on('txChanged', onTxChanged);
|
|
55
|
+
notifier.on('messageSignature', onMessageSignature);
|
|
52
56
|
const cleanup = () => {
|
|
53
57
|
logger.debug('SSE client disconnected');
|
|
54
58
|
notifier.removeListener('accountsChanged', onAccountsChanged);
|
|
55
59
|
notifier.removeListener('connected', onConnected);
|
|
56
60
|
notifier.removeListener('statusChanged', onStatusChanged);
|
|
57
61
|
notifier.removeListener('txChanged', onTxChanged);
|
|
62
|
+
notifier.removeListener('messageSignature', onMessageSignature);
|
|
58
63
|
};
|
|
59
64
|
req.on('close', cleanup);
|
|
60
65
|
req.on('error', cleanup);
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA4FA,QAAA,MAAM,OAAO;;;;;;;CAAiB,CAAA;AAE9B,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ import z from 'zod';
|
|
|
13
13
|
import { rawConfigSchema } from './config/Config.js';
|
|
14
14
|
import exampleConfig from './example-config.js';
|
|
15
15
|
import { GATEWAY_VERSION } from './version.js';
|
|
16
|
+
import { nestedRedact } from './utils.js';
|
|
16
17
|
const program = new Command()
|
|
17
18
|
.name('wallet-gateway')
|
|
18
19
|
.version(GATEWAY_VERSION)
|
|
@@ -49,6 +50,15 @@ const program = new Command()
|
|
|
49
50
|
// Define project-global logger
|
|
50
51
|
const logger = pino({
|
|
51
52
|
name: 'main',
|
|
53
|
+
redact: {
|
|
54
|
+
paths: nestedRedact([
|
|
55
|
+
'accessToken',
|
|
56
|
+
'access_token',
|
|
57
|
+
'clientSecret',
|
|
58
|
+
'jwt',
|
|
59
|
+
]),
|
|
60
|
+
censor: '*****',
|
|
61
|
+
},
|
|
52
62
|
level: logLevel,
|
|
53
63
|
...(logFormat === 'pretty'
|
|
54
64
|
? {
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAyB7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAuMvC,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAoKhE"}
|
package/dist/init.js
CHANGED
|
@@ -6,7 +6,7 @@ import { web } from './web/server.js';
|
|
|
6
6
|
import { StoreSql, bootstrap, connection, migrator, } from '@canton-network/core-wallet-store-sql';
|
|
7
7
|
import { StoreSql as SigningStoreSql, bootstrap as signingBootstrap, connection as signingConnection, migrator as signingMigrator, } from '@canton-network/core-signing-store-sql';
|
|
8
8
|
import { ConfigUtils } from './config/ConfigUtils.js';
|
|
9
|
-
import { SigningProvider
|
|
9
|
+
import { SigningProvider } from '@canton-network/core-signing-lib';
|
|
10
10
|
import { ParticipantSigningDriver } from '@canton-network/core-signing-participant';
|
|
11
11
|
import { InternalSigningDriver } from '@canton-network/core-signing-internal';
|
|
12
12
|
import DfnsSigningProvider from '@canton-network/core-signing-dfns';
|
|
@@ -23,6 +23,7 @@ import { sessionHandler } from './middleware/sessionHandler.js';
|
|
|
23
23
|
import { NotificationService } from './notification/NotificationService.js';
|
|
24
24
|
import { sql } from 'kysely';
|
|
25
25
|
import { Env } from './env.js';
|
|
26
|
+
import { apiKeyAuth } from './middleware/apiKeyAuth.js';
|
|
26
27
|
let isReady = false;
|
|
27
28
|
async function initializeDatabase(config, logger) {
|
|
28
29
|
logger.info('Checking for database migrations...');
|
|
@@ -224,13 +225,10 @@ export async function initialize(opts, logger) {
|
|
|
224
225
|
'listNetworks',
|
|
225
226
|
'listIdps',
|
|
226
227
|
'getUser',
|
|
228
|
+
'selfSignedAccessToken',
|
|
227
229
|
],
|
|
228
230
|
};
|
|
229
|
-
app.use('/api/*splat', express.json());
|
|
230
|
-
app.use('/api/*splat', preAuthRateLimit);
|
|
231
|
-
app.use('/api/*splat', jwtAuth(authService, logger.child({ component: 'JwtHandler' })));
|
|
232
|
-
app.use('/api/*splat', postAuthRateLimit);
|
|
233
|
-
app.use('/api/*splat', sessionHandler(store, allowedPaths, logger.child({ component: 'SessionHandler' })));
|
|
231
|
+
app.use('/api/*splat', express.json(), preAuthRateLimit, apiKeyAuth(store, config.server.dappPath, logger.child({ component: 'ApiKeyHandler' })), jwtAuth(authService, logger.child({ component: 'JwtHandler' })), postAuthRateLimit, sessionHandler(store, allowedPaths, logger.child({ component: 'SessionHandler' })));
|
|
234
232
|
logger.info({ ...config.server, port }, 'Server configuration');
|
|
235
233
|
const kernelInfo = config.kernel;
|
|
236
234
|
// register dapp API handlers
|
|
@@ -2,35 +2,38 @@ import { Logger } from 'pino';
|
|
|
2
2
|
import { LedgerClient } from '@canton-network/core-ledger-client';
|
|
3
3
|
import { Store, Transaction, Wallet, Network } from '@canton-network/core-wallet-store';
|
|
4
4
|
import type { SignResult } from '../user-api/rpc-gen/typings.js';
|
|
5
|
-
import {
|
|
6
|
-
import { ExecuteParams, ExecuteResult, SignParams
|
|
5
|
+
import type { SigningDrivers } from '../signing/signing-drivers.js';
|
|
6
|
+
import { ExecuteParams, ExecuteResult, SignParams } from '../user-api/rpc-gen/typings.js';
|
|
7
7
|
import { UserId } from '../dapp-api/rpc-gen/typings.js';
|
|
8
8
|
import { Notifier } from '../notification/NotificationService.js';
|
|
9
|
+
import { AuthContext } from '@canton-network/core-wallet-auth';
|
|
9
10
|
export declare class TransactionService {
|
|
10
11
|
private store;
|
|
11
12
|
private logger;
|
|
12
13
|
private signingDrivers;
|
|
13
14
|
private notifier;
|
|
14
|
-
constructor(store: Store, logger: Logger, signingDrivers:
|
|
15
|
+
constructor(store: Store, logger: Logger, signingDrivers: SigningDrivers | undefined, notifier: Notifier);
|
|
16
|
+
sign(authContext: AuthContext, wallet: Wallet, signParams: SignParams): Promise<SignResult>;
|
|
17
|
+
execute(userId: UserId, wallet: Wallet, transaction: Transaction, executeParams?: ExecuteParams, ledgerClient?: LedgerClient, network?: Network): Promise<ExecuteResult>;
|
|
15
18
|
private loadPreparedTransactionForSigning;
|
|
16
|
-
signWithParticipant
|
|
17
|
-
signWithWalletKernel
|
|
18
|
-
signWithBlockdaemon
|
|
19
|
-
signWithFireblocks
|
|
19
|
+
private signWithParticipant;
|
|
20
|
+
private signWithWalletKernel;
|
|
21
|
+
private signWithBlockdaemon;
|
|
22
|
+
private signWithFireblocks;
|
|
20
23
|
/**
|
|
21
24
|
* Dfns broadcasts the prepared transaction to Canton itself, so we get back
|
|
22
25
|
* an updateId rather than a raw signature. We persist the updateId as the
|
|
23
26
|
* signature payload (the controller short-circuits Dfns execute) and surface
|
|
24
27
|
* the same SignResult shape the other external providers use.
|
|
25
28
|
*/
|
|
26
|
-
signWithDfns
|
|
29
|
+
private signWithDfns;
|
|
27
30
|
/**
|
|
28
31
|
* Dfns has already broadcast the transaction at sign-time, so execute is a
|
|
29
32
|
* state reconciliation: mark the stored transaction as executed and return
|
|
30
33
|
* the updateId Dfns gave us. We deliberately don't post to the ledger here.
|
|
31
34
|
*/
|
|
32
|
-
executeWithDfns
|
|
33
|
-
executeWithParticipant
|
|
34
|
-
executeWithExternal
|
|
35
|
+
private executeWithDfns;
|
|
36
|
+
private executeWithParticipant;
|
|
37
|
+
private executeWithExternal;
|
|
35
38
|
}
|
|
36
39
|
//# sourceMappingURL=transaction-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-service.d.ts","sourceRoot":"","sources":["../../src/ledger/transaction-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACjE,OAAO,EACH,KAAK,EACL,WAAW,EACX,MAAM,EACN,OAAO,EACV,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"transaction-service.d.ts","sourceRoot":"","sources":["../../src/ledger/transaction-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACjE,OAAO,EACH,KAAK,EACL,WAAW,EACX,MAAM,EACN,OAAO,EACV,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAOhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EACH,aAAa,EACb,aAAa,EACb,UAAU,EAEb,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAA;AAMjE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAW9D,qBAAa,kBAAkB;IAEvB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ;gBAHR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,YAAK,EACnC,QAAQ,EAAE,QAAQ;IAGjB,IAAI,CACb,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACvB,OAAO,CAAC,UAAU,CAAC;IAiDf,OAAO,CACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,OAAO,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,aAAa,CAAC;YA6DX,iCAAiC;IAW/C,OAAO,CAAC,mBAAmB;YASb,oBAAoB;YAyDpB,mBAAmB;YAiHnB,kBAAkB;IAqHhC;;;;;OAKG;YACW,YAAY;IA2G1B;;;;OAIG;YACW,eAAe;YAgCf,sBAAsB;YAoDtB,mBAAmB;CAiEpC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
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
3
|
import { SigningProvider, } from '@canton-network/core-signing-lib';
|
|
4
|
-
import { ledgerPrepareParams } from '../utils.js';
|
|
4
|
+
import { ledgerPrepareParams, logDynamically, } from '../utils.js';
|
|
5
5
|
function handleSigningError(result) {
|
|
6
6
|
if ('error' in result) {
|
|
7
7
|
throw new Error(`Error from signing driver: ${result.error_description}`);
|
|
@@ -15,6 +15,73 @@ export class TransactionService {
|
|
|
15
15
|
this.signingDrivers = signingDrivers;
|
|
16
16
|
this.notifier = notifier;
|
|
17
17
|
}
|
|
18
|
+
async sign(authContext, wallet, signParams) {
|
|
19
|
+
const signingProvider = wallet.signingProviderId;
|
|
20
|
+
const driver = this.signingDrivers[signingProvider]?.controller(authContext.userId);
|
|
21
|
+
if (!driver) {
|
|
22
|
+
throw new Error(`No driver found for ${signingProvider}`);
|
|
23
|
+
}
|
|
24
|
+
switch (signingProvider) {
|
|
25
|
+
case SigningProvider.PARTICIPANT: {
|
|
26
|
+
return this.signWithParticipant(wallet);
|
|
27
|
+
}
|
|
28
|
+
case SigningProvider.WALLET_KERNEL: {
|
|
29
|
+
return this.signWithWalletKernel(authContext.userId, wallet, signParams);
|
|
30
|
+
}
|
|
31
|
+
case SigningProvider.BLOCKDAEMON: {
|
|
32
|
+
if (!authContext.email) {
|
|
33
|
+
throw new Error('Email is required for Blockdaemon wallet allocation');
|
|
34
|
+
}
|
|
35
|
+
return this.signWithBlockdaemon(authContext.email, wallet, signParams);
|
|
36
|
+
}
|
|
37
|
+
case SigningProvider.FIREBLOCKS: {
|
|
38
|
+
return this.signWithFireblocks(authContext.userId, wallet, signParams);
|
|
39
|
+
}
|
|
40
|
+
case SigningProvider.DFNS: {
|
|
41
|
+
return this.signWithDfns(authContext.userId, wallet, signParams);
|
|
42
|
+
}
|
|
43
|
+
default:
|
|
44
|
+
throw new Error(`Unsupported signing provider: ${wallet.signingProviderId}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
execute(userId, wallet, transaction, executeParams, ledgerClient, network) {
|
|
48
|
+
switch (wallet.signingProviderId) {
|
|
49
|
+
case SigningProvider.PARTICIPANT: {
|
|
50
|
+
try {
|
|
51
|
+
if (!executeParams) {
|
|
52
|
+
throw new Error('Execute params are required for participant signing');
|
|
53
|
+
}
|
|
54
|
+
if (!ledgerClient) {
|
|
55
|
+
throw new Error('Ledger client is required for participant signing');
|
|
56
|
+
}
|
|
57
|
+
if (!network) {
|
|
58
|
+
throw new Error('Network is required for participant signing');
|
|
59
|
+
}
|
|
60
|
+
return this.executeWithParticipant(userId, executeParams, transaction, ledgerClient, network);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
this.logger.error(error, 'Failed to submit transaction');
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
case SigningProvider.WALLET_KERNEL:
|
|
68
|
+
case SigningProvider.BLOCKDAEMON:
|
|
69
|
+
case SigningProvider.FIREBLOCKS: {
|
|
70
|
+
if (!executeParams) {
|
|
71
|
+
throw new Error('Execute params are required for external signing');
|
|
72
|
+
}
|
|
73
|
+
if (!ledgerClient) {
|
|
74
|
+
throw new Error('Ledger client is required for external signing');
|
|
75
|
+
}
|
|
76
|
+
return this.executeWithExternal(userId, executeParams, transaction, ledgerClient);
|
|
77
|
+
}
|
|
78
|
+
case SigningProvider.DFNS: {
|
|
79
|
+
return this.executeWithDfns(transaction);
|
|
80
|
+
}
|
|
81
|
+
default:
|
|
82
|
+
throw new Error(`Unsupported signing provider: ${wallet.signingProviderId}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
18
85
|
async loadPreparedTransactionForSigning(transactionId) {
|
|
19
86
|
const existingTx = await this.store.getTransaction(transactionId);
|
|
20
87
|
if (!existingTx) {
|
|
@@ -79,7 +146,7 @@ export class TransactionService {
|
|
|
79
146
|
const driver = signingProvider.controller(userId);
|
|
80
147
|
const tx = await this.loadPreparedTransactionForSigning(signParams.transactionId);
|
|
81
148
|
let signingResult;
|
|
82
|
-
if (tx
|
|
149
|
+
if (tx.externalTxId) {
|
|
83
150
|
signingResult = await driver
|
|
84
151
|
.getTransaction({
|
|
85
152
|
userId,
|
|
@@ -104,6 +171,10 @@ export class TransactionService {
|
|
|
104
171
|
.then(handleSigningError);
|
|
105
172
|
}
|
|
106
173
|
const now = new Date();
|
|
174
|
+
logDynamically(this.logger, 'Blockdaemon signing result', {
|
|
175
|
+
info: { transactionId: tx.id, status: signingResult.status },
|
|
176
|
+
debug: { signingResult, tx },
|
|
177
|
+
});
|
|
107
178
|
if (signingResult.status === 'signed') {
|
|
108
179
|
if (!signingResult.signature) {
|
|
109
180
|
throw new Error('No signature returned from signing driver');
|
|
@@ -164,7 +235,7 @@ export class TransactionService {
|
|
|
164
235
|
const driver = signingProvider.controller(userId);
|
|
165
236
|
const tx = await this.loadPreparedTransactionForSigning(signParams.transactionId);
|
|
166
237
|
let signingResult;
|
|
167
|
-
if (tx
|
|
238
|
+
if (tx.externalTxId) {
|
|
168
239
|
signingResult = await driver
|
|
169
240
|
.getTransaction({
|
|
170
241
|
userId,
|
|
@@ -185,6 +256,10 @@ export class TransactionService {
|
|
|
185
256
|
.then(handleSigningError);
|
|
186
257
|
}
|
|
187
258
|
const now = new Date();
|
|
259
|
+
logDynamically(this.logger, 'Fireblocks signing result', {
|
|
260
|
+
info: { transactionId: tx.id, status: signingResult.status },
|
|
261
|
+
debug: { signingResult, tx },
|
|
262
|
+
});
|
|
188
263
|
if (signingResult.status === 'signed') {
|
|
189
264
|
if (!signingResult.signature) {
|
|
190
265
|
throw new Error('No signature returned from signing driver');
|
|
@@ -273,6 +348,10 @@ export class TransactionService {
|
|
|
273
348
|
.then(handleSigningError);
|
|
274
349
|
}
|
|
275
350
|
const now = new Date();
|
|
351
|
+
logDynamically(this.logger, 'Dfns signing result', {
|
|
352
|
+
info: { transactionId: tx.id, status: signingResult.status },
|
|
353
|
+
debug: { signingResult, tx },
|
|
354
|
+
});
|
|
276
355
|
if (signingResult.status === 'signed') {
|
|
277
356
|
if (!signingResult.signature) {
|
|
278
357
|
throw new Error('No updateId returned from Dfns');
|
|
@@ -359,15 +438,19 @@ export class TransactionService {
|
|
|
359
438
|
const { partyId } = executeParams;
|
|
360
439
|
const { commandId } = transaction;
|
|
361
440
|
const synchronizerId = network.synchronizerId ?? (await ledgerClient.getSynchronizerId());
|
|
362
|
-
const prep = ledgerPrepareParams(userId, partyId, synchronizerId, transaction.payload);
|
|
363
|
-
const
|
|
441
|
+
const prep = ledgerPrepareParams(userId, [partyId], synchronizerId, transaction.payload);
|
|
442
|
+
const result = await ledgerClient.postWithRetry('/v2/commands/submit-and-wait', prep);
|
|
443
|
+
logDynamically(this.logger, 'Participant execution result', {
|
|
444
|
+
info: { transactionId: transaction.id },
|
|
445
|
+
debug: { result, transaction, executeParams, userId },
|
|
446
|
+
});
|
|
364
447
|
const executedTx = {
|
|
365
448
|
id: transaction.id,
|
|
366
449
|
commandId,
|
|
367
450
|
status: 'executed',
|
|
368
451
|
preparedTransaction: transaction.preparedTransaction,
|
|
369
452
|
preparedTransactionHash: transaction.preparedTransactionHash,
|
|
370
|
-
payload:
|
|
453
|
+
payload: result,
|
|
371
454
|
origin: transaction.origin ?? null,
|
|
372
455
|
...(transaction.createdAt && {
|
|
373
456
|
createdAt: transaction.createdAt,
|
|
@@ -377,10 +460,10 @@ export class TransactionService {
|
|
|
377
460
|
}),
|
|
378
461
|
};
|
|
379
462
|
await this.store.setTransactionStatus(transaction.id, 'executed', {
|
|
380
|
-
payload:
|
|
463
|
+
payload: result,
|
|
381
464
|
});
|
|
382
465
|
this.notifier.emit('txChanged', executedTx);
|
|
383
|
-
return
|
|
466
|
+
return result;
|
|
384
467
|
}
|
|
385
468
|
async executeWithExternal(userId, executeParams, transaction, ledgerClient) {
|
|
386
469
|
const { partyId, signature, signedBy } = executeParams;
|
|
@@ -409,6 +492,10 @@ export class TransactionService {
|
|
|
409
492
|
],
|
|
410
493
|
},
|
|
411
494
|
});
|
|
495
|
+
logDynamically(this.logger, 'Externally signed execution result', {
|
|
496
|
+
info: { transactionId: transaction.id },
|
|
497
|
+
debug: { result, transaction, executeParams, userId },
|
|
498
|
+
});
|
|
412
499
|
const executedTx = {
|
|
413
500
|
id: transaction.id,
|
|
414
501
|
commandId,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-service.test.d.ts","sourceRoot":"","sources":["../../src/ledger/transaction-service.test.ts"],"names":[],"mappings":""}
|