@@ -1879,7 +1879,7 @@ std::string database_api::get_transaction_hex(const signed_transaction& trx)cons
18791879{
18801880 return my->get_transaction_hex ( trx );
18811881}
1882- optional<processed_transaction > database_api::get_transaction_by_txid (transaction_id_type txid)const
1882+ optional<query_trx_info > database_api::get_transaction_by_txid (transaction_id_type txid)const
18831883{
18841884 return my->get_transaction_by_txid (txid);
18851885}
@@ -1893,38 +1893,27 @@ std::string database_api::get_transaction_hex_without_sig(
18931893{
18941894 return my->get_transaction_hex_without_sig (trx);
18951895}
1896- optional<processed_transaction > database_api_impl::get_transaction_by_txid (transaction_id_type txid)const
1896+ optional<query_trx_info > database_api_impl::get_transaction_by_txid (transaction_id_type txid)const
18971897{
18981898#ifdef QUERY_TXID_PLUGIN_ABLE
18991899 auto &txid_index = _db.get_index_type <trx_entry_index>().indices ().get <by_txid>();
19001900 auto itor = txid_index.find (txid);
1901+ auto trx_entry = *itor;
19011902 if (itor == txid_index.end ()) {
19021903 std::string txid_str (txid);
19031904 auto result = query_txid::query_txid_plugin::query_trx_by_id (txid_str);
19041905 if (result) {
1905- const auto &trx_entry = *result;
1906- auto opt_block = _db.fetch_block_by_number (trx_entry.block_num );
1907- FC_ASSERT (opt_block);
1908- FC_ASSERT (opt_block->transactions .size () > trx_entry.trx_in_block );
1909- optional<processed_transaction> res = opt_block->transactions [trx_entry.trx_in_block ];
1910- return res;
1906+ trx_entry = *result;
19111907 }
1912- return {};
1913- } else {
1914- const auto &dpo = _db.get_dynamic_global_properties ();
1915- if (itor->block_num <= dpo.last_irreversible_block_num ) {
1916- const auto &trx_entry = *itor;
1917- auto opt_block = _db.fetch_block_by_number (trx_entry.block_num );
1918- FC_ASSERT (opt_block);
1919- FC_ASSERT (opt_block->transactions .size () > trx_entry.trx_in_block );
1920- optional<processed_transaction> res = opt_block->transactions [trx_entry.trx_in_block ];
1921- return res;
1922- } else {
1923- return {};
1924- }
1925- }
1908+ }
1909+ auto opt_block = _db.fetch_block_by_number (trx_entry.block_num );
1910+ FC_ASSERT (opt_block);
1911+ FC_ASSERT (opt_block->transactions .size () > trx_entry.trx_in_block );
1912+ optional<query_trx_info> res = opt_block->transactions [trx_entry.trx_in_block ];
1913+ res->query_txid_block_number = trx_entry.block_num ;
1914+ res->query_txid_trx_in_block = trx_entry.trx_in_block ;
1915+ return res;
19261916#endif
1927- return {};
19281917}
19291918
19301919std::string database_api_impl::get_transaction_hex_without_sig (
0 commit comments