@canton-network/core-provider-ledger 0.4.0 → 0.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/dist/LedgerProvider.d.ts.map +1 -1
- package/dist/index.cjs +7 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LedgerProvider.d.ts","sourceRoot":"","sources":["../src/LedgerProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAOtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,qBAAa,cAAe,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAc;gBAEhB,EACR,OAAO,EACP,mBAAmB,GACtB,EAAE;QACC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;QACrB,mBAAmB,EAAE,mBAAmB,CAAA;KAC3C;IAUD;;;;;;;;;;;;;;;;;;;OAmBG;IACU,OAAO,CAAC,CAAC,SAAS,WAAW,EACtC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"LedgerProvider.d.ts","sourceRoot":"","sources":["../src/LedgerProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAOtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,qBAAa,cAAe,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAc;gBAEhB,EACR,OAAO,EACP,mBAAmB,GACtB,EAAE;QACC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;QACrB,mBAAmB,EAAE,mBAAmB,CAAA;KAC3C;IAUD;;;;;;;;;;;;;;;;;;;OAmBG;IACU,OAAO,CAAC,CAAC,SAAS,WAAW,EACtC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;IAmDpC,OAAO,CAAC,eAAe;CAgB1B"}
|
package/dist/index.cjs
CHANGED
|
@@ -47,7 +47,6 @@ var LedgerProvider = class extends coreSpliceProvider.AbstractProvider {
|
|
|
47
47
|
* @returns
|
|
48
48
|
*/
|
|
49
49
|
async request(args) {
|
|
50
|
-
console.log("Received request:", args);
|
|
51
50
|
if (args.method === "ledgerApi" && "params" in args) {
|
|
52
51
|
switch (args.params.requestMethod) {
|
|
53
52
|
case "get": {
|
|
@@ -62,13 +61,19 @@ var LedgerProvider = class extends coreSpliceProvider.AbstractProvider {
|
|
|
62
61
|
case "post": {
|
|
63
62
|
const params = this.getLedgerParams(args.params);
|
|
64
63
|
const body = "body" in args.params ? args.params.body : {};
|
|
64
|
+
const headers = "headers" in args.params ? args.params.headers : { "Content-Type": "application/json" };
|
|
65
|
+
const additionalOptions = headers["Content-Type"] === "application/octet-stream" ? {
|
|
66
|
+
bodySerializer: (b) => b,
|
|
67
|
+
headers
|
|
68
|
+
} : { headers };
|
|
65
69
|
return await this.client.postWithRetry(
|
|
66
70
|
args.params.resource,
|
|
67
71
|
// TODO: casting is necessary b/c of v3.3/v3.4 differences
|
|
68
72
|
body,
|
|
69
73
|
// TODO: need to fix client typing
|
|
70
74
|
void 0,
|
|
71
|
-
params
|
|
75
|
+
params,
|
|
76
|
+
additionalOptions
|
|
72
77
|
);
|
|
73
78
|
}
|
|
74
79
|
// TODO: generalize LedgerClient to support any HTTP method
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/LedgerProvider.ts"],"names":["AbstractProvider","LedgerClient","pino"],"mappings":";;;;;;;;;;;;;;AAcO,IAAM,cAAA,GAAN,cAA6BA,mCAAA,CAA8B;AAAA,EAG9D,WAAA,CAAY;AAAA,IACR,OAAA;AAAA,IACA;AAAA,GACJ,EAGG;AACC,IAAA,KAAA,EAAM;AATV,IAAA,aAAA,CAAA,IAAA,EAAQ,QAAA,CAAA;AAUJ,IAAA,IAAA,CAAK,MAAA,GAAS,IAAIC,6BAAA,CAAa;AAAA,MAC3B,SAAS,OAAO,OAAA,KAAY,WAAW,IAAI,GAAA,CAAI,OAAO,CAAA,GAAI,OAAA;AAAA,MAC1D,mBAAA;AAAA;AAAA,MAEA,MAAA,EAAQC,qBAAA,CAAK,EAAE,IAAA,EAAM,kBAAkB;AAAA,KAC1C,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,MAAa,QACT,IAAA,EACiC;AACjC,IAAA,
|
|
1
|
+
{"version":3,"sources":["../src/LedgerProvider.ts"],"names":["AbstractProvider","LedgerClient","pino"],"mappings":";;;;;;;;;;;;;;AAcO,IAAM,cAAA,GAAN,cAA6BA,mCAAA,CAA8B;AAAA,EAG9D,WAAA,CAAY;AAAA,IACR,OAAA;AAAA,IACA;AAAA,GACJ,EAGG;AACC,IAAA,KAAA,EAAM;AATV,IAAA,aAAA,CAAA,IAAA,EAAQ,QAAA,CAAA;AAUJ,IAAA,IAAA,CAAK,MAAA,GAAS,IAAIC,6BAAA,CAAa;AAAA,MAC3B,SAAS,OAAO,OAAA,KAAY,WAAW,IAAI,GAAA,CAAI,OAAO,CAAA,GAAI,OAAA;AAAA,MAC1D,mBAAA;AAAA;AAAA,MAEA,MAAA,EAAQC,qBAAA,CAAK,EAAE,IAAA,EAAM,kBAAkB;AAAA,KAC1C,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,MAAa,QACT,IAAA,EACiC;AACjC,IAAA,IAAI,IAAA,CAAK,MAAA,KAAW,WAAA,IAAe,QAAA,IAAY,IAAA,EAAM;AACjD,MAAA,QAAQ,IAAA,CAAK,OAAO,aAAA;AAAe,QAC/B,KAAK,KAAA,EAAO;AACR,UAAA,MAAM,MAAA,GAAS,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,MAAM,CAAA;AAE/C,UAAA,OAAO,MAAM,KAAK,MAAA,CAAO,YAAA;AAAA,YACrB,KAAK,MAAA,CAAO,QAAA;AAAA;AAAA,YACZ,MAAA;AAAA,YACA;AAAA,WACJ;AAAA,QACJ;AAAA,QACA,KAAK,MAAA,EAAQ;AACT,UAAA,MAAM,MAAA,GAAS,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,MAAM,CAAA;AAC/C,UAAA,MAAM,OAAO,MAAA,IAAU,IAAA,CAAK,SAAS,IAAA,CAAK,MAAA,CAAO,OAAO,EAAC;AAEzD,UAAA,MAAM,OAAA,GACF,aAAa,IAAA,CAAK,MAAA,GACZ,KAAK,MAAA,CAAO,OAAA,GACZ,EAAE,cAAA,EAAgB,kBAAA,EAAmB;AAE/C,UAAA,MAAM,iBAAA,GACF,OAAA,CAAQ,cAAc,CAAA,KAAM,0BAAA,GACtB;AAAA,YACI,cAAA,EAAgB,CAAC,CAAA,KAAe,CAAA;AAAA,YAChC;AAAA,WACJ,GACA,EAAE,OAAA,EAAQ;AAEpB,UAAA,OAAO,MAAM,KAAK,MAAA,CAAO,aAAA;AAAA,YACrB,KAAK,MAAA,CAAO,QAAA;AAAA;AAAA,YACZ,IAAA;AAAA;AAAA,YACA,MAAA;AAAA,YACA,MAAA;AAAA,YACA;AAAA,WACJ;AAAA,QACJ;AAAA;AAAA,QAEA,KAAK,QAAA;AAAA,QACL,KAAK,OAAA;AAAA,QACL,SAAS;AACL,UAAA,MAAM,IAAI,KAAA;AAAA,YACN,CAAA,4BAAA,EAA+B,IAAA,CAAK,MAAA,CAAO,aAAa,CAAA;AAAA,WAC5D;AAAA,QACJ;AAAA;AACJ,IACJ,CAAA,MAAO;AACH,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,IAAA,CAAK,MAAM,CAAA,CAAE,CAAA;AAAA,IACxD;AAAA,EACJ;AAAA,EAEQ,gBAAgB,MAAA,EAGtB;AACE,IAAA,MAAM,YAAY,EAAC;AAEnB,IAAA,IAAI,UAAU,MAAA,EAAQ;AAClB,MAAA,MAAA,CAAO,OAAO,SAAA,EAAW,EAAE,IAAA,EAAM,MAAA,CAAO,MAAM,CAAA;AAAA,IAClD;AAEA,IAAA,IAAI,WAAW,MAAA,EAAQ;AACnB,MAAA,MAAA,CAAO,OAAO,SAAA,EAAW,EAAE,KAAA,EAAO,MAAA,CAAO,OAAO,CAAA;AAAA,IACpD;AAEA,IAAA,OAAO,SAAA;AAAA,EACX;AACJ","file":"index.cjs","sourcesContent":["// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AbstractProvider } from '@canton-network/core-splice-provider'\nimport { RequestArgs } from '@canton-network/core-types'\nimport { LedgerTypes } from '@canton-network/core-ledger-client-types'\nimport {\n GetEndpoint,\n LedgerClient,\n PostEndpoint,\n} from '@canton-network/core-ledger-client'\nimport pino from 'pino'\nimport { AccessTokenProvider } from '@canton-network/core-wallet-auth'\n\nexport class LedgerProvider extends AbstractProvider<LedgerTypes> {\n private client: LedgerClient\n\n constructor({\n baseUrl,\n accessTokenProvider,\n }: {\n baseUrl: string | URL\n accessTokenProvider: AccessTokenProvider\n }) {\n super()\n this.client = new LedgerClient({\n baseUrl: typeof baseUrl === 'string' ? new URL(baseUrl) : baseUrl,\n accessTokenProvider,\n // TODO: use some generalized logger\n logger: pino({ name: 'LedgerProvider' }),\n })\n }\n\n /**\n *\n * Example usage:\n *\n * const provider = new LedgerProvider(...)\n *\n * // Caveat: TypeScript can infer the correct params body based on the method + API path, but the result will be typed as `unknown` without a type argument:\n *\n * const result1 = await provider.request({ method: 'ledgerApi', params: { ... } });\n * // ^ type = `unknown`\n *\n *\n * // Specify an operation type to get a fully typed result:\n *\n * const result2 = await provider.request<Ops.PostV2Parties>({ method: 'ledgerApi', params: { ... } });\n * // ^ type = `PostV2Parties['ledgerApi']['result']`\n *\n * @param args\n * @returns\n */\n public async request<L extends LedgerTypes>(\n args: RequestArgs<L, 'ledgerApi'>\n ): Promise<L['ledgerApi']['result']> {\n if (args.method === 'ledgerApi' && 'params' in args) {\n switch (args.params.requestMethod) {\n case 'get': {\n const params = this.getLedgerParams(args.params)\n\n return await this.client.getWithRetry(\n args.params.resource as GetEndpoint, // TODO: casting is necessary b/c of v3.3/v3.4 differences\n undefined,\n params\n )\n }\n case 'post': {\n const params = this.getLedgerParams(args.params)\n const body = 'body' in args.params ? args.params.body : {}\n\n const headers =\n 'headers' in args.params\n ? args.params.headers\n : { 'Content-Type': 'application/json' }\n\n const additionalOptions =\n headers['Content-Type'] === 'application/octet-stream'\n ? {\n bodySerializer: (b: unknown) => b as BodyInit,\n headers,\n }\n : { headers }\n\n return await this.client.postWithRetry(\n args.params.resource as PostEndpoint, // TODO: casting is necessary b/c of v3.3/v3.4 differences\n body as never, // TODO: need to fix client typing\n undefined,\n params,\n additionalOptions as never\n )\n }\n // TODO: generalize LedgerClient to support any HTTP method\n case 'delete':\n case 'patch':\n default: {\n throw new Error(\n `Unsupported request method: ${args.params.requestMethod}`\n )\n }\n }\n } else {\n throw new Error(`Unsupported method: ${args.method}`)\n }\n }\n\n private getLedgerParams(params: object): {\n path?: Record<string, string>\n query?: Record<string, string>\n } {\n const extracted = {}\n\n if ('path' in params) {\n Object.assign(extracted, { path: params.path })\n }\n\n if ('query' in params) {\n Object.assign(extracted, { query: params.query })\n }\n\n return extracted\n }\n}\n"]}
|
package/dist/index.js
CHANGED
|
@@ -41,7 +41,6 @@ var LedgerProvider = class extends AbstractProvider {
|
|
|
41
41
|
* @returns
|
|
42
42
|
*/
|
|
43
43
|
async request(args) {
|
|
44
|
-
console.log("Received request:", args);
|
|
45
44
|
if (args.method === "ledgerApi" && "params" in args) {
|
|
46
45
|
switch (args.params.requestMethod) {
|
|
47
46
|
case "get": {
|
|
@@ -56,13 +55,19 @@ var LedgerProvider = class extends AbstractProvider {
|
|
|
56
55
|
case "post": {
|
|
57
56
|
const params = this.getLedgerParams(args.params);
|
|
58
57
|
const body = "body" in args.params ? args.params.body : {};
|
|
58
|
+
const headers = "headers" in args.params ? args.params.headers : { "Content-Type": "application/json" };
|
|
59
|
+
const additionalOptions = headers["Content-Type"] === "application/octet-stream" ? {
|
|
60
|
+
bodySerializer: (b) => b,
|
|
61
|
+
headers
|
|
62
|
+
} : { headers };
|
|
59
63
|
return await this.client.postWithRetry(
|
|
60
64
|
args.params.resource,
|
|
61
65
|
// TODO: casting is necessary b/c of v3.3/v3.4 differences
|
|
62
66
|
body,
|
|
63
67
|
// TODO: need to fix client typing
|
|
64
68
|
void 0,
|
|
65
|
-
params
|
|
69
|
+
params,
|
|
70
|
+
additionalOptions
|
|
66
71
|
);
|
|
67
72
|
}
|
|
68
73
|
// TODO: generalize LedgerClient to support any HTTP method
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/LedgerProvider.ts"],"names":[],"mappings":";;;;;;;;AAcO,IAAM,cAAA,GAAN,cAA6B,gBAAA,CAA8B;AAAA,EAG9D,WAAA,CAAY;AAAA,IACR,OAAA;AAAA,IACA;AAAA,GACJ,EAGG;AACC,IAAA,KAAA,EAAM;AATV,IAAA,aAAA,CAAA,IAAA,EAAQ,QAAA,CAAA;AAUJ,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,YAAA,CAAa;AAAA,MAC3B,SAAS,OAAO,OAAA,KAAY,WAAW,IAAI,GAAA,CAAI,OAAO,CAAA,GAAI,OAAA;AAAA,MAC1D,mBAAA;AAAA;AAAA,MAEA,MAAA,EAAQ,IAAA,CAAK,EAAE,IAAA,EAAM,kBAAkB;AAAA,KAC1C,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,MAAa,QACT,IAAA,EACiC;AACjC,IAAA,
|
|
1
|
+
{"version":3,"sources":["../src/LedgerProvider.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// Copyright (c) 2025-2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AbstractProvider } from '@canton-network/core-splice-provider'\nimport { RequestArgs } from '@canton-network/core-types'\nimport { LedgerTypes } from '@canton-network/core-ledger-client-types'\nimport {\n GetEndpoint,\n LedgerClient,\n PostEndpoint,\n} from '@canton-network/core-ledger-client'\nimport pino from 'pino'\nimport { AccessTokenProvider } from '@canton-network/core-wallet-auth'\n\nexport class LedgerProvider extends AbstractProvider<LedgerTypes> {\n private client: LedgerClient\n\n constructor({\n baseUrl,\n accessTokenProvider,\n }: {\n baseUrl: string | URL\n accessTokenProvider: AccessTokenProvider\n }) {\n super()\n this.client = new LedgerClient({\n baseUrl: typeof baseUrl === 'string' ? new URL(baseUrl) : baseUrl,\n accessTokenProvider,\n // TODO: use some generalized logger\n logger: pino({ name: 'LedgerProvider' }),\n })\n }\n\n /**\n *\n * Example usage:\n *\n * const provider = new LedgerProvider(...)\n *\n * // Caveat: TypeScript can infer the correct params body based on the method + API path, but the result will be typed as `unknown` without a type argument:\n *\n * const result1 = await provider.request({ method: 'ledgerApi', params: { ... } });\n * // ^ type = `unknown`\n *\n *\n * // Specify an operation type to get a fully typed result:\n *\n * const result2 = await provider.request<Ops.PostV2Parties>({ method: 'ledgerApi', params: { ... } });\n * // ^ type = `PostV2Parties['ledgerApi']['result']`\n *\n * @param args\n * @returns\n */\n public async request<L extends LedgerTypes>(\n args: RequestArgs<L, 'ledgerApi'>\n ): Promise<L['ledgerApi']['result']> {\n if (args.method === 'ledgerApi' && 'params' in args) {\n switch (args.params.requestMethod) {\n case 'get': {\n const params = this.getLedgerParams(args.params)\n\n return await this.client.getWithRetry(\n args.params.resource as GetEndpoint, // TODO: casting is necessary b/c of v3.3/v3.4 differences\n undefined,\n params\n )\n }\n case 'post': {\n const params = this.getLedgerParams(args.params)\n const body = 'body' in args.params ? args.params.body : {}\n\n const headers =\n 'headers' in args.params\n ? args.params.headers\n : { 'Content-Type': 'application/json' }\n\n const additionalOptions =\n headers['Content-Type'] === 'application/octet-stream'\n ? {\n bodySerializer: (b: unknown) => b as BodyInit,\n headers,\n }\n : { headers }\n\n return await this.client.postWithRetry(\n args.params.resource as PostEndpoint, // TODO: casting is necessary b/c of v3.3/v3.4 differences\n body as never, // TODO: need to fix client typing\n undefined,\n params,\n additionalOptions as never\n )\n }\n // TODO: generalize LedgerClient to support any HTTP method\n case 'delete':\n case 'patch':\n default: {\n throw new Error(\n `Unsupported request method: ${args.params.requestMethod}`\n )\n }\n }\n } else {\n throw new Error(`Unsupported method: ${args.method}`)\n }\n }\n\n private getLedgerParams(params: object): {\n path?: Record<string, string>\n query?: Record<string, string>\n } {\n const extracted = {}\n\n if ('path' in params) {\n Object.assign(extracted, { path: params.path })\n }\n\n if ('query' in params) {\n Object.assign(extracted, { query: params.query })\n }\n\n return extracted\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canton-network/core-provider-ledger",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A Splice Provider implementation for direct ledger access.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"typescript": "^5.9.3"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@canton-network/core-ledger-client": "^0.
|
|
40
|
-
"@canton-network/core-ledger-client-types": "^0.
|
|
41
|
-
"@canton-network/core-splice-provider": "^0.
|
|
42
|
-
"@canton-network/core-types": "^0.
|
|
43
|
-
"@canton-network/core-wallet-auth": "^0.
|
|
39
|
+
"@canton-network/core-ledger-client": "^0.31.0",
|
|
40
|
+
"@canton-network/core-ledger-client-types": "^0.24.0",
|
|
41
|
+
"@canton-network/core-splice-provider": "^0.28.0",
|
|
42
|
+
"@canton-network/core-types": "^0.22.0",
|
|
43
|
+
"@canton-network/core-wallet-auth": "^0.23.0",
|
|
44
44
|
"pino": "^10.3.1"
|
|
45
45
|
},
|
|
46
46
|
"files": [
|