clboss/Bitcoin/WitnessField.cpp

24 lines
608 B
C++

#include"Bitcoin/WitnessField.hpp"
#include"Bitcoin/varint.hpp"
std::ostream& operator<<(std::ostream& os, Bitcoin::WitnessField const& v) {
os << Bitcoin::varint(v.witnesses.size());
for (auto const& w : v.witnesses) {
os << Bitcoin::varint(w.size());
for (auto b : w)
os.put(b);
}
return os;
}
std::istream& operator>>(std::istream& is, Bitcoin::WitnessField& v) {
auto len = std::uint64_t();
is >> Bitcoin::varint(len);
v.witnesses.resize(std::size_t(len));
for (auto& w : v.witnesses) {
is >> Bitcoin::varint(len);
w.resize(len);
for (auto& b : w)
b = is.get();
}
return is;
}