@c7-digital/ledger
v0.0.14
Published
OpenAPI v2 compatible Daml ledger client
Readme
@c7-digital/ledger
OpenAPI v2 compatible Daml ledger client (that could replace @daml/ledger) for the new Canton JSON API v2.
Overview
This package provides a TypeScript client for interacting with Canton's JSON Ledger API v2, which replaces the deprecated v1 API that @daml/ledger targets.
Features
- Type-safe API: Generated TypeScript types from OpenAPI specification
- OpenAPI v2 Support: Targets the new Canton JSON API v2 endpoints
- Auto-generated Types: Uses
openapi-typescriptto generate accurate type definitions
Versioning
This package follows the Canton SDK versioning scheme. The package version matches the Canton OpenAPI specification version used to generate the types.
Current version: 3.4.9
- Corresponds to Canton SDK version
3.4.9 - Types are generated from the OpenAPI spec for this specific Canton version
- When Canton releases a new version, this package will be updated to match
Version compatibility: Use the package version that matches your Canton participant node version for best compatibility.
Installation
pnpm install @c7-digital/ledgerOr build from source:
pnpm install
pnpm buildUsage
import { Ledger } from "@c7-digital/ledger";
const ledger = new Ledger({
token: "your-jwt-token",
httpBaseUrl: "http://localhost:7575",
});
// Query contracts
const contracts = await ledger.query(MyTemplate);
// Create contracts
const result = await ledger.create(MyTemplate, payload, [actAsParty]);
// Exercise choices
const choiceResult = await ledger.exercise(MyChoice, contractId, argument, [actAsParty]);Migration from @daml/ledger
Key differences:
create()andexercise()methods now require anactAsparameter- Some method signatures have been updated to match OpenAPI v2 spec
- New type definitions generated from OpenAPI specification
Development
# Build the package
pnpm build
# Clean build artifacts
pnpm clean
# Watch for changes
pnpm watch
# Run tests
pnpm test
# Lint code
pnpm lintOpenAPI Specification
The package uses the OpenAPI specification from Canton 3.4.9. The spec is saved as a version specific file (e.x. openapi_3.4.9.yaml) and types are automatically generated into src/generated/api.ts.
To update the specification:
- Download from docs.digitalasset.com or from your participant node.
- Update the build script to use the new SDK version
- Run
pnpm buildto regenerate types
