From 99516285b7cf2664563712d95d95f54e1985c0c2 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Tue, 12 Oct 2021 22:07:18 -0400 Subject: [PATCH] tests: Use legacy change type in subtract fee from outputs test The subtract fee from outputs assumes that the leftover input amount will be dropped to fees. However this only happens if that amount is less than the cost of change. In the event that it is higher than the cost of change, the leftover amount will actually become a change output. To avoid this scenario, force a change type which has a high cost of change. --- src/wallet/test/spend_tests.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/wallet/test/spend_tests.cpp b/src/wallet/test/spend_tests.cpp index becef7072..d88d8eabd 100644 --- a/src/wallet/test/spend_tests.cpp +++ b/src/wallet/test/spend_tests.cpp @@ -33,6 +33,8 @@ BOOST_FIXTURE_TEST_CASE(SubtractFee, TestChain100Setup) CCoinControl coin_control; coin_control.m_feerate.emplace(10000); coin_control.fOverrideFeeRate = true; + // We need to use a change type with high cost of change so that the leftover amount will be dropped to fee instead of added as a change output + coin_control.m_change_type = OutputType::LEGACY; FeeCalculation fee_calc; BOOST_CHECK(CreateTransaction(*wallet, {recipient}, tx, fee, change_pos, error, coin_control, fee_calc)); BOOST_CHECK_EQUAL(tx->vout.size(), 1);