v31.1-roots.1 · Commit 6: [PATCH 06/17] feat(wallet): preserve Roots signing and spend controls on v31
src/wallet/spend.h
Before: src/wallet/spend.h · After: src/wallet/spend.h
File metadata
index 925111dce031be17bf00693e3504f2c3f7215578..29c63744eccaeb0cd27c9035a0510bdc238353ad 100644
Download original patch · Release notes
Diff rows 1–40 of 40. Line numbers refer to the original before/after files.
+ Added− RemovedUnmarked lines are context.
Scroll the code area horizontally to read long lines. The two line-number columns refer to before and after.
src/wallet/spend.h
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
#ifndef BITCOIN_WALLET_SPEND_H
|
|
6
6
|
#define BITCOIN_WALLET_SPEND_H
|
|
7
7
|
|
|
8
|
+
#include <functional>
|
|
8
9
|
#include <consensus/amount.h>
|
|
9
10
|
#include <policy/fees/block_policy_estimator.h>
|
|
10
11
|
#include <util/result.h>
|
|
@@ -20,7 +21,33 @@
|
|
|
20
21
|
#include <unordered_set>
|
|
21
22
|
#include <vector>
|
|
22
23
|
|
|
24
|
+
class COutPoint;
|
|
25
|
+
class Coin;
|
|
26
|
+
class CScript;
|
|
27
|
+
class SigningProvider;
|
|
28
|
+
namespace interfaces { class SweepAuthorization; }
|
|
29
|
+
|
|
30
|
+
class FastRandomContext;
|
|
31
|
+
|
|
23
32
|
namespace wallet {
|
|
33
|
+
//! Require a selected local-key descriptor wallet and matching signing material.
|
|
34
|
+
bool CanSweepTo(const CWallet& wallet, const CScript& destination) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet);
|
|
35
|
+
|
|
36
|
+
struct SweepTransactionResult
|
|
37
|
+
{
|
|
38
|
+
CTransactionRef tx;
|
|
39
|
+
CAmount amount;
|
|
40
|
+
CAmount fee;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
using SweepBroadcastFn = std::function<bool(const CTransactionRef&, std::string&)>;
|
|
44
|
+
util::Result<SweepTransactionResult> CreateSweepTransaction(CWallet& wallet, const SigningProvider& provider,
|
|
45
|
+
const std::map<COutPoint, Coin>& coins,
|
|
46
|
+
const CScript& destination, const SweepBroadcastFn& broadcast,
|
|
47
|
+
interfaces::SweepAuthorization& authorization);
|
|
48
|
+
/** Pick an automatic anti-fee-sniping locktime without reserved policy markers. */
|
|
49
|
+
uint32_t GetAntiFeeSnipingLockTime(int block_height, FastRandomContext& rng_fast);
|
|
50
|
+
|
|
24
51
|
/** Get the marginal bytes if spending the specified output from this transaction.
|
|
25
52
|
* Use CoinControl to determine whether to expect signature grinding when calculating the size of the input spend. */
|
|
26
53
|
int CalculateMaximumSignedInputSize(const CTxOut& txout, const CWallet* pwallet, const CCoinControl* coin_control);
|