sendAndConfirmTransaction method

Future<TransactionId> sendAndConfirmTransaction({
  1. required Message message,
  2. required List<Ed25519HDKeyPair> signers,
  3. SignatureCallback onSigned = ignoreOnSigned,
  4. required Commitment commitment,
})

Signs, sends and confirms a transaction.

Use onSigned callback to do some action after transaction is signed, but before it is sent.

Implementation

Future<TransactionId> sendAndConfirmTransaction({
  required Message message,
  required List<Ed25519HDKeyPair> signers,
  SignatureCallback onSigned = ignoreOnSigned,
  required Commitment commitment,
}) async {
  final tx = await signTransaction(
    await rpcClient.getRecentBlockhash(commitment: commitment).value,
    message,
    signers,
  );
  await onSigned(tx.signatures.first.toBase58());

  final signature = await rpcClient.sendTransaction(
    tx.encode(),
    preflightCommitment: commitment,
  );

  await waitForSignatureStatus(signature, status: commitment);

  return signature;
}