cantonjs 0.0.1
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/LICENSE +201 -0
- package/dist/cjs/admin/index.d.ts +5 -0
- package/dist/cjs/admin/index.d.ts.map +1 -0
- package/dist/cjs/admin/index.js +6 -0
- package/dist/cjs/admin/index.js.map +1 -0
- package/dist/cjs/chains/definitions.d.ts +20 -0
- package/dist/cjs/chains/definitions.d.ts.map +1 -0
- package/dist/cjs/chains/definitions.js +33 -0
- package/dist/cjs/chains/definitions.js.map +1 -0
- package/dist/cjs/chains/index.d.ts +2 -0
- package/dist/cjs/chains/index.d.ts.map +1 -0
- package/dist/cjs/chains/index.js +9 -0
- package/dist/cjs/chains/index.js.map +1 -0
- package/dist/cjs/clients/createAdminClient.d.ts +73 -0
- package/dist/cjs/clients/createAdminClient.d.ts.map +1 -0
- package/dist/cjs/clients/createAdminClient.js +205 -0
- package/dist/cjs/clients/createAdminClient.js.map +1 -0
- package/dist/cjs/clients/createLedgerClient.d.ts +83 -0
- package/dist/cjs/clients/createLedgerClient.d.ts.map +1 -0
- package/dist/cjs/clients/createLedgerClient.js +240 -0
- package/dist/cjs/clients/createLedgerClient.js.map +1 -0
- package/dist/cjs/clients/createTestClient.d.ts +27 -0
- package/dist/cjs/clients/createTestClient.d.ts.map +1 -0
- package/dist/cjs/clients/createTestClient.js +46 -0
- package/dist/cjs/clients/createTestClient.js.map +1 -0
- package/dist/cjs/clients/index.d.ts +4 -0
- package/dist/cjs/clients/index.d.ts.map +1 -0
- package/dist/cjs/clients/index.js +10 -0
- package/dist/cjs/clients/index.js.map +1 -0
- package/dist/cjs/codegen/index.d.ts +2 -0
- package/dist/cjs/codegen/index.d.ts.map +1 -0
- package/dist/cjs/codegen/index.js +3 -0
- package/dist/cjs/codegen/index.js.map +1 -0
- package/dist/cjs/codegen/types.d.ts +38 -0
- package/dist/cjs/codegen/types.d.ts.map +1 -0
- package/dist/cjs/codegen/types.js +9 -0
- package/dist/cjs/codegen/types.js.map +1 -0
- package/dist/cjs/errors/auth.d.ts +13 -0
- package/dist/cjs/errors/auth.d.ts.map +1 -0
- package/dist/cjs/errors/auth.js +36 -0
- package/dist/cjs/errors/auth.js.map +1 -0
- package/dist/cjs/errors/base.d.ts +35 -0
- package/dist/cjs/errors/base.d.ts.map +1 -0
- package/dist/cjs/errors/base.js +71 -0
- package/dist/cjs/errors/base.js.map +1 -0
- package/dist/cjs/errors/index.d.ts +6 -0
- package/dist/cjs/errors/index.d.ts.map +1 -0
- package/dist/cjs/errors/index.js +22 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/errors/ledger.d.ts +22 -0
- package/dist/cjs/errors/ledger.d.ts.map +1 -0
- package/dist/cjs/errors/ledger.js +55 -0
- package/dist/cjs/errors/ledger.js.map +1 -0
- package/dist/cjs/errors/streaming.d.ts +20 -0
- package/dist/cjs/errors/streaming.d.ts.map +1 -0
- package/dist/cjs/errors/streaming.js +54 -0
- package/dist/cjs/errors/streaming.js.map +1 -0
- package/dist/cjs/errors/transport.d.ts +31 -0
- package/dist/cjs/errors/transport.d.ts.map +1 -0
- package/dist/cjs/errors/transport.js +63 -0
- package/dist/cjs/errors/transport.js.map +1 -0
- package/dist/cjs/index.d.ts +25 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +48 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/ledger/index.d.ts +5 -0
- package/dist/cjs/ledger/index.d.ts.map +1 -0
- package/dist/cjs/ledger/index.js +6 -0
- package/dist/cjs/ledger/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/streaming/createStream.d.ts +55 -0
- package/dist/cjs/streaming/createStream.d.ts.map +1 -0
- package/dist/cjs/streaming/createStream.js +270 -0
- package/dist/cjs/streaming/createStream.js.map +1 -0
- package/dist/cjs/streaming/index.d.ts +8 -0
- package/dist/cjs/streaming/index.d.ts.map +1 -0
- package/dist/cjs/streaming/index.js +16 -0
- package/dist/cjs/streaming/index.js.map +1 -0
- package/dist/cjs/streaming/streamCompletions.d.ts +25 -0
- package/dist/cjs/streaming/streamCompletions.d.ts.map +1 -0
- package/dist/cjs/streaming/streamCompletions.js +47 -0
- package/dist/cjs/streaming/streamCompletions.js.map +1 -0
- package/dist/cjs/streaming/streamContracts.d.ts +42 -0
- package/dist/cjs/streaming/streamContracts.d.ts.map +1 -0
- package/dist/cjs/streaming/streamContracts.js +56 -0
- package/dist/cjs/streaming/streamContracts.js.map +1 -0
- package/dist/cjs/streaming/streamUpdates.d.ts +38 -0
- package/dist/cjs/streaming/streamUpdates.d.ts.map +1 -0
- package/dist/cjs/streaming/streamUpdates.js +66 -0
- package/dist/cjs/streaming/streamUpdates.js.map +1 -0
- package/dist/cjs/streaming/types.d.ts +111 -0
- package/dist/cjs/streaming/types.d.ts.map +1 -0
- package/dist/cjs/streaming/types.js +20 -0
- package/dist/cjs/streaming/types.js.map +1 -0
- package/dist/cjs/testing/index.d.ts +4 -0
- package/dist/cjs/testing/index.d.ts.map +1 -0
- package/dist/cjs/testing/index.js +11 -0
- package/dist/cjs/testing/index.js.map +1 -0
- package/dist/cjs/testing/mockTransport.d.ts +80 -0
- package/dist/cjs/testing/mockTransport.d.ts.map +1 -0
- package/dist/cjs/testing/mockTransport.js +97 -0
- package/dist/cjs/testing/mockTransport.js.map +1 -0
- package/dist/cjs/testing/setupSandbox.d.ts +62 -0
- package/dist/cjs/testing/setupSandbox.d.ts.map +1 -0
- package/dist/cjs/testing/setupSandbox.js +109 -0
- package/dist/cjs/testing/setupSandbox.js.map +1 -0
- package/dist/cjs/transport/fallback.d.ts +21 -0
- package/dist/cjs/transport/fallback.d.ts.map +1 -0
- package/dist/cjs/transport/fallback.js +48 -0
- package/dist/cjs/transport/fallback.js.map +1 -0
- package/dist/cjs/transport/grpc.d.ts +51 -0
- package/dist/cjs/transport/grpc.d.ts.map +1 -0
- package/dist/cjs/transport/grpc.js +90 -0
- package/dist/cjs/transport/grpc.js.map +1 -0
- package/dist/cjs/transport/index.d.ts +3 -0
- package/dist/cjs/transport/index.d.ts.map +1 -0
- package/dist/cjs/transport/index.js +6 -0
- package/dist/cjs/transport/index.js.map +1 -0
- package/dist/cjs/transport/json-api.d.ts +9 -0
- package/dist/cjs/transport/json-api.d.ts.map +1 -0
- package/dist/cjs/transport/json-api.js +69 -0
- package/dist/cjs/transport/json-api.js.map +1 -0
- package/dist/cjs/transport/types.d.ts +36 -0
- package/dist/cjs/transport/types.d.ts.map +1 -0
- package/dist/cjs/transport/types.js +10 -0
- package/dist/cjs/transport/types.js.map +1 -0
- package/dist/cjs/types/command.d.ts +127 -0
- package/dist/cjs/types/command.d.ts.map +1 -0
- package/dist/cjs/types/command.js +12 -0
- package/dist/cjs/types/command.js.map +1 -0
- package/dist/cjs/types/contract.d.ts +104 -0
- package/dist/cjs/types/contract.d.ts.map +1 -0
- package/dist/cjs/types/contract.js +12 -0
- package/dist/cjs/types/contract.js.map +1 -0
- package/dist/cjs/types/idp.d.ts +28 -0
- package/dist/cjs/types/idp.d.ts.map +1 -0
- package/dist/cjs/types/idp.js +9 -0
- package/dist/cjs/types/idp.js.map +1 -0
- package/dist/cjs/types/index.d.ts +10 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/interactive.d.ts +47 -0
- package/dist/cjs/types/interactive.d.ts.map +1 -0
- package/dist/cjs/types/interactive.js +13 -0
- package/dist/cjs/types/interactive.js.map +1 -0
- package/dist/cjs/types/package.d.ts +15 -0
- package/dist/cjs/types/package.d.ts.map +1 -0
- package/dist/cjs/types/package.js +8 -0
- package/dist/cjs/types/package.js.map +1 -0
- package/dist/cjs/types/party.d.ts +32 -0
- package/dist/cjs/types/party.d.ts.map +1 -0
- package/dist/cjs/types/party.js +10 -0
- package/dist/cjs/types/party.js.map +1 -0
- package/dist/cjs/types/reassignment.d.ts +65 -0
- package/dist/cjs/types/reassignment.d.ts.map +1 -0
- package/dist/cjs/types/reassignment.js +10 -0
- package/dist/cjs/types/reassignment.js.map +1 -0
- package/dist/cjs/types/transaction.d.ts +59 -0
- package/dist/cjs/types/transaction.d.ts.map +1 -0
- package/dist/cjs/types/transaction.js +13 -0
- package/dist/cjs/types/transaction.js.map +1 -0
- package/dist/cjs/types/user.d.ts +64 -0
- package/dist/cjs/types/user.d.ts.map +1 -0
- package/dist/cjs/types/user.js +12 -0
- package/dist/cjs/types/user.js.map +1 -0
- package/dist/esm/admin/index.d.ts +5 -0
- package/dist/esm/admin/index.d.ts.map +1 -0
- package/dist/esm/admin/index.js +2 -0
- package/dist/esm/admin/index.js.map +1 -0
- package/dist/esm/chains/definitions.d.ts +20 -0
- package/dist/esm/chains/definitions.d.ts.map +1 -0
- package/dist/esm/chains/definitions.js +30 -0
- package/dist/esm/chains/definitions.js.map +1 -0
- package/dist/esm/chains/index.d.ts +2 -0
- package/dist/esm/chains/index.d.ts.map +1 -0
- package/dist/esm/chains/index.js +2 -0
- package/dist/esm/chains/index.js.map +1 -0
- package/dist/esm/clients/createAdminClient.d.ts +73 -0
- package/dist/esm/clients/createAdminClient.d.ts.map +1 -0
- package/dist/esm/clients/createAdminClient.js +202 -0
- package/dist/esm/clients/createAdminClient.js.map +1 -0
- package/dist/esm/clients/createLedgerClient.d.ts +83 -0
- package/dist/esm/clients/createLedgerClient.d.ts.map +1 -0
- package/dist/esm/clients/createLedgerClient.js +237 -0
- package/dist/esm/clients/createLedgerClient.js.map +1 -0
- package/dist/esm/clients/createTestClient.d.ts +27 -0
- package/dist/esm/clients/createTestClient.d.ts.map +1 -0
- package/dist/esm/clients/createTestClient.js +43 -0
- package/dist/esm/clients/createTestClient.js.map +1 -0
- package/dist/esm/clients/index.d.ts +4 -0
- package/dist/esm/clients/index.d.ts.map +1 -0
- package/dist/esm/clients/index.js +4 -0
- package/dist/esm/clients/index.js.map +1 -0
- package/dist/esm/codegen/index.d.ts +2 -0
- package/dist/esm/codegen/index.d.ts.map +1 -0
- package/dist/esm/codegen/index.js +2 -0
- package/dist/esm/codegen/index.js.map +1 -0
- package/dist/esm/codegen/types.d.ts +38 -0
- package/dist/esm/codegen/types.d.ts.map +1 -0
- package/dist/esm/codegen/types.js +8 -0
- package/dist/esm/codegen/types.js.map +1 -0
- package/dist/esm/errors/auth.d.ts +13 -0
- package/dist/esm/errors/auth.d.ts.map +1 -0
- package/dist/esm/errors/auth.js +31 -0
- package/dist/esm/errors/auth.js.map +1 -0
- package/dist/esm/errors/base.d.ts +35 -0
- package/dist/esm/errors/base.d.ts.map +1 -0
- package/dist/esm/errors/base.js +67 -0
- package/dist/esm/errors/base.js.map +1 -0
- package/dist/esm/errors/index.d.ts +6 -0
- package/dist/esm/errors/index.d.ts.map +1 -0
- package/dist/esm/errors/index.js +6 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/errors/ledger.d.ts +22 -0
- package/dist/esm/errors/ledger.d.ts.map +1 -0
- package/dist/esm/errors/ledger.js +49 -0
- package/dist/esm/errors/ledger.js.map +1 -0
- package/dist/esm/errors/streaming.d.ts +20 -0
- package/dist/esm/errors/streaming.d.ts.map +1 -0
- package/dist/esm/errors/streaming.js +48 -0
- package/dist/esm/errors/streaming.js.map +1 -0
- package/dist/esm/errors/transport.d.ts +31 -0
- package/dist/esm/errors/transport.d.ts.map +1 -0
- package/dist/esm/errors/transport.js +56 -0
- package/dist/esm/errors/transport.js.map +1 -0
- package/dist/esm/index.d.ts +25 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/ledger/index.d.ts +5 -0
- package/dist/esm/ledger/index.d.ts.map +1 -0
- package/dist/esm/ledger/index.js +2 -0
- package/dist/esm/ledger/index.js.map +1 -0
- package/dist/esm/streaming/createStream.d.ts +55 -0
- package/dist/esm/streaming/createStream.d.ts.map +1 -0
- package/dist/esm/streaming/createStream.js +265 -0
- package/dist/esm/streaming/createStream.js.map +1 -0
- package/dist/esm/streaming/index.d.ts +8 -0
- package/dist/esm/streaming/index.d.ts.map +1 -0
- package/dist/esm/streaming/index.js +6 -0
- package/dist/esm/streaming/index.js.map +1 -0
- package/dist/esm/streaming/streamCompletions.d.ts +25 -0
- package/dist/esm/streaming/streamCompletions.d.ts.map +1 -0
- package/dist/esm/streaming/streamCompletions.js +44 -0
- package/dist/esm/streaming/streamCompletions.js.map +1 -0
- package/dist/esm/streaming/streamContracts.d.ts +42 -0
- package/dist/esm/streaming/streamContracts.d.ts.map +1 -0
- package/dist/esm/streaming/streamContracts.js +53 -0
- package/dist/esm/streaming/streamContracts.js.map +1 -0
- package/dist/esm/streaming/streamUpdates.d.ts +38 -0
- package/dist/esm/streaming/streamUpdates.d.ts.map +1 -0
- package/dist/esm/streaming/streamUpdates.js +63 -0
- package/dist/esm/streaming/streamUpdates.js.map +1 -0
- package/dist/esm/streaming/types.d.ts +111 -0
- package/dist/esm/streaming/types.d.ts.map +1 -0
- package/dist/esm/streaming/types.js +17 -0
- package/dist/esm/streaming/types.js.map +1 -0
- package/dist/esm/testing/index.d.ts +4 -0
- package/dist/esm/testing/index.d.ts.map +1 -0
- package/dist/esm/testing/index.js +4 -0
- package/dist/esm/testing/index.js.map +1 -0
- package/dist/esm/testing/mockTransport.d.ts +80 -0
- package/dist/esm/testing/mockTransport.d.ts.map +1 -0
- package/dist/esm/testing/mockTransport.js +93 -0
- package/dist/esm/testing/mockTransport.js.map +1 -0
- package/dist/esm/testing/setupSandbox.d.ts +62 -0
- package/dist/esm/testing/setupSandbox.d.ts.map +1 -0
- package/dist/esm/testing/setupSandbox.js +106 -0
- package/dist/esm/testing/setupSandbox.js.map +1 -0
- package/dist/esm/transport/fallback.d.ts +21 -0
- package/dist/esm/transport/fallback.d.ts.map +1 -0
- package/dist/esm/transport/fallback.js +45 -0
- package/dist/esm/transport/fallback.js.map +1 -0
- package/dist/esm/transport/grpc.d.ts +51 -0
- package/dist/esm/transport/grpc.d.ts.map +1 -0
- package/dist/esm/transport/grpc.js +87 -0
- package/dist/esm/transport/grpc.js.map +1 -0
- package/dist/esm/transport/index.d.ts +3 -0
- package/dist/esm/transport/index.d.ts.map +1 -0
- package/dist/esm/transport/index.js +2 -0
- package/dist/esm/transport/index.js.map +1 -0
- package/dist/esm/transport/json-api.d.ts +9 -0
- package/dist/esm/transport/json-api.d.ts.map +1 -0
- package/dist/esm/transport/json-api.js +66 -0
- package/dist/esm/transport/json-api.js.map +1 -0
- package/dist/esm/transport/types.d.ts +36 -0
- package/dist/esm/transport/types.d.ts.map +1 -0
- package/dist/esm/transport/types.js +9 -0
- package/dist/esm/transport/types.js.map +1 -0
- package/dist/esm/types/command.d.ts +127 -0
- package/dist/esm/types/command.d.ts.map +1 -0
- package/dist/esm/types/command.js +11 -0
- package/dist/esm/types/command.js.map +1 -0
- package/dist/esm/types/contract.d.ts +104 -0
- package/dist/esm/types/contract.d.ts.map +1 -0
- package/dist/esm/types/contract.js +11 -0
- package/dist/esm/types/contract.js.map +1 -0
- package/dist/esm/types/idp.d.ts +28 -0
- package/dist/esm/types/idp.d.ts.map +1 -0
- package/dist/esm/types/idp.js +8 -0
- package/dist/esm/types/idp.js.map +1 -0
- package/dist/esm/types/index.d.ts +10 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/interactive.d.ts +47 -0
- package/dist/esm/types/interactive.d.ts.map +1 -0
- package/dist/esm/types/interactive.js +12 -0
- package/dist/esm/types/interactive.js.map +1 -0
- package/dist/esm/types/package.d.ts +15 -0
- package/dist/esm/types/package.d.ts.map +1 -0
- package/dist/esm/types/package.js +7 -0
- package/dist/esm/types/package.js.map +1 -0
- package/dist/esm/types/party.d.ts +32 -0
- package/dist/esm/types/party.d.ts.map +1 -0
- package/dist/esm/types/party.js +9 -0
- package/dist/esm/types/party.js.map +1 -0
- package/dist/esm/types/reassignment.d.ts +65 -0
- package/dist/esm/types/reassignment.d.ts.map +1 -0
- package/dist/esm/types/reassignment.js +9 -0
- package/dist/esm/types/reassignment.js.map +1 -0
- package/dist/esm/types/transaction.d.ts +59 -0
- package/dist/esm/types/transaction.d.ts.map +1 -0
- package/dist/esm/types/transaction.js +12 -0
- package/dist/esm/types/transaction.js.map +1 -0
- package/dist/esm/types/user.d.ts +64 -0
- package/dist/esm/types/user.d.ts.map +1 -0
- package/dist/esm/types/user.js +11 -0
- package/dist/esm/types/user.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/package.json +140 -0
- package/src/admin/index.ts +9 -0
- package/src/chains/definitions.ts +43 -0
- package/src/chains/index.ts +1 -0
- package/src/clients/createAdminClient.ts +336 -0
- package/src/clients/createLedgerClient.ts +383 -0
- package/src/clients/createTestClient.ts +77 -0
- package/src/clients/index.ts +19 -0
- package/src/codegen/index.ts +6 -0
- package/src/codegen/types.ts +51 -0
- package/src/errors/auth.ts +33 -0
- package/src/errors/base.ts +83 -0
- package/src/errors/index.ts +5 -0
- package/src/errors/ledger.ts +53 -0
- package/src/errors/streaming.ts +51 -0
- package/src/errors/transport.ts +65 -0
- package/src/index.ts +122 -0
- package/src/ledger/index.ts +33 -0
- package/src/streaming/createStream.ts +321 -0
- package/src/streaming/index.ts +19 -0
- package/src/streaming/streamCompletions.ts +49 -0
- package/src/streaming/streamContracts.ts +64 -0
- package/src/streaming/streamUpdates.ts +67 -0
- package/src/streaming/types.ts +117 -0
- package/src/testing/index.ts +18 -0
- package/src/testing/mockTransport.ts +132 -0
- package/src/testing/setupSandbox.ts +163 -0
- package/src/transport/fallback.ts +57 -0
- package/src/transport/grpc.ts +130 -0
- package/src/transport/index.ts +2 -0
- package/src/transport/json-api.ts +83 -0
- package/src/transport/types.ts +39 -0
- package/src/types/command.ts +123 -0
- package/src/types/contract.ts +101 -0
- package/src/types/idp.ts +31 -0
- package/src/types/index.ts +66 -0
- package/src/types/interactive.ts +53 -0
- package/src/types/package.ts +16 -0
- package/src/types/party.ts +33 -0
- package/src/types/reassignment.ts +68 -0
- package/src/types/transaction.ts +57 -0
- package/src/types/user.ts +41 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory for creating an Admin API client.
|
|
3
|
+
*
|
|
4
|
+
* The AdminClient provides party/user/package management operations.
|
|
5
|
+
* Requires a privileged JWT token with admin rights.
|
|
6
|
+
*
|
|
7
|
+
* Request/response shapes match the Canton JSON Ledger API V2 OpenAPI spec (3.4+).
|
|
8
|
+
*/
|
|
9
|
+
export function createAdminClient(config) {
|
|
10
|
+
const { transport } = config;
|
|
11
|
+
return {
|
|
12
|
+
async allocateParty(request) {
|
|
13
|
+
const response = await transport.request({
|
|
14
|
+
method: 'POST',
|
|
15
|
+
path: '/v2/parties',
|
|
16
|
+
body: {
|
|
17
|
+
partyIdHint: request?.partyIdHint,
|
|
18
|
+
localMetadata: request?.localMetadata,
|
|
19
|
+
identityProviderId: request?.identityProviderId,
|
|
20
|
+
synchronizerId: request?.synchronizerId,
|
|
21
|
+
userId: request?.userId,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
return response.partyDetails;
|
|
25
|
+
},
|
|
26
|
+
async listParties(filter, pagination) {
|
|
27
|
+
const params = new URLSearchParams();
|
|
28
|
+
if (filter !== undefined)
|
|
29
|
+
params.set('filter-party', filter);
|
|
30
|
+
if (pagination?.pageSize !== undefined)
|
|
31
|
+
params.set('page_size', String(pagination.pageSize));
|
|
32
|
+
if (pagination?.pageToken !== undefined)
|
|
33
|
+
params.set('page_token', pagination.pageToken);
|
|
34
|
+
const qs = params.toString();
|
|
35
|
+
const response = await transport.request({
|
|
36
|
+
method: 'GET',
|
|
37
|
+
path: `/v2/parties${qs ? `?${qs}` : ''}`,
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
items: response.partyDetails ?? [],
|
|
41
|
+
nextPageToken: response.nextPageToken,
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
async getParty(party) {
|
|
45
|
+
const response = await transport.request({
|
|
46
|
+
method: 'GET',
|
|
47
|
+
path: `/v2/parties/${encodeURIComponent(party)}`,
|
|
48
|
+
});
|
|
49
|
+
return response.partyDetails;
|
|
50
|
+
},
|
|
51
|
+
async getParticipantId() {
|
|
52
|
+
const response = await transport.request({
|
|
53
|
+
method: 'GET',
|
|
54
|
+
path: '/v2/parties/participant-id',
|
|
55
|
+
});
|
|
56
|
+
return response.participantId;
|
|
57
|
+
},
|
|
58
|
+
async createUser(request) {
|
|
59
|
+
const response = await transport.request({
|
|
60
|
+
method: 'POST',
|
|
61
|
+
path: '/v2/users',
|
|
62
|
+
body: {
|
|
63
|
+
user: request.user,
|
|
64
|
+
rights: request.rights,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
return response.user;
|
|
68
|
+
},
|
|
69
|
+
async getUser(userId) {
|
|
70
|
+
const response = await transport.request({
|
|
71
|
+
method: 'GET',
|
|
72
|
+
path: `/v2/users/${encodeURIComponent(userId)}`,
|
|
73
|
+
});
|
|
74
|
+
return response.user;
|
|
75
|
+
},
|
|
76
|
+
async listUsers(pagination) {
|
|
77
|
+
const params = new URLSearchParams();
|
|
78
|
+
if (pagination?.pageSize !== undefined)
|
|
79
|
+
params.set('page_size', String(pagination.pageSize));
|
|
80
|
+
if (pagination?.pageToken !== undefined)
|
|
81
|
+
params.set('page_token', pagination.pageToken);
|
|
82
|
+
const qs = params.toString();
|
|
83
|
+
const response = await transport.request({
|
|
84
|
+
method: 'GET',
|
|
85
|
+
path: `/v2/users${qs ? `?${qs}` : ''}`,
|
|
86
|
+
});
|
|
87
|
+
return {
|
|
88
|
+
items: response.users ?? [],
|
|
89
|
+
nextPageToken: response.nextPageToken,
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
async deleteUser(userId) {
|
|
93
|
+
await transport.request({
|
|
94
|
+
method: 'DELETE',
|
|
95
|
+
path: `/v2/users/${encodeURIComponent(userId)}`,
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
async grantRights(userId, rights) {
|
|
99
|
+
const response = await transport.request({
|
|
100
|
+
method: 'POST',
|
|
101
|
+
path: `/v2/users/${encodeURIComponent(userId)}/rights`,
|
|
102
|
+
body: { rights },
|
|
103
|
+
});
|
|
104
|
+
return response.newlyGrantedRights ?? [];
|
|
105
|
+
},
|
|
106
|
+
async revokeRights(userId, rights) {
|
|
107
|
+
const response = await transport.request({
|
|
108
|
+
method: 'POST',
|
|
109
|
+
path: `/v2/users/${encodeURIComponent(userId)}/rights`,
|
|
110
|
+
body: { rights, revoke: true },
|
|
111
|
+
});
|
|
112
|
+
return response.newlyRevokedRights ?? [];
|
|
113
|
+
},
|
|
114
|
+
async uploadDar(darBytes, options) {
|
|
115
|
+
const params = new URLSearchParams();
|
|
116
|
+
if (options?.vetAllPackages !== undefined) {
|
|
117
|
+
params.set('vetAllPackages', String(options.vetAllPackages));
|
|
118
|
+
}
|
|
119
|
+
const qs = params.toString();
|
|
120
|
+
await transport.request({
|
|
121
|
+
method: 'POST',
|
|
122
|
+
path: `/v2/dars${qs ? `?${qs}` : ''}`,
|
|
123
|
+
body: darBytes,
|
|
124
|
+
headers: { 'Content-Type': 'application/octet-stream' },
|
|
125
|
+
});
|
|
126
|
+
},
|
|
127
|
+
async listPackages() {
|
|
128
|
+
const response = await transport.request({
|
|
129
|
+
method: 'GET',
|
|
130
|
+
path: '/v2/packages',
|
|
131
|
+
});
|
|
132
|
+
return response.packageIds ?? [];
|
|
133
|
+
},
|
|
134
|
+
async validateDar(darBytes) {
|
|
135
|
+
await transport.request({
|
|
136
|
+
method: 'POST',
|
|
137
|
+
path: '/v2/dars/validate',
|
|
138
|
+
body: darBytes,
|
|
139
|
+
headers: { 'Content-Type': 'application/octet-stream' },
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
async getLedgerApiVersion() {
|
|
143
|
+
const response = await transport.request({
|
|
144
|
+
method: 'GET',
|
|
145
|
+
path: '/v2/version',
|
|
146
|
+
});
|
|
147
|
+
return response.version;
|
|
148
|
+
},
|
|
149
|
+
async createIdentityProvider(request) {
|
|
150
|
+
const response = await transport.request({
|
|
151
|
+
method: 'POST',
|
|
152
|
+
path: '/v2/identity-provider-configs',
|
|
153
|
+
body: request,
|
|
154
|
+
});
|
|
155
|
+
return response.identityProviderConfig;
|
|
156
|
+
},
|
|
157
|
+
async getIdentityProvider(id) {
|
|
158
|
+
const response = await transport.request({
|
|
159
|
+
method: 'GET',
|
|
160
|
+
path: `/v2/identity-provider-configs/${encodeURIComponent(id)}`,
|
|
161
|
+
});
|
|
162
|
+
return response.identityProviderConfig;
|
|
163
|
+
},
|
|
164
|
+
async updateIdentityProvider(request) {
|
|
165
|
+
const id = request.identityProviderConfig.identityProviderId;
|
|
166
|
+
const response = await transport.request({
|
|
167
|
+
method: 'PATCH',
|
|
168
|
+
path: `/v2/identity-provider-configs/${encodeURIComponent(id)}`,
|
|
169
|
+
body: request,
|
|
170
|
+
});
|
|
171
|
+
return response.identityProviderConfig;
|
|
172
|
+
},
|
|
173
|
+
async deleteIdentityProvider(id) {
|
|
174
|
+
await transport.request({
|
|
175
|
+
method: 'DELETE',
|
|
176
|
+
path: `/v2/identity-provider-configs/${encodeURIComponent(id)}`,
|
|
177
|
+
});
|
|
178
|
+
},
|
|
179
|
+
async listIdentityProviders() {
|
|
180
|
+
const response = await transport.request({
|
|
181
|
+
method: 'GET',
|
|
182
|
+
path: '/v2/identity-provider-configs',
|
|
183
|
+
});
|
|
184
|
+
return response.identityProviderConfigs ?? [];
|
|
185
|
+
},
|
|
186
|
+
async getVettedPackages() {
|
|
187
|
+
const response = await transport.request({
|
|
188
|
+
method: 'GET',
|
|
189
|
+
path: '/v2/package-vetting',
|
|
190
|
+
});
|
|
191
|
+
return response.packageIds ?? [];
|
|
192
|
+
},
|
|
193
|
+
async updateVettedPackages(packageIds) {
|
|
194
|
+
await transport.request({
|
|
195
|
+
method: 'POST',
|
|
196
|
+
path: '/v2/package-vetting',
|
|
197
|
+
body: { packageIds },
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=createAdminClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createAdminClient.js","sourceRoot":"","sources":["../../../src/clients/createAdminClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory for creating a party-scoped Ledger API client.
|
|
3
|
+
*
|
|
4
|
+
* The LedgerClient provides contract operations: create, exercise, query.
|
|
5
|
+
* Each client is scoped to a party via its JWT token.
|
|
6
|
+
*
|
|
7
|
+
* Request/response shapes match the Canton JSON Ledger API V2 OpenAPI spec (3.4+).
|
|
8
|
+
*/
|
|
9
|
+
import type { Transport } from '../transport/types.js';
|
|
10
|
+
import type { Party } from '../types/party.js';
|
|
11
|
+
import type { CreatedEvent, ActiveContract } from '../types/contract.js';
|
|
12
|
+
import type { JsTransaction } from '../types/transaction.js';
|
|
13
|
+
import type { Reassignment, ReassignmentCommand } from '../types/reassignment.js';
|
|
14
|
+
import type { PrepareSubmissionResponse, PartySignatures } from '../types/interactive.js';
|
|
15
|
+
import type { LedgerOffset, EventFormat } from '../types/command.js';
|
|
16
|
+
export type LedgerClientConfig = {
|
|
17
|
+
/** Transport to communicate with the Canton node. */
|
|
18
|
+
readonly transport: Transport;
|
|
19
|
+
/** The party this client acts as. */
|
|
20
|
+
readonly actAs: Party;
|
|
21
|
+
/** Additional parties this client can read as. */
|
|
22
|
+
readonly readAs?: readonly Party[];
|
|
23
|
+
};
|
|
24
|
+
export type LedgerClient = {
|
|
25
|
+
/** The party this client acts as. */
|
|
26
|
+
readonly actAs: Party;
|
|
27
|
+
/** Additional parties this client can read as. */
|
|
28
|
+
readonly readAs: readonly Party[];
|
|
29
|
+
/** Create a new contract on the ledger. */
|
|
30
|
+
createContract: (templateId: string, createArguments: Record<string, unknown>, options?: CommandOptions) => Promise<CreatedEvent>;
|
|
31
|
+
/** Exercise a choice on an existing contract. */
|
|
32
|
+
exerciseChoice: (templateId: string, contractId: string, choice: string, choiceArgument: Record<string, unknown>, options?: CommandOptions) => Promise<JsTransaction>;
|
|
33
|
+
/** Query active contracts matching a template. */
|
|
34
|
+
queryContracts: (templateId: string, options?: QueryOptions) => Promise<readonly ActiveContract[]>;
|
|
35
|
+
/** Get a transaction by its update ID. */
|
|
36
|
+
getTransactionById: (updateId: string) => Promise<JsTransaction>;
|
|
37
|
+
/** Get the current ledger end offset. */
|
|
38
|
+
getLedgerEnd: () => Promise<LedgerOffset>;
|
|
39
|
+
/** Get events for a specific contract. */
|
|
40
|
+
getEventsByContractId: (contractId: string) => Promise<unknown>;
|
|
41
|
+
/** Get connected synchronizer IDs. */
|
|
42
|
+
getConnectedSynchronizers: () => Promise<readonly ConnectedSynchronizer[]>;
|
|
43
|
+
/** Get the latest pruned offsets. */
|
|
44
|
+
getLatestPrunedOffsets: () => Promise<PrunedOffsets>;
|
|
45
|
+
/** Submit a reassignment command and wait for completion. */
|
|
46
|
+
submitReassignment: (command: ReassignmentCommand, options?: CommandOptions) => Promise<Reassignment>;
|
|
47
|
+
/**
|
|
48
|
+
* Prepare a transaction for external signing.
|
|
49
|
+
* Returns the prepared transaction and hash to sign.
|
|
50
|
+
*/
|
|
51
|
+
prepareSubmission: (templateId: string, createArguments: Record<string, unknown>, options?: CommandOptions) => Promise<PrepareSubmissionResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Execute a previously prepared and externally signed transaction.
|
|
54
|
+
*/
|
|
55
|
+
executeSubmission: (preparedTransaction: string, partySignatures: readonly PartySignatures[], options?: {
|
|
56
|
+
readonly submissionId?: string;
|
|
57
|
+
readonly signal?: AbortSignal;
|
|
58
|
+
}) => Promise<JsTransaction>;
|
|
59
|
+
};
|
|
60
|
+
/** A connected synchronizer (domain). */
|
|
61
|
+
export type ConnectedSynchronizer = {
|
|
62
|
+
readonly synchronizerId: string;
|
|
63
|
+
readonly permission: 'SUBMISSION' | 'OBSERVATION' | 'UNSPECIFIED';
|
|
64
|
+
};
|
|
65
|
+
/** Pruned offset information. */
|
|
66
|
+
export type PrunedOffsets = {
|
|
67
|
+
readonly participantPrunedUpToInclusive?: number;
|
|
68
|
+
readonly allDivulgedContractsPrunedUpToInclusive?: number;
|
|
69
|
+
};
|
|
70
|
+
export type CommandOptions = {
|
|
71
|
+
readonly commandId?: string;
|
|
72
|
+
readonly workflowId?: string;
|
|
73
|
+
readonly signal?: AbortSignal;
|
|
74
|
+
};
|
|
75
|
+
export type QueryOptions = {
|
|
76
|
+
readonly signal?: AbortSignal;
|
|
77
|
+
/** Event format for filtering. Defaults to verbose wildcard filter for actAs party. */
|
|
78
|
+
readonly eventFormat?: EventFormat;
|
|
79
|
+
/** Offset to snapshot at. 0 = empty ledger. Defaults to 0. */
|
|
80
|
+
readonly activeAtOffset?: LedgerOffset;
|
|
81
|
+
};
|
|
82
|
+
export declare function createLedgerClient(config: LedgerClientConfig): LedgerClient;
|
|
83
|
+
//# sourceMappingURL=createLedgerClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLedgerClient.d.ts","sourceRoot":"","sources":["../../../src/clients/createLedgerClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory for creating a party-scoped Ledger API client.
|
|
3
|
+
*
|
|
4
|
+
* The LedgerClient provides contract operations: create, exercise, query.
|
|
5
|
+
* Each client is scoped to a party via its JWT token.
|
|
6
|
+
*
|
|
7
|
+
* Request/response shapes match the Canton JSON Ledger API V2 OpenAPI spec (3.4+).
|
|
8
|
+
*/
|
|
9
|
+
/** Generate a random UUID, compatible with Node.js 18+ and browsers. */
|
|
10
|
+
function generateUUID() {
|
|
11
|
+
if (typeof globalThis.crypto?.randomUUID === 'function') {
|
|
12
|
+
return globalThis.crypto.randomUUID();
|
|
13
|
+
}
|
|
14
|
+
// Fallback for Node.js 18 where globalThis.crypto.randomUUID may not exist
|
|
15
|
+
const bytes = new Uint8Array(16);
|
|
16
|
+
if (typeof globalThis.crypto?.getRandomValues === 'function') {
|
|
17
|
+
globalThis.crypto.getRandomValues(bytes);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
for (let i = 0; i < 16; i++)
|
|
21
|
+
bytes[i] = Math.floor(Math.random() * 256);
|
|
22
|
+
}
|
|
23
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
24
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
25
|
+
const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
|
|
26
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
27
|
+
}
|
|
28
|
+
export function createLedgerClient(config) {
|
|
29
|
+
const { transport, actAs, readAs = [] } = config;
|
|
30
|
+
function defaultEventFormat() {
|
|
31
|
+
return {
|
|
32
|
+
filtersByParty: {
|
|
33
|
+
[actAs]: {
|
|
34
|
+
cumulative: [
|
|
35
|
+
{
|
|
36
|
+
identifierFilter: {
|
|
37
|
+
WildcardFilter: { value: { includeCreatedEventBlob: false } },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
verbose: true,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function templateEventFormat(templateId) {
|
|
47
|
+
return {
|
|
48
|
+
filtersByParty: {
|
|
49
|
+
[actAs]: {
|
|
50
|
+
cumulative: [
|
|
51
|
+
{
|
|
52
|
+
identifierFilter: {
|
|
53
|
+
TemplateFilter: {
|
|
54
|
+
value: { templateId, includeCreatedEventBlob: false },
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
verbose: true,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function defaultTransactionFormat() {
|
|
65
|
+
return {
|
|
66
|
+
transactionShape: 'TRANSACTION_SHAPE_ACS_DELTA',
|
|
67
|
+
eventFormat: defaultEventFormat(),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
actAs,
|
|
72
|
+
readAs,
|
|
73
|
+
async createContract(templateId, createArguments, options) {
|
|
74
|
+
const request = {
|
|
75
|
+
method: 'POST',
|
|
76
|
+
path: '/v2/commands/submit-and-wait-for-transaction',
|
|
77
|
+
body: {
|
|
78
|
+
commands: {
|
|
79
|
+
commands: [{ CreateCommand: { templateId, createArguments } }],
|
|
80
|
+
commandId: options?.commandId ?? generateUUID(),
|
|
81
|
+
actAs: [actAs],
|
|
82
|
+
readAs: readAs.length > 0 ? readAs : undefined,
|
|
83
|
+
workflowId: options?.workflowId,
|
|
84
|
+
},
|
|
85
|
+
transactionFormat: defaultTransactionFormat(),
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
if (options?.signal)
|
|
89
|
+
request.signal = options.signal;
|
|
90
|
+
const response = await transport.request(request);
|
|
91
|
+
const created = extractCreatedEvent(response.transaction.events);
|
|
92
|
+
if (created === undefined) {
|
|
93
|
+
throw new Error('No created event in transaction response');
|
|
94
|
+
}
|
|
95
|
+
return created;
|
|
96
|
+
},
|
|
97
|
+
async exerciseChoice(templateId, contractId, choice, choiceArgument, options) {
|
|
98
|
+
const request = {
|
|
99
|
+
method: 'POST',
|
|
100
|
+
path: '/v2/commands/submit-and-wait-for-transaction',
|
|
101
|
+
body: {
|
|
102
|
+
commands: {
|
|
103
|
+
commands: [
|
|
104
|
+
{ ExerciseCommand: { templateId, contractId, choice, choiceArgument } },
|
|
105
|
+
],
|
|
106
|
+
commandId: options?.commandId ?? generateUUID(),
|
|
107
|
+
actAs: [actAs],
|
|
108
|
+
readAs: readAs.length > 0 ? readAs : undefined,
|
|
109
|
+
workflowId: options?.workflowId,
|
|
110
|
+
},
|
|
111
|
+
transactionFormat: defaultTransactionFormat(),
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
if (options?.signal)
|
|
115
|
+
request.signal = options.signal;
|
|
116
|
+
const response = await transport.request(request);
|
|
117
|
+
return response.transaction;
|
|
118
|
+
},
|
|
119
|
+
async queryContracts(templateId, options) {
|
|
120
|
+
const request = {
|
|
121
|
+
method: 'POST',
|
|
122
|
+
path: '/v2/state/active-contracts',
|
|
123
|
+
body: {
|
|
124
|
+
activeAtOffset: options?.activeAtOffset ?? 0,
|
|
125
|
+
eventFormat: options?.eventFormat ?? templateEventFormat(templateId),
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
if (options?.signal)
|
|
129
|
+
request.signal = options.signal;
|
|
130
|
+
const response = await transport.request(request);
|
|
131
|
+
return response
|
|
132
|
+
.map((entry) => {
|
|
133
|
+
if ('JsActiveContract' in entry.contractEntry) {
|
|
134
|
+
return entry.contractEntry.JsActiveContract;
|
|
135
|
+
}
|
|
136
|
+
return undefined;
|
|
137
|
+
})
|
|
138
|
+
.filter((c) => c !== undefined);
|
|
139
|
+
},
|
|
140
|
+
async getTransactionById(updateId) {
|
|
141
|
+
const response = await transport.request({
|
|
142
|
+
method: 'POST',
|
|
143
|
+
path: '/v2/updates/transaction-by-id',
|
|
144
|
+
body: {
|
|
145
|
+
updateId,
|
|
146
|
+
requestingParties: [actAs, ...readAs],
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
return response.transaction;
|
|
150
|
+
},
|
|
151
|
+
async getLedgerEnd() {
|
|
152
|
+
const response = await transport.request({
|
|
153
|
+
method: 'GET',
|
|
154
|
+
path: '/v2/state/ledger-end',
|
|
155
|
+
});
|
|
156
|
+
return response.offset;
|
|
157
|
+
},
|
|
158
|
+
async getEventsByContractId(contractId) {
|
|
159
|
+
return transport.request({
|
|
160
|
+
method: 'POST',
|
|
161
|
+
path: '/v2/events/events-by-contract-id',
|
|
162
|
+
body: { contractId, requestingParties: [actAs, ...readAs] },
|
|
163
|
+
});
|
|
164
|
+
},
|
|
165
|
+
async getConnectedSynchronizers() {
|
|
166
|
+
const response = await transport.request({
|
|
167
|
+
method: 'GET',
|
|
168
|
+
path: '/v2/state/connected-synchronizers',
|
|
169
|
+
});
|
|
170
|
+
return response.connectedSynchronizers ?? [];
|
|
171
|
+
},
|
|
172
|
+
async getLatestPrunedOffsets() {
|
|
173
|
+
const response = await transport.request({
|
|
174
|
+
method: 'GET',
|
|
175
|
+
path: '/v2/state/latest-pruned-offsets',
|
|
176
|
+
});
|
|
177
|
+
return response;
|
|
178
|
+
},
|
|
179
|
+
async submitReassignment(command, options) {
|
|
180
|
+
const request = {
|
|
181
|
+
method: 'POST',
|
|
182
|
+
path: '/v2/commands/submit-and-wait-for-reassignment',
|
|
183
|
+
body: {
|
|
184
|
+
reassignmentCommand: command,
|
|
185
|
+
commandId: options?.commandId ?? generateUUID(),
|
|
186
|
+
submitter: actAs,
|
|
187
|
+
workflowId: options?.workflowId,
|
|
188
|
+
},
|
|
189
|
+
};
|
|
190
|
+
if (options?.signal)
|
|
191
|
+
request.signal = options.signal;
|
|
192
|
+
const response = await transport.request(request);
|
|
193
|
+
return response.reassignment;
|
|
194
|
+
},
|
|
195
|
+
async prepareSubmission(templateId, createArguments, options) {
|
|
196
|
+
const request = {
|
|
197
|
+
method: 'POST',
|
|
198
|
+
path: '/v2/interactive-submission/prepare',
|
|
199
|
+
body: {
|
|
200
|
+
commands: [{ CreateCommand: { templateId, createArguments } }],
|
|
201
|
+
commandId: options?.commandId ?? generateUUID(),
|
|
202
|
+
actAs: [actAs],
|
|
203
|
+
readAs: readAs.length > 0 ? readAs : undefined,
|
|
204
|
+
workflowId: options?.workflowId,
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
if (options?.signal)
|
|
208
|
+
request.signal = options.signal;
|
|
209
|
+
return transport.request(request);
|
|
210
|
+
},
|
|
211
|
+
async executeSubmission(preparedTransaction, partySignatures, options) {
|
|
212
|
+
const request = {
|
|
213
|
+
method: 'POST',
|
|
214
|
+
path: '/v2/interactive-submission/execute',
|
|
215
|
+
body: {
|
|
216
|
+
preparedTransaction,
|
|
217
|
+
partySignatures,
|
|
218
|
+
submissionId: options?.submissionId,
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
if (options?.signal)
|
|
222
|
+
request.signal = options.signal;
|
|
223
|
+
const response = await transport.request(request);
|
|
224
|
+
return response.transaction;
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
/** Extract the first CreatedEvent from a list of tagged events. */
|
|
229
|
+
function extractCreatedEvent(events) {
|
|
230
|
+
for (const event of events) {
|
|
231
|
+
if ('CreatedEvent' in event) {
|
|
232
|
+
return event.CreatedEvent;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return undefined;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=createLedgerClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLedgerClient.js","sourceRoot":"","sources":["../../../src/clients/createLedgerClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory for creating a test client for Canton sandbox.
|
|
3
|
+
*
|
|
4
|
+
* The TestClient provides sandbox lifecycle management, party allocation,
|
|
5
|
+
* and time manipulation for testing. Extends LedgerClient + AdminClient.
|
|
6
|
+
*/
|
|
7
|
+
import type { Transport } from '../transport/types.js';
|
|
8
|
+
import type { Party, PartyDetails } from '../types/party.js';
|
|
9
|
+
import { type LedgerClient } from './createLedgerClient.js';
|
|
10
|
+
import { type AdminClient } from './createAdminClient.js';
|
|
11
|
+
export type TestClientConfig = {
|
|
12
|
+
readonly transport: Transport;
|
|
13
|
+
/** Default party for ledger operations. If not provided, one will be allocated. */
|
|
14
|
+
readonly party?: Party;
|
|
15
|
+
};
|
|
16
|
+
export type TestClient = LedgerClient & AdminClient & {
|
|
17
|
+
/** Get the current ledger time (static-time sandbox only). */
|
|
18
|
+
getTime: () => Promise<Date>;
|
|
19
|
+
/** Set the ledger time (static-time sandbox only). */
|
|
20
|
+
setTime: (currentTime: Date, newTime: Date) => Promise<void>;
|
|
21
|
+
/** Advance ledger time by a duration in seconds (static-time sandbox only). */
|
|
22
|
+
advanceTime: (seconds: number) => Promise<void>;
|
|
23
|
+
/** Allocate multiple parties at once. */
|
|
24
|
+
allocateParties: (hints: readonly string[]) => Promise<readonly PartyDetails[]>;
|
|
25
|
+
};
|
|
26
|
+
export declare function createTestClient(config: TestClientConfig): TestClient;
|
|
27
|
+
//# sourceMappingURL=createTestClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTestClient.d.ts","sourceRoot":"","sources":["../../../src/clients/createTestClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAE5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GACnC,WAAW,GAAG;IACZ,8DAA8D;IAC9D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B,sDAAsD;IACtD,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5D,+EAA+E;IAC/E,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/C,yCAAyC;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;CAChF,CAAA;AAEH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA2CrE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory for creating a test client for Canton sandbox.
|
|
3
|
+
*
|
|
4
|
+
* The TestClient provides sandbox lifecycle management, party allocation,
|
|
5
|
+
* and time manipulation for testing. Extends LedgerClient + AdminClient.
|
|
6
|
+
*/
|
|
7
|
+
import { createLedgerClient } from './createLedgerClient.js';
|
|
8
|
+
import { createAdminClient } from './createAdminClient.js';
|
|
9
|
+
export function createTestClient(config) {
|
|
10
|
+
const { transport, party = 'test-party' } = config;
|
|
11
|
+
const ledger = createLedgerClient({ transport, actAs: party });
|
|
12
|
+
const admin = createAdminClient({ transport });
|
|
13
|
+
return {
|
|
14
|
+
...ledger,
|
|
15
|
+
...admin,
|
|
16
|
+
async getTime() {
|
|
17
|
+
const response = await transport.request({
|
|
18
|
+
method: 'GET',
|
|
19
|
+
path: '/v2/time',
|
|
20
|
+
});
|
|
21
|
+
return new Date(response.currentTime);
|
|
22
|
+
},
|
|
23
|
+
async setTime(currentTime, newTime) {
|
|
24
|
+
await transport.request({
|
|
25
|
+
method: 'POST',
|
|
26
|
+
path: '/v2/time',
|
|
27
|
+
body: {
|
|
28
|
+
currentTime: currentTime.toISOString(),
|
|
29
|
+
newTime: newTime.toISOString(),
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
async advanceTime(seconds) {
|
|
34
|
+
const current = await this.getTime();
|
|
35
|
+
const newTime = new Date(current.getTime() + seconds * 1000);
|
|
36
|
+
await this.setTime(current, newTime);
|
|
37
|
+
},
|
|
38
|
+
async allocateParties(hints) {
|
|
39
|
+
return Promise.all(hints.map((hint) => admin.allocateParty({ partyIdHint: hint })));
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=createTestClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTestClient.js","sourceRoot":"","sources":["../../../src/clients/createTestClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,kBAAkB,EAAqB,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAoB,MAAM,wBAAwB,CAAA;AAuB5E,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,YAAqB,EAAE,GAAG,MAAM,CAAA;IAE3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAE9C,OAAO;QACL,GAAG,MAAM;QACT,GAAG,KAAK;QAER,KAAK,CAAC,OAAO;YACX,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAA0B;gBAChE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,UAAU;aACjB,CAAC,CAAA;YACF,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACvC,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO;YAChC,MAAM,SAAS,CAAC,OAAO,CAAC;gBACtB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE;oBACJ,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;oBACtC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;iBAC/B;aACF,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,OAAO;YACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACpC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAA;YAC5D,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACtC,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,KAAK;YACzB,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,KAAK,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAC3C,CACF,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createLedgerClient, type LedgerClient, type LedgerClientConfig, type CommandOptions, type QueryOptions, } from './createLedgerClient.js';
|
|
2
|
+
export { createAdminClient, type AdminClient, type AdminClientConfig, } from './createAdminClient.js';
|
|
3
|
+
export { createTestClient, type TestClient, type TestClientConfig, } from './createTestClient.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAKnB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,iBAAiB,GAGlB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAA"}
|