pub async fn wait_for_transaction_confirmation(
    rpc_client: &RpcClientAsync,
    signature: &Signature,
    recent_blockhash: &Hash,
    config: &RpcConfirmTransactionConfig
) -> Result<TransactionStatus, WaitForTransactionConfirmationError>
Expand description

Wait for signature to be confirmed at commitment or until either

  • recent_blockhash is so old that the tx can’t be confirmed and blockhash_initial_timeout is reached
  • the signature_status_timeout is reached While waiting, query for confirmation every signature_status_interval

NOTE: RpcClient::config contains confirm_transaction_initial_timeout which is the same as blockhash_initial_timeout. Unfortunately the former is private.

Returns:

  • blockhash and blockhash_initial_timeout expired -> BlockhashExpired error
  • signature_status_timeout expired -> Timeout error (possibly just didn’t reach commitment in time?)
  • any rpc error -> ClientError error
  • confirmed at commitment -> ok(slot, opt<tx_error>)