From a266e2f894e54cc95e381a3a8783e442a042dffa Mon Sep 17 00:00:00 2001 From: evoskuil Date: Mon, 29 Apr 2024 20:20:36 -0400 Subject: [PATCH] Use hashmap.enabled() in set_link(tx). --- .../bitcoin/database/impl/query/archive.ipp | 29 ++++++++++--------- test/query/optional.cpp | 10 +++---- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/include/bitcoin/database/impl/query/archive.ipp b/include/bitcoin/database/impl/query/archive.ipp index 4bf01905..ec2d2a07 100644 --- a/include/bitcoin/database/impl/query/archive.ipp +++ b/include/bitcoin/database/impl/query/archive.ipp @@ -793,19 +793,22 @@ tx_link CLASS::set_link(const transaction& tx) NOEXCEPT return {}; } - ////// Commit addresses to search. - ////auto out_fk = puts.out_fks.begin(); - ////for (const auto& out: outs) - ////{ - //// if (!store_.address.put(address_hash(*out), table::address::record - //// { - //// {}, - //// *out_fk++ - //// })) - //// { - //// return {}; - //// } - ////} + // Commit addresses to search if address index is enabled. + if (store_.address.enabled()) + { + auto out_fk = puts.out_fks.begin(); + for (const auto& out: outs) + { + if (!store_.address.put(address_hash(*out), table::address::record + { + {}, + *out_fk++ + })) + { + return {}; + } + } + } // Commit tx to search. return store_.tx.commit_link(tx_fk, key); diff --git a/test/query/optional.cpp b/test/query/optional.cpp index a23e3c7f..ce7a97c7 100644 --- a/test/query/optional.cpp +++ b/test/query/optional.cpp @@ -59,7 +59,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_balance__genesis__expected) test::query_accessor query{ store }; BOOST_REQUIRE_EQUAL(store.create(events), error::success); BOOST_REQUIRE(query.initialize(test::genesis)); - BOOST_REQUIRE(query.set_address_output(genesis_address, query.to_output(0, 0))); + ////BOOST_REQUIRE(query.set_address_output(genesis_address, query.to_output(0, 0))); uint64_t out{}; BOOST_REQUIRE(query.get_confirmed_balance(out, genesis_address)); @@ -74,7 +74,7 @@ BOOST_AUTO_TEST_CASE(query_optional__to_address_outputs__genesis__expected) test::query_accessor query{ store }; BOOST_REQUIRE_EQUAL(store.create(events), error::success); BOOST_REQUIRE(query.initialize(test::genesis)); - BOOST_REQUIRE(query.set_address_output(genesis_address, query.to_output(0, 0))); + ////BOOST_REQUIRE(query.set_address_output(genesis_address, query.to_output(0, 0))); output_links out{}; BOOST_REQUIRE(query.to_address_outputs(out, genesis_address)); @@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE(query_optional__to_unspent_outputs__genesis__expected) test::query_accessor query{ store }; BOOST_REQUIRE_EQUAL(store.create(events), error::success); BOOST_REQUIRE(query.initialize(test::genesis)); - BOOST_REQUIRE(query.set_address_output(genesis_address, query.to_output(0, 0))); + ////BOOST_REQUIRE(query.set_address_output(genesis_address, query.to_output(0, 0))); output_links out{}; BOOST_REQUIRE(query.to_unspent_outputs(out, genesis_address)); @@ -121,7 +121,7 @@ BOOST_AUTO_TEST_CASE(query_optional__to_minimum_unspent_outputs__at__included) test::query_accessor query{ store }; BOOST_REQUIRE_EQUAL(store.create(events), error::success); BOOST_REQUIRE(query.initialize(test::genesis)); - BOOST_REQUIRE(query.set_address_output(genesis_address, 0)); + ////BOOST_REQUIRE(query.set_address_output(genesis_address, 0)); output_links out{}; BOOST_REQUIRE(query.to_minimum_unspent_outputs(out, genesis_address, 5000000000)); @@ -137,7 +137,7 @@ BOOST_AUTO_TEST_CASE(query_optional__to_minimum_unspent_outputs__below__included test::query_accessor query{ store }; BOOST_REQUIRE_EQUAL(store.create(events), error::success); BOOST_REQUIRE(query.initialize(test::genesis)); - BOOST_REQUIRE(query.set_address_output(genesis_address, 0)); + ////BOOST_REQUIRE(query.set_address_output(genesis_address, 0)); output_links out{}; BOOST_REQUIRE(query.to_minimum_unspent_outputs(out, genesis_address, 0));