getTransaction method

Future<Tx> getTransaction(
  1. String txHash
)

Implementation

Future<Tx> getTransaction(String txHash) async {
  var response = Map<String, dynamic>.from(await request(
    'blockchain.transaction.get',
    [txHash, true],
  ));
  var vins = [
    for (Map vin in response['vin'])
      if (vin.keys.contains('coinbase'))
        TxVin(coinbase: vin['coinbase'], sequence: vin['sequence'])
      else
        TxVin(
            txid: vin['txid'],
            vout: vin['vout'],
            sequence: vin['sequence'],
            scriptSig: TxScriptSig(
              asm: vin['scriptSig']['asm'],
              hex: vin['scriptSig']['hex'],
            ))
  ];
  var vouts = [
    for (var vout in response['vout'])
      TxVout(
          value: vout['value'],
          n: vout['n'],
          valueSat: vout['valueSat'],
          scriptPubKey:
              TxScriptPubKey.fromScriptPubKey(vout['scriptPubKey'] as Map))
  ];
  return Tx(
    txid: response['txid'],
    hash: response['hash'],
    version: response['version'],
    size: response['size'],
    vsize: response['vsize'],
    locktime: response['locktime'],
    vin: vins,
    vout: vouts,
    hex: response['hex'],
    blockhash: response['blockhash'],
    height: response['height'],
    confirmations: response['confirmations'],
    time: response['time'],
    blocktime: response['blocktime'],
    memo: null, // to be implemented - look for a blank vout with op return?
  );
}