@canton-network/core-signing-blockdaemon 0.15.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/index.cjs ADDED
@@ -0,0 +1,264 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var coreSigningLib = require('@canton-network/core-signing-lib');
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+
11
+ // src/signing-api-sdk.ts
12
+ var SigningAPIClient = class {
13
+ constructor(baseUrl) {
14
+ __publicField(this, "baseUrl");
15
+ __publicField(this, "apiKey");
16
+ __publicField(this, "masterKey");
17
+ __publicField(this, "testNetwork");
18
+ this.baseUrl = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
19
+ this.masterKey = "Default";
20
+ this.testNetwork = true;
21
+ }
22
+ async post(endpoint, params) {
23
+ const url = `${this.baseUrl}${endpoint}`;
24
+ const bodyToSend = {
25
+ ...params,
26
+ masterKey: this.masterKey,
27
+ testNetwork: this.testNetwork
28
+ };
29
+ const headers = {
30
+ "Content-Type": "application/json"
31
+ };
32
+ if (this.apiKey) {
33
+ headers["Authorization"] = `Bearer ${this.apiKey}`;
34
+ }
35
+ const response = await fetch(url, {
36
+ method: "POST",
37
+ headers,
38
+ body: JSON.stringify(bodyToSend)
39
+ });
40
+ if (!response.ok) {
41
+ const errorText = await response.text();
42
+ throw new Error(
43
+ `API call to ${endpoint} failed (${response.status}): ${errorText}`
44
+ );
45
+ }
46
+ if (response.status === 204 || response.headers.get("content-length") === "0") {
47
+ return {};
48
+ }
49
+ return response.json();
50
+ }
51
+ /**
52
+ * Uses the Wallet Provider to sign a transaction.
53
+ * @param params - The transaction signing parameters.
54
+ */
55
+ async signTransaction(params) {
56
+ return this.post(
57
+ "/signTransaction",
58
+ params
59
+ );
60
+ }
61
+ /**
62
+ * Get the status of a single transaction by its ID.
63
+ * @param params - The transaction ID parameters.
64
+ */
65
+ async getTransaction(params) {
66
+ return this.post(
67
+ "/getTransaction",
68
+ params
69
+ );
70
+ }
71
+ /**
72
+ * Get the status of multiple transactions.
73
+ * @param params - Filters for transactions.
74
+ */
75
+ async getTransactions(params) {
76
+ return this.post(
77
+ "/getTransactions",
78
+ params
79
+ );
80
+ }
81
+ /**
82
+ * Get a list of public keys available for signing.
83
+ */
84
+ async getKeys() {
85
+ return this.post("/getKeys", {});
86
+ }
87
+ /**
88
+ * Create a new key at the Wallet Provider.
89
+ * @param params - The key creation parameters.
90
+ */
91
+ async createKey(params) {
92
+ return this.post("/createKey", params);
93
+ }
94
+ /**
95
+ * Get configuration parameters (client-side only).
96
+ * Returns the current BaseURL, ApiKey, MasterKey, and TestNetwork settings.
97
+ */
98
+ getConfiguration() {
99
+ return {
100
+ BaseURL: this.baseUrl,
101
+ ApiKey: this.apiKey,
102
+ MasterKey: this.masterKey,
103
+ TestNetwork: this.testNetwork
104
+ };
105
+ }
106
+ /**
107
+ * Set configuration parameters (client-side only).
108
+ * Updates only the provided configuration fields.
109
+ * @param params - Configuration parameters to set. All fields are optional.
110
+ */
111
+ setConfiguration(params) {
112
+ if (params.BaseURL !== void 0) {
113
+ this.baseUrl = params.BaseURL.endsWith("/") ? params.BaseURL.slice(0, -1) : params.BaseURL;
114
+ }
115
+ if (params.ApiKey !== void 0) {
116
+ this.apiKey = params.ApiKey;
117
+ }
118
+ if (params.MasterKey !== void 0) {
119
+ this.masterKey = params.MasterKey;
120
+ }
121
+ if (params.TestNetwork !== void 0) {
122
+ this.testNetwork = params.TestNetwork;
123
+ }
124
+ return this.getConfiguration();
125
+ }
126
+ };
127
+
128
+ // src/index.ts
129
+ var BlockdaemonSigningDriver = class {
130
+ constructor(config) {
131
+ __publicField(this, "client");
132
+ __publicField(this, "partyMode", coreSigningLib.PartyMode.EXTERNAL);
133
+ __publicField(this, "signingProvider", coreSigningLib.SigningProvider.BLOCKDAEMON);
134
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
135
+ __publicField(this, "controller", (_userId) => coreSigningLib.buildController({
136
+ signTransaction: async (params) => {
137
+ try {
138
+ const tx = await this.client.signTransaction({
139
+ tx: params.tx,
140
+ txHash: params.txHash,
141
+ publicKey: params.publicKey,
142
+ internalTxId: params.internalTxId
143
+ });
144
+ return {
145
+ txId: tx.txId,
146
+ status: tx.status,
147
+ signature: tx.signature,
148
+ publicKey: tx.publicKey
149
+ };
150
+ } catch (error) {
151
+ return {
152
+ error: "signing_error",
153
+ error_description: error.message
154
+ };
155
+ }
156
+ },
157
+ getTransaction: async (params) => {
158
+ try {
159
+ const tx = await this.client.getTransaction({
160
+ txId: params.txId
161
+ });
162
+ return {
163
+ txId: tx.txId,
164
+ status: tx.status,
165
+ signature: tx.signature,
166
+ publicKey: tx.publicKey
167
+ };
168
+ } catch (error) {
169
+ return {
170
+ error: "transaction_not_found",
171
+ error_description: error.message
172
+ };
173
+ }
174
+ },
175
+ getTransactions: async (params) => {
176
+ if (params.publicKeys || params.txIds) {
177
+ try {
178
+ const transactions = await this.client.getTransactions({
179
+ txIds: params.txIds,
180
+ publicKeys: params.publicKeys
181
+ });
182
+ return {
183
+ transactions: transactions.map((tx) => ({
184
+ txId: tx.txId,
185
+ status: tx.status,
186
+ signature: tx.signature,
187
+ publicKey: tx.publicKey
188
+ }))
189
+ };
190
+ } catch (error) {
191
+ return {
192
+ error: "fetch_error",
193
+ error_description: error.message
194
+ };
195
+ }
196
+ } else {
197
+ return {
198
+ error: "bad_arguments",
199
+ error_description: "either public key or txIds must be supplied"
200
+ };
201
+ }
202
+ },
203
+ getKeys: async () => {
204
+ try {
205
+ const keys = await this.client.getKeys();
206
+ return {
207
+ keys: keys.map((k) => ({
208
+ id: k.id,
209
+ name: k.name,
210
+ publicKey: k.publicKey
211
+ }))
212
+ };
213
+ } catch (error) {
214
+ return {
215
+ error: "fetch_error",
216
+ error_description: error.message
217
+ };
218
+ }
219
+ },
220
+ createKey: async (params) => {
221
+ try {
222
+ const key = await this.client.createKey({
223
+ name: params.name
224
+ });
225
+ return {
226
+ id: key.id,
227
+ name: key.name,
228
+ publicKey: key.publicKey
229
+ };
230
+ } catch (error) {
231
+ return {
232
+ error: "create_key_error",
233
+ error_description: error.message
234
+ };
235
+ }
236
+ },
237
+ getConfiguration: async () => {
238
+ const config = this.client.getConfiguration();
239
+ return {
240
+ ...config,
241
+ ApiKey: config.ApiKey ? "***HIDDEN***" : void 0,
242
+ MasterKey: config.MasterKey ? "***HIDDEN***" : void 0
243
+ };
244
+ },
245
+ setConfiguration: async (params) => {
246
+ this.client.setConfiguration({
247
+ BaseURL: params["BaseURL"],
248
+ ApiKey: params["ApiKey"],
249
+ MasterKey: params["MasterKey"],
250
+ TestNetwork: params["TestNetwork"]
251
+ });
252
+ return params;
253
+ },
254
+ subscribeTransactions: async (_params) => Promise.resolve({})
255
+ }));
256
+ this.client = new SigningAPIClient(config.baseUrl);
257
+ this.client.setConfiguration({ ApiKey: config.apiKey });
258
+ }
259
+ };
260
+
261
+ exports.SigningAPIClient = SigningAPIClient;
262
+ exports.default = BlockdaemonSigningDriver;
263
+ //# sourceMappingURL=index.cjs.map
264
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/signing-api-sdk.ts","../src/index.ts"],"names":["PartyMode","SigningProvider","buildController"],"mappings":"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","file":"index.cjs","sourcesContent":["// Copyright (c) 2025 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n Key,\n Transaction,\n SignTransactionParams,\n GetTransactionParams,\n GetTransactionsParams,\n CreateKeyParams,\n} from '@canton-network/core-signing-lib'\n\n/**\n * A TypeScript SDK client for the Wallet Signing API.\n */\nexport class SigningAPIClient {\n private baseUrl: string\n private apiKey: string | undefined\n private masterKey: string\n private testNetwork: boolean\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl\n this.masterKey = 'Default'\n this.testNetwork = true\n }\n\n private async post<I extends Record<string, unknown>, O>(\n endpoint: string,\n params: I\n ): Promise<O> {\n const url = `${this.baseUrl}${endpoint}`\n\n // Merge context params (masterKey and testNetwork) into the request body\n const bodyToSend = {\n ...params,\n masterKey: this.masterKey,\n testNetwork: this.testNetwork,\n }\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n\n if (this.apiKey) {\n headers['Authorization'] = `Bearer ${this.apiKey}`\n }\n\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(bodyToSend),\n })\n\n if (!response.ok) {\n const errorText = await response.text()\n throw new Error(\n `API call to ${endpoint} failed (${response.status}): ${errorText}`\n )\n }\n\n // Handle 204 No Content for methods that return empty objects or null/void\n if (\n response.status === 204 ||\n response.headers.get('content-length') === '0'\n ) {\n // SetConfiguration/GetConfiguration return map[string]any which might be empty\n return {} as O\n }\n\n return response.json() as Promise<O>\n }\n\n /**\n * Uses the Wallet Provider to sign a transaction.\n * @param params - The transaction signing parameters.\n */\n public async signTransaction(\n params: SignTransactionParams\n ): Promise<Transaction> {\n return this.post<SignTransactionParams, Transaction>(\n '/signTransaction',\n params\n )\n }\n\n /**\n * Get the status of a single transaction by its ID.\n * @param params - The transaction ID parameters.\n */\n public async getTransaction(\n params: GetTransactionParams\n ): Promise<Transaction> {\n return this.post<GetTransactionParams, Transaction>(\n '/getTransaction',\n params\n )\n }\n\n /**\n * Get the status of multiple transactions.\n * @param params - Filters for transactions.\n */\n public async getTransactions(\n params: GetTransactionsParams\n ): Promise<Transaction[]> {\n // Note: The Go handler returns []Transaction, the HTTP handler wraps it in JSON array.\n return this.post<GetTransactionsParams, Transaction[]>(\n '/getTransactions',\n params\n )\n }\n\n /**\n * Get a list of public keys available for signing.\n */\n public async getKeys(): Promise<Key[]> {\n // Go's addDummyArg is used for no-arg handlers, so we send an empty body.\n return this.post<Record<string, never>, Key[]>('/getKeys', {})\n }\n\n /**\n * Create a new key at the Wallet Provider.\n * @param params - The key creation parameters.\n */\n public async createKey(params: CreateKeyParams): Promise<Key> {\n return this.post<CreateKeyParams, Key>('/createKey', params)\n }\n\n /**\n * Get configuration parameters (client-side only).\n * Returns the current BaseURL, ApiKey, MasterKey, and TestNetwork settings.\n */\n public getConfiguration(): Record<string, unknown> {\n return {\n BaseURL: this.baseUrl,\n ApiKey: this.apiKey,\n MasterKey: this.masterKey,\n TestNetwork: this.testNetwork,\n }\n }\n\n /**\n * Set configuration parameters (client-side only).\n * Updates only the provided configuration fields.\n * @param params - Configuration parameters to set. All fields are optional.\n */\n public setConfiguration(params: {\n BaseURL?: string\n ApiKey?: string\n MasterKey?: string\n TestNetwork?: boolean\n }): Record<string, unknown> {\n if (params.BaseURL !== undefined) {\n this.baseUrl = params.BaseURL.endsWith('/')\n ? params.BaseURL.slice(0, -1)\n : params.BaseURL\n }\n if (params.ApiKey !== undefined) {\n this.apiKey = params.ApiKey\n }\n if (params.MasterKey !== undefined) {\n this.masterKey = params.MasterKey\n }\n if (params.TestNetwork !== undefined) {\n this.testNetwork = params.TestNetwork\n }\n return this.getConfiguration()\n }\n}\n","// Copyright (c) 2025 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n buildController,\n type CreateKeyParams,\n type CreateKeyResult,\n type GetConfigurationResult,\n type GetKeysResult,\n type GetTransactionParams,\n type GetTransactionResult,\n type GetTransactionsParams,\n type GetTransactionsResult,\n PartyMode,\n type SetConfigurationParams,\n type SetConfigurationResult,\n type SigningDriverInterface,\n SigningProvider,\n type SignTransactionParams,\n type SignTransactionResult,\n type SubscribeTransactionsParams,\n type SubscribeTransactionsResult,\n} from '@canton-network/core-signing-lib'\nimport { AuthContext } from '@canton-network/core-wallet-auth'\nimport { SigningAPIClient } from './signing-api-sdk.js'\n\nexport { SigningAPIClient } from './signing-api-sdk.js'\n\nexport interface BlockdaemonConfig {\n baseUrl: string\n apiKey: string\n}\n\nexport default class BlockdaemonSigningDriver implements SigningDriverInterface {\n private client: SigningAPIClient\n\n constructor(config: BlockdaemonConfig) {\n this.client = new SigningAPIClient(config.baseUrl)\n this.client.setConfiguration({ ApiKey: config.apiKey })\n }\n\n public partyMode = PartyMode.EXTERNAL\n public signingProvider = SigningProvider.BLOCKDAEMON\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public controller = (_userId: AuthContext['userId'] | undefined) =>\n buildController({\n signTransaction: async (\n params: SignTransactionParams\n ): Promise<SignTransactionResult> => {\n try {\n const tx = await this.client.signTransaction({\n tx: params.tx,\n txHash: params.txHash,\n publicKey: params.publicKey,\n internalTxId: params.internalTxId,\n })\n return {\n txId: tx.txId,\n status: tx.status,\n signature: tx.signature,\n publicKey: tx.publicKey,\n }\n } catch (error) {\n return {\n error: 'signing_error',\n error_description: (error as Error).message,\n }\n }\n },\n\n getTransaction: async (\n params: GetTransactionParams\n ): Promise<GetTransactionResult> => {\n try {\n const tx = await this.client.getTransaction({\n txId: params.txId,\n })\n return {\n txId: tx.txId,\n status: tx.status,\n signature: tx.signature,\n publicKey: tx.publicKey,\n }\n } catch (error) {\n return {\n error: 'transaction_not_found',\n error_description: (error as Error).message,\n }\n }\n },\n\n getTransactions: async (\n params: GetTransactionsParams\n ): Promise<GetTransactionsResult> => {\n if (params.publicKeys || params.txIds) {\n try {\n const transactions = await this.client.getTransactions({\n txIds: params.txIds,\n publicKeys: params.publicKeys,\n })\n return {\n transactions: transactions.map((tx) => ({\n txId: tx.txId,\n status: tx.status,\n signature: tx.signature,\n publicKey: tx.publicKey,\n })),\n }\n } catch (error) {\n return {\n error: 'fetch_error',\n error_description: (error as Error).message,\n }\n }\n } else {\n return {\n error: 'bad_arguments',\n error_description:\n 'either public key or txIds must be supplied',\n }\n }\n },\n\n getKeys: async (): Promise<GetKeysResult> => {\n try {\n const keys = await this.client.getKeys()\n return {\n keys: keys.map((k) => ({\n id: k.id,\n name: k.name,\n publicKey: k.publicKey,\n })),\n }\n } catch (error) {\n return {\n error: 'fetch_error',\n error_description: (error as Error).message,\n }\n }\n },\n\n createKey: async (\n params: CreateKeyParams\n ): Promise<CreateKeyResult> => {\n try {\n const key = await this.client.createKey({\n name: params.name,\n })\n return {\n id: key.id,\n name: key.name,\n publicKey: key.publicKey,\n }\n } catch (error) {\n return {\n error: 'create_key_error',\n error_description: (error as Error).message,\n }\n }\n },\n\n getConfiguration: async (): Promise<GetConfigurationResult> => {\n const config = this.client.getConfiguration()\n return {\n ...config,\n ApiKey: config.ApiKey ? '***HIDDEN***' : undefined,\n MasterKey: config.MasterKey ? '***HIDDEN***' : undefined,\n }\n },\n\n setConfiguration: async (\n params: SetConfigurationParams\n ): Promise<SetConfigurationResult> => {\n this.client.setConfiguration({\n BaseURL: params['BaseURL'] as string | undefined,\n ApiKey: params['ApiKey'] as string | undefined,\n MasterKey: params['MasterKey'] as string | undefined,\n TestNetwork: params['TestNetwork'] as boolean | undefined,\n })\n return params\n },\n\n subscribeTransactions: async (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _params: SubscribeTransactionsParams\n ): Promise<SubscribeTransactionsResult> =>\n Promise.resolve({} as SubscribeTransactionsResult),\n })\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { PartyMode, type SigningDriverInterface, SigningProvider } from '@canton-network/core-signing-lib';
2
+ import { AuthContext } from '@canton-network/core-wallet-auth';
3
+ export { SigningAPIClient } from './signing-api-sdk.js';
4
+ export interface BlockdaemonConfig {
5
+ baseUrl: string;
6
+ apiKey: string;
7
+ }
8
+ export default class BlockdaemonSigningDriver implements SigningDriverInterface {
9
+ private client;
10
+ constructor(config: BlockdaemonConfig);
11
+ partyMode: PartyMode;
12
+ signingProvider: SigningProvider;
13
+ controller: (_userId: AuthContext["userId"] | undefined) => {
14
+ signTransaction: import("@canton-network/core-signing-lib").SignTransaction;
15
+ getTransaction: import("@canton-network/core-signing-lib").GetTransaction;
16
+ getTransactions: import("@canton-network/core-signing-lib").GetTransactions;
17
+ getKeys: import("@canton-network/core-signing-lib").GetKeys;
18
+ createKey: import("@canton-network/core-signing-lib").CreateKey;
19
+ getConfiguration: import("@canton-network/core-signing-lib").GetConfiguration;
20
+ setConfiguration: import("@canton-network/core-signing-lib").SetConfiguration;
21
+ subscribeTransactions: import("@canton-network/core-signing-lib").SubscribeTransactions;
22
+ };
23
+ }
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAUH,SAAS,EAGT,KAAK,sBAAsB,EAC3B,eAAe,EAKlB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,CAAC,OAAO,OAAO,wBAAyB,YAAW,sBAAsB;IAC3E,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,iBAAiB;IAK9B,SAAS,YAAqB;IAC9B,eAAe,kBAA8B;IAG7C,UAAU,GAAI,SAAS,WAAW,CAAC,QAAQ,CAAC,GAAG,SAAS;;;;;;;;;MA+IzD;CACT"}
package/dist/index.js ADDED
@@ -0,0 +1,259 @@
1
+ import { PartyMode, SigningProvider, buildController } from '@canton-network/core-signing-lib';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
+
7
+ // src/signing-api-sdk.ts
8
+ var SigningAPIClient = class {
9
+ constructor(baseUrl) {
10
+ __publicField(this, "baseUrl");
11
+ __publicField(this, "apiKey");
12
+ __publicField(this, "masterKey");
13
+ __publicField(this, "testNetwork");
14
+ this.baseUrl = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
15
+ this.masterKey = "Default";
16
+ this.testNetwork = true;
17
+ }
18
+ async post(endpoint, params) {
19
+ const url = `${this.baseUrl}${endpoint}`;
20
+ const bodyToSend = {
21
+ ...params,
22
+ masterKey: this.masterKey,
23
+ testNetwork: this.testNetwork
24
+ };
25
+ const headers = {
26
+ "Content-Type": "application/json"
27
+ };
28
+ if (this.apiKey) {
29
+ headers["Authorization"] = `Bearer ${this.apiKey}`;
30
+ }
31
+ const response = await fetch(url, {
32
+ method: "POST",
33
+ headers,
34
+ body: JSON.stringify(bodyToSend)
35
+ });
36
+ if (!response.ok) {
37
+ const errorText = await response.text();
38
+ throw new Error(
39
+ `API call to ${endpoint} failed (${response.status}): ${errorText}`
40
+ );
41
+ }
42
+ if (response.status === 204 || response.headers.get("content-length") === "0") {
43
+ return {};
44
+ }
45
+ return response.json();
46
+ }
47
+ /**
48
+ * Uses the Wallet Provider to sign a transaction.
49
+ * @param params - The transaction signing parameters.
50
+ */
51
+ async signTransaction(params) {
52
+ return this.post(
53
+ "/signTransaction",
54
+ params
55
+ );
56
+ }
57
+ /**
58
+ * Get the status of a single transaction by its ID.
59
+ * @param params - The transaction ID parameters.
60
+ */
61
+ async getTransaction(params) {
62
+ return this.post(
63
+ "/getTransaction",
64
+ params
65
+ );
66
+ }
67
+ /**
68
+ * Get the status of multiple transactions.
69
+ * @param params - Filters for transactions.
70
+ */
71
+ async getTransactions(params) {
72
+ return this.post(
73
+ "/getTransactions",
74
+ params
75
+ );
76
+ }
77
+ /**
78
+ * Get a list of public keys available for signing.
79
+ */
80
+ async getKeys() {
81
+ return this.post("/getKeys", {});
82
+ }
83
+ /**
84
+ * Create a new key at the Wallet Provider.
85
+ * @param params - The key creation parameters.
86
+ */
87
+ async createKey(params) {
88
+ return this.post("/createKey", params);
89
+ }
90
+ /**
91
+ * Get configuration parameters (client-side only).
92
+ * Returns the current BaseURL, ApiKey, MasterKey, and TestNetwork settings.
93
+ */
94
+ getConfiguration() {
95
+ return {
96
+ BaseURL: this.baseUrl,
97
+ ApiKey: this.apiKey,
98
+ MasterKey: this.masterKey,
99
+ TestNetwork: this.testNetwork
100
+ };
101
+ }
102
+ /**
103
+ * Set configuration parameters (client-side only).
104
+ * Updates only the provided configuration fields.
105
+ * @param params - Configuration parameters to set. All fields are optional.
106
+ */
107
+ setConfiguration(params) {
108
+ if (params.BaseURL !== void 0) {
109
+ this.baseUrl = params.BaseURL.endsWith("/") ? params.BaseURL.slice(0, -1) : params.BaseURL;
110
+ }
111
+ if (params.ApiKey !== void 0) {
112
+ this.apiKey = params.ApiKey;
113
+ }
114
+ if (params.MasterKey !== void 0) {
115
+ this.masterKey = params.MasterKey;
116
+ }
117
+ if (params.TestNetwork !== void 0) {
118
+ this.testNetwork = params.TestNetwork;
119
+ }
120
+ return this.getConfiguration();
121
+ }
122
+ };
123
+
124
+ // src/index.ts
125
+ var BlockdaemonSigningDriver = class {
126
+ constructor(config) {
127
+ __publicField(this, "client");
128
+ __publicField(this, "partyMode", PartyMode.EXTERNAL);
129
+ __publicField(this, "signingProvider", SigningProvider.BLOCKDAEMON);
130
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
131
+ __publicField(this, "controller", (_userId) => buildController({
132
+ signTransaction: async (params) => {
133
+ try {
134
+ const tx = await this.client.signTransaction({
135
+ tx: params.tx,
136
+ txHash: params.txHash,
137
+ publicKey: params.publicKey,
138
+ internalTxId: params.internalTxId
139
+ });
140
+ return {
141
+ txId: tx.txId,
142
+ status: tx.status,
143
+ signature: tx.signature,
144
+ publicKey: tx.publicKey
145
+ };
146
+ } catch (error) {
147
+ return {
148
+ error: "signing_error",
149
+ error_description: error.message
150
+ };
151
+ }
152
+ },
153
+ getTransaction: async (params) => {
154
+ try {
155
+ const tx = await this.client.getTransaction({
156
+ txId: params.txId
157
+ });
158
+ return {
159
+ txId: tx.txId,
160
+ status: tx.status,
161
+ signature: tx.signature,
162
+ publicKey: tx.publicKey
163
+ };
164
+ } catch (error) {
165
+ return {
166
+ error: "transaction_not_found",
167
+ error_description: error.message
168
+ };
169
+ }
170
+ },
171
+ getTransactions: async (params) => {
172
+ if (params.publicKeys || params.txIds) {
173
+ try {
174
+ const transactions = await this.client.getTransactions({
175
+ txIds: params.txIds,
176
+ publicKeys: params.publicKeys
177
+ });
178
+ return {
179
+ transactions: transactions.map((tx) => ({
180
+ txId: tx.txId,
181
+ status: tx.status,
182
+ signature: tx.signature,
183
+ publicKey: tx.publicKey
184
+ }))
185
+ };
186
+ } catch (error) {
187
+ return {
188
+ error: "fetch_error",
189
+ error_description: error.message
190
+ };
191
+ }
192
+ } else {
193
+ return {
194
+ error: "bad_arguments",
195
+ error_description: "either public key or txIds must be supplied"
196
+ };
197
+ }
198
+ },
199
+ getKeys: async () => {
200
+ try {
201
+ const keys = await this.client.getKeys();
202
+ return {
203
+ keys: keys.map((k) => ({
204
+ id: k.id,
205
+ name: k.name,
206
+ publicKey: k.publicKey
207
+ }))
208
+ };
209
+ } catch (error) {
210
+ return {
211
+ error: "fetch_error",
212
+ error_description: error.message
213
+ };
214
+ }
215
+ },
216
+ createKey: async (params) => {
217
+ try {
218
+ const key = await this.client.createKey({
219
+ name: params.name
220
+ });
221
+ return {
222
+ id: key.id,
223
+ name: key.name,
224
+ publicKey: key.publicKey
225
+ };
226
+ } catch (error) {
227
+ return {
228
+ error: "create_key_error",
229
+ error_description: error.message
230
+ };
231
+ }
232
+ },
233
+ getConfiguration: async () => {
234
+ const config = this.client.getConfiguration();
235
+ return {
236
+ ...config,
237
+ ApiKey: config.ApiKey ? "***HIDDEN***" : void 0,
238
+ MasterKey: config.MasterKey ? "***HIDDEN***" : void 0
239
+ };
240
+ },
241
+ setConfiguration: async (params) => {
242
+ this.client.setConfiguration({
243
+ BaseURL: params["BaseURL"],
244
+ ApiKey: params["ApiKey"],
245
+ MasterKey: params["MasterKey"],
246
+ TestNetwork: params["TestNetwork"]
247
+ });
248
+ return params;
249
+ },
250
+ subscribeTransactions: async (_params) => Promise.resolve({})
251
+ }));
252
+ this.client = new SigningAPIClient(config.baseUrl);
253
+ this.client.setConfiguration({ ApiKey: config.apiKey });
254
+ }
255
+ };
256
+
257
+ export { SigningAPIClient, BlockdaemonSigningDriver as default };
258
+ //# sourceMappingURL=index.js.map
259
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/signing-api-sdk.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// Copyright (c) 2025 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n Key,\n Transaction,\n SignTransactionParams,\n GetTransactionParams,\n GetTransactionsParams,\n CreateKeyParams,\n} from '@canton-network/core-signing-lib'\n\n/**\n * A TypeScript SDK client for the Wallet Signing API.\n */\nexport class SigningAPIClient {\n private baseUrl: string\n private apiKey: string | undefined\n private masterKey: string\n private testNetwork: boolean\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl\n this.masterKey = 'Default'\n this.testNetwork = true\n }\n\n private async post<I extends Record<string, unknown>, O>(\n endpoint: string,\n params: I\n ): Promise<O> {\n const url = `${this.baseUrl}${endpoint}`\n\n // Merge context params (masterKey and testNetwork) into the request body\n const bodyToSend = {\n ...params,\n masterKey: this.masterKey,\n testNetwork: this.testNetwork,\n }\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n\n if (this.apiKey) {\n headers['Authorization'] = `Bearer ${this.apiKey}`\n }\n\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(bodyToSend),\n })\n\n if (!response.ok) {\n const errorText = await response.text()\n throw new Error(\n `API call to ${endpoint} failed (${response.status}): ${errorText}`\n )\n }\n\n // Handle 204 No Content for methods that return empty objects or null/void\n if (\n response.status === 204 ||\n response.headers.get('content-length') === '0'\n ) {\n // SetConfiguration/GetConfiguration return map[string]any which might be empty\n return {} as O\n }\n\n return response.json() as Promise<O>\n }\n\n /**\n * Uses the Wallet Provider to sign a transaction.\n * @param params - The transaction signing parameters.\n */\n public async signTransaction(\n params: SignTransactionParams\n ): Promise<Transaction> {\n return this.post<SignTransactionParams, Transaction>(\n '/signTransaction',\n params\n )\n }\n\n /**\n * Get the status of a single transaction by its ID.\n * @param params - The transaction ID parameters.\n */\n public async getTransaction(\n params: GetTransactionParams\n ): Promise<Transaction> {\n return this.post<GetTransactionParams, Transaction>(\n '/getTransaction',\n params\n )\n }\n\n /**\n * Get the status of multiple transactions.\n * @param params - Filters for transactions.\n */\n public async getTransactions(\n params: GetTransactionsParams\n ): Promise<Transaction[]> {\n // Note: The Go handler returns []Transaction, the HTTP handler wraps it in JSON array.\n return this.post<GetTransactionsParams, Transaction[]>(\n '/getTransactions',\n params\n )\n }\n\n /**\n * Get a list of public keys available for signing.\n */\n public async getKeys(): Promise<Key[]> {\n // Go's addDummyArg is used for no-arg handlers, so we send an empty body.\n return this.post<Record<string, never>, Key[]>('/getKeys', {})\n }\n\n /**\n * Create a new key at the Wallet Provider.\n * @param params - The key creation parameters.\n */\n public async createKey(params: CreateKeyParams): Promise<Key> {\n return this.post<CreateKeyParams, Key>('/createKey', params)\n }\n\n /**\n * Get configuration parameters (client-side only).\n * Returns the current BaseURL, ApiKey, MasterKey, and TestNetwork settings.\n */\n public getConfiguration(): Record<string, unknown> {\n return {\n BaseURL: this.baseUrl,\n ApiKey: this.apiKey,\n MasterKey: this.masterKey,\n TestNetwork: this.testNetwork,\n }\n }\n\n /**\n * Set configuration parameters (client-side only).\n * Updates only the provided configuration fields.\n * @param params - Configuration parameters to set. All fields are optional.\n */\n public setConfiguration(params: {\n BaseURL?: string\n ApiKey?: string\n MasterKey?: string\n TestNetwork?: boolean\n }): Record<string, unknown> {\n if (params.BaseURL !== undefined) {\n this.baseUrl = params.BaseURL.endsWith('/')\n ? params.BaseURL.slice(0, -1)\n : params.BaseURL\n }\n if (params.ApiKey !== undefined) {\n this.apiKey = params.ApiKey\n }\n if (params.MasterKey !== undefined) {\n this.masterKey = params.MasterKey\n }\n if (params.TestNetwork !== undefined) {\n this.testNetwork = params.TestNetwork\n }\n return this.getConfiguration()\n }\n}\n","// Copyright (c) 2025 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n buildController,\n type CreateKeyParams,\n type CreateKeyResult,\n type GetConfigurationResult,\n type GetKeysResult,\n type GetTransactionParams,\n type GetTransactionResult,\n type GetTransactionsParams,\n type GetTransactionsResult,\n PartyMode,\n type SetConfigurationParams,\n type SetConfigurationResult,\n type SigningDriverInterface,\n SigningProvider,\n type SignTransactionParams,\n type SignTransactionResult,\n type SubscribeTransactionsParams,\n type SubscribeTransactionsResult,\n} from '@canton-network/core-signing-lib'\nimport { AuthContext } from '@canton-network/core-wallet-auth'\nimport { SigningAPIClient } from './signing-api-sdk.js'\n\nexport { SigningAPIClient } from './signing-api-sdk.js'\n\nexport interface BlockdaemonConfig {\n baseUrl: string\n apiKey: string\n}\n\nexport default class BlockdaemonSigningDriver implements SigningDriverInterface {\n private client: SigningAPIClient\n\n constructor(config: BlockdaemonConfig) {\n this.client = new SigningAPIClient(config.baseUrl)\n this.client.setConfiguration({ ApiKey: config.apiKey })\n }\n\n public partyMode = PartyMode.EXTERNAL\n public signingProvider = SigningProvider.BLOCKDAEMON\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public controller = (_userId: AuthContext['userId'] | undefined) =>\n buildController({\n signTransaction: async (\n params: SignTransactionParams\n ): Promise<SignTransactionResult> => {\n try {\n const tx = await this.client.signTransaction({\n tx: params.tx,\n txHash: params.txHash,\n publicKey: params.publicKey,\n internalTxId: params.internalTxId,\n })\n return {\n txId: tx.txId,\n status: tx.status,\n signature: tx.signature,\n publicKey: tx.publicKey,\n }\n } catch (error) {\n return {\n error: 'signing_error',\n error_description: (error as Error).message,\n }\n }\n },\n\n getTransaction: async (\n params: GetTransactionParams\n ): Promise<GetTransactionResult> => {\n try {\n const tx = await this.client.getTransaction({\n txId: params.txId,\n })\n return {\n txId: tx.txId,\n status: tx.status,\n signature: tx.signature,\n publicKey: tx.publicKey,\n }\n } catch (error) {\n return {\n error: 'transaction_not_found',\n error_description: (error as Error).message,\n }\n }\n },\n\n getTransactions: async (\n params: GetTransactionsParams\n ): Promise<GetTransactionsResult> => {\n if (params.publicKeys || params.txIds) {\n try {\n const transactions = await this.client.getTransactions({\n txIds: params.txIds,\n publicKeys: params.publicKeys,\n })\n return {\n transactions: transactions.map((tx) => ({\n txId: tx.txId,\n status: tx.status,\n signature: tx.signature,\n publicKey: tx.publicKey,\n })),\n }\n } catch (error) {\n return {\n error: 'fetch_error',\n error_description: (error as Error).message,\n }\n }\n } else {\n return {\n error: 'bad_arguments',\n error_description:\n 'either public key or txIds must be supplied',\n }\n }\n },\n\n getKeys: async (): Promise<GetKeysResult> => {\n try {\n const keys = await this.client.getKeys()\n return {\n keys: keys.map((k) => ({\n id: k.id,\n name: k.name,\n publicKey: k.publicKey,\n })),\n }\n } catch (error) {\n return {\n error: 'fetch_error',\n error_description: (error as Error).message,\n }\n }\n },\n\n createKey: async (\n params: CreateKeyParams\n ): Promise<CreateKeyResult> => {\n try {\n const key = await this.client.createKey({\n name: params.name,\n })\n return {\n id: key.id,\n name: key.name,\n publicKey: key.publicKey,\n }\n } catch (error) {\n return {\n error: 'create_key_error',\n error_description: (error as Error).message,\n }\n }\n },\n\n getConfiguration: async (): Promise<GetConfigurationResult> => {\n const config = this.client.getConfiguration()\n return {\n ...config,\n ApiKey: config.ApiKey ? '***HIDDEN***' : undefined,\n MasterKey: config.MasterKey ? '***HIDDEN***' : undefined,\n }\n },\n\n setConfiguration: async (\n params: SetConfigurationParams\n ): Promise<SetConfigurationResult> => {\n this.client.setConfiguration({\n BaseURL: params['BaseURL'] as string | undefined,\n ApiKey: params['ApiKey'] as string | undefined,\n MasterKey: params['MasterKey'] as string | undefined,\n TestNetwork: params['TestNetwork'] as boolean | undefined,\n })\n return params\n },\n\n subscribeTransactions: async (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _params: SubscribeTransactionsParams\n ): Promise<SubscribeTransactionsResult> =>\n Promise.resolve({} as SubscribeTransactionsResult),\n })\n}\n"]}
@@ -0,0 +1,53 @@
1
+ import type { Key, Transaction, SignTransactionParams, GetTransactionParams, GetTransactionsParams, CreateKeyParams } from '@canton-network/core-signing-lib';
2
+ /**
3
+ * A TypeScript SDK client for the Wallet Signing API.
4
+ */
5
+ export declare class SigningAPIClient {
6
+ private baseUrl;
7
+ private apiKey;
8
+ private masterKey;
9
+ private testNetwork;
10
+ constructor(baseUrl: string);
11
+ private post;
12
+ /**
13
+ * Uses the Wallet Provider to sign a transaction.
14
+ * @param params - The transaction signing parameters.
15
+ */
16
+ signTransaction(params: SignTransactionParams): Promise<Transaction>;
17
+ /**
18
+ * Get the status of a single transaction by its ID.
19
+ * @param params - The transaction ID parameters.
20
+ */
21
+ getTransaction(params: GetTransactionParams): Promise<Transaction>;
22
+ /**
23
+ * Get the status of multiple transactions.
24
+ * @param params - Filters for transactions.
25
+ */
26
+ getTransactions(params: GetTransactionsParams): Promise<Transaction[]>;
27
+ /**
28
+ * Get a list of public keys available for signing.
29
+ */
30
+ getKeys(): Promise<Key[]>;
31
+ /**
32
+ * Create a new key at the Wallet Provider.
33
+ * @param params - The key creation parameters.
34
+ */
35
+ createKey(params: CreateKeyParams): Promise<Key>;
36
+ /**
37
+ * Get configuration parameters (client-side only).
38
+ * Returns the current BaseURL, ApiKey, MasterKey, and TestNetwork settings.
39
+ */
40
+ getConfiguration(): Record<string, unknown>;
41
+ /**
42
+ * Set configuration parameters (client-side only).
43
+ * Updates only the provided configuration fields.
44
+ * @param params - Configuration parameters to set. All fields are optional.
45
+ */
46
+ setConfiguration(params: {
47
+ BaseURL?: string;
48
+ ApiKey?: string;
49
+ MasterKey?: string;
50
+ TestNetwork?: boolean;
51
+ }): Record<string, unknown>;
52
+ }
53
+ //# sourceMappingURL=signing-api-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing-api-sdk.d.ts","sourceRoot":"","sources":["../src/signing-api-sdk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,GAAG,EACH,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EAClB,MAAM,kCAAkC,CAAA;AAEzC;;GAEG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,MAAM;YAMb,IAAI;IA8ClB;;;OAGG;IACU,eAAe,CACxB,MAAM,EAAE,qBAAqB,GAC9B,OAAO,CAAC,WAAW,CAAC;IAOvB;;;OAGG;IACU,cAAc,CACvB,MAAM,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,CAAC;IAOvB;;;OAGG;IACU,eAAe,CACxB,MAAM,EAAE,qBAAqB,GAC9B,OAAO,CAAC,WAAW,EAAE,CAAC;IAQzB;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAKtC;;;OAGG;IACU,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7D;;;OAGG;IACI,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASlD;;;;OAIG;IACI,gBAAgB,CAAC,MAAM,EAAE;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,WAAW,CAAC,EAAE,OAAO,CAAA;KACxB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAiB9B"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@canton-network/core-signing-blockdaemon",
3
+ "version": "0.15.0",
4
+ "type": "module",
5
+ "description": "Wallet Gateway signing driver for Blockdaemon",
6
+ "license": "Apache-2.0",
7
+ "packageManager": "yarn@4.9.4",
8
+ "main": "dist/index.cjs",
9
+ "module": "dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "require": "./dist/index.cjs",
16
+ "default": "./dist/index.js"
17
+ }
18
+ },
19
+ "scripts": {
20
+ "build": "tsup && tsc -p tsconfig.types.json",
21
+ "clean": "rm -rf ./dist"
22
+ },
23
+ "dependencies": {
24
+ "@canton-network/core-signing-lib": "^0.18.0",
25
+ "@canton-network/core-wallet-auth": "^0.16.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^24.10.1",
29
+ "tsup": "^8.5.1",
30
+ "typescript": "^5.9.3"
31
+ },
32
+ "files": [
33
+ "dist/**"
34
+ ],
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/hyperledger-labs/splice-wallet-kernel.git",
41
+ "directory": "core/signing-blockdaemon"
42
+ }
43
+ }