send_transaction had an edge case that was treated recursively. Return a receipt instead and handle that in the caller