33 #include <boost/serialization/vector.hpp>
34 #include <boost/serialization/utility.hpp>
35 #include <boost/serialization/variant.hpp>
36 #include <boost/serialization/set.hpp>
37 #include <boost/serialization/map.hpp>
38 #include <boost/serialization/is_bitwise_serializable.hpp>
39 #include <boost/archive/portable_binary_iarchive.hpp>
40 #include <boost/archive/portable_binary_oarchive.hpp>
54 template <
class Archive>
59 template <
class Archive>
64 template <
class Archive>
69 template <
class Archive>
75 template <
class Archive>
80 template <
class Archive>
85 template <
class Archive>
91 template <
class Archive>
99 template <
class Archive>
105 template <
class Archive>
111 template <
class Archive>
117 template <
class Archive>
125 template <
class Archive>
134 template <
class Archive>
142 template <
class Archive>
150 template <
class Archive>
160 template <
class Archive>
180 template <
class Archive>
193 template <
class Archive>
196 a &
reinterpret_cast<char (&)[sizeof(
rct::key)]
>(x);
199 template <
class Archive>
206 template <
class Archive>
213 template <
class Archive>
230 template <
class Archive>
238 template <
class Archive>
246 template <
class Archive>
255 template <
class Archive>
262 template <
class Archive>
271 template <
class Archive>
280 template <
class Archive>
281 inline typename std::enable_if<Archive::is_loading::value, void>::type
serializeOutPk(Archive &
a,
rct::ctkeyV &outPk_,
const boost::serialization::version_type ver)
285 outPk_.resize(outPk.size());
286 for (
size_t n = 0; n < outPk_.size(); ++n)
289 outPk_[n].mask = outPk[n];
293 template <
class Archive>
294 inline typename std::enable_if<Archive::is_saving::value, void>::type
serializeOutPk(Archive &
a,
rct::ctkeyV &outPk_,
const boost::serialization::version_type ver)
297 for (
size_t n = 0; n < outPk_.size(); ++n)
298 outPk[n] = outPk_[n].mask;
302 template <
class Archive>
309 throw boost::archive::archive_exception(boost::archive::archive_exception::other_exception,
"Unsupported rct type");
319 template <
class Archive>
332 template <
class Archive>
339 throw boost::archive::archive_exception(boost::archive::archive_exception::other_exception,
"Unsupported rct type");
358 template <
class Archive>
365 template <
class Archive>
368 if (Archive::is_loading::value)
383 uint64_t v = x_.convert_to<uint64_t>();
386 x_ = x & 0xffffffffffffffff;
387 v = x_.convert_to<uint64_t>();
Definition: cryptonote_basic.h:160
std::vector< uint8_t > extra
Definition: cryptonote_basic.h:170
std::vector< txin_v > vin
Definition: cryptonote_basic.h:167
size_t version
Definition: cryptonote_basic.h:164
std::vector< tx_out > vout
Definition: cryptonote_basic.h:168
uint64_t unlock_time
Definition: cryptonote_basic.h:165
Definition: cryptonote_basic.h:194
rct::rctSig rct_signatures
Definition: cryptonote_basic.h:203
std::vector< std::vector< crypto::signature > > signatures
Definition: cryptonote_basic.h:202
string a
Definition: MakeCryptoOps.py:15
int b
Definition: base.py:1
void serialize(Archive &a, std::unordered_map< h_key, hval > &x, const boost::serialization::version_type ver)
Definition: unordered_containers_boost_serialization.h:126
std::enable_if< Archive::is_loading::value, void >::type serializeOutPk(Archive &a, rct::ctkeyV &outPk_, const boost::serialization::version_type ver)
Definition: cryptonote_boost_serialization.h:281
Definition: unordered_containers_boost_serialization.h:38
POD_CLASS signature
Definition: crypto.h:93
epee::mlocked< tools::scrubbed< ec_scalar > > secret_key
Definition: crypto.h:67
POD_CLASS hash8
Definition: hash.h:51
POD_CLASS key_derivation
Definition: crypto.h:83
POD_CLASS public_key
Definition: crypto.h:61
POD_CLASS key_image
Definition: crypto.h:87
POD_CLASS hash
Definition: hash.h:48
boost::multiprecision::uint128_t difficulty_type
Definition: difficulty.h:41
Definition: bulletproofs.cc:64
std::vector< key > keyV
Definition: rctTypes.h:89
@ RCTTypeFull
Definition: rctTypes.h:255
@ RCTTypeSimple
Definition: rctTypes.h:256
@ RCTTypeCLSAG
Definition: rctTypes.h:259
@ RCTTypeBulletproof2
Definition: rctTypes.h:258
@ RCTTypeBulletproof
Definition: rctTypes.h:257
@ RCTTypeNull
Definition: rctTypes.h:254
std::vector< ctkey > ctkeyV
Definition: rctTypes.h:101
key identity()
Definition: rctOps.h:73
Definition: binary_utils.h:36
BOOST_CLASS_VERSION(nodetool::peerlist_types, nodetool::CURRENT_PEERLIST_STORAGE_ARCHIVE_VER)
Definition: cryptonote_basic.h:464
Definition: cryptonote_basic.h:143
txout_target_v target
Definition: cryptonote_basic.h:145
uint64_t amount
Definition: cryptonote_basic.h:144
Definition: cryptonote_basic.h:87
size_t height
Definition: cryptonote_basic.h:88
Definition: cryptonote_basic.h:124
crypto::key_image k_image
Definition: cryptonote_basic.h:127
std::vector< uint64_t > key_offsets
Definition: cryptonote_basic.h:126
uint64_t amount
Definition: cryptonote_basic.h:125
Definition: cryptonote_basic.h:96
crypto::hash prev
Definition: cryptonote_basic.h:97
std::vector< uint8_t > sigset
Definition: cryptonote_basic.h:99
size_t prevout
Definition: cryptonote_basic.h:98
Definition: cryptonote_basic.h:109
size_t prevout
Definition: cryptonote_basic.h:111
std::vector< uint8_t > sigset
Definition: cryptonote_basic.h:113
txout_to_script script
Definition: cryptonote_basic.h:112
crypto::hash prev
Definition: cryptonote_basic.h:110
Definition: cryptonote_basic.h:77
crypto::public_key key
Definition: cryptonote_basic.h:80
Definition: cryptonote_basic.h:61
std::vector< crypto::public_key > keys
Definition: cryptonote_basic.h:62
std::vector< uint8_t > script
Definition: cryptonote_basic.h:63
Definition: cryptonote_basic.h:72
crypto::hash hash
Definition: cryptonote_basic.h:73
Definition: rctTypes.h:205
rct::key T2
Definition: rctTypes.h:207
rct::key t
Definition: rctTypes.h:210
rct::key T1
Definition: rctTypes.h:207
rct::key S
Definition: rctTypes.h:207
rct::key a
Definition: rctTypes.h:210
rct::keyV L
Definition: rctTypes.h:209
rct::key taux
Definition: rctTypes.h:208
rct::keyV V
Definition: rctTypes.h:206
rct::keyV R
Definition: rctTypes.h:209
rct::key b
Definition: rctTypes.h:210
rct::key A
Definition: rctTypes.h:207
rct::key mu
Definition: rctTypes.h:208
Definition: rctTypes.h:262
int bp_version
Definition: rctTypes.h:264
RangeProofType range_proof_type
Definition: rctTypes.h:263
Definition: rctTypes.h:147
key64 s1
Definition: rctTypes.h:149
key ee
Definition: rctTypes.h:150
key64 s0
Definition: rctTypes.h:148
Definition: rctTypes.h:173
key D
Definition: rctTypes.h:178
key c1
Definition: rctTypes.h:175
keyV s
Definition: rctTypes.h:174
Definition: rctTypes.h:97
key dest
Definition: rctTypes.h:98
key mask
Definition: rctTypes.h:99
Definition: rctTypes.h:132
key amount
Definition: rctTypes.h:134
key mask
Definition: rctTypes.h:133
Definition: rctTypes.h:79
Definition: rctTypes.h:160
keyM ss
Definition: rctTypes.h:161
key cc
Definition: rctTypes.h:162
Definition: rctTypes.h:105
key ki
Definition: rctTypes.h:109
key L
Definition: rctTypes.h:107
key k
Definition: rctTypes.h:106
key R
Definition: rctTypes.h:108
Definition: rctTypes.h:114
std::vector< key > c
Definition: rctTypes.h:115
std::vector< key > mu_p
Definition: rctTypes.h:116
Definition: rctTypes.h:194
boroSig asig
Definition: rctTypes.h:195
key64 Ci
Definition: rctTypes.h:196
Definition: rctTypes.h:272
xmr_amount txnFee
Definition: rctTypes.h:280
std::vector< ecdhTuple > ecdhInfo
Definition: rctTypes.h:278
uint8_t type
Definition: rctTypes.h:273
keyV pseudoOuts
Definition: rctTypes.h:277
ctkeyV outPk
Definition: rctTypes.h:279
Definition: rctTypes.h:360
std::vector< clsag > CLSAGs
Definition: rctTypes.h:364
keyV pseudoOuts
Definition: rctTypes.h:365
std::vector< mgSig > MGs
Definition: rctTypes.h:363
std::vector< rangeSig > rangeSigs
Definition: rctTypes.h:361
std::vector< Bulletproof > bulletproofs
Definition: rctTypes.h:362
Definition: rctTypes.h:536
rctSigPrunable p
Definition: rctTypes.h:537