| 313 | } |
| 314 | |
| 315 | CAmountMap GetAvailableBalance(const CWallet& wallet, const CCoinControl* coinControl) |
| 316 | { |
| 317 | LOCK(wallet.cs_wallet); |
| 318 | |
| 319 | CAmountMap balance; |
| 320 | std::vector<COutput> vCoins; |
| 321 | AvailableCoins(wallet, vCoins, coinControl); |
| 322 | for (const COutput& out : vCoins) { |
| 323 | if (out.fSpendable) { |
| 324 | CAmount amt = out.tx->GetOutputValueOut(wallet, out.i); |
| 325 | if (amt < 0) { |
| 326 | continue; |
| 327 | } |
| 328 | balance[out.tx->GetOutputAsset(wallet, out.i)] += amt; |
| 329 | } |
| 330 | } |
| 331 | return balance; |
| 332 | } |
| 333 | |
| 334 | const CTxOut& FindNonChangeParentOutput(const CWallet& wallet, const CTransaction& tx, int output) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
| 335 | { |