[TASK] consolidate transaction logic

Major refactor of the way transactions are submitted
I'm not sure if I prefer the inline methods over declaring them outside of the steps array and referencing them. What matters to me is that they're in order of execution and it's easy to tell what each does.

In this case there's no need to name the functions, they're not referenced outside the steps array. I would drop the naming and add a line of comment above each of them, titling the behavior for the step