mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 06:58:57 +01:00
Merge bitcoin/bitcoin#24091: wallet: Consolidate CInputCoin and COutput
049003fe68coinselection: Remove COutput operators == and != (Andrew Chow)f6c39c6adbcoinselection: Remove CInputCoin (Andrew Chow)70f31f1a81coinselection: Use COutput instead of CInputCoin (Andrew Chow)14fbb57b79coinselection: Add effective value and fees to COutput (Andrew Chow)f0821230b8moveonly: move COutput to coinselection.h (Andrew Chow)42e974e15cwallet: Remove CWallet and CWalletTx from COutput's constructor (Andrew Chow)14d04d5ad1wallet: Replace CWalletTx in COutput with COutPoint and CTxOut (Andrew Chow)0ba4d1916ewallet: Provide input bytes to COutput (Andrew Chow)d51f27d3bbwallet: Store whether a COutput is from the wallet (Andrew Chow)b799814bbdwallet: Store tx time in COutput (Andrew Chow)46022953eewallet: Remove use_max_sig default value (Andrew Chow)10379f007fscripted-diff: Rename COutput member variables (Andrew Chow)c7c64db41ewallet: cleanup COutput constructor (Andrew Chow) Pull request description: While working on coin selection code, it occurred to me that `CInputCoin` is really a subset of `COutput` and the conversion of a `COutput` to a `CInputCoin` does not appear to be all that useful. So this PR adds fields that are present in `CInputCoin` to `COutput` and replaces the usage of `CInputCoin` with `COutput`. `COutput` is also moved to coinselection.h. As part of this move, the usage of `CWalletTx` is removed from `COutput`. It is instead replaced by storing a `COutPoint` and the `CTxOut` rather than the entire `CWalletTx` as coin selection does not really need the full `CWalletTx`. The `CWalletTx` was only used for figuring out whether the transaction containing the output was from the current wallet, and for the transaction's time. These are now parameters to `COutput`'s constructor. ACKs for top commit: ryanofsky: Code review ACK049003fe68, just adding comments and removing == operators since last review w0xlt: reACK049003fXekyo: reACK049003fe68Tree-SHA512: 048b4cd620a0415e1d9fe8597257ee4bc64656566e1d28a9bdd147d6d72dc87c3f34a3339fa9ab6acf42c388df7901fc4ee900ccaabc3de790ffad162b544c15
This commit is contained in:
@@ -111,6 +111,17 @@ WalletTxOut MakeWalletTxOut(const CWallet& wallet,
|
||||
return result;
|
||||
}
|
||||
|
||||
WalletTxOut MakeWalletTxOut(const CWallet& wallet,
|
||||
const COutput& output) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
|
||||
{
|
||||
WalletTxOut result;
|
||||
result.txout = output.txout;
|
||||
result.time = output.time;
|
||||
result.depth_in_main_chain = output.depth;
|
||||
result.is_spent = wallet.IsSpent(output.outpoint.hash, output.outpoint.n);
|
||||
return result;
|
||||
}
|
||||
|
||||
class WalletImpl : public Wallet
|
||||
{
|
||||
public:
|
||||
@@ -419,8 +430,8 @@ public:
|
||||
for (const auto& entry : ListCoins(*m_wallet)) {
|
||||
auto& group = result[entry.first];
|
||||
for (const auto& coin : entry.second) {
|
||||
group.emplace_back(COutPoint(coin.tx->GetHash(), coin.i),
|
||||
MakeWalletTxOut(*m_wallet, *coin.tx, coin.i, coin.nDepth));
|
||||
group.emplace_back(coin.outpoint,
|
||||
MakeWalletTxOut(*m_wallet, coin));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user