getTransactionAddresses method
Get all addresses involved in a transaction
Implementation
@override
Future<TransactionAddresses> getTransactionAddresses(
String walletId,
String txid,
) async {
_ensureInitialized();
final result = await _pool!.execute(
Sql.named('''
SELECT address, direction, amount, vout, vin
FROM transaction_addresses
WHERE wallet_id = @walletId AND txid = @txid
'''),
parameters: {'walletId': walletId, 'txid': txid},
);
final inputs = <TransactionAddressLink>[];
final outputs = <TransactionAddressLink>[];
for (final row in result) {
final direction = row[1] as String;
final link = TransactionAddressLink(
address: row[0] as String,
direction: direction, // direction is a String ('input' or 'output')
amount: BigInt.from(row[2] as num),
vout: row[3] as int?,
vin: row[4] as int?,
);
if (direction == 'input') {
inputs.add(link);
} else {
outputs.add(link);
}
}
return TransactionAddresses(inputs: inputs, outputs: outputs);
}