prepareExternalTransaction assigns commandId (explicit random UUID fallback), forwards interactiveSubmissionPrepare with verboseHashing default false, and spreads the ledger response plus commandId into PrepareExternalTransactionResult.
Setup
import { prepareExternalTransaction } from '@fairmint/canton-node-sdk';
const canton = new Canton({
network: 'NETWORK_NAME',
partyId: 'PARTY_ID',
});
Minimal example
const prepared = await prepareExternalTransaction({
ledgerClient: canton.ledger,
commands: COMMAND_ARRAY_PLACEHOLDER,
userId: 'USER_ID',
actAs: ['PARTY_ID'],
synchronizerId: 'SYNCHRONIZER_ID',
});
console.log(prepared.commandId, prepared.preparedTransaction);
Parameters
PrepareExternalTransactionOptions:
ledgerClient,commands,userId,actAs,synchronizerId(required) — Passed directly tointeractiveSubmissionPrepare.commandId,readAs,disclosedContracts,verboseHashing,packageIdSelectionPreference(optional) — Forwarded when provided.
Returns
Promise<PrepareExternalTransactionResult> — Extends InteractiveSubmissionPrepareResponse with commandId.
Errors
Propagates ledger ApiError / NetworkError from interactiveSubmissionPrepare.
Auth and party
Requires credentials sufficient for interactiveSubmissionPrepare on behalf of actAs parties.