@canton-network/wallet-gateway-remote 0.25.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/jwt-auth-service.d.ts.map +1 -1
- package/dist/auth/jwt-auth-service.js +25 -0
- package/dist/config/Config.d.ts +5 -2
- package/dist/config/Config.d.ts.map +1 -1
- package/dist/config/Config.js +6 -0
- package/dist/config/Config.test.js +1 -1
- 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 +26 -1
- 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 +3 -2
- package/dist/dapp-api/rpc-gen/typings.d.ts.map +1 -1
- package/dist/dapp-api/server.test.js +1 -1
- package/dist/env.d.ts +1 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +1 -0
- package/dist/example-config.d.ts +1 -0
- package/dist/example-config.d.ts.map +1 -1
- package/dist/example-config.js +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +9 -4
- package/dist/ledger/party-allocation-service.test.js +19 -17
- package/dist/ledger/transaction-service.d.ts +1 -0
- package/dist/ledger/transaction-service.d.ts.map +1 -1
- package/dist/ledger/transaction-service.js +65 -53
- package/dist/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.d.ts.map +1 -1
- package/dist/ledger/wallet-allocation/signing-providers/blockdaemon-wallet-allocator.js +2 -1
- package/dist/ledger/wallet-allocation/wallet-allocation-service.test.js +22 -22
- package/dist/ledger/wallet-sync-service.test.js +15 -13
- package/dist/middleware/rateLimit.d.ts +5 -0
- package/dist/middleware/rateLimit.d.ts.map +1 -1
- package/dist/middleware/rateLimit.js +40 -0
- package/dist/middleware/rateLimit.test.d.ts +2 -0
- package/dist/middleware/rateLimit.test.d.ts.map +1 -0
- package/dist/middleware/rateLimit.test.js +30 -0
- package/dist/user-api/controller.d.ts.map +1 -1
- package/dist/user-api/controller.js +6 -5
- package/dist/user-api/rpc-gen/typings.d.ts +12 -14
- package/dist/user-api/rpc-gen/typings.d.ts.map +1 -1
- package/dist/user-api/server.test.js +1 -1
- 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 +5 -4
- package/dist/web/frontend/assets/{404-F1JWultf.js → 404-CEw-fKbi.js} +1 -1
- package/dist/web/frontend/assets/{activities-Da48Liee.js → activities-BdSUE0hv.js} +3 -2
- package/dist/web/frontend/assets/{addIdentityProvider-DC3NxrKJ.js → addIdentityProvider-Bzz1fUGn.js} +1 -1
- package/dist/web/frontend/assets/{addNetwork-Dr3W42IN.js → addNetwork-B4FpgV7D.js} +1 -1
- package/dist/web/frontend/assets/addParty-D-UmQ0Oh.js +38 -0
- package/dist/web/frontend/assets/approve-DP3Lfyhw.js +21 -0
- package/dist/web/frontend/assets/{callback-OyzKCduG.js → callback-CXLUjUAK.js} +1 -1
- package/dist/web/frontend/assets/{identityProviders-CNGCwCMd.js → identityProviders-CtFhI1gg.js} +1 -1
- package/dist/web/frontend/assets/{index-6feHRhfj.js → index-BuC7gGqj.js} +96 -55
- package/dist/web/frontend/assets/index-DFhaSBOK.js +91 -0
- package/dist/web/frontend/assets/{index-CH8oXI5W.js → index-dDAXt5F2.js} +1 -1
- package/dist/web/frontend/assets/{login-DcYD5VED.js → login-CmwQEYxS.js} +1 -1
- package/dist/web/frontend/assets/{networks--1UXXt0J.js → networks-f8gSZxSb.js} +1 -1
- package/dist/web/frontend/assets/{reviewIdentityProvider-BT1CChnu.js → reviewIdentityProvider-CJFOHumn.js} +2 -2
- package/dist/web/frontend/assets/{reviewNetwork-CGV3UYev.js → reviewNetwork-D3QSssLB.js} +1 -1
- package/dist/web/frontend/assets/{settings-DnbEcRUK.js → settings-Cc-Ij_uP.js} +1 -1
- package/dist/web/frontend/assets/state-CZ6wI2d4.js +1 -0
- package/dist/web/frontend/assets/utils-CVOqcw_M.js +1 -0
- 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 +4 -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 -3
- package/dist/web/frontend/parties/index.html +4 -3
- package/dist/web/frontend/settings/index.html +3 -3
- package/package.json +25 -28
- package/dist/web/frontend/assets/addParty-C6FKG-e0.js +0 -38
- package/dist/web/frontend/assets/approve-BcD3DHcB.js +0 -21
- package/dist/web/frontend/assets/parties-CjUMJ1Qt.js +0 -91
- package/dist/web/frontend/assets/state-Da4wx0rb.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-auth-service.d.ts","sourceRoot":"","sources":["../../src/auth/jwt-auth-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"jwt-auth-service.d.ts","sourceRoot":"","sources":["../../src/auth/jwt-auth-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,WA+H5D,CAAA"}
|
|
@@ -62,6 +62,31 @@ export const jwtAuthService = (store, logger) => ({
|
|
|
62
62
|
if (!payload.sub) {
|
|
63
63
|
return undefined;
|
|
64
64
|
}
|
|
65
|
+
const networks = await store.listNetworks();
|
|
66
|
+
const networksForIdp = networks.filter((n) => n.identityProviderId === idp.id);
|
|
67
|
+
const expectedAudiences = networksForIdp
|
|
68
|
+
.map((n) => n.auth.audience)
|
|
69
|
+
.filter((aud) => aud !== undefined && aud !== '');
|
|
70
|
+
if (expectedAudiences.length === 0) {
|
|
71
|
+
logger.warn(`No networks configured for IDP ${idp.id}, cannot validate audience`);
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
const tokenAudience = payload.aud;
|
|
75
|
+
if (!tokenAudience) {
|
|
76
|
+
logger.warn('JWT does not contain an audience claim');
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
const tokenAudiences = Array.isArray(tokenAudience)
|
|
80
|
+
? tokenAudience
|
|
81
|
+
: [tokenAudience];
|
|
82
|
+
const audMatch = tokenAudiences.some((aud) => expectedAudiences.includes(aud));
|
|
83
|
+
if (!audMatch) {
|
|
84
|
+
logger.warn({
|
|
85
|
+
tokenAudiences,
|
|
86
|
+
expectedAudiences,
|
|
87
|
+
}, 'JWT audience does not match any configured network');
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
65
90
|
logger.debug({
|
|
66
91
|
userId: payload.sub,
|
|
67
92
|
accessToken: jwt,
|
package/dist/config/Config.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare const serverConfigSchema: z.ZodObject<{
|
|
|
13
13
|
tls: z.ZodOptional<z.ZodBoolean>;
|
|
14
14
|
requestSizeLimit: z.ZodDefault<z.ZodString>;
|
|
15
15
|
requestRateLimit: z.ZodDefault<z.ZodNumber>;
|
|
16
|
+
trustProxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
|
|
16
17
|
admin: z.ZodOptional<z.ZodString>;
|
|
17
18
|
}, z.core.$strip>;
|
|
18
19
|
export declare const rawConfigSchema: z.ZodObject<{
|
|
@@ -30,15 +31,16 @@ export declare const rawConfigSchema: z.ZodObject<{
|
|
|
30
31
|
tls: z.ZodOptional<z.ZodBoolean>;
|
|
31
32
|
requestSizeLimit: z.ZodDefault<z.ZodString>;
|
|
32
33
|
requestRateLimit: z.ZodDefault<z.ZodNumber>;
|
|
34
|
+
trustProxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
|
|
33
35
|
admin: z.ZodOptional<z.ZodString>;
|
|
34
36
|
}, z.core.$strip>>;
|
|
35
37
|
logging: z.ZodOptional<z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
36
38
|
level: z.ZodOptional<z.ZodEnum<{
|
|
39
|
+
error: "error";
|
|
37
40
|
trace: "trace";
|
|
38
41
|
debug: "debug";
|
|
39
42
|
info: "info";
|
|
40
43
|
warn: "warn";
|
|
41
|
-
error: "error";
|
|
42
44
|
fatal: "fatal";
|
|
43
45
|
}>>;
|
|
44
46
|
format: z.ZodOptional<z.ZodEnum<{
|
|
@@ -188,15 +190,16 @@ export declare const configSchema: z.ZodObject<{
|
|
|
188
190
|
tls: z.ZodOptional<z.ZodBoolean>;
|
|
189
191
|
requestSizeLimit: z.ZodDefault<z.ZodString>;
|
|
190
192
|
requestRateLimit: z.ZodDefault<z.ZodNumber>;
|
|
193
|
+
trustProxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
|
|
191
194
|
admin: z.ZodOptional<z.ZodString>;
|
|
192
195
|
}, z.core.$strip>>;
|
|
193
196
|
logging: z.ZodOptional<z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodObject<{
|
|
194
197
|
level: z.ZodOptional<z.ZodEnum<{
|
|
198
|
+
error: "error";
|
|
195
199
|
trace: "trace";
|
|
196
200
|
debug: "debug";
|
|
197
201
|
info: "info";
|
|
198
202
|
warn: "warn";
|
|
199
|
-
error: "error";
|
|
200
203
|
fatal: "fatal";
|
|
201
204
|
}>>;
|
|
202
205
|
format: z.ZodOptional<z.ZodEnum<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/config/Config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AASvB,eAAO,MAAM,gBAAgB;;;;iBAY3B,CAAA;AAEF,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/config/Config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AASvB,eAAO,MAAM,gBAAgB;;;;iBAY3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAiD7B,CAAA;AAiCF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO1B,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOvB,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA"}
|
package/dist/config/Config.js
CHANGED
|
@@ -48,6 +48,12 @@ export const serverConfigSchema = z.object({
|
|
|
48
48
|
requestRateLimit: z.number().default(10000).meta({
|
|
49
49
|
description: 'The maximum number of requests per minute from a single IP address. Defaults to 10000.',
|
|
50
50
|
}),
|
|
51
|
+
trustProxy: z
|
|
52
|
+
.union([z.boolean(), z.number().int().min(0), z.string()])
|
|
53
|
+
.default(false)
|
|
54
|
+
.meta({
|
|
55
|
+
description: 'Express trust proxy setting used to resolve client IP addresses when running behind reverse proxies/load balancers. Set this correctly in production (for example 1 for a single trusted proxy hop). Defaults to false.',
|
|
56
|
+
}),
|
|
51
57
|
admin: z.string().optional().meta({
|
|
52
58
|
description: 'The JWT claim (e.g. "sub") identifying the admin user. If set, requests with a matching claim will be granted admin privileges.',
|
|
53
59
|
}),
|
|
@@ -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 { expect, test } from '
|
|
3
|
+
import { expect, test } from 'vitest';
|
|
4
4
|
import { ConfigUtils } from './ConfigUtils.js';
|
|
5
5
|
test('config from json file', async () => {
|
|
6
6
|
const resp = ConfigUtils.loadConfigFile('../test/config.json');
|
|
@@ -7,6 +7,7 @@ export declare const dappController: (kernelInfo: KernelInfoConfig, dappUrl: str
|
|
|
7
7
|
status: import("./rpc-gen/typings.js").Status;
|
|
8
8
|
connect: import("./rpc-gen/typings.js").Connect;
|
|
9
9
|
disconnect: import("./rpc-gen/typings.js").Disconnect;
|
|
10
|
+
isConnected: import("./rpc-gen/typings.js").IsConnected;
|
|
10
11
|
getActiveNetwork: import("./rpc-gen/typings.js").GetActiveNetwork;
|
|
11
12
|
prepareExecute: import("./rpc-gen/typings.js").PrepareExecute;
|
|
12
13
|
signMessage: import("./rpc-gen/typings.js").SignMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/dapp-api/controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAEH,WAAW,EAEd,MAAM,kCAAkC,CAAA;AAYzC,OAAO,EAAE,KAAK,EAAe,MAAM,mCAAmC,CAAA;AAQtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAI7B,eAAO,MAAM,cAAc,GACvB,YAAY,gBAAgB,EAC5B,SAAS,MAAM,EACf,SAAS,MAAM,EACf,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,SAAS,MAAM,EACf,QAAQ,MAAM,GAAG,IAAI,EACrB,UAAU,WAAW
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/dapp-api/controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAEH,WAAW,EAEd,MAAM,kCAAkC,CAAA;AAYzC,OAAO,EAAE,KAAK,EAAe,MAAM,mCAAmC,CAAA;AAQtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAI7B,eAAO,MAAM,cAAc,GACvB,YAAY,gBAAgB,EAC5B,SAAS,MAAM,EACf,SAAS,MAAM,EACf,OAAO,KAAK,EACZ,qBAAqB,mBAAmB,EACxC,SAAS,MAAM,EACf,QAAQ,MAAM,GAAG,IAAI,EACrB,UAAU,WAAW;;;;;;;;;;;;;;;CAiTxB,CAAA"}
|
|
@@ -54,6 +54,7 @@ export const dappController = (kernelInfo, dappUrl, userUrl, store, notification
|
|
|
54
54
|
},
|
|
55
55
|
};
|
|
56
56
|
notifier.emit('statusChanged', statusEvent);
|
|
57
|
+
notifier.emit('connected', statusEvent);
|
|
57
58
|
return connection;
|
|
58
59
|
},
|
|
59
60
|
disconnect: async () => {
|
|
@@ -80,6 +81,30 @@ export const dappController = (kernelInfo, dappUrl, userUrl, store, notification
|
|
|
80
81
|
}
|
|
81
82
|
return null;
|
|
82
83
|
},
|
|
84
|
+
isConnected: async () => {
|
|
85
|
+
if (!context || !(await store.getSession())) {
|
|
86
|
+
return {
|
|
87
|
+
isConnected: false,
|
|
88
|
+
isNetworkConnected: false,
|
|
89
|
+
networkReason: 'Unauthenticated',
|
|
90
|
+
userUrl: `${userUrl}/login/`,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const network = await store.getCurrentNetwork();
|
|
94
|
+
const ledgerClient = new LedgerClient({
|
|
95
|
+
baseUrl: new URL(network.ledgerApi.baseUrl),
|
|
96
|
+
logger,
|
|
97
|
+
accessTokenProvider: AuthTokenProvider.fromToken(context.accessToken, logger),
|
|
98
|
+
});
|
|
99
|
+
const status = await networkStatus(ledgerClient);
|
|
100
|
+
return {
|
|
101
|
+
isConnected: true,
|
|
102
|
+
reason: 'OK',
|
|
103
|
+
isNetworkConnected: status.isConnected,
|
|
104
|
+
networkReason: status.reason ? status.reason : 'OK',
|
|
105
|
+
userUrl: `${userUrl}/login/`,
|
|
106
|
+
};
|
|
107
|
+
},
|
|
83
108
|
ledgerApi: async (params) => {
|
|
84
109
|
const network = await store.getCurrentNetwork();
|
|
85
110
|
const ledgerClient = new LedgerClient({
|
|
@@ -140,7 +165,7 @@ export const dappController = (kernelInfo, dappUrl, userUrl, store, notification
|
|
|
140
165
|
confirmationRequestTrafficCostEstimation: response.costEstimation
|
|
141
166
|
?.confirmationRequestTrafficCostEstimation,
|
|
142
167
|
}, 'prepared transaction traffic estimation');
|
|
143
|
-
store.setTransaction(transaction);
|
|
168
|
+
await store.setTransaction(transaction);
|
|
144
169
|
return {
|
|
145
170
|
// closeafteraction query param flag makes approving or deleting tx close the popup
|
|
146
171
|
userUrl: `${userUrl}/approve/index.html?commandId=${commandId}&closeafteraction`,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Status } from './typings.js';
|
|
2
2
|
import { Connect } from './typings.js';
|
|
3
3
|
import { Disconnect } from './typings.js';
|
|
4
|
+
import { IsConnected } from './typings.js';
|
|
4
5
|
import { GetActiveNetwork } from './typings.js';
|
|
5
6
|
import { PrepareExecute } from './typings.js';
|
|
6
7
|
import { SignMessage } from './typings.js';
|
|
@@ -15,6 +16,7 @@ export type Methods = {
|
|
|
15
16
|
status: Status;
|
|
16
17
|
connect: Connect;
|
|
17
18
|
disconnect: Disconnect;
|
|
19
|
+
isConnected: IsConnected;
|
|
18
20
|
getActiveNetwork: GetActiveNetwork;
|
|
19
21
|
prepareExecute: PrepareExecute;
|
|
20
22
|
signMessage: SignMessage;
|
|
@@ -30,6 +32,7 @@ declare function buildController(methods: Methods): {
|
|
|
30
32
|
status: Status;
|
|
31
33
|
connect: Connect;
|
|
32
34
|
disconnect: Disconnect;
|
|
35
|
+
isConnected: IsConnected;
|
|
33
36
|
getActiveNetwork: GetActiveNetwork;
|
|
34
37
|
prepareExecute: PrepareExecute;
|
|
35
38
|
signMessage: SignMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,MAAM,OAAO,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;IAChC,eAAe,EAAE,eAAe,CAAA;IAChC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;CACvB,CAAA;AAED,iBAAS,eAAe,CAAC,OAAO,EAAE,OAAO
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,MAAM,OAAO,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,WAAW,CAAA;IACxB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;IAChC,eAAe,EAAE,eAAe,CAAA;IAChC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;CACvB,CAAA;AAED,iBAAS,eAAe,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;EAiBxC;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -5,6 +5,7 @@ function buildController(methods) {
|
|
|
5
5
|
status: methods.status,
|
|
6
6
|
connect: methods.connect,
|
|
7
7
|
disconnect: methods.disconnect,
|
|
8
|
+
isConnected: methods.isConnected,
|
|
8
9
|
getActiveNetwork: methods.getActiveNetwork,
|
|
9
10
|
prepareExecute: methods.prepareExecute,
|
|
10
11
|
signMessage: methods.signMessage,
|
|
@@ -152,7 +152,7 @@ export interface Provider {
|
|
|
152
152
|
* Whether or not the user is authenticated with the Wallet.
|
|
153
153
|
*
|
|
154
154
|
*/
|
|
155
|
-
export type
|
|
155
|
+
export type IsConnectedValue = boolean;
|
|
156
156
|
/**
|
|
157
157
|
*
|
|
158
158
|
* Reason for the wallet state, e.g., 'no signing provider matched'.
|
|
@@ -172,7 +172,7 @@ export type IsNetworkConnected = boolean;
|
|
|
172
172
|
*/
|
|
173
173
|
export type NetworkReason = string;
|
|
174
174
|
export interface ConnectResult {
|
|
175
|
-
isConnected:
|
|
175
|
+
isConnected: IsConnectedValue;
|
|
176
176
|
reason?: Reason;
|
|
177
177
|
isNetworkConnected: IsNetworkConnected;
|
|
178
178
|
networkReason?: NetworkReason;
|
|
@@ -499,6 +499,7 @@ export type TxChangedEvent = TxChangedPendingEvent | TxChangedSignedEvent | TxCh
|
|
|
499
499
|
export type Status = () => Promise<StatusEvent>;
|
|
500
500
|
export type Connect = () => Promise<ConnectResult>;
|
|
501
501
|
export type Disconnect = () => Promise<Null>;
|
|
502
|
+
export type IsConnected = () => Promise<ConnectResult>;
|
|
502
503
|
export type GetActiveNetwork = () => Promise<Network>;
|
|
503
504
|
export type PrepareExecute = (params: PrepareExecuteParams) => Promise<PrepareExecuteResult>;
|
|
504
505
|
export type SignMessage = (params: SignMessageParams) => Promise<SignMessageResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/typings.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAC1B;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,EAAE,CAAA;AAC3B;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACrC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,CAAC,EAAE,cAAc,CAAA;CAClC;AACD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,EAAE,CAAA;AACpD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,SAAS,EAAE,CAAA;AACtD;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;AACvE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,WAAW,IAAI;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,WAAW,KAAK;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;AACtE;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAA;AACxB;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,UAAU,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AACD;;;;GAIG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../../src/dapp-api/rpc-gen/typings.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAC1B;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,EAAE,CAAA;AAC3B;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACrC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc,CAAC,EAAE,cAAc,CAAA;CAClC;AACD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,EAAE,CAAA;AACpD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,SAAS,EAAE,CAAA;AACtD;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;AACvE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,WAAW,IAAI;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,WAAW,KAAK;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAC/B;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;AACtE;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAA;AACxB;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,UAAU,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AACD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAA;AACtC;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAA;AACxC;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAClC,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,gBAAgB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AACD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAChC;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B;AACD;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;CACjB;AACD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAA;AAC7B;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAA;AAClE;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,CAAA;AACzB;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAA;AACtC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAA;AACzC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAA;AAC9B;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAA;AACjC;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;AACtC;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,CAAA;AACrC;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,SAAS,CAAA;CACvB;AACD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAA;AACnC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACnC,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,KAAK,CAAA;CACf;AACD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,sBAAsB,CAAA;CAClC;AACD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,CAAA;AACvC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACrC;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,gBAAgB,CAAA;CACrC;AACD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,cAAc,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,wBAAwB,CAAA;CACpC;AACD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAA;AACnC;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;CACvB;AACD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,EAAE,UAAU,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,4BAA4B,CAAC,EAAE,4BAA4B,CAAA;CAC9D;AACD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;CACnB;AACD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,IAAI,CAAA;CACd;AACD,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,aAAa,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AACD;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,IAAI,CAAA;AACvB,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAA;CACnB;AACD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,SAAS,CAAA;CACvB;AACD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AACD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAA;AAC3C;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAA;AACzC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACpB,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,CAAA;AAC1B;;;;GAIG;AAEH,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;AAC/C,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;AAClD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AAC5C,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;AACtD,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AACrD,MAAM,MAAM,cAAc,GAAG,CACzB,MAAM,EAAE,oBAAoB,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAClC,MAAM,MAAM,WAAW,GAAG,CACtB,MAAM,EAAE,iBAAiB,KACxB,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC/B,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;AAC7E,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;AAClD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;AACxD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAA;AACjE,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAC5D,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA"}
|
|
@@ -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 { expect, test } from '
|
|
3
|
+
import { expect, test } from 'vitest';
|
|
4
4
|
import cors from 'cors';
|
|
5
5
|
import request from 'supertest';
|
|
6
6
|
import express from 'express';
|
package/dist/env.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare class Env {
|
|
|
3
3
|
static FIREBLOCKS_SECRET: () => string | undefined;
|
|
4
4
|
static BLOCKDAEMON_API_URL: (fallback: string) => string;
|
|
5
5
|
static BLOCKDAEMON_API_KEY: (fallback: string) => string;
|
|
6
|
+
static BLOCKDAEMON_CAIP2: (fallback: string) => string;
|
|
6
7
|
static get(key: string, options: {
|
|
7
8
|
required?: boolean;
|
|
8
9
|
fallback: string;
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAGA,qBAAa,GAAG;IACZ,MAAM,CAAC,kBAAkB,2BAAsC;IAC/D,MAAM,CAAC,iBAAiB,2BAAqC;IAC7D,MAAM,CAAC,mBAAmB,GAAI,UAAU,MAAM,YACE;IAChD,MAAM,CAAC,mBAAmB,GAAI,UAAU,MAAM,YACE;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAGA,qBAAa,GAAG;IACZ,MAAM,CAAC,kBAAkB,2BAAsC;IAC/D,MAAM,CAAC,iBAAiB,2BAAqC;IAC7D,MAAM,CAAC,mBAAmB,GAAI,UAAU,MAAM,YACE;IAChD,MAAM,CAAC,mBAAmB,GAAI,UAAU,MAAM,YACE;IAChD,MAAM,CAAC,iBAAiB,GAAI,UAAU,MAAM,YACE;IAE9C,MAAM,CAAC,GAAG,CACN,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAClD,MAAM;IACT,MAAM,CAAC,GAAG,CACN,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,MAAM;IACT,MAAM,CAAC,GAAG,CACN,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAChE,MAAM,GAAG,SAAS;CAcxB"}
|
package/dist/env.js
CHANGED
|
@@ -5,6 +5,7 @@ export class Env {
|
|
|
5
5
|
static { this.FIREBLOCKS_SECRET = () => Env.get('FIREBLOCKS_SECRET'); }
|
|
6
6
|
static { this.BLOCKDAEMON_API_URL = (fallback) => Env.get('BLOCKDAEMON_API_URL', { fallback }); }
|
|
7
7
|
static { this.BLOCKDAEMON_API_KEY = (fallback) => Env.get('BLOCKDAEMON_API_KEY', { fallback }); }
|
|
8
|
+
static { this.BLOCKDAEMON_CAIP2 = (fallback) => Env.get('BLOCKDAEMON_CAIP2', { fallback }); }
|
|
8
9
|
static get(key, options) {
|
|
9
10
|
const { fallback, required } = options || {};
|
|
10
11
|
const value = process.env[key]?.trim() || fallback?.trim();
|
package/dist/example-config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-config.d.ts","sourceRoot":"","sources":["../src/example-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example-config.d.ts","sourceRoot":"","sources":["../src/example-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wBAkGqB"}
|
package/dist/example-config.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ declare const options: {
|
|
|
5
5
|
configExample: boolean;
|
|
6
6
|
port?: string | true;
|
|
7
7
|
logFormat?: "json" | "pretty";
|
|
8
|
-
logLevel?: "
|
|
8
|
+
logLevel?: "error" | "trace" | "debug" | "info" | "warn" | "fatal";
|
|
9
9
|
};
|
|
10
10
|
export type CliOptions = typeof options;
|
|
11
11
|
export {};
|
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;AAuB7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AA6IvC,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBA4IhE"}
|
package/dist/init.js
CHANGED
|
@@ -14,7 +14,7 @@ import BlockdaemonSigningProvider from '@canton-network/core-signing-blockdaemon
|
|
|
14
14
|
import { jwtAuthService } from './auth/jwt-auth-service.js';
|
|
15
15
|
import express from 'express';
|
|
16
16
|
import { jwtAuth } from './middleware/jwtAuth.js';
|
|
17
|
-
import { rateLimiter } from './middleware/rateLimit.js';
|
|
17
|
+
import { authenticatedRateLimiter, preAuthIpRateLimiter, rateLimiter, } from './middleware/rateLimit.js';
|
|
18
18
|
import { deriveUrls } from './config/ConfigUtils.js';
|
|
19
19
|
import { existsSync } from 'fs';
|
|
20
20
|
import { GATEWAY_VERSION } from './version.js';
|
|
@@ -118,11 +118,13 @@ export async function initialize(opts, logger) {
|
|
|
118
118
|
const port = opts.port ? Number(opts.port) : config.server.port;
|
|
119
119
|
const { serviceUrl, publicUrl, dappApiUrl, userApiUrl } = deriveUrls(config, port);
|
|
120
120
|
const app = express();
|
|
121
|
+
app.set('trust proxy', config.server.trustProxy);
|
|
121
122
|
const server = app.listen(port, () => {
|
|
122
123
|
logger.info(`Remote Wallet Gateway starting on ${serviceUrl})`);
|
|
123
124
|
});
|
|
124
125
|
app.use(express.json({ limit: config.server.requestSizeLimit }));
|
|
125
|
-
const
|
|
126
|
+
const preAuthRateLimit = preAuthIpRateLimiter(config.server.requestRateLimit);
|
|
127
|
+
const postAuthRateLimit = authenticatedRateLimiter(config.server.requestRateLimit);
|
|
126
128
|
const healthCheckRateLimit = rateLimiter(1000); // Allow more requests for health checks
|
|
127
129
|
app.use('/healthz', healthCheckRateLimit, (_req, res) => res.status(200).send('OK'));
|
|
128
130
|
app.use('/readyz', healthCheckRateLimit, (_req, res) => {
|
|
@@ -156,6 +158,7 @@ export async function initialize(opts, logger) {
|
|
|
156
158
|
[SigningProvider.BLOCKDAEMON]: new BlockdaemonSigningProvider({
|
|
157
159
|
baseUrl: Env.BLOCKDAEMON_API_URL('http://localhost:5080/api/cwp/canton'),
|
|
158
160
|
apiKey: Env.BLOCKDAEMON_API_KEY(''),
|
|
161
|
+
caip2: Env.BLOCKDAEMON_CAIP2('canton:testnet'),
|
|
159
162
|
}),
|
|
160
163
|
};
|
|
161
164
|
const allowedPaths = {
|
|
@@ -168,8 +171,10 @@ export async function initialize(opts, logger) {
|
|
|
168
171
|
],
|
|
169
172
|
};
|
|
170
173
|
app.use('/api/*splat', express.json());
|
|
171
|
-
app.use('/api/*splat',
|
|
172
|
-
app.use('/api/*splat', jwtAuth(authService, logger.child({ component: 'JwtHandler' }))
|
|
174
|
+
app.use('/api/*splat', preAuthRateLimit);
|
|
175
|
+
app.use('/api/*splat', jwtAuth(authService, logger.child({ component: 'JwtHandler' })));
|
|
176
|
+
app.use('/api/*splat', postAuthRateLimit);
|
|
177
|
+
app.use('/api/*splat', sessionHandler(store, allowedPaths, logger.child({ component: 'SessionHandler' })));
|
|
173
178
|
logger.info({ ...config.server, port }, 'Server configuration');
|
|
174
179
|
const kernelInfo = config.kernel;
|
|
175
180
|
// register dapp API handlers
|
|
@@ -1,29 +1,31 @@
|
|
|
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 {
|
|
3
|
+
import { vi, describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
4
4
|
import { pino } from 'pino';
|
|
5
5
|
import { sink } from 'pino-test';
|
|
6
|
-
const mockLedgerGet =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
const { mockLedgerGet, mockLedgerPost, mockLedgerGrantUserRights } = vi.hoisted(() => ({
|
|
7
|
+
mockLedgerGet: vi.fn(),
|
|
8
|
+
mockLedgerPost: vi.fn(),
|
|
9
|
+
mockLedgerGrantUserRights: vi.fn(),
|
|
10
|
+
}));
|
|
11
|
+
vi.mock('@canton-network/core-ledger-client', () => ({
|
|
12
|
+
Signature: vi.fn(),
|
|
13
|
+
SignatureFormat: vi.fn(),
|
|
14
|
+
SigningAlgorithmSpec: vi.fn(),
|
|
15
|
+
MultiTransactionSignatures: vi.fn(),
|
|
16
|
+
SignedTopologyTransaction: vi.fn(),
|
|
17
|
+
LedgerClient: vi.fn(function LedgerClientMock() {
|
|
16
18
|
return {
|
|
17
19
|
getWithRetry: mockLedgerGet,
|
|
18
20
|
postWithRetry: mockLedgerPost,
|
|
19
21
|
waitForPartyAndGrantUserRights: mockLedgerGrantUserRights,
|
|
20
|
-
generateTopology:
|
|
22
|
+
generateTopology: vi.fn().mockResolvedValue({
|
|
21
23
|
partyId: 'party2::mypublickey',
|
|
22
24
|
publicKeyFingerprint: 'mypublickey',
|
|
23
25
|
topologyTransactions: ['tx1'],
|
|
24
26
|
multiHash: 'combinedHash',
|
|
25
27
|
}),
|
|
26
|
-
allocateExternalParty:
|
|
28
|
+
allocateExternalParty: vi
|
|
27
29
|
.fn()
|
|
28
30
|
.mockResolvedValue({ partyId: 'party2::mypublickey' }),
|
|
29
31
|
};
|
|
@@ -60,10 +62,10 @@ describe('PartyAllocationService', () => {
|
|
|
60
62
|
const pas = await import('./party-allocation-service.js');
|
|
61
63
|
// Mock AccessTokenProvider
|
|
62
64
|
const mockAccessTokenProvider = {
|
|
63
|
-
getAccessToken:
|
|
65
|
+
getAccessToken: vi
|
|
64
66
|
.fn()
|
|
65
67
|
.mockResolvedValue('admin.jwt'),
|
|
66
|
-
getAuthContext:
|
|
68
|
+
getAuthContext: vi
|
|
67
69
|
.fn()
|
|
68
70
|
.mockResolvedValue({
|
|
69
71
|
userId: 'admin',
|
|
@@ -76,9 +78,9 @@ describe('PartyAllocationService', () => {
|
|
|
76
78
|
httpLedgerUrl: network.ledgerApi.baseUrl,
|
|
77
79
|
logger: mockLogger,
|
|
78
80
|
});
|
|
79
|
-
|
|
81
|
+
vi.spyOn(service, 'createFingerprintFromKey').mockReturnValue('mypublickey');
|
|
80
82
|
});
|
|
81
|
-
afterEach(() =>
|
|
83
|
+
afterEach(() => vi.restoreAllMocks());
|
|
82
84
|
it('allocates an internal party', async () => {
|
|
83
85
|
mockLedgerGet.mockResolvedValueOnce({
|
|
84
86
|
participantId: 'participant1::participantid',
|
|
@@ -12,6 +12,7 @@ export declare class TransactionService {
|
|
|
12
12
|
private signingDrivers;
|
|
13
13
|
private notifier;
|
|
14
14
|
constructor(store: Store, logger: Logger, signingDrivers: Partial<Record<SigningProvider, SigningDriverInterface>> | undefined, notifier: Notifier);
|
|
15
|
+
private loadPreparedTransactionForSigning;
|
|
15
16
|
signWithParticipant(wallet: Wallet): SignResultSigned;
|
|
16
17
|
signWithWalletKernel(userId: UserId, wallet: Wallet, signParams: SignParams): Promise<SignResultSigned>;
|
|
17
18
|
signWithBlockdaemon(userId: UserId, wallet: Wallet, signParams: SignParams): Promise<SignResult>;
|
|
@@ -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;AAChE,OAAO,EAGH,sBAAsB,EACtB,eAAe,EAElB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACH,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EACnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAA;AAYjE,qBAAa,kBAAkB;IAEvB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,QAAQ;gBALR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,CAC3B,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,YAAK,EACE,QAAQ,EAAE,QAAQ;
|
|
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;AAChE,OAAO,EAGH,sBAAsB,EACtB,eAAe,EAElB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACH,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EACnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAA;AAYjE,qBAAa,kBAAkB;IAEvB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,QAAQ;gBALR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,CAC3B,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAClD,YAAK,EACE,QAAQ,EAAE,QAAQ;YAGhB,iCAAiC;IAYxC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAS/C,oBAAoB,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAoDf,mBAAmB,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACvB,OAAO,CAAC,UAAU,CAAC;IAsGT,kBAAkB,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACvB,OAAO,CAAC,UAAU,CAAC;IA0GT,sBAAsB,CAC/B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,aAAa,CAAC;IAuCZ,mBAAmB,CAC5B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,GAC3B,OAAO,CAAC,aAAa,CAAC;CAqD5B"}
|