[TASK] consolidate transaction logic

Major refactor of the way transactions are submitted
What is `meta`? Maybe add jsdoc to each of these functions