getTransaction :: Get Transaction
getTransaction = do
  v <- get
  VarInt inputCount <- get
  inputArray <- replicateM (fromIntegral inputCount) get
  VarInt outputCount <- get
  outputArray <- replicateM (fromIntegral outputCount) get
  locktime' <- get
  return Transaction
    { _inputs = inputArray
    , _outputs = outputArray
    , _txVersion = v
    , _locktime = locktime'}
getTransaction :: Get Transaction
getTransaction = do
  v <- get
  VarInt inputCount <- get
  inputArray <- replicateM (fromIntegral inputCount) get
  VarInt outputCount <- get
  outputArray <- replicateM (fromIntegral outputCount) get
  locktime' <- get
  return Transaction
    { _inputs = inputArray
    , _outputs = outputArray
    , _txVersion = v
    , _locktime = locktime'}
getTransaction = do
  v <- get
  VarInt inputCount <- get
  inputArray <- replicateM (fromIntegral inputCount) get
  VarInt outputCount <- get
  outputArray <- replicateM (fromIntegral outputCount) get
  locktime' <- get
  return Transaction
    { _inputs = inputArray
    , _outputs = outputArray
    , _txVersion = v
    , _locktime = locktime'}