Posts InteractiveSubmissionExecuteRequest payloads (userId, base64 preparedTransaction, hashingSchemeVersion, submissionId, partySignatures, optional deduplicationPeriod) produced after interactiveSubmissionPrepare.
Receiver: await canton.ledger.interactiveSubmissionExecute
Setup
import { Canton } from '@fairmint/canton-node-sdk';
const canton = new Canton({
network: 'devnet',
provider: '5n',
partyId: 'OWN_PARTY_ID',
});
Minimal example
const receipt = await canton.ledger.interactiveSubmissionExecute({
userId: 'alice',
preparedTransaction: signedPreparedTx,
hashingSchemeVersion: 'HASHING_SCHEME_VERSION_V2',
submissionId: 'submission-123',
partySignatures: {
signatures: [
{
party: canton.getPartyId(),
signatures: [
{
signature: 'base64-signature',
signedBy: 'fp',
format: 'SIGNATURE_FORMAT_RAW',
signingAlgorithmSpec: 'SIGNING_KEY_SPEC_ED25519',
},
],
},
],
},
});
Parameters — InteractiveSubmissionExecuteRequest
Validated via InteractiveSubmissionExecuteRequestSchema in schemas/api/interactive-submission.ts — supply cryptographic signatures referencing Canton hashing specs exactly.
Returns — InteractiveSubmissionExecuteResponse
Currently {} in SDK schema—Canton may augment JSON bodies beyond typings.
Errors and pitfalls
Signature mismatches reject outright—retry prepare if payloads drift.
Auth and party
Bearer authorization tied to userId performing submission.