reorganize some function-specific data types back into transaction.hpp away from the general primitives.hpp header.