-
Notifications
You must be signed in to change notification settings - Fork 0
wait for completion
waitForCompletion opens a short-lived subscribeToCompletions subscription, filters frames until one matches your submissionId, then returns the updateId. It lives in completion-stream.ts and is re-exported from @fairmint/canton-node-sdk (same package as LedgerJsonApiClient).
Use it after asyncSubmit / interactive flows where you already have a submissionId and want to avoid polling HTTP completions.
import { Canton, waitForCompletion } from '@fairmint/canton-node-sdk';
const canton = new Canton({
network: 'devnet',
provider: '5n',
partyId: 'OWN_PARTY_ID',
});Signature: waitForCompletion(ledgerClient: LedgerJsonApiClient, params: WaitForCompletionParams): Promise<string>
const submissionId = submitResponse.submissionId;
const updateId = await waitForCompletion(canton.ledger, {
submissionId,
partyId: canton.getPartyId(),
userId: canton.getUserId()!,
beginExclusive: checkpointOffset,
});Pick beginExclusive from the same offset bookkeeping you use when subscribing (exclusive lower bound; typically before or at the submit offset per your pipeline).
-
submissionId(required, string) — Matches the submission returned by your async or interactive submit path. -
partyId(required, string) — Party whose completions stream should include this submission (subscribeToCompletionsparties filter). -
userId(required, string) — Ledger user id aligned with the authenticated completions stream user. -
beginExclusive(required, number) — Exclusive lower bound for the completions stream cursor. -
timeoutMs(optional, number) — Max wait in milliseconds before rejecting (default 10 minutes).
Promise<string> — The ledger updateId string for the completed submission.
The promise rejects when:
- The completion reports a non-zero status code (message from
statusMessagewhen present). - The matching completion omits
updateId. - The underlying subscription errors, closes before a matching completion, or
timeoutMselapses (Error: Timeout waiting for completion of submission …).
Uses the same OAuth path as LedgerJsonApiClient; userId / partyId must be consistent with subscribeToCompletions (which requires a resolvable user id—configure client user id or pass userId in the underlying subscribe).
-
waitForCompletionWithMetadata— same flow, plus optionalpaidTrafficCost. -
subscribeToCompletions— primitive WebSocket API.