From 9b0abe27908af7ba3b856fc0d026743bc10ff1f4 Mon Sep 17 00:00:00 2001 From: Daniel Larimer Date: Thu, 22 Oct 2015 10:27:49 -0400 Subject: [PATCH] adding api to get recent transactions by id --- libraries/app/database_api.cpp | 9 +++++++++ libraries/app/include/graphene/app/database_api.hpp | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/libraries/app/database_api.cpp b/libraries/app/database_api.cpp index daa6e076..bca3ac3c 100644 --- a/libraries/app/database_api.cpp +++ b/libraries/app/database_api.cpp @@ -331,6 +331,15 @@ processed_transaction database_api::get_transaction( uint32_t block_num, uint32_ return my->get_transaction( block_num, trx_in_block ); } +optional database_api::get_recent_transaction_by_id( const transaction_id_type& id )const +{ + try { + return my->_db.get_recent_transaction( id ); + } catch ( ... ) { + return optional(); + } +} + processed_transaction database_api_impl::get_transaction(uint32_t block_num, uint32_t trx_num)const { auto opt_block = _db.fetch_block_by_number(block_num); diff --git a/libraries/app/include/graphene/app/database_api.hpp b/libraries/app/include/graphene/app/database_api.hpp index 51806206..1b18dd94 100644 --- a/libraries/app/include/graphene/app/database_api.hpp +++ b/libraries/app/include/graphene/app/database_api.hpp @@ -121,6 +121,13 @@ class database_api */ processed_transaction get_transaction( uint32_t block_num, uint32_t trx_in_block )const; + /** + * If the transaction has not expired, this method will return the transaction for the given ID or + * it will return NULL if it is not known. Just because it is not known does not mean it wasn't + * included in the blockchain. + */ + optional get_recent_transaction_by_id( const transaction_id_type& id )const; + ///////////// // Globals // ///////////// @@ -480,6 +487,7 @@ FC_API(graphene::app::database_api, (get_block_header) (get_block) (get_transaction) + (get_recent_transaction_by_id) // Globals (get_chain_properties)