diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 642898827..1b11b6349 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -283,6 +283,20 @@ public: libzcash::SaplingIncomingViewingKey ivk; boost::optional nullifier; + ADD_SERIALIZE_METHODS; + + template + inline void SerializationOp(Stream& s, Operation ser_action) { + int nVersion = s.GetVersion(); + if (!(s.GetType() & SER_GETHASH)) { + READWRITE(nVersion); + } + READWRITE(ivk); + READWRITE(nullifier); + READWRITE(witnesses); + READWRITE(witnessHeight); + } + friend bool operator==(const SaplingNoteData& a, const SaplingNoteData& b) { return (a.ivk == b.ivk && a.nullifier == b.nullifier && a.witnessHeight == b.witnessHeight); } @@ -509,8 +523,10 @@ public: READWRITE(nTimeReceived); READWRITE(fFromMe); READWRITE(fSpent); - // TODO: - //READWRITE(mapSaplingNoteData); + + if (fOverwintered && nVersion >= SAPLING_TX_VERSION) { + READWRITE(mapSaplingNoteData); + } if (ser_action.ForRead()) {