make all inputs to parseTransactionOutputs() required and throw if fail to find both
I see no reason for the complexity of optional behavior. The usages of it assume that both results are found, making this qualify effectively as a bug if that is correct.