From eb879634db2116b23e884dab21318743f974f1f3 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Fri, 22 Jul 2022 15:47:06 -0400 Subject: wallet: Try estimating input size with external data if wallet fails Instead of choosing whether to use the wallet or external data when estimating the size of an input, first use the wallet, then try external data if that failed. --- src/wallet/spend.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/wallet') diff --git a/src/wallet/spend.cpp b/src/wallet/spend.cpp index bffb665fa8..001acd04e2 100644 --- a/src/wallet/spend.cpp +++ b/src/wallet/spend.cpp @@ -569,8 +569,12 @@ std::optional SelectCoins(const CWallet& wallet, CoinsResult& a if (!coin_control.GetExternalOutput(outpoint, txout)) { return std::nullopt; } + } + + if (input_bytes == -1) { input_bytes = CalculateMaximumSignedInputSize(txout, outpoint, &coin_control.m_external_provider, &coin_control); } + // If available, override calculated size with coin control specified size if (coin_control.HasInputWeight(outpoint)) { input_bytes = GetVirtualTransactionSize(coin_control.GetInputWeight(outpoint), 0, 0); -- cgit v1.2.3