make what Base.build_transaction() returns and raises more sane.

The tuples on the return value to indicate an error are not the right way.