Skip to content

Conversation

@codablock
Copy link

Continuation of #1770

sipa and others added 30 commits January 18, 2018 07:31
…moryPool.

f692fce Make RelayWalletTransaction attempt to AcceptToMemoryPool. (Gregory Maxwell)
…sNewBlock

a13fa4c Remove unused CDiskBlockPos* argument from ProcessNewBlock (Matt Corallo)
67dac4e Add unit tests for the CuckooCache (Jeremy Rubin)
c9e69fb Add CuckooCache implementation and replace the sigcache map_type with it (Jeremy Rubin)
…port RPCs

d8c0b9f [qa] Add test for rescan feature of wallet key import RPCs (Russell Yanofsky)
…ter (take 2)

fa16b8f If we don't allow free txs, always send a fee filter (take 2) (MarcoFalke)
390bd14 [Qt] Console: don't allow empty arguments when using the comma-syntax (Jonas Schnelli)
6a32c0f Qt/Test: Check handling of empty arguments in RPC debug console (Luke Dashjr)
89c8d2c [Qt] Console: allow empty arguments (Jonas Schnelli)
0632939 Flush wallet after abandontransaction (Alex Morcos)
…, make QT runawayException use GetWarnings

749be01 Move GetWarnings() into its own file. (Gregory Maxwell)
e3ba0ef Eliminate data races for strMiscWarning and fLargeWork*Found. (Gregory Maxwell)
c63198f Make QT runawayException call GetWarnings instead of directly access strMiscWarning. (Gregory Maxwell)
For some reason, this fails while linking dash-cli.
I tried to add LIBBITCOIN_COMMON to dash-cli, but with no luck.
Removing the call for now, has to be fixed later.
…disabled

faf4ca8 [wallet] Disable free transactions when relay is disabled (MarcoFalke)
…eck txn before ATMP

cee1612 reduce number of lookups in TransactionWithinChainLimit (Gregory Sanders)
af9bedb Test for fix of txn chaining in wallet (Gregory Sanders)
5882c09 CreateTransaction: Don't return success with too-many-ancestor txn (Gregory Sanders)
0b2294a SelectCoinsMinConf: Prefer coins with fewer ancestors (Gregory Sanders)
fa89581 build: Include cuckoocache header in Makefile (MarcoFalke)
fad896d gitignore: Wipe line after java comp tool removal (MarcoFalke)
fad632e travis: make distdir (MarcoFalke)
…lp command

afe5b3f Added missing colons in when running help command (Anditto Heristyo)
35356b4 Remove unused variable in test, fixing warning. (Russell Yanofsky)
c2f61be Add a ForceSetArg method for testing (Matt Corallo)
4e04814 Lock mapArgs/mapMultiArgs access in util (Matt Corallo)
4cd373a Un-expose mapArgs from utils.h (Matt Corallo)
71fde55 Get rid of mapArgs direct access in ZMQ construction (Matt Corallo)
0cf86a6 Introduce (and use) an IsArgSet accessor method (Matt Corallo)
2b5f085 Fix non-const mapMultiArgs[] access after init. (Matt Corallo)
c8042a4 Remove arguments to ParseConfigFile (Matt Corallo)
2ddfcfd Make CScript (and prevector) c++11 movable. (Pieter Wuille)
e2b5c98 Fix linker error when configured with --enable-lcov (Douglas Roark)
b705a04 Update the Windows build notes (Douglas Roark)
2fb98f6 Fix bug in dmg builder so that it actually reads in the configuration file (Don Patterson)
b01667c Mention RSVG dependency when creating the disk image on OSX (Jonas Schnelli)
09aefb5 build: Fix 'make deploy' for OSX (Cory Fields)
…in lock requirement

9e351c9 SetMerkleBranch: remove unused code, remove cs_main lock requirement (Jonas Schnelli)
…d saving input line when browsing history

8562792 GUI/RPCConsole: Include importmulti in history sensitive-command filter (Luke Dashjr)
ff77faf Qt/RPCConsole: Use RPCParseCommandLine to perform command filtering (Luke Dashjr)
a79598d Qt/Test: Make sure filtering sensitive data works correctly in nested commands (Luke Dashjr)
629cd42 Qt/RPCConsole: Teach RPCParseCommandLine how to filter out arguments to sensitive commands (Luke Dashjr)
e2d9213 Qt/RPCConsole: Make it possible to parse a command without executing it (Luke Dashjr)
1755c04 Qt/RPCConsole: Truncate filtered commands to just the command name, rather than skip it entirely in history (Luke Dashjr)
d80a006 Qt/RPCConsole: Add signmessagewithprivkey to list of commands filtered from history (Luke Dashjr)
afde12f Qt/RPCConsole: Refactor command_may_contain_sensitive_data function out of RPCConsole::on_lineEdit_returnPressed (Luke Dashjr)
de8980d Bugfix: Do not add sensitive information to history for real (Luke Dashjr)
9044908 Qt/RPCConsole: Don't store commands with potentially sensitive information in the history (Jonas Schnelli)
fc95daa Qt/RPCConsole: Save current command entry when browsing history (Jonas Schnelli)
5394b39 Wallet: Split main logic from InitLoadWallet into CreateWalletFromFile (Luke Dashjr)
fb0c934 Wallet: Let the interval-flushing thread figure out the filename (Luke Dashjr)
91335ba Remove unused MakeTransactionRef overloads (Pieter Wuille)
6713f0f Make FillBlock consume txn_available to avoid shared_ptr copies (Pieter Wuille)
62607d7 Convert COrphanTx to keep a CTransactionRef (Pieter Wuille)
c44e4c4 Make AcceptToMemoryPool take CTransactionRef (Pieter Wuille)
f8d43b8 Avoid rollingMinimumFeeRate never being able to decay below half (Alex Morcos)
eab8e1b fix a bug if the min fee is 0 for FeeFilterRounder (Alex Morcos)
… example .conf

0513c70 Make rpcauth help message clearer, add example in example .conf (Gregory Sanders)
sipa and others added 13 commits January 18, 2018 07:33
…calculation inner loop.

b3d7b1c Wallet: Do not perform ECDSA in the fee calculation inner loop. (Gregory Maxwell)
44b64b9 Fix edge case with stale fee estimates (Alex Morcos)
78ae62d Add clarifying comments to fee estimation (Alex Morcos)
5fe0f47 Add extra logging to processBlock in fee estimation. (Alex Morcos)
dc008c4 Add IsCurrentForFeeEstimatation (Alex Morcos)
ebafdca Pass pointers to existing CTxMemPoolEntries to fee estimation (Alex Morcos)
d825838 Always update fee estimates on new blocks. (Alex Morcos)
6f06b26 rename bool to validFeeEstimate (Alex Morcos)
84f7ab0 Remove member variable hadNoDependencies from CTxMemPoolEntry (Alex Morcos)
60ac00d Don't track transactions at all during IBD. (Alex Morcos)
4df4479 Remove extraneous LogPrint from fee estimation (Alex Morcos)
…mits.

032ba3f RPC help documentation for addnode peerinfo. (Gregory Maxwell)
90f13e1 Add release notes for addnode changes. (Gregory Maxwell)
50bd12c Break addnode out from the outbound connection limits. (Gregory Maxwell)
… necessary

325e400 [Qt] Do proper shutdown (Jonas Schnelli)
9479f8d Allow shutdown during LoadMempool, dump only when necessary (Jonas Schnelli)
…ransaction.

20449ef Don't overpay fee if we have selected new coins that result in a smaller transaction. (Alex Morcos)
42f5ce4 Try to reduce change output to make needed fee in CreateTransaction (Alex Morcos)
7df5e38 Rename lambda argument name to prevent shadowing. (Pavel Janík)
4e7e2e1 Update RPC argument names (John Newbery)
481f289 rpc: Named argument support for bitcoin-cli (Wladimir J. van der Laan)
9adb4e1 rpc: Argument name consistency (Wladimir J. van der Laan)
8d713f7 rpc: Named arguments for rawtransaction calls (Wladimir J. van der Laan)
37a166f rpc: Named arguments for wallet calls (Wladimir J. van der Laan)
78b684f rpc: Named arguments for mining calls (Wladimir J. van der Laan)
b8ebc59 rpc: Named arguments for net calls (Wladimir J. van der Laan)
2ca9dcd test: Add test for RPC named arguments (Wladimir J. van der Laan)
fba1a61 rpc: Named arguments for misc calls (Wladimir J. van der Laan)
286ec08 rpc: Add 'echo' call for testing (Wladimir J. van der Laan)
495eb44 rpc: Named arguments for blockchain calls (Wladimir J. van der Laan)
6f1c76a rpc: Support named arguments (Wladimir J. van der Laan)
5865d41 authproxy: Add support for RPC named arguments (Wladimir J. van der Laan)
67ca130 build: fix for out-of-tree/distdir qt builds (Cory Fields)
74994c6 Improve style w.r.t. if (Pieter Wuille)
Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • There are some Arguments/Results/Examples not fixed by 7417a5b
  • See inline comments


# You must set rpcuser and rpcpassword to secure the JSON-RPC api
# If no rpcpassword is set, rpc cookie auth is sought. The default `-rpccookiefile` name
# is .cookie and found in the `-datadir` being used for bitcoind. This option is typically used
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/bitcoin/dash/

# using the output from the script in share/rpcuser/rpcuser.py after providing a username:
#
# ./share/rpcuser/rpcuser.py alice
# String to be appended to bitcoin.conf:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/bitcoin/dash/

the same data no matter which byte format is chosen.

The `linearize-hashes` script requires a connection, local or remote, to a
JSON-RPC server. Running `bitcoind` or `bitcoin-qt -server` will be sufficient.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/bitcoin/dash/

most recent block in that file.
* `file_timestamp`: Set each file's last-modified time to that of the most
recent block in that file.
* `genesis`: The hash of the genesis block in the blockchain. (default is '00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c', testnet)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's switch this to '00000ffd590b1485b3caadc19b22e6379c733355108f107a430458cdf3407ab6', mainnet

linearize-hashes.py.
* `max_out_sz`: Maximum size for files created by the `output_file` option.
(Default: `1000*1000*1000 bytes`)
* `netmagic`: Network magic number. (default is 'cee2caff', testnet)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's switch this to 'bf0c6bbd', mainnet

if (request.fHelp || request.params.size() < 3 || request.params.size() > 7)
throw runtime_error(
"sendfrom \"fromaccount\" \"todashaddress\" amount ( minconf addlockconf \"comment\" \"comment-to\" )\n"
"sendfrom \"fromaccount\" \"toaddress\" amount ( minconf \"comment\" \"comment_to\" )\n"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing addlockconf

if (request.fHelp || request.params.size() > 4)
throw runtime_error(
"listreceivedbyaddress ( minconf addlockconf includeempty includeWatchonly)\n"
"listreceivedbyaddress ( minconf include_empty include_watchonly)\n"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing addlockconf

if (request.fHelp || request.params.size() > 4)
throw runtime_error(
"listreceivedbyaccount ( minconf addlockconf includeempty includeWatchonly)\n"
"listreceivedbyaccount ( minconf include_empty include_watchonly)\n"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing addlockconf

if (request.fHelp || request.params.size() > 3)
throw runtime_error(
"listaccounts ( minconf addlockconf includeWatchonly)\n"
"listaccounts ( minconf include_watchonly)\n"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing addlockconf

src/util.cpp Outdated
LogPrintf("%s: Warning: incorrect parameter -walletbackupsdir, path must exist! Using default path.\n", __func__);
SetMiscWarning(_("Warning: incorrect parameter -walletbackupsdir, path must exist! Using default path."));
// TODO this causes link errors for dash-cli. I tried to add LIBBITCOIN_COMMON to dash-cli, but with no luck
//SetMiscWarning(_("Warning: incorrect parameter -walletbackupsdir, path must exist! Using default path."));
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This thing shouldn't probably even be here. Should be a part of AutoBackupWallet or smth like that.

@UdjinM6 UdjinM6 added this to the 12.3 milestone Jan 18, 2018
src/util.cpp Outdated
LogPrintf("%s: Warning: incorrect parameter -walletbackupsdir, path must exist! Using default path.\n", __func__);
strMiscWarning = _("Warning: incorrect parameter -walletbackupsdir, path must exist! Using default path.");
// TODO this causes link errors for dash-cli. I tried to add LIBBITCOIN_COMMON to dash-cli, but with no luck
//SetMiscWarning(_("Warning: incorrect parameter -walletbackupsdir, path must exist! Using default path."));
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't probably even be here, should be moved to AutoBackupWallet or smth like that.

PS. I have no idea what I'm doing wrong, but comments are disappearing :)

@codablock
Copy link
Author

Pushed review fixes (sorry for the many missed bitcoin strings...)
Also added a commit with refactorings of backup dir handling. This should fix the linking error I initially had and also make the code clearer.

Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re colons: Original commit also took care about Arguments\n https://github.com/bitcoin/bitcoin/pull/9407/files#diff-9651347c8e00bed3ddc7631de569406dR720 , we should fix it too. And there is also another one in src/wallet/rpcwallet.cpp for keypoolrefill.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/testnet/mainnet/

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/testnet/mainnet/

src/util.h Outdated
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be removed now

Also remove caching in GetBackupsDir(). Not much is gained by this as we
don't call GetBackupsDir() that often.

Also add a is_directory check in AutoBackupWallet to handle cases where the
user deletes or moves the dir while Dash is running.
@codablock codablock force-pushed the pr_backport_bitcoin_0.14-8 branch from cea1802 to e5daae2 Compare January 18, 2018 18:39
@codablock
Copy link
Author

Squashed the additional fixes into the appropriate commits I added before.

Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍
slightly tested ACK

@UdjinM6 UdjinM6 merged commit 8e9bae9 into dashpay:develop Jan 18, 2018
@codablock codablock deleted the pr_backport_bitcoin_0.14-8 branch January 18, 2018 21:15
PastaPastaPasta added a commit that referenced this pull request Jul 14, 2025
, bitcoin#25005, bitcoin#25410, bitcoin#24236, bitcoin#25438, bitcoin#25036, bitcoin#25489, bitcoin#25544, bitcoin#25594, bitcoin#13226, partial bitcoin#25218, bitcoin#26005 (wallet backports: part 6)

175970e merge bitcoin#13226: Optimize SelectCoinsBnB by tracking the selection by index rather than by position (Kittywhiskers Van Gogh)
27933a7 merge bitcoin#25594: Return BResult from restoreWallet (Kittywhiskers Van Gogh)
b75f1ad partial bitcoin#26005: Fix error handling (copy_file failure in RestoreWallet, and in general via interfaces) (Kittywhiskers Van Gogh)
9f5845c partial bitcoin#25218: introduce generic 'Result' class and connect it to CreateTransaction and GetNewDestination (Kittywhiskers Van Gogh)
db7e174 merge bitcoin#25544: don't iter twice when getting the cached debit/credit amount (Kittywhiskers Van Gogh)
48f5c10 merge bitcoin#25489: change `ScanForWalletTransactions` to use `Ticks(Dur2 d)` (Kittywhiskers Van Gogh)
4aafd98 merge bitcoin#25036: Save wallet scan progress (Kittywhiskers Van Gogh)
e2f053a merge bitcoin#25438: remove unused methods in classes `CDBIterator,CDBWrapper,CCoinsViewDBCursor` (Kittywhiskers Van Gogh)
79fcd30 merge bitcoin#24236: Remove utxo db upgrade code (Kittywhiskers Van Gogh)
d13ff52 fix: use URL quoting for password fields due to Base64 in pre-v0.12.2.x (Kittywhiskers Van Gogh)
7b6af94 fix: allow argument-free RPC calls with nodes running v0.12.2.x and lower (Kittywhiskers Van Gogh)
1026f11 fix: make `get_previous_release.py` translate triples for pre-v0.12.2.x (Kittywhiskers Van Gogh)
a0b2c7d fix: make `get_previous_releases.py` understand windows target triples (Kittywhiskers Van Gogh)
51237c9 merge bitcoin#25410: fix warning: "argument name 'feerate' in comment does not match parameter name" (Kittywhiskers Van Gogh)
2438b9f merge bitcoin#25005: remove extra wtx lookup in 'AvailableCoins' + several code cleanups (Kittywhiskers Van Gogh)
a498336 refactor: use initializer to set `nCoinType` instead of manual assignment (Kittywhiskers Van Gogh)
ae24276 merge bitcoin#25083: Set effective_value when initializing a COutput (Kittywhiskers Van Gogh)
a883a8e merge bitcoin#24666: Fix coinselection.h include, Make COutput a struct (Kittywhiskers Van Gogh)
f447b5d merge bitcoin#24711: Postpone wallet loading notification for encrypted wallets (Kittywhiskers Van Gogh)
39557f9 fix: include `BOOST_AUTO_TEST_SUITE_END` within namespace `wallet` (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * When backporting [bitcoin#23497](bitcoin#23497) (see [dash#6732](#6732)), some `BOOST_AUTO_TEST_SUITE_END()`s were placed _outside_ the `wallet` namespace scope, which resulted in incorrect behavior when rebasing this pull request over [dash#6732](#6732). This has been resolved.

  * Backports of [bitcoin#25083](bitcoin#25083) and [bitcoin#25005](bitcoin#25005) do not include changes to `wallet/rpc/spend.cpp` as the `sendall()` RPC has not been implemented in `develop` (f453998) as of this writing.

  * Backporting [bitcoin#24236](bitcoin#24236) required a fair number of additional considerations, firstly because the pull request introduces a test, `feature_unsupported_utxo_db.py`, that requires the last-capable of version Dash Core to generate a legacy UTXO database (the current database format debuted in [dash#1701](#1701), included in v0.12.2.2) and secondly, because v0.15 is the earliest expected version of Dash Core to work smoothly with our test framework ([source](https://github.com/dashpay/dash/blob/f453998bb76dee8fe016138da664dc281fc7f1d3/test/functional/mempool_compatibility.py#L29)).

    As we require the last release cycle that generates the legacy UTXO database by default, we used the last version of the v0.12.1.x family, v0.12.1.5 as the old node used in `feature_unsupported_utxo_db.py`. This brings unique challenges which are elaborated on below.

    * The test framework relies on `generatetoaddress`, a wallet-independent RPC call that was introduced in [bitcoin#7671](bitcoin#7671) to replace the old wallet-dependent `generate` RPC. It was backported as 760d58e in [dash#1790](#1790) and debuted in v0.12.3. We cannot use the `self.generate()` helper as simply dispatches a `generatetoaddress` ([source](https://github.com/dashpay/dash/blob/f453998bb76dee8fe016138da664dc281fc7f1d3/test/functional/test_framework/test_node.py#L343-L345)), which does not exist in v0.12.1.5.

      We work around this by using the more archaic `self.nodes[0].rpc.generate()`, in line with usage in `rpc_generate.py` ([source](https://github.com/dashpay/dash/blob/f453998bb76dee8fe016138da664dc281fc7f1d3/test/functional/rpc_generate.py#L25-L26)).

    * Releases before v0.12.3.x did not include the target triples in their naming convention (see tag [`v0.12.3.1`](https://github.com/dashpay/dash/releases/tag/v0.12.3.1) vs [`v0.12.1.5`](https://github.com/dashpay/dash/releases/tag/v0.12.1.5)), which causes problems when fetching packages based on the target `HOST` of the build environment. This has been remedied by introducing awareness for `RPi2`, `osx` and `linux{32,64}` labels.

      * Note, `RPi2` corresponds to `arm-linux-gnueabihf` based on the Gitian descriptor that was removed in [dash#2183](#2183) ([source](https://github.com/dashpay/dash/blob/dac090964fbdd96d896f725932aada71db736abf/contrib/gitian-descriptors/gitian-rpi2.yml#L26))

     * This was also taken as an opportunity to introduce awareness for the `win32` and `win64` labels which persist even now (see tag [`v22.1.2`](https://github.com/dashpay/dash/releases/tag/v22.1.2))

    * Currently, when we want to make RPC calls without arguments, a blank object is sent to by the RPC dispatcher. This is acceptable as objects are supported since [bitcoin#8811](bitcoin#8811) (backported as eb7a6b0 in [dash#1851](#1858)), included in v0.12.3.

      Unfortunately, since we are dealing with a version of Dash that is ancient even by previous release standards, this prevents the dispatcher from even acknowledging the RPC server is active (see below).

      <details>

      <summary>Test failure:</summary>

      ```
      $ ./test/functional/feature_unsupported_utxo_db.py
      2025-06-24T15:06:53.642000Z TestFramework (INFO): PRNG seed is: 1995903613070947610
      2025-06-24T15:06:53.642000Z TestFramework (INFO): Initializing test directory /tmp/dash_func_test_1tqzf43o
      2025-06-24T15:06:53.642000Z TestFramework (INFO): Create previous version (v0.12.1.5) utxo db
      2025-06-24T15:06:53.895000Z TestFramework (ERROR): JSONRPC error
      Traceback (most recent call last):
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/test_framework.py", line 161, in main
          self.run_test()
        File "/home/eclair/Repositories/dashpay/dash/./test/functional/feature_unsupported_utxo_db.py", line 35, in run_test
          self.start_node(0)
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/test_framework.py", line 647, in start_node
          node.wait_for_rpc_connection()
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/test_node.py", line 276, in wait_for_rpc_connection
          rpc.getblockcount()
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/coverage.py", line 49, in __call__
          return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/authproxy.py", line 144, in __call__
          raise JSONRPCException(response['error'], status)
      test_framework.authproxy.JSONRPCException: Params must be an array (-32600)
      2025-06-24T15:06:53.947000Z TestFramework (INFO): Stopping nodes
      [...]
      ```

      </details>

        * This is worked around by dispatching an empty array instead of an empty object, it has the same practical effect (conveying the lack of arguments) and is forwards-compatible.

    * Currently, the password used for RPC authentication in Base16 encoded. This is a result of [dash#1454](#1454), which switched away from Base64. Unfortunately, this benefit only extends to v0.12.2.0 onwards, which is too new for the old node needed in our functional test.

      Worse still, it was not the URL-safe variant of Base64, so attempting to establish a connection with the old node resulted in sporadic failures (see below).

      <details>

      <summary>Test failure:</summary>

      ```
      $ ./test/functional/feature_unsupported_utxo_db.py
      2025-06-24T15:13:27.517000Z TestFramework (INFO): PRNG seed is: 3228606794541395700
      2025-06-24T15:13:27.518000Z TestFramework (INFO): Initializing test directory /tmp/dash_func_test_97d987gf
      2025-06-24T15:13:27.518000Z TestFramework (INFO): Create previous version (v0.12.1.5) utxo db
      2025-06-24T15:13:27.769000Z TestFramework (ERROR): Unexpected exception caught during testing
      Traceback (most recent call last):
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/test_framework.py", line 161, in main
          self.run_test()
        File "/home/eclair/Repositories/dashpay/dash/./test/functional/feature_unsupported_utxo_db.py", line 35, in run_test
          self.start_node(0)
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/test_framework.py", line 647, in start_node
          node.wait_for_rpc_connection()
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/test_node.py", line 270, in wait_for_rpc_connection
          rpc = get_rpc_proxy(
                ^^^^^^^^^^^^^^
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/util.py", line 341, in get_rpc_proxy
          proxy = AuthServiceProxy(url, **proxy_kwargs)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/eclair/Repositories/dashpay/dash/test/functional/test_framework/authproxy.py", line 78, in __init__
          authpair = user + b':' + passwd
                    ~~~~~^~~~~~
      TypeError: unsupported operand type(s) for +: 'NoneType' and 'bytes'
      2025-06-24T15:13:27.822000Z TestFramework (INFO): Stopping nodes
      [...]
      ```

      </details>

        * This is worked around by escaping URL special characters for the password field. It is practically a no-op for the Base16 passwords generated from v0.12.2.0 onwards but allows connection and authentication with older versions of Dash Core.

  ## How Has This Been Tested?

  A full CoinJoin session run on 89cd497

  ![CoinJoin session run on build 89cd497](https://github.com/user-attachments/assets/29caa752-0103-490b-a0e1-56c1030105f2)

  ## Breaking Changes

  None expected.

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 175970e
  PastaPastaPasta:
    utACK 175970e

Tree-SHA512: 6a6fe593e25cc5c99da41333a334655010cc387f8c3e390d472de29782aaa6aa67276e2e00a90609facabe4f1817fa0152e6b6765f97e07541fd378ef0f4d566
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants