wallet: do not store signatures in the wallet cache

Saves some substantial space.
Also avoid calculating tx hashes we don't need.
This commit is contained in:
moneromooo-monero 2016-08-06 19:19:25 +01:00
parent 0263dd2d23
commit a47ceee83b
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
11 changed files with 95 additions and 31 deletions

View file

@ -180,7 +180,7 @@ namespace cryptonote
FIELD(extra)
END_SERIALIZE()
protected:
public:
transaction_prefix(){}
};

View file

@ -143,6 +143,16 @@ namespace boost
}
template <class Archive>
inline void serialize(Archive &a, cryptonote::transaction_prefix &x, const boost::serialization::version_type ver)
{
a & x.version;
a & x.unlock_time;
a & x.vin;
a & x.vout;
a & x.extra;
}
template <class Archive>
inline void serialize(Archive &a, cryptonote::transaction &x, const boost::serialization::version_type ver)
{

View file

@ -321,6 +321,11 @@ namespace cryptonote
return pub_key_field.pub_key;
}
//---------------------------------------------------------------
crypto::public_key get_tx_pub_key_from_extra(const transaction_prefix& tx_prefix)
{
return get_tx_pub_key_from_extra(tx_prefix.extra);
}
//---------------------------------------------------------------
crypto::public_key get_tx_pub_key_from_extra(const transaction& tx)
{
return get_tx_pub_key_from_extra(tx.extra);

View file

@ -89,6 +89,7 @@ namespace cryptonote
bool parse_tx_extra(const std::vector<uint8_t>& tx_extra, std::vector<tx_extra_field>& tx_extra_fields);
crypto::public_key get_tx_pub_key_from_extra(const std::vector<uint8_t>& tx_extra);
crypto::public_key get_tx_pub_key_from_extra(const transaction_prefix& tx);
crypto::public_key get_tx_pub_key_from_extra(const transaction& tx);
bool add_tx_pub_key_to_extra(transaction& tx, const crypto::public_key& tx_pub_key);
bool add_extra_nonce_to_tx_extra(std::vector<uint8_t>& tx_extra, const blobdata& extra_nonce);