Page MenuHomePhabricator

[backport#13756] wallet: avoid reuse flags
ClosedPublic

Authored by majcosta on Jun 4 2020, 14:55.

Details

Reviewers
deadalnix
Group Reviewers
Restricted Project
Commits
rABC71e5ab2112db: [backport#13756] wallet: avoid reuse flags
Summary

Add m_avoid_address_reuse flag to coin control object.
Add avoid_reuse wallet flag and accompanying strings/caveats.

https://github.com/bitcoin/bitcoin/pull/13756/commits/eec15662fad917b169f5e3b8baaf4301dcf00a7b


Depends on D6369

Partial backport of Core PR13756

Test Plan
ninja

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

majcosta requested review of this revision.Jun 4 2020, 14:55

[Bot Message]
One or more PR numbers were detected in the summary.
Links to those PRs have been inserted into the summary for reference.

Snippet of first build failure:

[14:57:01] :	 [Step 1/2] [304/459] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[14:57:01] :	 [Step 1/2] [305/459] Building CXX object src/CMakeFiles/server.dir/txmempool.cpp.o
[14:57:01] :	 [Step 1/2] [306/459] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[14:57:01] :	 [Step 1/2] [307/459] Building CXX object src/CMakeFiles/server.dir/validationinterface.cpp.o
[14:57:01] :	 [Step 1/2] [308/459] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[14:57:01] :	 [Step 1/2] [309/459] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[14:57:01] :	 [Step 1/2] [310/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[14:57:01] :	 [Step 1/2] [311/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[14:57:01] :	 [Step 1/2] [312/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[14:57:02] :	 [Step 1/2] [313/459] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[14:57:02] :	 [Step 1/2] [314/459] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[14:57:02] :	 [Step 1/2] [315/459] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[14:57:02] :	 [Step 1/2] [316/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[14:57:02] :	 [Step 1/2] [317/459] Linking C static library src/secp256k1/libsecp256k1.a
[14:57:02] :	 [Step 1/2] [318/459] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[14:57:02] :	 [Step 1/2] [319/459] Linking C executable src/secp256k1/ecmult-bench
[14:57:02] :	 [Step 1/2] [320/459] Linking C executable src/secp256k1/recover-bench
[14:57:02] :	 [Step 1/2] [321/459] Linking CXX static library src/libcommon.a
[14:57:02] :	 [Step 1/2] [322/459] Linking C executable src/secp256k1/sign-bench
[14:57:02] :	 [Step 1/2] [323/459] Linking CXX static library src/libscript.a
[14:57:02] :	 [Step 1/2] [324/459] Linking CXX executable src/bitcoin-cli
[14:57:02] :	 [Step 1/2] [325/459] Linking CXX static library src/libbitcoinconsensus.a
[14:57:02] :	 [Step 1/2] [326/459] Linking C executable src/secp256k1/verify-bench
[14:57:02] :	 [Step 1/2] [327/459] Linking CXX shared library src/libbitcoinconsensus.so.0.0.0
[14:57:03] :	 [Step 1/2] [328/459] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[14:57:03] :	 [Step 1/2] [329/459] Linking C executable src/secp256k1/internal-bench
[14:57:03] :	 [Step 1/2] [330/459] Linking CXX executable src/bitcoin-tx
[14:57:03] :	 [Step 1/2] [331/459] Building CXX object src/seeder/CMakeFiles/seeder.dir/bitcoin.cpp.o
[14:57:03] :	 [Step 1/2] [332/459] Building CXX object src/seeder/CMakeFiles/seeder.dir/db.cpp.o
[14:57:03] :	 [Step 1/2] [333/459] Building CXX object src/seeder/CMakeFiles/seeder.dir/dns.cpp.o
[14:57:03] :	 [Step 1/2] [334/459] Linking CXX static library src/seeder/libseeder.a
[14:57:03] :	 [Step 1/2] [335/459] Linking CXX executable src/seeder/bitcoin-seeder
[14:57:07] :	 [Step 1/2] [336/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[14:57:07] :	 [Step 1/2] [337/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[14:57:07] :	 [Step 1/2] [338/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/psbtwallet.cpp.o
[14:57:07] :	 [Step 1/2] [339/459] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[14:57:08] :	 [Step 1/2] [340/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[14:57:08] :	 [Step 1/2] FAILED: src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o 
[14:57:08] :	 [Step 1/2] /usr/bin/ccache /usr/bin/clang++-10  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I../src/. -Isrc -I../src/univalue/include -Isrc/crypto/.. -I../src/secp256k1/include -I../src/leveldb/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden   -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wthread-safety-analysis -Wshadow -Wrange-loop-analysis -Wredundant-decls -Wformat-security -Wredundant-move -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++14 -MD -MT src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o -MF src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o.d -o src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o -c ../src/wallet/rpcwallet.cpp
[14:57:08] :	 [Step 1/2] ../src/wallet/rpcwallet.cpp:44:20: error: unused function 'GetAvoidReuseFlag' [-Werror,-Wunused-function]
[14:57:08] :	 [Step 1/2] static inline bool GetAvoidReuseFlag(CWallet *const pwallet,
[14:57:08] :	 [Step 1/2]                    ^
[14:57:08] :	 [Step 1/2] 1 error generated.
[14:57:08] :	 [Step 1/2] [341/459] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[14:57:08] :	 [Step 1/2] [342/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[14:57:09] :	 [Step 1/2] [343/459] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[14:57:11] :	 [Step 1/2] [344/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[14:57:12] :	 [Step 1/2] [345/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[14:57:15] :	 [Step 1/2] [346/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[14:57:21] :	 [Step 1/2] [347/459] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[14:57:21] :	 [Step 1/2] ninja: build stopped: subcommand failed.
[14:57:21]W:	 [Step 1/2] ++ print_sanitizers_log
[14:57:21] :	 [Step 1/2] *** Output of /tmp/sanitizer_logs/*.log.* ***
[14:57:21]W:	 [Step 1/2] ++ for log in "${SAN_LOG_DIR}"/*.log.*
[14:57:21]W:	 [Step 1/2] ++ echo '*** Output of /tmp/sanitizer_logs/*.log.* ***'
[14:57:21]W:	 [Step 1/2] ++ cat '/tmp/sanitizer_logs/*.log.*'
[14:57:21]W:	 [Step 1/2] cat: '/tmp/sanitizer_logs/*.log.*': No such file or directory
[14:57:21]W:	 [Step 1/2] cp: cannot stat '/work/ibd/debug.log': No such file or directory
[14:57:25]W:	 [Step 1/2] Process exited with code 1
[14:57:25]E:	 [Step 1/2] Process exited with code 1 (Step: Command Line)
deadalnix requested changes to this revision.Jun 4 2020, 17:57
deadalnix added a subscriber: deadalnix.

Looks like clang is not happy.

This revision now requires changes to proceed.Jun 4 2020, 17:57

good job Clang. this was a test. and you passed.

deadalnix added inline comments.
src/wallet/rpcwallet.cpp
44 ↗(On Diff #20917)

Make sure to remove that annotation once the function is actually used.

This revision is now accepted and ready to land.Jun 4 2020, 22:40