GetSerializeSize changes in Zcash-specific code
This commit is contained in:
@@ -99,7 +99,7 @@ public:
|
|||||||
|
|
||||||
template<typename K> void Seek(const K& key) {
|
template<typename K> void Seek(const K& key) {
|
||||||
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
|
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
|
||||||
ssKey.reserve(ssKey.GetSerializeSize(key));
|
ssKey.reserve(GetSerializeSize(ssKey, key));
|
||||||
ssKey << key;
|
ssKey << key;
|
||||||
leveldb::Slice slKey(&ssKey[0], ssKey.size());
|
leveldb::Slice slKey(&ssKey[0], ssKey.size());
|
||||||
piter->Seek(slKey);
|
piter->Seek(slKey);
|
||||||
|
|||||||
@@ -575,7 +575,7 @@ bool AddOrphanTx(const CTransaction& tx, NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(c
|
|||||||
// have been mined or received.
|
// have been mined or received.
|
||||||
// 10,000 orphans, each of which is at most 5,000 bytes big is
|
// 10,000 orphans, each of which is at most 5,000 bytes big is
|
||||||
// at most 500 megabytes of orphans:
|
// at most 500 megabytes of orphans:
|
||||||
unsigned int sz = tx.GetSerializeSize(SER_NETWORK, tx.nVersion);
|
unsigned int sz = GetSerializeSize(tx, SER_NETWORK, tx.nVersion);
|
||||||
if (sz > 5000)
|
if (sz > 5000)
|
||||||
{
|
{
|
||||||
LogPrint("mempool", "ignoring large orphan tx (size: %u, hash: %s)\n", sz, hash.ToString());
|
LogPrint("mempool", "ignoring large orphan tx (size: %u, hash: %s)\n", sz, hash.ToString());
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ bool PaymentDisclosureDB::Put(const PaymentDisclosureKey& key, const PaymentDisc
|
|||||||
std::lock_guard<std::mutex> guard(lock_);
|
std::lock_guard<std::mutex> guard(lock_);
|
||||||
|
|
||||||
CDataStream ssValue(SER_DISK, CLIENT_VERSION);
|
CDataStream ssValue(SER_DISK, CLIENT_VERSION);
|
||||||
ssValue.reserve(ssValue.GetSerializeSize(info));
|
ssValue.reserve(GetSerializeSize(ssValue, info));
|
||||||
ssValue << info;
|
ssValue << info;
|
||||||
leveldb::Slice slice(&ssValue[0], ssValue.size());
|
leveldb::Slice slice(&ssValue[0], ssValue.size());
|
||||||
|
|
||||||
|
|||||||
@@ -506,14 +506,12 @@ template<typename Stream, typename T, typename A> inline void Unserialize(Stream
|
|||||||
/**
|
/**
|
||||||
* optional
|
* optional
|
||||||
*/
|
*/
|
||||||
template<typename T> unsigned int GetSerializeSize(const boost::optional<T> &item, int nType, int nVersion);
|
|
||||||
template<typename Stream, typename T> void Serialize(Stream& os, const boost::optional<T>& item, int nType, int nVersion);
|
template<typename Stream, typename T> void Serialize(Stream& os, const boost::optional<T>& item, int nType, int nVersion);
|
||||||
template<typename Stream, typename T> void Unserialize(Stream& is, boost::optional<T>& item, int nType, int nVersion);
|
template<typename Stream, typename T> void Unserialize(Stream& is, boost::optional<T>& item, int nType, int nVersion);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* array
|
* array
|
||||||
*/
|
*/
|
||||||
template<typename T, std::size_t N> unsigned int GetSerializeSize(const boost::array<T, N> &item, int nType, int nVersion);
|
|
||||||
template<typename Stream, typename T, std::size_t N> void Serialize(Stream& os, const boost::array<T, N>& item, int nType, int nVersion);
|
template<typename Stream, typename T, std::size_t N> void Serialize(Stream& os, const boost::array<T, N>& item, int nType, int nVersion);
|
||||||
template<typename Stream, typename T, std::size_t N> void Unserialize(Stream& is, boost::array<T, N>& item, int nType, int nVersion);
|
template<typename Stream, typename T, std::size_t N> void Unserialize(Stream& is, boost::array<T, N>& item, int nType, int nVersion);
|
||||||
|
|
||||||
@@ -538,7 +536,6 @@ template<typename Stream, typename K, typename Pred, typename A> void Unserializ
|
|||||||
/**
|
/**
|
||||||
* list
|
* list
|
||||||
*/
|
*/
|
||||||
template<typename T, typename A> unsigned int GetSerializeSize(const std::list<T, A>& m, int nType, int nVersion);
|
|
||||||
template<typename Stream, typename T, typename A> void Serialize(Stream& os, const std::list<T, A>& m, int nType, int nVersion);
|
template<typename Stream, typename T, typename A> void Serialize(Stream& os, const std::list<T, A>& m, int nType, int nVersion);
|
||||||
template<typename Stream, typename T, typename A> void Unserialize(Stream& is, std::list<T, A>& m, int nType, int nVersion);
|
template<typename Stream, typename T, typename A> void Unserialize(Stream& is, std::list<T, A>& m, int nType, int nVersion);
|
||||||
|
|
||||||
@@ -729,16 +726,6 @@ inline void Unserialize(Stream& is, std::vector<T, A>& v, int nType, int nVersio
|
|||||||
/**
|
/**
|
||||||
* optional
|
* optional
|
||||||
*/
|
*/
|
||||||
template<typename T>
|
|
||||||
unsigned int GetSerializeSize(const boost::optional<T> &item, int nType, int nVersion)
|
|
||||||
{
|
|
||||||
if (item) {
|
|
||||||
return 1 + GetSerializeSize(*item, nType, nVersion);
|
|
||||||
} else {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename Stream, typename T>
|
template<typename Stream, typename T>
|
||||||
void Serialize(Stream& os, const boost::optional<T>& item, int nType, int nVersion)
|
void Serialize(Stream& os, const boost::optional<T>& item, int nType, int nVersion)
|
||||||
{
|
{
|
||||||
@@ -776,16 +763,6 @@ void Unserialize(Stream& is, boost::optional<T>& item, int nType, int nVersion)
|
|||||||
/**
|
/**
|
||||||
* array
|
* array
|
||||||
*/
|
*/
|
||||||
template<typename T, std::size_t N>
|
|
||||||
unsigned int GetSerializeSize(const boost::array<T, N> &item, int nType, int nVersion)
|
|
||||||
{
|
|
||||||
unsigned int size = 0;
|
|
||||||
for (size_t i = 0; i < N; i++) {
|
|
||||||
size += GetSerializeSize(item[0], nType, nVersion);
|
|
||||||
}
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename Stream, typename T, std::size_t N>
|
template<typename Stream, typename T, std::size_t N>
|
||||||
void Serialize(Stream& os, const boost::array<T, N>& item, int nType, int nVersion)
|
void Serialize(Stream& os, const boost::array<T, N>& item, int nType, int nVersion)
|
||||||
{
|
{
|
||||||
@@ -879,15 +856,6 @@ void Unserialize(Stream& is, std::set<K, Pred, A>& m, int nType, int nVersion)
|
|||||||
/**
|
/**
|
||||||
* list
|
* list
|
||||||
*/
|
*/
|
||||||
template<typename T, typename A>
|
|
||||||
unsigned int GetSerializeSize(const std::list<T, A>& l, int nType, int nVersion)
|
|
||||||
{
|
|
||||||
unsigned int nSize = GetSizeOfCompactSize(l.size());
|
|
||||||
for (typename std::list<T, A>::const_iterator it = l.begin(); it != l.end(); ++it)
|
|
||||||
nSize += GetSerializeSize((*it), nType, nVersion);
|
|
||||||
return nSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename Stream, typename T, typename A>
|
template<typename Stream, typename T, typename A>
|
||||||
void Serialize(Stream& os, const std::list<T, A>& l, int nType, int nVersion)
|
void Serialize(Stream& os, const std::list<T, A>& l, int nType, int nVersion)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1341,7 +1341,7 @@ void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDe
|
|||||||
entry.push_back(Pair("fee", ValueFromAmount(-nFee)));
|
entry.push_back(Pair("fee", ValueFromAmount(-nFee)));
|
||||||
if (fLong)
|
if (fLong)
|
||||||
WalletTxToJSON(wtx, entry);
|
WalletTxToJSON(wtx, entry);
|
||||||
entry.push_back(Pair("size", static_cast<uint64_t>(static_cast<CTransaction>(wtx).GetSerializeSize(SER_NETWORK, PROTOCOL_VERSION))));
|
entry.push_back(Pair("size", static_cast<uint64_t>(GetSerializeSize(static_cast<CTransaction>(wtx), SER_NETWORK, PROTOCOL_VERSION))));
|
||||||
ret.push_back(entry);
|
ret.push_back(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1378,7 +1378,7 @@ void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDe
|
|||||||
entry.push_back(Pair("vout", r.vout));
|
entry.push_back(Pair("vout", r.vout));
|
||||||
if (fLong)
|
if (fLong)
|
||||||
WalletTxToJSON(wtx, entry);
|
WalletTxToJSON(wtx, entry);
|
||||||
entry.push_back(Pair("size", static_cast<uint64_t>(static_cast<CTransaction>(wtx).GetSerializeSize(SER_NETWORK, PROTOCOL_VERSION))));
|
entry.push_back(Pair("size", static_cast<uint64_t>(GetSerializeSize(static_cast<CTransaction>(wtx), SER_NETWORK, PROTOCOL_VERSION))));
|
||||||
ret.push_back(entry);
|
ret.push_back(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3482,7 +3482,7 @@ UniValue z_getoperationstatus_IMPL(const UniValue& params, bool fRemoveFinishedO
|
|||||||
// If input notes are small, we might actually require more than one joinsplit per zaddr output.
|
// If input notes are small, we might actually require more than one joinsplit per zaddr output.
|
||||||
// For now though, we assume we use one joinsplit per zaddr output (and the second output note is change).
|
// For now though, we assume we use one joinsplit per zaddr output (and the second output note is change).
|
||||||
// We reduce the result by 1 to ensure there is room for non-joinsplit CTransaction data.
|
// We reduce the result by 1 to ensure there is room for non-joinsplit CTransaction data.
|
||||||
#define Z_SENDMANY_MAX_ZADDR_OUTPUTS ((MAX_TX_SIZE / JSDescription().GetSerializeSize(SER_NETWORK, PROTOCOL_VERSION)) - 1)
|
#define Z_SENDMANY_MAX_ZADDR_OUTPUTS ((MAX_TX_SIZE / GetSerializeSize(JSDescription(), SER_NETWORK, PROTOCOL_VERSION)) - 1)
|
||||||
|
|
||||||
// transaction.h comment: spending taddr output requires CTxIn >= 148 bytes and typical taddr txout is 34 bytes
|
// transaction.h comment: spending taddr output requires CTxIn >= 148 bytes and typical taddr txout is 34 bytes
|
||||||
#define CTXIN_SPEND_DUST_SIZE 148
|
#define CTXIN_SPEND_DUST_SIZE 148
|
||||||
@@ -3627,7 +3627,7 @@ UniValue z_sendmany(const UniValue& params, bool fHelp)
|
|||||||
mtx.vjoinsplit.push_back(JSDescription());
|
mtx.vjoinsplit.push_back(JSDescription());
|
||||||
}
|
}
|
||||||
CTransaction tx(mtx);
|
CTransaction tx(mtx);
|
||||||
txsize += tx.GetSerializeSize(SER_NETWORK, tx.nVersion);
|
txsize += GetSerializeSize(tx, SER_NETWORK, tx.nVersion);
|
||||||
if (fromTaddr) {
|
if (fromTaddr) {
|
||||||
txsize += CTXIN_SPEND_DUST_SIZE;
|
txsize += CTXIN_SPEND_DUST_SIZE;
|
||||||
txsize += CTXOUT_REGULAR_SIZE; // There will probably be taddr change
|
txsize += CTXOUT_REGULAR_SIZE; // There will probably be taddr change
|
||||||
@@ -3898,7 +3898,7 @@ UniValue z_shieldcoinbase(const UniValue& params, bool fHelp)
|
|||||||
#define MERGE_TO_ADDRESS_DEFAULT_TRANSPARENT_LIMIT 50
|
#define MERGE_TO_ADDRESS_DEFAULT_TRANSPARENT_LIMIT 50
|
||||||
#define MERGE_TO_ADDRESS_DEFAULT_SHIELDED_LIMIT 10
|
#define MERGE_TO_ADDRESS_DEFAULT_SHIELDED_LIMIT 10
|
||||||
|
|
||||||
#define JOINSPLIT_SIZE JSDescription().GetSerializeSize(SER_NETWORK, PROTOCOL_VERSION)
|
#define JOINSPLIT_SIZE GetSerializeSize(JSDescription(), SER_NETWORK, PROTOCOL_VERSION)
|
||||||
|
|
||||||
UniValue z_mergetoaddress(const UniValue& params, bool fHelp)
|
UniValue z_mergetoaddress(const UniValue& params, bool fHelp)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user