Posts packageVettingRequirements (party, packageName) tuples plus optional synchronizerId + vettingValidAt to Canton—ideal before assembling submissions referencing multi-package unions.
Receiver: await canton.ledger.interactiveSubmissionGetPreferredPackages
Setup
import { Canton } from '@fairmint/canton-node-sdk';
const canton = new Canton({
network: 'devnet',
provider: '5n',
partyId: 'OWN_PARTY_ID',
});
Minimal example
const batch = await canton.ledger.interactiveSubmissionGetPreferredPackages({
packageVettingRequirements: [
{ parties: [canton.getPartyId()], packageName: 'pkg-a' },
],
});
Parameters — InteractiveSubmissionGetPreferredPackagesParams
packageVettingRequirements(required array) — Each rowparties+packageName.synchronizerId(optional string) — Scoped vetting resolution.vettingValidAt(optional string) — Temporal pinning identical to single-package helper.
Returns — GetPreferredPackagesResponse
Map/list describing preferred selections Canton resolves concurrently.
Errors and pitfalls
If vetting incomplete Canton rejects HTTP-level responses referencing offending packageName rows—divide batches accordingly.
Auth and party
Bearer credential parity with other ledger endpoints.
See also
Source
operations/v2/interactive-submission/get-preferred-packages.ts