mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-25 16:31:29 +02:00
refactor: VectorWriter without nVersion
The field is unused, so remove it. This is also required for future commits.
This commit is contained in:
parent
98b0acda0f
commit
fa0ed07941
@ -81,7 +81,7 @@ GCSFilter::GCSFilter(const Params& params, const ElementSet& elements)
|
|||||||
}
|
}
|
||||||
m_F = static_cast<uint64_t>(m_N) * static_cast<uint64_t>(m_params.m_M);
|
m_F = static_cast<uint64_t>(m_N) * static_cast<uint64_t>(m_params.m_M);
|
||||||
|
|
||||||
CVectorWriter stream(GCS_SER_VERSION, m_encoded, 0);
|
VectorWriter stream{m_encoded, 0};
|
||||||
|
|
||||||
WriteCompactSize(stream, m_N);
|
WriteCompactSize(stream, m_N);
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ GCSFilter::GCSFilter(const Params& params, const ElementSet& elements)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BitStreamWriter<CVectorWriter> bitwriter(stream);
|
BitStreamWriter bitwriter{stream};
|
||||||
|
|
||||||
uint64_t last_value = 0;
|
uint64_t last_value = 0;
|
||||||
for (uint64_t value : BuildHashedSet(elements)) {
|
for (uint64_t value : BuildHashedSet(elements)) {
|
||||||
|
@ -818,7 +818,7 @@ bool V1Transport::SetMessageToSend(CSerializedNetMsg& msg) noexcept
|
|||||||
|
|
||||||
// serialize header
|
// serialize header
|
||||||
m_header_to_send.clear();
|
m_header_to_send.clear();
|
||||||
CVectorWriter{INIT_PROTO_VERSION, m_header_to_send, 0, hdr};
|
VectorWriter{m_header_to_send, 0, hdr};
|
||||||
|
|
||||||
// update state
|
// update state
|
||||||
m_message_to_send = std::move(msg);
|
m_message_to_send = std::move(msg);
|
||||||
|
@ -12,14 +12,14 @@
|
|||||||
class CNetMsgMaker
|
class CNetMsgMaker
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit CNetMsgMaker(int nVersionIn) : nVersion(nVersionIn){}
|
explicit CNetMsgMaker(int /*unused*/) {}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
CSerializedNetMsg Make(int nFlags, std::string msg_type, Args&&... args) const
|
CSerializedNetMsg Make(int /*unused*/, std::string msg_type, Args&&... args) const
|
||||||
{
|
{
|
||||||
CSerializedNetMsg msg;
|
CSerializedNetMsg msg;
|
||||||
msg.m_type = std::move(msg_type);
|
msg.m_type = std::move(msg_type);
|
||||||
CVectorWriter{nFlags | nVersion, msg.data, 0, std::forward<Args>(args)...};
|
VectorWriter{msg.data, 0, std::forward<Args>(args)...};
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,9 +28,6 @@ public:
|
|||||||
{
|
{
|
||||||
return Make(0, std::move(msg_type), std::forward<Args>(args)...);
|
return Make(0, std::move(msg_type), std::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
|
||||||
const int nVersion;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BITCOIN_NETMESSAGEMAKER_H
|
#endif // BITCOIN_NETMESSAGEMAKER_H
|
||||||
|
@ -316,7 +316,7 @@ struct PSBTInput
|
|||||||
const auto& [leaf_hashes, origin] = leaf_origin;
|
const auto& [leaf_hashes, origin] = leaf_origin;
|
||||||
SerializeToVector(s, PSBT_IN_TAP_BIP32_DERIVATION, xonly);
|
SerializeToVector(s, PSBT_IN_TAP_BIP32_DERIVATION, xonly);
|
||||||
std::vector<unsigned char> value;
|
std::vector<unsigned char> value;
|
||||||
CVectorWriter s_value{s.GetVersion(), value, 0};
|
VectorWriter s_value{value, 0};
|
||||||
s_value << leaf_hashes;
|
s_value << leaf_hashes;
|
||||||
SerializeKeyOrigin(s_value, origin);
|
SerializeKeyOrigin(s_value, origin);
|
||||||
s << value;
|
s << value;
|
||||||
@ -757,7 +757,7 @@ struct PSBTOutput
|
|||||||
if (!m_tap_tree.empty()) {
|
if (!m_tap_tree.empty()) {
|
||||||
SerializeToVector(s, PSBT_OUT_TAP_TREE);
|
SerializeToVector(s, PSBT_OUT_TAP_TREE);
|
||||||
std::vector<unsigned char> value;
|
std::vector<unsigned char> value;
|
||||||
CVectorWriter s_value{s.GetVersion(), value, 0};
|
VectorWriter s_value{value, 0};
|
||||||
for (const auto& [depth, leaf_ver, script] : m_tap_tree) {
|
for (const auto& [depth, leaf_ver, script] : m_tap_tree) {
|
||||||
s_value << depth;
|
s_value << depth;
|
||||||
s_value << leaf_ver;
|
s_value << leaf_ver;
|
||||||
@ -771,7 +771,7 @@ struct PSBTOutput
|
|||||||
const auto& [leaf_hashes, origin] = leaf;
|
const auto& [leaf_hashes, origin] = leaf;
|
||||||
SerializeToVector(s, PSBT_OUT_TAP_BIP32_DERIVATION, xonly);
|
SerializeToVector(s, PSBT_OUT_TAP_BIP32_DERIVATION, xonly);
|
||||||
std::vector<unsigned char> value;
|
std::vector<unsigned char> value;
|
||||||
CVectorWriter s_value{s.GetVersion(), value, 0};
|
VectorWriter s_value{value, 0};
|
||||||
s_value << leaf_hashes;
|
s_value << leaf_hashes;
|
||||||
SerializeKeyOrigin(s_value, origin);
|
SerializeKeyOrigin(s_value, origin);
|
||||||
s << value;
|
s << value;
|
||||||
|
@ -110,7 +110,7 @@ std::optional<SignetTxs> SignetTxs::Create(const CBlock& block, const CScript& c
|
|||||||
uint256 signet_merkle = ComputeModifiedMerkleRoot(modified_cb, block);
|
uint256 signet_merkle = ComputeModifiedMerkleRoot(modified_cb, block);
|
||||||
|
|
||||||
std::vector<uint8_t> block_data;
|
std::vector<uint8_t> block_data;
|
||||||
CVectorWriter writer{INIT_PROTO_VERSION, block_data, 0};
|
VectorWriter writer{block_data, 0};
|
||||||
writer << block.nVersion;
|
writer << block.nVersion;
|
||||||
writer << block.hashPrevBlock;
|
writer << block.hashPrevBlock;
|
||||||
writer << signet_merkle;
|
writer << signet_merkle;
|
||||||
|
@ -49,17 +49,15 @@ inline void Xor(Span<std::byte> write, Span<const std::byte> key, size_t key_off
|
|||||||
*
|
*
|
||||||
* The referenced vector will grow as necessary
|
* The referenced vector will grow as necessary
|
||||||
*/
|
*/
|
||||||
class CVectorWriter
|
class VectorWriter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @param[in] nVersionIn Serialization Version (including any flags)
|
|
||||||
* @param[in] vchDataIn Referenced byte vector to overwrite/append
|
* @param[in] vchDataIn Referenced byte vector to overwrite/append
|
||||||
* @param[in] nPosIn Starting position. Vector index where writes should start. The vector will initially
|
* @param[in] nPosIn Starting position. Vector index where writes should start. The vector will initially
|
||||||
* grow as necessary to max(nPosIn, vec.size()). So to append, use vec.size().
|
* grow as necessary to max(nPosIn, vec.size()). So to append, use vec.size().
|
||||||
*/
|
*/
|
||||||
CVectorWriter(int nVersionIn, std::vector<unsigned char>& vchDataIn, size_t nPosIn) : nVersion{nVersionIn}, vchData{vchDataIn}, nPos{nPosIn}
|
VectorWriter(std::vector<unsigned char>& vchDataIn, size_t nPosIn) : vchData{vchDataIn}, nPos{nPosIn}
|
||||||
{
|
{
|
||||||
if(nPos > vchData.size())
|
if(nPos > vchData.size())
|
||||||
vchData.resize(nPos);
|
vchData.resize(nPos);
|
||||||
@ -69,7 +67,7 @@ class CVectorWriter
|
|||||||
* @param[in] args A list of items to serialize starting at nPosIn.
|
* @param[in] args A list of items to serialize starting at nPosIn.
|
||||||
*/
|
*/
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
CVectorWriter(int nVersionIn, std::vector<unsigned char>& vchDataIn, size_t nPosIn, Args&&... args) : CVectorWriter{nVersionIn, vchDataIn, nPosIn}
|
VectorWriter(std::vector<unsigned char>& vchDataIn, size_t nPosIn, Args&&... args) : VectorWriter{vchDataIn, nPosIn}
|
||||||
{
|
{
|
||||||
::SerializeMany(*this, std::forward<Args>(args)...);
|
::SerializeMany(*this, std::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
@ -85,19 +83,14 @@ class CVectorWriter
|
|||||||
}
|
}
|
||||||
nPos += src.size();
|
nPos += src.size();
|
||||||
}
|
}
|
||||||
template<typename T>
|
template <typename T>
|
||||||
CVectorWriter& operator<<(const T& obj)
|
VectorWriter& operator<<(const T& obj)
|
||||||
{
|
{
|
||||||
::Serialize(*this, obj);
|
::Serialize(*this, obj);
|
||||||
return (*this);
|
return (*this);
|
||||||
}
|
}
|
||||||
int GetVersion() const
|
|
||||||
{
|
|
||||||
return nVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const int nVersion;
|
|
||||||
std::vector<unsigned char>& vchData;
|
std::vector<unsigned char>& vchData;
|
||||||
size_t nPos;
|
size_t nPos;
|
||||||
};
|
};
|
||||||
|
@ -51,9 +51,9 @@ FUZZ_TARGET(golomb_rice)
|
|||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
elements.insert(ConsumeRandomLengthByteVector(fuzzed_data_provider, 16));
|
elements.insert(ConsumeRandomLengthByteVector(fuzzed_data_provider, 16));
|
||||||
}
|
}
|
||||||
CVectorWriter stream{0, golomb_rice_data, 0};
|
VectorWriter stream{golomb_rice_data, 0};
|
||||||
WriteCompactSize(stream, static_cast<uint32_t>(elements.size()));
|
WriteCompactSize(stream, static_cast<uint32_t>(elements.size()));
|
||||||
BitStreamWriter<CVectorWriter> bitwriter(stream);
|
BitStreamWriter bitwriter{stream};
|
||||||
if (!elements.empty()) {
|
if (!elements.empty()) {
|
||||||
uint64_t last_value = 0;
|
uint64_t last_value = 0;
|
||||||
for (const uint64_t value : BuildHashedSet(elements, static_cast<uint64_t>(elements.size()) * static_cast<uint64_t>(BASIC_FILTER_M))) {
|
for (const uint64_t value : BuildHashedSet(elements, static_cast<uint64_t>(elements.size()) * static_cast<uint64_t>(BASIC_FILTER_M))) {
|
||||||
|
@ -74,49 +74,49 @@ BOOST_AUTO_TEST_CASE(streams_vector_writer)
|
|||||||
// point should yield the same results, even if the first test grew the
|
// point should yield the same results, even if the first test grew the
|
||||||
// vector.
|
// vector.
|
||||||
|
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 0, a, b};
|
VectorWriter{vch, 0, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{1, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{1, 2}}));
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 0, a, b};
|
VectorWriter{vch, 0, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{1, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{1, 2}}));
|
||||||
vch.clear();
|
vch.clear();
|
||||||
|
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 2, a, b};
|
VectorWriter{vch, 2, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 1, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 1, 2}}));
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 2, a, b};
|
VectorWriter{vch, 2, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 1, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 1, 2}}));
|
||||||
vch.clear();
|
vch.clear();
|
||||||
|
|
||||||
vch.resize(5, 0);
|
vch.resize(5, 0);
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 2, a, b};
|
VectorWriter{vch, 2, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 1, 2, 0}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 1, 2, 0}}));
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 2, a, b};
|
VectorWriter{vch, 2, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 1, 2, 0}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 1, 2, 0}}));
|
||||||
vch.clear();
|
vch.clear();
|
||||||
|
|
||||||
vch.resize(4, 0);
|
vch.resize(4, 0);
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 3, a, b};
|
VectorWriter{vch, 3, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 0, 1, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 0, 1, 2}}));
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 3, a, b};
|
VectorWriter{vch, 3, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 0, 1, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 0, 1, 2}}));
|
||||||
vch.clear();
|
vch.clear();
|
||||||
|
|
||||||
vch.resize(4, 0);
|
vch.resize(4, 0);
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 4, a, b};
|
VectorWriter{vch, 4, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 0, 0, 1, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 0, 0, 1, 2}}));
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 4, a, b};
|
VectorWriter{vch, 4, a, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 0, 0, 1, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{0, 0, 0, 0, 1, 2}}));
|
||||||
vch.clear();
|
vch.clear();
|
||||||
|
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 0, bytes};
|
VectorWriter{vch, 0, bytes};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{3, 4, 5, 6}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{3, 4, 5, 6}}));
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 0, bytes};
|
VectorWriter{vch, 0, bytes};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{3, 4, 5, 6}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{3, 4, 5, 6}}));
|
||||||
vch.clear();
|
vch.clear();
|
||||||
|
|
||||||
vch.resize(4, 8);
|
vch.resize(4, 8);
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 2, a, bytes, b};
|
VectorWriter{vch, 2, a, bytes, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{8, 8, 1, 3, 4, 5, 6, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{8, 8, 1, 3, 4, 5, 6, 2}}));
|
||||||
CVectorWriter{INIT_PROTO_VERSION, vch, 2, a, bytes, b};
|
VectorWriter{vch, 2, a, bytes, b};
|
||||||
BOOST_CHECK((vch == std::vector<unsigned char>{{8, 8, 1, 3, 4, 5, 6, 2}}));
|
BOOST_CHECK((vch == std::vector<unsigned char>{{8, 8, 1, 3, 4, 5, 6, 2}}));
|
||||||
vch.clear();
|
vch.clear();
|
||||||
}
|
}
|
||||||
|
@ -752,7 +752,7 @@ bool malformed_descriptor(std::ios_base::failure e)
|
|||||||
BOOST_FIXTURE_TEST_CASE(wallet_descriptor_test, BasicTestingSetup)
|
BOOST_FIXTURE_TEST_CASE(wallet_descriptor_test, BasicTestingSetup)
|
||||||
{
|
{
|
||||||
std::vector<unsigned char> malformed_record;
|
std::vector<unsigned char> malformed_record;
|
||||||
CVectorWriter vw{0, malformed_record, 0};
|
VectorWriter vw{malformed_record, 0};
|
||||||
vw << std::string("notadescriptor");
|
vw << std::string("notadescriptor");
|
||||||
vw << uint64_t{0};
|
vw << uint64_t{0};
|
||||||
vw << int32_t{0};
|
vw << int32_t{0};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user