Page MenuHomePhabricator

random: write rand256() and rand160() in function of fillrand()
Changes PlannedPublic

Authored by PiRK on Wed, Dec 3, 16:06.

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

This is a partial backport of core#29625
https://github.com/bitcoin/bitcoin/pull/29625/commits/493a2e024e845e623e202e3eefe1cc2010e9b514

note the rand160() was introduced in D8496

Depends on D19040

Test Plan

ninja all check-all

Event Timeline

PiRK requested review of this revision.Wed, Dec 3, 16:06

Tail of the build log:

inline void Serialize(Stream &s, const std::array<int8_t, N> &a) {
            ^
/work/src/./serialize.h:282:13: note: candidate template ignored: could not match 'const std::array<uint8_t, N>' (aka 'const array<unsigned char, N>') against 'const AddrManSerializationMock'
inline void Serialize(Stream &s, const std::array<uint8_t, N> &a) {
            ^
/work/src/./serialize.h:286:6: note: candidate template ignored: could not match 'const std::array<B, N>' against 'const AddrManSerializationMock'
void Serialize(Stream &s, const std::array<B, N> &a) {
     ^
/work/src/./serialize.h:290:6: note: candidate template ignored: could not match 'Span<B>' against 'AddrManSerializationMock'
void Serialize(Stream &s, Span<B> span) {
     ^
/work/src/./serialize.h:935:6: note: candidate template ignored: could not match 'const std::basic_string<C>' against 'const AddrManSerializationMock'
void Serialize(Stream &os, const std::basic_string<C> &str) {
     ^
/work/src/./serialize.h:968:13: note: candidate template ignored: could not match 'const prevector<N, T>' against 'const AddrManSerializationMock'
inline void Serialize(Stream &os, const prevector<N, T> &v) {
            ^
/work/src/./serialize.h:1024:13: note: candidate template ignored: could not match 'const std::vector<T, A>' against 'const AddrManSerializationMock'
inline void Serialize(Stream &os, const std::vector<T, A> &v) {
            ^
/work/src/./serialize.h:1056:6: note: candidate template ignored: could not match 'const std::pair<K, T>' against 'const AddrManSerializationMock'
void Serialize(Stream &os, const std::pair<K, T> &item) {
     ^
/work/src/./serialize.h:1071:6: note: candidate template ignored: could not match 'const std::map<K, T, Pred, A>' against 'const AddrManSerializationMock'
void Serialize(Stream &os, const std::map<K, T, Pred, A> &m) {
     ^
/work/src/./serialize.h:1094:6: note: candidate template ignored: could not match 'const std::set<K, Pred, A>' against 'const AddrManSerializationMock'
void Serialize(Stream &os, const std::set<K, Pred, A> &m) {
     ^
/work/src/./serialize.h:1117:6: note: candidate template ignored: could not match 'const std::unique_ptr<const T>' against 'const AddrManSerializationMock'
void Serialize(Stream &os, const std::unique_ptr<const T> &p) {
     ^
/work/src/./serialize.h:1130:6: note: candidate template ignored: could not match 'const std::shared_ptr<const T>' against 'const AddrManSerializationMock'
void Serialize(Stream &os, const std::shared_ptr<const T> &p) {
     ^
/work/src/./serialize.h:1143:6: note: candidate template ignored: could not match 'const RCUPtr<const T>' against 'const AddrManSerializationMock'
void Serialize(Stream &os, const RCUPtr<const T> &p) {
     ^
/work/src/./serialize.h:902:6: note: candidate template ignored: constraints not satisfied [with Stream = CDataStream, T = AddrManSerializationMock]
void Serialize(Stream &os, const T &a) {
     ^
/work/src/./serialize.h:901:14: note: because 'Serializable<AddrManSerializationMock, CDataStream>' evaluated to false
    requires Serializable<T, Stream>
             ^
/work/src/./serialize.h:899:35: note: because 's' would be invalid: parameter type 'AddrManSerializationMock' is an abstract class
concept Serializable = requires(T a, Stream s) { a.Serialize(s); };
                                  ^
1 error generated.
[253/540] avalanche: testing peermanager_tests
[254/540] Running utility command for check-avalanche-peermanager_tests
[255/540] avalanche: testing processor_tests
[256/540] Running utility command for check-avalanche-processor_tests
[257/540] Running avalanche test suite
PASSED: avalanche test suite
[258/540] secp256k1: testing secp256k1-exhaustive_tests
[259/540] secp256k1: testing secp256k1-tests
[260/540] Running secp256k1 test suite
PASSED: secp256k1 test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1
PiRK planned changes to this revision.Wed, Dec 3, 16:14

Tail of the build log:

tests/test_iguana.py::test_script_pub_key_false_stack ##teamcity[testStarted timestamp='2025-12-03T16:22:51.083' captureStandardOutput='false' flowId='tests.test_iguana.test_script_pub_key_false_stack' metainfo='test_script_pub_key_false_stack' name='tests.test_iguana.test_script_pub_key_false_stack']
PASSED             [ 60%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.103' duration='19' flowId='tests.test_iguana.test_script_pub_key_false_stack' name='tests.test_iguana.test_script_pub_key_false_stack']

tests/test_iguana.py::test_script_pub_key_cleanstack ##teamcity[testStarted timestamp='2025-12-03T16:22:51.104' captureStandardOutput='false' flowId='tests.test_iguana.test_script_pub_key_cleanstack' metainfo='test_script_pub_key_cleanstack' name='tests.test_iguana.test_script_pub_key_cleanstack']
PASSED              [ 65%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.127' duration='22' flowId='tests.test_iguana.test_script_pub_key_cleanstack' name='tests.test_iguana.test_script_pub_key_cleanstack']

tests/test_iguana.py::test_redeem_script_success ##teamcity[testStarted timestamp='2025-12-03T16:22:51.127' captureStandardOutput='false' flowId='tests.test_iguana.test_redeem_script_success' metainfo='test_redeem_script_success' name='tests.test_iguana.test_redeem_script_success']
PASSED                  [ 70%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.183' duration='55' flowId='tests.test_iguana.test_redeem_script_success' name='tests.test_iguana.test_redeem_script_success']

tests/test_iguana.py::test_redeem_script_error ##teamcity[testStarted timestamp='2025-12-03T16:22:51.184' captureStandardOutput='false' flowId='tests.test_iguana.test_redeem_script_error' metainfo='test_redeem_script_error' name='tests.test_iguana.test_redeem_script_error']
PASSED                    [ 75%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.222' duration='37' flowId='tests.test_iguana.test_redeem_script_error' name='tests.test_iguana.test_redeem_script_error']

tests/test_iguana.py::test_redeem_script_exception ##teamcity[testStarted timestamp='2025-12-03T16:22:51.223' captureStandardOutput='false' flowId='tests.test_iguana.test_redeem_script_exception' metainfo='test_redeem_script_exception' name='tests.test_iguana.test_redeem_script_exception']
PASSED                [ 80%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.262' duration='38' flowId='tests.test_iguana.test_redeem_script_exception' name='tests.test_iguana.test_redeem_script_exception']

tests/test_iguana.py::test_redeem_script_empty_stack ##teamcity[testStarted timestamp='2025-12-03T16:22:51.263' captureStandardOutput='false' flowId='tests.test_iguana.test_redeem_script_empty_stack' metainfo='test_redeem_script_empty_stack' name='tests.test_iguana.test_redeem_script_empty_stack']
PASSED              [ 85%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.291' duration='28' flowId='tests.test_iguana.test_redeem_script_empty_stack' name='tests.test_iguana.test_redeem_script_empty_stack']

tests/test_iguana.py::test_redeem_script_false ##teamcity[testStarted timestamp='2025-12-03T16:22:51.292' captureStandardOutput='false' flowId='tests.test_iguana.test_redeem_script_false' metainfo='test_redeem_script_false' name='tests.test_iguana.test_redeem_script_false']
PASSED                    [ 90%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.328' duration='35' flowId='tests.test_iguana.test_redeem_script_false' name='tests.test_iguana.test_redeem_script_false']

tests/test_iguana.py::test_redeem_script_cleanstack ##teamcity[testStarted timestamp='2025-12-03T16:22:51.329' captureStandardOutput='false' flowId='tests.test_iguana.test_redeem_script_cleanstack' metainfo='test_redeem_script_cleanstack' name='tests.test_iguana.test_redeem_script_cleanstack']
PASSED               [ 95%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.342' duration='12' flowId='tests.test_iguana.test_redeem_script_cleanstack' name='tests.test_iguana.test_redeem_script_cleanstack']

tests/test_iguana.py::test_redeem_script_input_sigchecks ##teamcity[testStarted timestamp='2025-12-03T16:22:51.342' captureStandardOutput='false' flowId='tests.test_iguana.test_redeem_script_input_sigchecks' metainfo='test_redeem_script_input_sigchecks' name='tests.test_iguana.test_redeem_script_input_sigchecks']
PASSED          [100%]##teamcity[testFinished timestamp='2025-12-03T16:22:51.404' duration='60' flowId='tests.test_iguana.test_redeem_script_input_sigchecks' name='tests.test_iguana.test_redeem_script_input_sigchecks']


============================== 20 passed in 0.74s ==============================
[234/545] Building CXX object src/pow/test/CMakeFiles/test-pow.dir/grasberg_tests.cpp.o
[235/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_bitcoin-qt_autogen/mocs_compilation.cpp.o
[236/545] Linking CXX executable src/pow/test/test-pow
[237/545] pow: testing daa_tests
[238/545] pow: testing eda_tests
[239/545] Running utility command for check-pow-daa_tests
[240/545] Running utility command for check-pow-eda_tests
[241/545] pow: testing grasberg_tests
[242/545] Running utility command for check-pow-grasberg_tests
[243/545] Test Bitcoin utilities...
[244/545] pow: testing aserti32d_tests
[245/545] Running utility command for check-pow-aserti32d_tests
[246/545] Running pow test suite
PASSED: pow test suite
[247/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
[248/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/guiutiltests.cpp.o
[249/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[250/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/optiontests.cpp.o
[251/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[252/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[253/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[254/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[255/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[256/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[257/545] Linking CXX executable src/qt/test/test_bitcoin-qt
[258/545] bitcoin-qt: testing test_bitcoin-qt
[259/545] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1