2020-09-22 11:18:33 +08:00
|
|
|
#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) {
|
2020-11-17 17:19:08 +08:00
|
|
|
auto len = std::uint64_t();
|
2020-09-22 11:18:33 +08:00
|
|
|
is >> Bitcoin::varint(len);
|
2020-11-17 17:19:08 +08:00
|
|
|
v.witnesses.resize(std::size_t(len));
|
2020-09-22 11:18:33 +08:00
|
|
|
for (auto& w : v.witnesses) {
|
|
|
|
|
is >> Bitcoin::varint(len);
|
|
|
|
|
w.resize(len);
|
|
|
|
|
for (auto& b : w)
|
|
|
|
|
b = is.get();
|
|
|
|
|
}
|
|
|
|
|
return is;
|
|
|
|
|
}
|