Skip to content

Commit 1a76031

Browse files
Merge pull request #5846 from knst/bp-v21-p19
backport: bitcoin#19597, bitcoin#20105, partial bitcoin#18027, bitcoin#20004, bitcon-core/gui#35, 71, #85, #120, #220
2 parents ce67e07 + e269fa4 commit 1a76031

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+873
-420
lines changed

src/Makefile.qt.include

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ QT_FORMS_UI = \
3030
qt/forms/openuridialog.ui \
3131
qt/forms/optionsdialog.ui \
3232
qt/forms/overviewpage.ui \
33+
qt/forms/psbtoperationsdialog.ui \
3334
qt/forms/receivecoinsdialog.ui \
3435
qt/forms/receiverequestdialog.ui \
3536
qt/forms/debugwindow.ui \
@@ -69,6 +70,7 @@ QT_MOC_CPP = \
6970
qt/moc_overviewpage.cpp \
7071
qt/moc_peertablemodel.cpp \
7172
qt/moc_paymentserver.cpp \
73+
qt/moc_psbtoperationsdialog.cpp \
7274
qt/moc_qrdialog.cpp \
7375
qt/moc_qrimagewidget.cpp \
7476
qt/moc_qvalidatedlineedit.cpp \
@@ -143,6 +145,7 @@ BITCOIN_QT_H = \
143145
qt/overviewpage.h \
144146
qt/paymentserver.h \
145147
qt/peertablemodel.h \
148+
qt/psbtoperationsdialog.h \
146149
qt/qrdialog.h \
147150
qt/qrimagewidget.h \
148151
qt/qvalidatedlineedit.h \
@@ -245,6 +248,7 @@ BITCOIN_QT_WALLET_CPP = \
245248
qt/openuridialog.cpp \
246249
qt/overviewpage.cpp \
247250
qt/paymentserver.cpp \
251+
qt/psbtoperationsdialog.cpp \
248252
qt/qrdialog.cpp \
249253
qt/qrimagewidget.cpp \
250254
qt/receivecoinsdialog.cpp \

src/bench/checkblock.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ static void DeserializeAndCheckBlockTest(benchmark::Bench& bench)
3434
char a = '\0';
3535
stream.write(&a, 1); // Prevent compaction
3636

37-
const auto chainParams = CreateChainParams(CBaseChainParams::MAIN);
37+
ArgsManager bench_args;
38+
const auto chainParams = CreateChainParams(bench_args, CBaseChainParams::MAIN);
3839

3940
bench.unit("block").run([&] {
4041
CBlock block; // Note that CBlock caches its checked state, so we need to recreate it here

src/chainparams.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1328,22 +1328,22 @@ const CChainParams &Params() {
13281328
return *globalChainParams;
13291329
}
13301330

1331-
std::unique_ptr<const CChainParams> CreateChainParams(const std::string& chain)
1331+
std::unique_ptr<const CChainParams> CreateChainParams(const ArgsManager& args, const std::string& chain)
13321332
{
1333-
if (chain == CBaseChainParams::MAIN)
1334-
return std::make_unique<CMainParams>();
1335-
else if (chain == CBaseChainParams::TESTNET)
1336-
return std::make_unique<CTestNetParams>();
1337-
else if (chain == CBaseChainParams::DEVNET)
1338-
return std::make_unique<CDevNetParams>(gArgs);
1339-
else if (chain == CBaseChainParams::REGTEST)
1340-
return std::make_unique<CRegTestParams>(gArgs);
1341-
1333+
if (chain == CBaseChainParams::MAIN) {
1334+
return std::unique_ptr<CChainParams>(new CMainParams());
1335+
} else if (chain == CBaseChainParams::TESTNET) {
1336+
return std::unique_ptr<CChainParams>(new CTestNetParams());
1337+
} else if (chain == CBaseChainParams::DEVNET) {
1338+
return std::unique_ptr<CChainParams>(new CDevNetParams(args));
1339+
} else if (chain == CBaseChainParams::REGTEST) {
1340+
return std::unique_ptr<CChainParams>(new CRegTestParams(args));
1341+
}
13421342
throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain));
13431343
}
13441344

13451345
void SelectParams(const std::string& network)
13461346
{
13471347
SelectBaseParams(network);
1348-
globalChainParams = CreateChainParams(network);
1348+
globalChainParams = CreateChainParams(gArgs, network);
13491349
}

src/chainparams.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ class CChainParams
197197
* @returns a CChainParams* of the chosen chain.
198198
* @throws a std::runtime_error if the chain is not supported.
199199
*/
200-
std::unique_ptr<const CChainParams> CreateChainParams(const std::string& chain);
200+
std::unique_ptr<const CChainParams> CreateChainParams(const ArgsManager& args, const std::string& chain);
201201

202202
/**
203203
* Return the currently selected parameters. This won't change after app

src/evo/deterministicmns.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,8 @@ static bool CheckService(const ProTx& proTx, TxValidationState& state)
14191419
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-ipaddr");
14201420
}
14211421

1422-
static int mainnetDefaultPort = CreateChainParams(CBaseChainParams::MAIN)->GetDefaultPort();
1422+
// TODO: use real args here
1423+
static int mainnetDefaultPort = CreateChainParams(ArgsManager{}, CBaseChainParams::MAIN)->GetDefaultPort();
14231424
if (Params().NetworkIDString() == CBaseChainParams::MAIN) {
14241425
if (proTx.addr.GetPort() != mainnetDefaultPort) {
14251426
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-ipaddr-port");
@@ -1442,21 +1443,24 @@ static bool CheckPlatformFields(const ProTx& proTx, TxValidationState& state)
14421443
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-platform-nodeid");
14431444
}
14441445

1445-
static int mainnetPlatformP2PPort = CreateChainParams(CBaseChainParams::MAIN)->GetDefaultPlatformP2PPort();
1446+
// TODO: use real args here
1447+
static int mainnetPlatformP2PPort = CreateChainParams(ArgsManager{}, CBaseChainParams::MAIN)->GetDefaultPlatformP2PPort();
14461448
if (Params().NetworkIDString() == CBaseChainParams::MAIN) {
14471449
if (proTx.platformP2PPort != mainnetPlatformP2PPort) {
14481450
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-platform-p2p-port");
14491451
}
14501452
}
14511453

1452-
static int mainnetPlatformHTTPPort = CreateChainParams(CBaseChainParams::MAIN)->GetDefaultPlatformHTTPPort();
1454+
// TODO: use real args here
1455+
static int mainnetPlatformHTTPPort = CreateChainParams(ArgsManager{}, CBaseChainParams::MAIN)->GetDefaultPlatformHTTPPort();
14531456
if (Params().NetworkIDString() == CBaseChainParams::MAIN) {
14541457
if (proTx.platformHTTPPort != mainnetPlatformHTTPPort) {
14551458
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-platform-http-port");
14561459
}
14571460
}
14581461

1459-
static int mainnetDefaultP2PPort = CreateChainParams(CBaseChainParams::MAIN)->GetDefaultPort();
1462+
// TODO: use real args here
1463+
static int mainnetDefaultP2PPort = CreateChainParams(ArgsManager{}, CBaseChainParams::MAIN)->GetDefaultPort();
14601464
if (proTx.platformP2PPort == mainnetDefaultP2PPort) {
14611465
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-platform-p2p-port");
14621466
}

src/init.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -497,9 +497,9 @@ void SetupServerArgs(NodeContext& node)
497497
const auto defaultBaseParams = CreateBaseChainParams(CBaseChainParams::MAIN);
498498
const auto testnetBaseParams = CreateBaseChainParams(CBaseChainParams::TESTNET);
499499
const auto regtestBaseParams = CreateBaseChainParams(CBaseChainParams::REGTEST);
500-
const auto defaultChainParams = CreateChainParams(CBaseChainParams::MAIN);
501-
const auto testnetChainParams = CreateChainParams(CBaseChainParams::TESTNET);
502-
const auto regtestChainParams = CreateChainParams(CBaseChainParams::REGTEST);
500+
const auto defaultChainParams = CreateChainParams(argsman, CBaseChainParams::MAIN);
501+
const auto testnetChainParams = CreateChainParams(argsman, CBaseChainParams::TESTNET);
502+
const auto regtestChainParams = CreateChainParams(argsman, CBaseChainParams::REGTEST);
503503

504504
// Hidden Options
505505
std::vector<std::string> hidden_args = {"-dbcrashratio", "-forcecompactdb", "-printcrashinfo",

src/interfaces/node.h

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -130,41 +130,6 @@ class Node
130130
public:
131131
virtual ~Node() {}
132132

133-
//! Send init error.
134-
virtual void initError(const bilingual_str& message) = 0;
135-
136-
//! Set command line arguments.
137-
virtual bool parseParameters(int argc, const char* const argv[], std::string& error) = 0;
138-
139-
//! Set a command line argument
140-
virtual void forceSetArg(const std::string& arg, const std::string& value) = 0;
141-
142-
//! Set a command line argument if it doesn't already have a value
143-
virtual bool softSetArg(const std::string& arg, const std::string& value) = 0;
144-
145-
//! Set a command line boolean argument if it doesn't already have a value
146-
virtual bool softSetBoolArg(const std::string& arg, bool value) = 0;
147-
148-
//! Load settings from configuration file.
149-
virtual bool readConfigFiles(std::string& error) = 0;
150-
151-
//! Choose network parameters.
152-
virtual void selectParams(const std::string& network) = 0;
153-
154-
//! Read and update <datadir>/settings.json file with saved settings. This
155-
//! needs to be called after selectParams() because the settings file
156-
//! location is network-specific.
157-
virtual bool initSettings(std::string& error) = 0;
158-
159-
//! Get the (assumed) blockchain size.
160-
virtual uint64_t getAssumedBlockchainSize() = 0;
161-
162-
//! Get the (assumed) chain state size.
163-
virtual uint64_t getAssumedChainStateSize() = 0;
164-
165-
//! Get network name.
166-
virtual std::string getNetwork() = 0;
167-
168133
//! Init logging.
169134
virtual void initLogging() = 0;
170135

@@ -195,9 +160,6 @@ class Node
195160
//! Return whether shutdown was requested.
196161
virtual bool shutdownRequested() = 0;
197162

198-
//! Setup arguments
199-
virtual void setupServerArgs() = 0;
200-
201163
//! Map port.
202164
virtual void mapPort(bool use_upnp, bool use_natpmp) = 0;
203165

src/interfaces/wallet.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ class Wallet
210210
bool sign,
211211
bool bip32derivs,
212212
PartiallySignedTransaction& psbtx,
213-
bool& complete) = 0;
213+
bool& complete,
214+
size_t* n_signed) = 0;
214215

215216
//! Get balances.
216217
virtual WalletBalances getBalances() = 0;

src/net.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -832,21 +832,6 @@ friend class CNode;
832832
void Discover();
833833
uint16_t GetListenPort();
834834

835-
struct CombinerAll
836-
{
837-
typedef bool result_type;
838-
839-
template<typename I>
840-
bool operator()(I first, I last) const
841-
{
842-
while (first != last) {
843-
if (!(*first)) return false;
844-
++first;
845-
}
846-
return true;
847-
}
848-
};
849-
850835
/**
851836
* Interface for message handling
852837
*/

src/node/interfaces.cpp

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -230,22 +230,8 @@ class NodeImpl : public Node
230230
CoinJoinOptionsImpl m_coinjoin;
231231

232232
explicit NodeImpl(NodeContext* context) { setContext(context); }
233-
void initError(const bilingual_str& message) override { InitError(message); }
234-
bool parseParameters(int argc, const char* const argv[], std::string& error) override
235-
{
236-
return gArgs.ParseParameters(argc, argv, error);
237-
}
238-
bool readConfigFiles(std::string& error) override { return gArgs.ReadConfigFiles(error, true); }
239-
void forceSetArg(const std::string& arg, const std::string& value) override { gArgs.ForceSetArg(arg, value); }
240-
bool softSetArg(const std::string& arg, const std::string& value) override { return gArgs.SoftSetArg(arg, value); }
241-
bool softSetBoolArg(const std::string& arg, bool value) override { return gArgs.SoftSetBoolArg(arg, value); }
242-
void selectParams(const std::string& network) override { SelectParams(network); }
243-
bool initSettings(std::string& error) override { return gArgs.InitSettings(error); }
244-
uint64_t getAssumedBlockchainSize() override { return Params().AssumedBlockchainSize(); }
245-
uint64_t getAssumedChainStateSize() override { return Params().AssumedChainStateSize(); }
246-
std::string getNetwork() override { return Params().NetworkIDString(); }
247-
void initLogging() override { InitLogging(gArgs); }
248-
void initParameterInteraction() override { InitParameterInteraction(gArgs); }
233+
void initLogging() override { InitLogging(*Assert(m_context->args)); }
234+
void initParameterInteraction() override { InitParameterInteraction(*Assert(m_context->args)); }
249235
bilingual_str getWarnings() override { return GetWarnings(true); }
250236
uint64_t getLogCategories() override { return LogInstance().GetCategoryMask(); }
251237
bool baseInitialize() override
@@ -271,7 +257,6 @@ class NodeImpl : public Node
271257
void startShutdown() override { StartShutdown(); }
272258
bool shutdownRequested() override { return ShutdownRequested(); }
273259
void mapPort(bool use_upnp, bool use_natpmp) override { StartMapPort(use_upnp, use_natpmp); }
274-
void setupServerArgs() override { return SetupServerArgs(*m_context); }
275260
bool getProxy(Network net, proxyType& proxy_info) override { return GetProxy(net, proxy_info); }
276261
size_t getNodeCount(CConnman::NumConnections flags) override
277262
{

0 commit comments

Comments
 (0)