mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 12:32:48 +01:00
97b7ecb256
e57980b4738c10344baf136de3e050a3cb958ca5 [mempool] Remove NotifyEntryAdded and NotifyEntryRemoved callbacks (John Newbery) 2dd561f36124972d2364f941de9c3417c65f05b6 [validation] Remove pool member from ConnectTrace (John Newbery) 969b65f3f527631ede1a31c7855151e5c5d91f8f [validation] Remove NotifyEntryRemoved callback from ConnectTrace (John Newbery) 5613f9842b4000fed088b8cf7b99674c328d15e1 [validation] Remove conflictedTxs from PerBlockConnectTrace (John Newbery) cdb893443cc16edf974f099b8485e04b3db1b1d7 [validation interface] Remove vtxConflicted from BlockConnected (John Newbery) 1168394d759b13af68acec6d5bfa04aaa24561f8 [wallet] Notify conflicted transactions in TransactionRemovedFromMempool (John Newbery) Pull request description: These boost signals were added in #9371, before we had a `TransactionRemovedFromMempool` method in the validation interface. The `NotifyEntryAdded` callback was used by validation to build a vector of conflicted transactions when connecting a block, which the wallet was notified of in the `BlockConnected` CValidationInterface callback. Now that we have a `TransactionRemovedFromMempool` callback, we can fire that signal directly from the mempool for conflicted transactions. Note that #9371 was implemented to ensure `-walletnotify` events were fired for these conflicted transaction. We inadvertently stopped sending these notifications in #16624 (Sep 2019 commit 7e89994). We should probably fix that, but in a different PR. ACKs for top commit: jonatack: Re-ACK e57980b ryanofsky: Code review ACK e57980b4738c10344baf136de3e050a3cb958ca5, no code changes since previous review, but helpful new code comments have been added and the PR description is now more clear about where the old code came from Tree-SHA512: 3bdbaf1ef2731e788462d4756e69c42a1efdcf168691ce1bbfdaa4b7b55ac3c5b1fd4ab7b90bcdec653703600501b4224d252cfc086aef28f9ce0da3b0563a69
107 lines
3.6 KiB
Bash
Executable File
107 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2018 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
#
|
|
# Check for duplicate includes.
|
|
# Guard against accidental introduction of new Boost dependencies.
|
|
# Check includes: Check for duplicate includes. Enforce bracket syntax includes.
|
|
|
|
export LC_ALL=C
|
|
IGNORE_REGEXP="/(dashbls|immer|leveldb|secp256k1|univalue|crc32c)/"
|
|
|
|
# cd to root folder of git repo for git ls-files to work properly
|
|
cd "$(dirname $0)/../.." || exit 1
|
|
|
|
filter_suffix() {
|
|
git ls-files | grep -E "^src/.*\.${1}"'$' | grep -Ev "${IGNORE_REGEXP}"
|
|
}
|
|
|
|
EXIT_CODE=0
|
|
|
|
for HEADER_FILE in $(filter_suffix h); do
|
|
DUPLICATE_INCLUDES_IN_HEADER_FILE=$(grep -E "^#include " < "${HEADER_FILE}" | sort | uniq -d)
|
|
if [[ ${DUPLICATE_INCLUDES_IN_HEADER_FILE} != "" ]]; then
|
|
echo "Duplicate include(s) in ${HEADER_FILE}:"
|
|
echo "${DUPLICATE_INCLUDES_IN_HEADER_FILE}"
|
|
echo
|
|
EXIT_CODE=1
|
|
fi
|
|
done
|
|
|
|
for CPP_FILE in $(filter_suffix cpp); do
|
|
DUPLICATE_INCLUDES_IN_CPP_FILE=$(grep -E "^#include " < "${CPP_FILE}" | sort | uniq -d)
|
|
if [[ ${DUPLICATE_INCLUDES_IN_CPP_FILE} != "" ]]; then
|
|
echo "Duplicate include(s) in ${CPP_FILE}:"
|
|
echo "${DUPLICATE_INCLUDES_IN_CPP_FILE}"
|
|
echo
|
|
EXIT_CODE=1
|
|
fi
|
|
done
|
|
|
|
INCLUDED_CPP_FILES=$(git grep -E "^#include [<\"][^>\"]+\.cpp[>\"]" -- "*.cpp" "*.h")
|
|
if [[ ${INCLUDED_CPP_FILES} != "" ]]; then
|
|
echo "The following files #include .cpp files:"
|
|
echo "${INCLUDED_CPP_FILES}"
|
|
echo
|
|
EXIT_CODE=1
|
|
fi
|
|
|
|
EXPECTED_BOOST_INCLUDES=(
|
|
boost/algorithm/string/replace.hpp
|
|
boost/date_time/posix_time/posix_time.hpp
|
|
boost/filesystem.hpp
|
|
boost/filesystem/fstream.hpp
|
|
boost/function.hpp
|
|
boost/lexical_cast.hpp
|
|
boost/multi_index/hashed_index.hpp
|
|
boost/multi_index/ordered_index.hpp
|
|
boost/multi_index/sequenced_index.hpp
|
|
boost/multi_index_container.hpp
|
|
boost/optional.hpp
|
|
boost/pool/pool_alloc.hpp
|
|
boost/preprocessor/cat.hpp
|
|
boost/preprocessor/stringize.hpp
|
|
boost/signals2/connection.hpp
|
|
boost/signals2/optional_last_value.hpp
|
|
boost/signals2/signal.hpp
|
|
boost/test/unit_test.hpp
|
|
)
|
|
|
|
for BOOST_INCLUDE in $(git grep '^#include <boost/' -- "*.cpp" "*.h" | grep -vE "src/(immer)/" | cut -f2 -d: | cut -f2 -d'<' | cut -f1 -d'>' | sort -u); do
|
|
IS_EXPECTED_INCLUDE=0
|
|
for EXPECTED_BOOST_INCLUDE in "${EXPECTED_BOOST_INCLUDES[@]}"; do
|
|
if [[ "${BOOST_INCLUDE}" == "${EXPECTED_BOOST_INCLUDE}" ]]; then
|
|
IS_EXPECTED_INCLUDE=1
|
|
break
|
|
fi
|
|
done
|
|
if [[ ${IS_EXPECTED_INCLUDE} == 0 ]]; then
|
|
EXIT_CODE=1
|
|
echo "A new Boost dependency in the form of \"${BOOST_INCLUDE}\" appears to have been introduced:"
|
|
git grep "${BOOST_INCLUDE}" -- "*.cpp" "*.h"
|
|
echo
|
|
fi
|
|
done
|
|
|
|
for EXPECTED_BOOST_INCLUDE in "${EXPECTED_BOOST_INCLUDES[@]}"; do
|
|
if ! git grep -q "^#include <${EXPECTED_BOOST_INCLUDE}>" -- "*.cpp" "*.h"; then
|
|
echo "Good job! The Boost dependency \"${EXPECTED_BOOST_INCLUDE}\" is no longer used."
|
|
echo "Please remove it from EXPECTED_BOOST_INCLUDES in $0"
|
|
echo "to make sure this dependency is not accidentally reintroduced."
|
|
echo
|
|
EXIT_CODE=1
|
|
fi
|
|
done
|
|
|
|
QUOTE_SYNTAX_INCLUDES=$(git grep '^#include "' -- "*.cpp" "*.h" | grep -Ev "${IGNORE_REGEXP}")
|
|
if [[ ${QUOTE_SYNTAX_INCLUDES} != "" ]]; then
|
|
echo "Please use bracket syntax includes (\"#include <foo.h>\") instead of quote syntax includes:"
|
|
echo "${QUOTE_SYNTAX_INCLUDES}"
|
|
echo
|
|
EXIT_CODE=1
|
|
fi
|
|
|
|
exit ${EXIT_CODE}
|