34 #include <boost/serialization/vector.hpp>
35 #include <boost/serialization/utility.hpp>
36 #include <boost/serialization/variant.hpp>
37 #include <boost/serialization/set.hpp>
38 #include <boost/serialization/map.hpp>
39 #include <boost/serialization/is_bitwise_serializable.hpp>
40 #include <boost/archive/binary_iarchive.hpp>
41 #include <boost/archive/portable_binary_iarchive.hpp>
42 #include <boost/archive/portable_binary_oarchive.hpp>
57 template <
class Archive>
62 template <
class Archive>
67 template <
class Archive>
72 template <
class Archive>
78 template <
class Archive>
83 template <
class Archive>
88 template <
class Archive>
94 template <
class Archive>
102 template <
class Archive>
108 template <
class Archive>
114 template <
class Archive>
120 template <
class Archive>
128 template <
class Archive>
137 template <
class Archive>
145 template <
class Archive>
153 template <
class Archive>
163 template <
class Archive>
183 template <
class Archive>
196 template <
class Archive>
199 a &
reinterpret_cast<char (&)[sizeof(
rct::key)]
>(x);
202 template <
class Archive>
209 template <
class Archive>
216 template <
class Archive>
233 template <
class Archive>
241 template <
class Archive>
249 template <
class Archive>
256 template <
class Archive>
265 template <
class Archive>
271 template <
class Archive>
272 inline typename std::enable_if<Archive::is_loading::value, void>::type
serializeOutPk(Archive &
a,
rct::ctkeyV &outPk_,
const boost::serialization::version_type ver)
276 outPk_.resize(outPk.size());
277 for (
size_t n = 0; n < outPk_.size(); ++n)
280 outPk_[n].mask = outPk[n];
284 template <
class Archive>
285 inline typename std::enable_if<Archive::is_saving::value, void>::type
serializeOutPk(Archive &
a,
rct::ctkeyV &outPk_,
const boost::serialization::version_type ver)
288 for (
size_t n = 0; n < outPk_.size(); ++n)
289 outPk[n] = outPk_[n].mask;
293 template <
class Archive>
300 throw boost::archive::archive_exception(boost::archive::archive_exception::other_exception,
"Unsupported rct type");
310 template <
class Archive>
321 template <
class Archive>
328 throw boost::archive::archive_exception(boost::archive::archive_exception::other_exception,
"Unsupported rct type");
345 template <
class Archive>
352 template <
class Archive>
355 if (Archive::is_loading::value)
370 uint64_t v = x_.convert_to<uint64_t>();
373 x_ = x & 0xffffffffffffffff;
374 v = x_.convert_to<uint64_t>();
Definition: cryptonote_basic.h:171
std::vector< uint8_t > extra
Definition: cryptonote_basic.h:181
std::vector< txin_v > vin
Definition: cryptonote_basic.h:178
size_t version
Definition: cryptonote_basic.h:175
std::vector< tx_out > vout
Definition: cryptonote_basic.h:179
uint64_t unlock_time
Definition: cryptonote_basic.h:176
Definition: cryptonote_basic.h:205
rct::rctSig rct_signatures
Definition: cryptonote_basic.h:213
std::vector< std::vector< crypto::signature > > signatures
Definition: cryptonote_basic.h:212
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:127
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:272
Definition: unordered_containers_boost_serialization.h:39
POD_CLASS signature
Definition: crypto.h:108
epee::mlocked< tools::scrubbed< ec_scalar > > secret_key
Definition: crypto.h:82
POD_CLASS hash8
Definition: hash.h:53
POD_CLASS key_derivation
Definition: crypto.h:98
POD_CLASS public_key
Definition: crypto.h:76
POD_CLASS key_image
Definition: crypto.h:102
POD_CLASS hash
Definition: hash.h:50
boost::multiprecision::uint128_t difficulty_type
Definition: difficulty.h:43
std::vector< key > keyV
Definition: rctTypes.h:88
@ RCTTypeFull
Definition: rctTypes.h:230
@ RCTTypeSimple
Definition: rctTypes.h:231
@ RCTTypeBulletproof2
Definition: rctTypes.h:233
@ RCTTypeBulletproof
Definition: rctTypes.h:232
@ RCTTypeNull
Definition: rctTypes.h:229
std::vector< ctkey > ctkeyV
Definition: rctTypes.h:100
key identity()
Definition: rctOps.h:73
Definition: binary_utils.h:37
Definition: cryptonote_basic.h:410
Definition: cryptonote_basic.h:144
txout_target_v target
Definition: cryptonote_basic.h:146
uint64_t amount
Definition: cryptonote_basic.h:145
Definition: cryptonote_basic.h:88
size_t height
Definition: cryptonote_basic.h:89
Definition: cryptonote_basic.h:125
crypto::key_image k_image
Definition: cryptonote_basic.h:128
std::vector< uint64_t > key_offsets
Definition: cryptonote_basic.h:127
uint64_t amount
Definition: cryptonote_basic.h:126
Definition: cryptonote_basic.h:97
crypto::hash prev
Definition: cryptonote_basic.h:98
std::vector< uint8_t > sigset
Definition: cryptonote_basic.h:100
size_t prevout
Definition: cryptonote_basic.h:99
Definition: cryptonote_basic.h:110
size_t prevout
Definition: cryptonote_basic.h:112
std::vector< uint8_t > sigset
Definition: cryptonote_basic.h:114
txout_to_script script
Definition: cryptonote_basic.h:113
crypto::hash prev
Definition: cryptonote_basic.h:111
Definition: cryptonote_basic.h:78
crypto::public_key key
Definition: cryptonote_basic.h:81
Definition: cryptonote_basic.h:62
std::vector< crypto::public_key > keys
Definition: cryptonote_basic.h:63
std::vector< uint8_t > script
Definition: cryptonote_basic.h:64
Definition: cryptonote_basic.h:73
crypto::hash hash
Definition: cryptonote_basic.h:74
Definition: rctTypes.h:180
rct::key T2
Definition: rctTypes.h:182
rct::key t
Definition: rctTypes.h:185
rct::key T1
Definition: rctTypes.h:182
rct::key S
Definition: rctTypes.h:182
rct::key a
Definition: rctTypes.h:185
rct::keyV L
Definition: rctTypes.h:184
rct::key taux
Definition: rctTypes.h:183
rct::keyV V
Definition: rctTypes.h:181
rct::keyV R
Definition: rctTypes.h:184
rct::key b
Definition: rctTypes.h:185
rct::key A
Definition: rctTypes.h:182
rct::key mu
Definition: rctTypes.h:183
Definition: rctTypes.h:236
int bp_version
Definition: rctTypes.h:238
RangeProofType range_proof_type
Definition: rctTypes.h:237
Definition: rctTypes.h:139
key64 s1
Definition: rctTypes.h:141
key ee
Definition: rctTypes.h:142
key64 s0
Definition: rctTypes.h:140
Definition: rctTypes.h:96
key dest
Definition: rctTypes.h:97
key mask
Definition: rctTypes.h:98
Definition: rctTypes.h:124
key amount
Definition: rctTypes.h:126
key mask
Definition: rctTypes.h:125
Definition: rctTypes.h:78
Definition: rctTypes.h:152
keyM ss
Definition: rctTypes.h:153
key cc
Definition: rctTypes.h:154
Definition: rctTypes.h:104
key ki
Definition: rctTypes.h:108
key L
Definition: rctTypes.h:106
key k
Definition: rctTypes.h:105
key R
Definition: rctTypes.h:107
Definition: rctTypes.h:111
std::vector< key > c
Definition: rctTypes.h:112
Definition: rctTypes.h:169
boroSig asig
Definition: rctTypes.h:170
key64 Ci
Definition: rctTypes.h:171
Definition: rctTypes.h:240
etn_amount txnFee
Definition: rctTypes.h:248
std::vector< ecdhTuple > ecdhInfo
Definition: rctTypes.h:246
uint8_t type
Definition: rctTypes.h:241
keyV pseudoOuts
Definition: rctTypes.h:245
ctkeyV outPk
Definition: rctTypes.h:247
Definition: rctTypes.h:318
keyV pseudoOuts
Definition: rctTypes.h:322
std::vector< mgSig > MGs
Definition: rctTypes.h:321
std::vector< rangeSig > rangeSigs
Definition: rctTypes.h:319
std::vector< Bulletproof > bulletproofs
Definition: rctTypes.h:320
Definition: rctTypes.h:436
rctSigPrunable p
Definition: rctTypes.h:437