[TASK] consolidate transaction logic

Major refactor of the way transactions are submitted
I would just make this a switch statement like it was before. It's more readable, better performing. I'm not sure that this `TransactionType` check is even useful, come to think of it.