submitAndWaitForFinalization

open suspend override fun submitAndWaitForFinalization(serializedTxHex: String, timeoutMs: Long, onStage: suspend (NodeRpcClient.SubmissionStage) -> Unit?): TransactionFinalizationResult

Submit transaction and wait for finalization using WebSocket subscription.

This is the correct way to submit transactions.

Uses author_submitAndWatchExtrinsic which:

  1. Submits the transaction

  2. Subscribes to status updates via WebSocket

  3. Streams status events: ready → broadcast → inBlock → finalized

Why WebSocket instead of HTTP + Indexer:

  • HTTP author_submitExtrinsic is fire-and-forget (no confirmation)

  • Indexer lags behind the node (causes race conditions)

  • WebSocket gives us real-time confirmation from the node itself

Return

Finalization result

Parameters

serializedTxHex

Hex-encoded serialized transaction

timeoutMs

Maximum time to wait for finalization