Right now the SmartTransactionController constructor accepts function references from methods in TransactionController. This is happening because TransactionController does not expose these methods through the messenger, but once it does then we can switch it out to use the messenger.