Provides a Future which will be completed once the transaction has completed.
The future will error if an error occurrs on the transaction or if the transaction is aborted.