MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / MakeWalletTx

Function MakeWalletTx

src/wallet/interfaces.cpp:58–85  ·  view source on GitHub ↗

Construct wallet tx struct.

Source from the content-addressed store, hash-verified

56namespace {
57//! Construct wallet tx struct.
58WalletTx MakeWalletTx(CWallet& wallet, const CWalletTx& wtx)
59{
60 LOCK(wallet.cs_wallet);
61 WalletTx result;
62 result.tx = wtx.tx;
63 result.txin_is_mine.reserve(wtx.tx->vin.size());
64 for (const auto& txin : wtx.tx->vin) {
65 result.txin_is_mine.emplace_back(InputIsMine(wallet, txin));
66 }
67 result.txout_is_mine.reserve(wtx.tx->vout.size());
68 result.txout_address.reserve(wtx.tx->vout.size());
69 result.txout_address_is_mine.reserve(wtx.tx->vout.size());
70 for (const auto& txout : wtx.tx->vout) {
71 result.txout_is_mine.emplace_back(wallet.IsMine(txout));
72 result.txout_is_change.push_back(OutputIsChange(wallet, txout));
73 result.txout_address.emplace_back();
74 result.txout_address_is_mine.emplace_back(ExtractDestination(txout.scriptPubKey, result.txout_address.back()) ?
75 wallet.IsMine(result.txout_address.back()) :
76 false);
77 }
78 result.credit = CachedTxGetCredit(wallet, wtx, /*avoid_reuse=*/true);
79 result.debit = CachedTxGetDebit(wallet, wtx, /*avoid_reuse=*/true);
80 result.change = CachedTxGetChange(wallet, wtx);
81 result.time = wtx.GetTxTime();
82 result.value_map = wtx.mapValue;
83 result.is_coinbase = wtx.IsCoinBase();
84 return result;
85}
86
87//! Construct wallet tx status struct.
88WalletTxStatus MakeWalletTxStatus(const CWallet& wallet, const CWalletTx& wtx)

Callers 3

getWalletTxMethod · 0.85
getWalletTxsMethod · 0.85
getWalletTxDetailsMethod · 0.85

Calls 14

InputIsMineFunction · 0.85
OutputIsChangeFunction · 0.85
ExtractDestinationFunction · 0.85
CachedTxGetCreditFunction · 0.85
CachedTxGetDebitFunction · 0.85
CachedTxGetChangeFunction · 0.85
GetTxTimeMethod · 0.80
reserveMethod · 0.45
sizeMethod · 0.45
emplace_backMethod · 0.45
IsMineMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected