Skip to content

Commit 41a46cb

Browse files
committed
Speed up deriveaddresses for large ranges
1 parent daef20f commit 41a46cb

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/rpc/misc.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,8 @@ UniValue deriveaddresses(const JSONRPCRequest& request)
228228
range_end = range.second;
229229
}
230230

231-
FlatSigningProvider provider;
232-
auto desc = Parse(desc_str, provider, /* require_checksum = */ true);
231+
FlatSigningProvider key_provider;
232+
auto desc = Parse(desc_str, key_provider, /* require_checksum = */ true);
233233
if (!desc) {
234234
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Invalid descriptor"));
235235
}
@@ -245,8 +245,9 @@ UniValue deriveaddresses(const JSONRPCRequest& request)
245245
UniValue addresses(UniValue::VARR);
246246

247247
for (int i = range_begin; i <= range_end; ++i) {
248+
FlatSigningProvider provider;
248249
std::vector<CScript> scripts;
249-
if (!desc->Expand(i, provider, scripts, provider)) {
250+
if (!desc->Expand(i, key_provider, scripts, provider)) {
250251
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Cannot derive script without private keys"));
251252
}
252253

0 commit comments

Comments
 (0)