sendTransaction method
Implementation
Future<SendResult> sendTransaction(
SendTx rawTx, {
required Address changeAddress,
}) async {
final builder = TransactionBuilder(utxos: rawTx.utxos);
final tx = builder.createUnsignedTransaction(
toAddress: rawTx.toAddress,
amount: rawTx.amount,
changeAddress: changeAddress,
);
await _signTransaction(tx);
final rpcTx = RpcTransaction(
version: tx.version,
inputs: tx.inputs.map(
(input) => RpcTransactionInput(
previousOutpoint: input.previousOutpoint.toRpc(),
signatureScript: bytesToHex(input.signatureScript),
sequence: input.sequence,
sigOpCount: input.sigOpCount,
),
),
outputs: tx.outputs.map(
(output) => RpcTransactionOutput(
amount: output.value,
scriptPublicKey: output.scriptPublicKey.toRpc(),
),
),
lockTime: tx.lockTime,
subnetworkId: tx.subnetworkId.hex,
gas: tx.gas,
payload: tx.payload?.hex,
);
final txId = await client.submitTransaction(rpcTx);
final changeAddressUsed = rpcTx.outputs.length > 1;
return SendResult(
txId: txId,
tx: tx,
changeAddressUsed: changeAddressUsed,
);
}