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,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gRPC transport factory for Canton Ledger API V2.
|
|
3
|
+
*
|
|
4
|
+
* Uses a custom fetch-based adapter to translate Transport requests into
|
|
5
|
+
* gRPC-Web calls via ConnectRPC's HTTP/2 or HTTP/1.1 protocol. This keeps
|
|
6
|
+
* cantonjs zero-dependency — users bring their own `@connectrpc/connect-web`
|
|
7
|
+
* or `@connectrpc/connect-node` transport.
|
|
8
|
+
*
|
|
9
|
+
* Since Canton's JSON API V2 and gRPC API share the same semantics, this
|
|
10
|
+
* transport maps JSON API paths to gRPC service methods and re-encodes
|
|
11
|
+
* request/response bodies.
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* import { grpc } from 'cantonjs'
|
|
15
|
+
* import { createGrpcWebTransport } from '@connectrpc/connect-web'
|
|
16
|
+
*
|
|
17
|
+
* const transport = grpc({
|
|
18
|
+
* url: 'http://localhost:7575',
|
|
19
|
+
* grpcTransport: createGrpcWebTransport({ baseUrl: 'http://localhost:7575' }),
|
|
20
|
+
* })
|
|
21
|
+
*/
|
|
22
|
+
import type { Transport } from './types.js';
|
|
23
|
+
/** Configuration for the gRPC transport. */
|
|
24
|
+
export type GrpcTransportConfig = {
|
|
25
|
+
/** Base URL of the Canton node. */
|
|
26
|
+
readonly url: string;
|
|
27
|
+
/** JWT Bearer token for authentication. */
|
|
28
|
+
readonly token?: string;
|
|
29
|
+
/**
|
|
30
|
+
* A ConnectRPC transport instance (from @connectrpc/connect-web or connect-node).
|
|
31
|
+
* Injected to keep cantonjs zero-dependency.
|
|
32
|
+
*/
|
|
33
|
+
readonly grpcTransport: GrpcTransportLike;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Minimal interface for a ConnectRPC transport.
|
|
37
|
+
* Compatible with @connectrpc/connect's Transport type.
|
|
38
|
+
*/
|
|
39
|
+
export type GrpcTransportLike = {
|
|
40
|
+
readonly unary: (service: unknown, method: unknown, signal: AbortSignal | undefined, timeoutMs: number | undefined, header: unknown, message: unknown) => Promise<{
|
|
41
|
+
readonly message: unknown;
|
|
42
|
+
}>;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Create a gRPC transport for the Canton Ledger API.
|
|
46
|
+
*
|
|
47
|
+
* Requires @connectrpc/connect as a peer dependency (not bundled).
|
|
48
|
+
* Maps Transport requests to gRPC unary calls.
|
|
49
|
+
*/
|
|
50
|
+
export declare function grpc(config: GrpcTransportConfig): Transport;
|
|
51
|
+
//# sourceMappingURL=grpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAA;AAE7D,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG;IAChC,mCAAmC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAA;CAC1C,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,OAAO,KACb,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAC5C,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CA0B3D"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* gRPC transport factory for Canton Ledger API V2.
|
|
4
|
+
*
|
|
5
|
+
* Uses a custom fetch-based adapter to translate Transport requests into
|
|
6
|
+
* gRPC-Web calls via ConnectRPC's HTTP/2 or HTTP/1.1 protocol. This keeps
|
|
7
|
+
* cantonjs zero-dependency — users bring their own `@connectrpc/connect-web`
|
|
8
|
+
* or `@connectrpc/connect-node` transport.
|
|
9
|
+
*
|
|
10
|
+
* Since Canton's JSON API V2 and gRPC API share the same semantics, this
|
|
11
|
+
* transport maps JSON API paths to gRPC service methods and re-encodes
|
|
12
|
+
* request/response bodies.
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* import { grpc } from 'cantonjs'
|
|
16
|
+
* import { createGrpcWebTransport } from '@connectrpc/connect-web'
|
|
17
|
+
*
|
|
18
|
+
* const transport = grpc({
|
|
19
|
+
* url: 'http://localhost:7575',
|
|
20
|
+
* grpcTransport: createGrpcWebTransport({ baseUrl: 'http://localhost:7575' }),
|
|
21
|
+
* })
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.grpc = grpc;
|
|
25
|
+
/**
|
|
26
|
+
* Create a gRPC transport for the Canton Ledger API.
|
|
27
|
+
*
|
|
28
|
+
* Requires @connectrpc/connect as a peer dependency (not bundled).
|
|
29
|
+
* Maps Transport requests to gRPC unary calls.
|
|
30
|
+
*/
|
|
31
|
+
function grpc(config) {
|
|
32
|
+
const { url, token, grpcTransport } = config;
|
|
33
|
+
const baseUrl = url.replace(/\/+$/, '');
|
|
34
|
+
return {
|
|
35
|
+
type: 'grpc',
|
|
36
|
+
url: baseUrl,
|
|
37
|
+
async request(args) {
|
|
38
|
+
const headers = {};
|
|
39
|
+
if (token !== undefined) {
|
|
40
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
41
|
+
}
|
|
42
|
+
const result = await grpcTransport.unary(pathToService(args.path), pathToMethod(args.path), args.signal, args.timeout, headers, args.body ?? {});
|
|
43
|
+
return result.message;
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Map a JSON API path to a gRPC service descriptor.
|
|
49
|
+
* In a full implementation, this would use generated service descriptors
|
|
50
|
+
* from Canton's protobuf definitions.
|
|
51
|
+
*/
|
|
52
|
+
function pathToService(path) {
|
|
53
|
+
const segments = path.replace(/^\/v2\//, '').split('/');
|
|
54
|
+
const serviceMap = {
|
|
55
|
+
'commands': 'com.daml.ledger.api.v2.CommandService',
|
|
56
|
+
'interactive-submission': 'com.daml.ledger.api.v2.InteractiveSubmissionService',
|
|
57
|
+
'state': 'com.daml.ledger.api.v2.StateService',
|
|
58
|
+
'updates': 'com.daml.ledger.api.v2.UpdateService',
|
|
59
|
+
'events': 'com.daml.ledger.api.v2.EventQueryService',
|
|
60
|
+
'parties': 'com.daml.ledger.api.v2.PartyManagementService',
|
|
61
|
+
'users': 'com.daml.ledger.api.v2.UserManagementService',
|
|
62
|
+
'packages': 'com.daml.ledger.api.v2.PackageService',
|
|
63
|
+
'dars': 'com.daml.ledger.api.v2.PackageManagementService',
|
|
64
|
+
'version': 'com.daml.ledger.api.v2.VersionService',
|
|
65
|
+
};
|
|
66
|
+
const serviceName = serviceMap[segments[0] ?? ''] ?? 'unknown';
|
|
67
|
+
return { typeName: serviceName };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Map a JSON API path to a gRPC method descriptor.
|
|
71
|
+
*/
|
|
72
|
+
function pathToMethod(path) {
|
|
73
|
+
const methodMap = {
|
|
74
|
+
'/v2/commands/submit-and-wait': 'SubmitAndWait',
|
|
75
|
+
'/v2/commands/submit-and-wait-for-transaction': 'SubmitAndWaitForTransaction',
|
|
76
|
+
'/v2/commands/submit-and-wait-for-reassignment': 'SubmitAndWaitForReassignment',
|
|
77
|
+
'/v2/interactive-submission/prepare': 'PrepareSubmission',
|
|
78
|
+
'/v2/interactive-submission/execute': 'ExecuteSubmission',
|
|
79
|
+
'/v2/state/active-contracts': 'GetActiveContracts',
|
|
80
|
+
'/v2/state/connected-synchronizers': 'GetConnectedSynchronizers',
|
|
81
|
+
'/v2/state/ledger-end': 'GetLedgerEnd',
|
|
82
|
+
'/v2/state/latest-pruned-offsets': 'GetLatestPrunedOffsets',
|
|
83
|
+
'/v2/updates/transaction-by-id': 'GetTransactionById',
|
|
84
|
+
'/v2/events/events-by-contract-id': 'GetEventsByContractId',
|
|
85
|
+
'/v2/version': 'GetLedgerApiVersion',
|
|
86
|
+
};
|
|
87
|
+
const methodName = methodMap[path] ?? path.split('/').pop() ?? 'unknown';
|
|
88
|
+
return { name: methodName };
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=grpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../../src/transport/grpc.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;AAsCH,oBA0BC;AAhCD;;;;;GAKG;AACH,SAAgB,IAAI,CAAC,MAA2B;IAC9C,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEvC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,OAAO;QAEZ,KAAK,CAAC,OAAO,CAAsB,IAAsB;YACvD,MAAM,OAAO,GAA2B,EAAE,CAAA;YAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;YAC9C,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CACtC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,OAAO,EACP,IAAI,CAAC,IAAI,IAAI,EAAE,CAChB,CAAA;YAED,OAAO,MAAM,CAAC,OAAoB,CAAA;QACpC,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvD,MAAM,UAAU,GAA2B;QACzC,UAAU,EAAE,uCAAuC;QACnD,wBAAwB,EAAE,qDAAqD;QAC/E,OAAO,EAAE,qCAAqC;QAC9C,SAAS,EAAE,sCAAsC;QACjD,QAAQ,EAAE,0CAA0C;QACpD,SAAS,EAAE,+CAA+C;QAC1D,OAAO,EAAE,8CAA8C;QACvD,UAAU,EAAE,uCAAuC;QACnD,MAAM,EAAE,iDAAiD;QACzD,SAAS,EAAE,uCAAuC;KACnD,CAAA;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS,CAAA;IAC9D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;AAClC,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,SAAS,GAA2B;QACxC,8BAA8B,EAAE,eAAe;QAC/C,8CAA8C,EAAE,6BAA6B;QAC7E,+CAA+C,EAAE,8BAA8B;QAC/E,oCAAoC,EAAE,mBAAmB;QACzD,oCAAoC,EAAE,mBAAmB;QACzD,4BAA4B,EAAE,oBAAoB;QAClD,mCAAmC,EAAE,2BAA2B;QAChE,sBAAsB,EAAE,cAAc;QACtC,iCAAiC,EAAE,wBAAwB;QAC3D,+BAA+B,EAAE,oBAAoB;QACrD,kCAAkC,EAAE,uBAAuB;QAC3D,aAAa,EAAE,qBAAqB;KACrC,CAAA;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAA;IACxE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsonApi = void 0;
|
|
4
|
+
var json_api_js_1 = require("./json-api.js");
|
|
5
|
+
Object.defineProperty(exports, "jsonApi", { enumerable: true, get: function () { return json_api_js_1.jsonApi; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAA9B,sGAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Ledger API V2 transport (HTTP).
|
|
3
|
+
*
|
|
4
|
+
* Primary transport for cantonjs. Communicates with Canton's JSON Ledger API
|
|
5
|
+
* via HTTP requests to /v2/* endpoints.
|
|
6
|
+
*/
|
|
7
|
+
import type { Transport, TransportConfig } from './types.js';
|
|
8
|
+
export declare function jsonApi(config: TransportConfig): Transport;
|
|
9
|
+
//# sourceMappingURL=json-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-api.d.ts","sourceRoot":"","sources":["../../../src/transport/json-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAA;AAI9E,wBAAgB,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAsE1D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JSON Ledger API V2 transport (HTTP).
|
|
4
|
+
*
|
|
5
|
+
* Primary transport for cantonjs. Communicates with Canton's JSON Ledger API
|
|
6
|
+
* via HTTP requests to /v2/* endpoints.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.jsonApi = jsonApi;
|
|
10
|
+
const transport_js_1 = require("../errors/transport.js");
|
|
11
|
+
const DEFAULT_TIMEOUT = 30_000;
|
|
12
|
+
function jsonApi(config) {
|
|
13
|
+
const { url, token, timeout = DEFAULT_TIMEOUT, fetchFn = globalThis.fetch } = config;
|
|
14
|
+
const baseUrl = url.replace(/\/+$/, '');
|
|
15
|
+
return {
|
|
16
|
+
type: 'json-api',
|
|
17
|
+
url: baseUrl,
|
|
18
|
+
async request(args) {
|
|
19
|
+
const requestUrl = `${baseUrl}${args.path}`;
|
|
20
|
+
const headers = {
|
|
21
|
+
'Content-Type': 'application/json',
|
|
22
|
+
...args.headers,
|
|
23
|
+
};
|
|
24
|
+
if (token !== undefined) {
|
|
25
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
26
|
+
}
|
|
27
|
+
const controller = new AbortController();
|
|
28
|
+
const timeoutMs = args.timeout ?? timeout;
|
|
29
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
30
|
+
if (args.signal !== undefined) {
|
|
31
|
+
args.signal.addEventListener('abort', () => controller.abort(), { once: true });
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const response = await fetchFn(requestUrl, {
|
|
35
|
+
method: args.method,
|
|
36
|
+
headers,
|
|
37
|
+
body: args.body !== undefined ? JSON.stringify(args.body) : undefined,
|
|
38
|
+
signal: controller.signal,
|
|
39
|
+
});
|
|
40
|
+
clearTimeout(timeoutId);
|
|
41
|
+
if (!response.ok) {
|
|
42
|
+
const body = await response.text().catch(() => undefined);
|
|
43
|
+
throw new transport_js_1.HttpError(response.status, response.statusText, { body });
|
|
44
|
+
}
|
|
45
|
+
const contentType = response.headers.get('content-type');
|
|
46
|
+
if (contentType?.includes('application/json')) {
|
|
47
|
+
return (await response.json());
|
|
48
|
+
}
|
|
49
|
+
return (await response.text());
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
clearTimeout(timeoutId);
|
|
53
|
+
if (error instanceof transport_js_1.HttpError) {
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
if (error instanceof DOMException && error.name === 'AbortError') {
|
|
57
|
+
if (args.signal?.aborted) {
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
throw new transport_js_1.TimeoutError(timeoutMs);
|
|
61
|
+
}
|
|
62
|
+
throw new transport_js_1.ConnectionError(baseUrl, {
|
|
63
|
+
cause: error instanceof Error ? error : new Error(String(error)),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=json-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../src/transport/json-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport abstraction for Canton API communication.
|
|
3
|
+
*
|
|
4
|
+
* Inspired by viem's transport pattern: clients are instantiated with a
|
|
5
|
+
* transport that handles the actual request execution. This separates
|
|
6
|
+
* client logic from communication concerns.
|
|
7
|
+
*/
|
|
8
|
+
/** A transport handles sending requests to a Canton node. */
|
|
9
|
+
export type Transport = {
|
|
10
|
+
readonly type: string;
|
|
11
|
+
readonly url: string;
|
|
12
|
+
request: <TResponse = unknown>(args: TransportRequest) => Promise<TResponse>;
|
|
13
|
+
};
|
|
14
|
+
/** A request to be sent via transport. */
|
|
15
|
+
export type TransportRequest = {
|
|
16
|
+
method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
|
|
17
|
+
path: string;
|
|
18
|
+
body?: unknown;
|
|
19
|
+
headers?: Record<string, string>;
|
|
20
|
+
signal?: AbortSignal;
|
|
21
|
+
timeout?: number;
|
|
22
|
+
};
|
|
23
|
+
/** Configuration shared by all transport types. */
|
|
24
|
+
export type TransportConfig = {
|
|
25
|
+
/** Base URL of the Canton node. */
|
|
26
|
+
readonly url: string;
|
|
27
|
+
/** JWT Bearer token for authentication. */
|
|
28
|
+
readonly token?: string;
|
|
29
|
+
/** Request timeout in milliseconds. Default: 30000. */
|
|
30
|
+
readonly timeout?: number;
|
|
31
|
+
/** Custom fetch implementation (for testing or environments without global fetch). */
|
|
32
|
+
readonly fetchFn?: typeof fetch;
|
|
33
|
+
};
|
|
34
|
+
/** Factory function type for creating transports. */
|
|
35
|
+
export type TransportFactory = (config: TransportConfig) => Transport;
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transport/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,CAAC,SAAS,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CAC7E,CAAA;AAED,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,mDAAmD;AACnD,MAAM,MAAM,eAAe,GAAG;IAC5B,mCAAmC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;CAChC,CAAA;AAED,qDAAqD;AACrD,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,SAAS,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Transport abstraction for Canton API communication.
|
|
4
|
+
*
|
|
5
|
+
* Inspired by viem's transport pattern: clients are instantiated with a
|
|
6
|
+
* transport that handles the actual request execution. This separates
|
|
7
|
+
* client logic from communication concerns.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/transport/types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canton command types.
|
|
3
|
+
*
|
|
4
|
+
* Commands are the units of submission to the ledger. Each command atomically
|
|
5
|
+
* creates contracts or exercises choices on existing contracts.
|
|
6
|
+
*
|
|
7
|
+
* Commands on the wire use tagged discriminated unions:
|
|
8
|
+
* { "CreateCommand": {...} } | { "ExerciseCommand": {...} } | ...
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Ledger offset. int64 in Canton 3.4+.
|
|
12
|
+
* 0 = empty ledger, positive = absolute offset.
|
|
13
|
+
*/
|
|
14
|
+
export type LedgerOffset = number;
|
|
15
|
+
/** Wire format for a create command. */
|
|
16
|
+
export type CreateCommand = {
|
|
17
|
+
readonly templateId: string;
|
|
18
|
+
readonly createArguments: Record<string, unknown>;
|
|
19
|
+
};
|
|
20
|
+
/** Wire format for an exercise command. */
|
|
21
|
+
export type ExerciseCommand = {
|
|
22
|
+
readonly templateId: string;
|
|
23
|
+
readonly contractId: string;
|
|
24
|
+
readonly choice: string;
|
|
25
|
+
readonly choiceArgument: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
/** Wire format for an exercise-by-key command. */
|
|
28
|
+
export type ExerciseByKeyCommand = {
|
|
29
|
+
readonly templateId: string;
|
|
30
|
+
readonly contractKey: unknown;
|
|
31
|
+
readonly choice: string;
|
|
32
|
+
readonly choiceArgument: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
/** Wire format for a create-and-exercise command. */
|
|
35
|
+
export type CreateAndExerciseCommand = {
|
|
36
|
+
readonly templateId: string;
|
|
37
|
+
readonly createArguments: Record<string, unknown>;
|
|
38
|
+
readonly choice: string;
|
|
39
|
+
readonly choiceArgument: Record<string, unknown>;
|
|
40
|
+
};
|
|
41
|
+
/** Tagged command union as it appears on the wire. */
|
|
42
|
+
export type TaggedCommand = {
|
|
43
|
+
readonly CreateCommand: CreateCommand;
|
|
44
|
+
} | {
|
|
45
|
+
readonly ExerciseCommand: ExerciseCommand;
|
|
46
|
+
} | {
|
|
47
|
+
readonly ExerciseByKeyCommand: ExerciseByKeyCommand;
|
|
48
|
+
} | {
|
|
49
|
+
readonly CreateAndExerciseCommand: CreateAndExerciseCommand;
|
|
50
|
+
};
|
|
51
|
+
/** Full JsCommands request body. */
|
|
52
|
+
export type JsCommands = {
|
|
53
|
+
readonly commands: readonly TaggedCommand[];
|
|
54
|
+
readonly commandId: string;
|
|
55
|
+
readonly actAs: readonly string[];
|
|
56
|
+
readonly userId?: string;
|
|
57
|
+
readonly readAs?: readonly string[];
|
|
58
|
+
readonly workflowId?: string;
|
|
59
|
+
readonly deduplicationPeriod?: DeduplicationPeriod;
|
|
60
|
+
readonly submissionId?: string;
|
|
61
|
+
readonly synchronizerId?: string;
|
|
62
|
+
};
|
|
63
|
+
/** Deduplication period (tagged union). */
|
|
64
|
+
export type DeduplicationPeriod = {
|
|
65
|
+
readonly DeduplicationDuration: {
|
|
66
|
+
readonly seconds: number;
|
|
67
|
+
readonly nanos?: number;
|
|
68
|
+
};
|
|
69
|
+
} | {
|
|
70
|
+
readonly DeduplicationOffset: {
|
|
71
|
+
readonly value: number;
|
|
72
|
+
};
|
|
73
|
+
} | {
|
|
74
|
+
readonly Empty: Record<string, never>;
|
|
75
|
+
};
|
|
76
|
+
/** Submit-and-wait response. */
|
|
77
|
+
export type SubmitAndWaitResponse = {
|
|
78
|
+
readonly updateId: string;
|
|
79
|
+
readonly completionOffset: number;
|
|
80
|
+
};
|
|
81
|
+
/** Transaction shape for queries. */
|
|
82
|
+
export type TransactionShape = 'TRANSACTION_SHAPE_ACS_DELTA' | 'TRANSACTION_SHAPE_LEDGER_EFFECTS' | 'TRANSACTION_SHAPE_UNSPECIFIED';
|
|
83
|
+
/** Event format for filtering. */
|
|
84
|
+
export type EventFormat = {
|
|
85
|
+
readonly filtersByParty?: Record<string, {
|
|
86
|
+
readonly cumulative: readonly CumulativeFilter[];
|
|
87
|
+
}>;
|
|
88
|
+
readonly filtersForAnyParty?: {
|
|
89
|
+
readonly cumulative: readonly CumulativeFilter[];
|
|
90
|
+
};
|
|
91
|
+
readonly verbose?: boolean;
|
|
92
|
+
};
|
|
93
|
+
/** Cumulative filter entry. */
|
|
94
|
+
export type CumulativeFilter = {
|
|
95
|
+
readonly identifierFilter: IdentifierFilter;
|
|
96
|
+
};
|
|
97
|
+
/** Identifier filter (tagged union). */
|
|
98
|
+
export type IdentifierFilter = {
|
|
99
|
+
readonly TemplateFilter: {
|
|
100
|
+
readonly value: {
|
|
101
|
+
readonly templateId: string;
|
|
102
|
+
readonly includeCreatedEventBlob?: boolean;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
} | {
|
|
106
|
+
readonly InterfaceFilter: {
|
|
107
|
+
readonly value: {
|
|
108
|
+
readonly interfaceId: string;
|
|
109
|
+
readonly includeInterfaceView?: boolean;
|
|
110
|
+
readonly includeCreatedEventBlob?: boolean;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
} | {
|
|
114
|
+
readonly WildcardFilter: {
|
|
115
|
+
readonly value: {
|
|
116
|
+
readonly includeCreatedEventBlob?: boolean;
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
} | {
|
|
120
|
+
readonly Empty: Record<string, never>;
|
|
121
|
+
};
|
|
122
|
+
/** Transaction format for queries. */
|
|
123
|
+
export type TransactionFormat = {
|
|
124
|
+
readonly transactionShape: TransactionShape;
|
|
125
|
+
readonly eventFormat: EventFormat;
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/types/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Canton command types.
|
|
4
|
+
*
|
|
5
|
+
* Commands are the units of submission to the ledger. Each command atomically
|
|
6
|
+
* creates contracts or exercises choices on existing contracts.
|
|
7
|
+
*
|
|
8
|
+
* Commands on the wire use tagged discriminated unions:
|
|
9
|
+
* { "CreateCommand": {...} } | { "ExerciseCommand": {...} } | ...
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/types/command.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Canton contract types.
|
|
3
|
+
*
|
|
4
|
+
* Canton uses a UTXO model: contracts are created and archived, never mutated.
|
|
5
|
+
* Each contract is identified by a unique ContractId and belongs to a template.
|
|
6
|
+
*
|
|
7
|
+
* Events on the wire use tagged discriminated unions:
|
|
8
|
+
* { "CreatedEvent": {...} } | { "ArchivedEvent": {...} } | { "ExercisedEvent": {...} }
|
|
9
|
+
*/
|
|
10
|
+
/** Unique identifier for a contract instance on the ledger. */
|
|
11
|
+
export type ContractId<T = unknown> = string & {
|
|
12
|
+
readonly __contractId: T;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Template identifier string.
|
|
16
|
+
* Supports two formats:
|
|
17
|
+
* - `#package-name:Module:Entity` (preferred, package-name reference)
|
|
18
|
+
* - `packageId:Module:Entity` (deprecated package-id reference)
|
|
19
|
+
*/
|
|
20
|
+
export type TemplateId = string & {
|
|
21
|
+
readonly __templateId: true;
|
|
22
|
+
};
|
|
23
|
+
/** A created event from the ledger (wire format). */
|
|
24
|
+
export type CreatedEvent = {
|
|
25
|
+
readonly offset: number;
|
|
26
|
+
readonly nodeId: number;
|
|
27
|
+
readonly contractId: string;
|
|
28
|
+
readonly templateId: string;
|
|
29
|
+
readonly packageName: string;
|
|
30
|
+
readonly representativePackageId: string;
|
|
31
|
+
readonly createArgument: Record<string, unknown>;
|
|
32
|
+
readonly signatories: readonly string[];
|
|
33
|
+
readonly witnessParties: readonly string[];
|
|
34
|
+
readonly acsDelta: boolean;
|
|
35
|
+
readonly createdAt: string;
|
|
36
|
+
readonly contractKey?: Record<string, unknown>;
|
|
37
|
+
readonly createdEventBlob?: string;
|
|
38
|
+
readonly interfaceViews?: readonly InterfaceView[];
|
|
39
|
+
readonly observers?: readonly string[];
|
|
40
|
+
};
|
|
41
|
+
/** An archived event from the ledger (wire format). */
|
|
42
|
+
export type ArchivedEvent = {
|
|
43
|
+
readonly offset: number;
|
|
44
|
+
readonly nodeId: number;
|
|
45
|
+
readonly contractId: string;
|
|
46
|
+
readonly templateId: string;
|
|
47
|
+
readonly packageName: string;
|
|
48
|
+
readonly witnessParties: readonly string[];
|
|
49
|
+
readonly implementedInterfaces?: readonly string[];
|
|
50
|
+
};
|
|
51
|
+
/** An exercised event from a transaction tree (wire format). */
|
|
52
|
+
export type ExercisedEvent = {
|
|
53
|
+
readonly offset: number;
|
|
54
|
+
readonly nodeId: number;
|
|
55
|
+
readonly contractId: string;
|
|
56
|
+
readonly templateId: string;
|
|
57
|
+
readonly choice: string;
|
|
58
|
+
readonly choiceArgument: Record<string, unknown>;
|
|
59
|
+
readonly consuming: boolean;
|
|
60
|
+
readonly lastDescendantNodeId: number;
|
|
61
|
+
readonly packageName: string;
|
|
62
|
+
readonly acsDelta: boolean;
|
|
63
|
+
readonly actingParties: readonly string[];
|
|
64
|
+
readonly witnessParties: readonly string[];
|
|
65
|
+
readonly interfaceId?: string;
|
|
66
|
+
readonly exerciseResult?: unknown;
|
|
67
|
+
readonly implementedInterfaces?: readonly string[];
|
|
68
|
+
};
|
|
69
|
+
/** Interface view attached to a created event. */
|
|
70
|
+
export type InterfaceView = {
|
|
71
|
+
readonly interfaceId: string;
|
|
72
|
+
readonly viewValue: Record<string, unknown>;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Tagged event union as it appears on the wire.
|
|
76
|
+
* Canton uses { "CreatedEvent": {...} } | { "ArchivedEvent": {...} } | ...
|
|
77
|
+
*/
|
|
78
|
+
export type TaggedEvent = {
|
|
79
|
+
readonly CreatedEvent: CreatedEvent;
|
|
80
|
+
} | {
|
|
81
|
+
readonly ArchivedEvent: ArchivedEvent;
|
|
82
|
+
} | {
|
|
83
|
+
readonly ExercisedEvent: ExercisedEvent;
|
|
84
|
+
};
|
|
85
|
+
/** A contract from the active contract set. */
|
|
86
|
+
export type ActiveContract = {
|
|
87
|
+
readonly createdEvent: CreatedEvent;
|
|
88
|
+
readonly synchronizerId: string;
|
|
89
|
+
readonly reassignmentCounter: number;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Tagged contract entry from active contracts query.
|
|
93
|
+
* { "JsActiveContract": ... } | { "JsEmpty": {} } | ...
|
|
94
|
+
*/
|
|
95
|
+
export type ContractEntry = {
|
|
96
|
+
readonly JsActiveContract: ActiveContract;
|
|
97
|
+
} | {
|
|
98
|
+
readonly JsEmpty: Record<string, never>;
|
|
99
|
+
} | {
|
|
100
|
+
readonly JsIncompleteAssigned: unknown;
|
|
101
|
+
} | {
|
|
102
|
+
readonly JsIncompleteUnassigned: unknown;
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/types/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Core Canton contract types.
|
|
4
|
+
*
|
|
5
|
+
* Canton uses a UTXO model: contracts are created and archived, never mutated.
|
|
6
|
+
* Each contract is identified by a unique ContractId and belongs to a template.
|
|
7
|
+
*
|
|
8
|
+
* Events on the wire use tagged discriminated unions:
|
|
9
|
+
* { "CreatedEvent": {...} } | { "ArchivedEvent": {...} } | { "ExercisedEvent": {...} }
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/types/contract.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canton Identity Provider (IDP) configuration types.
|
|
3
|
+
*
|
|
4
|
+
* Identity providers allow delegating user authentication to external
|
|
5
|
+
* OpenID Connect providers (e.g., Auth0, Okta, Keycloak).
|
|
6
|
+
*/
|
|
7
|
+
import type { ObjectMeta } from './party.js';
|
|
8
|
+
/** An identity provider configuration (wire format). */
|
|
9
|
+
export type IdentityProviderConfig = {
|
|
10
|
+
readonly identityProviderId: string;
|
|
11
|
+
readonly isDeactivated?: boolean;
|
|
12
|
+
readonly issuer: string;
|
|
13
|
+
readonly jwksUrl: string;
|
|
14
|
+
readonly audience?: string;
|
|
15
|
+
readonly metadata?: ObjectMeta;
|
|
16
|
+
};
|
|
17
|
+
/** Request to create an identity provider. */
|
|
18
|
+
export type CreateIdentityProviderRequest = {
|
|
19
|
+
readonly identityProviderConfig: IdentityProviderConfig;
|
|
20
|
+
};
|
|
21
|
+
/** Request to update an identity provider. */
|
|
22
|
+
export type UpdateIdentityProviderRequest = {
|
|
23
|
+
readonly identityProviderConfig: IdentityProviderConfig;
|
|
24
|
+
readonly updateMask?: {
|
|
25
|
+
readonly paths: readonly string[];
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=idp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idp.d.ts","sourceRoot":"","sources":["../../../src/types/idp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,wDAAwD;AACxD,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAA;CAC/B,CAAA;AAED,8CAA8C;AAC9C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAA;CACxD,CAAA;AAED,8CAA8C;AAC9C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAA;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAClC,CAAA;CACF,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Canton Identity Provider (IDP) configuration types.
|
|
4
|
+
*
|
|
5
|
+
* Identity providers allow delegating user authentication to external
|
|
6
|
+
* OpenID Connect providers (e.g., Auth0, Okta, Keycloak).
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=idp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idp.js","sourceRoot":"","sources":["../../../src/types/idp.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|