Temporarily add SetNull/IsNull/GetCheapHash to base_uint
Also add a stub for arith_uint256 and its conversion functions, for now completely based on uint256. Eases step-by-step migration to blob.
This commit is contained in:
parent
a043facf5a
commit
5d3064bc44
2 changed files with 39 additions and 0 deletions
19
src/arith_uint256.h
Normal file
19
src/arith_uint256.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#ifndef BITCOIN_ARITH_UINT256_H
|
||||||
|
#define BITCOIN_ARITH_UINT256_H
|
||||||
|
|
||||||
|
// Temporary for migration to opaque uint160/256
|
||||||
|
#include "uint256.h"
|
||||||
|
|
||||||
|
class arith_uint256 : public uint256 {
|
||||||
|
public:
|
||||||
|
arith_uint256() {}
|
||||||
|
arith_uint256(const base_uint<256>& b) : uint256(b) {}
|
||||||
|
arith_uint256(uint64_t b) : uint256(b) {}
|
||||||
|
explicit arith_uint256(const std::string& str) : uint256(str) {}
|
||||||
|
explicit arith_uint256(const std::vector<unsigned char>& vch) : uint256(vch) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
#define ArithToUint256(x) (x)
|
||||||
|
#define UintToArith256(x) (x)
|
||||||
|
|
||||||
|
#endif // BITCOIN_UINT256_H
|
|
@ -283,6 +283,23 @@ public:
|
||||||
{
|
{
|
||||||
s.read((char*)pn, sizeof(pn));
|
s.read((char*)pn, sizeof(pn));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Temporary for migration to opaque uint160/256
|
||||||
|
uint64_t GetCheapHash() const
|
||||||
|
{
|
||||||
|
return GetLow64();
|
||||||
|
}
|
||||||
|
void SetNull()
|
||||||
|
{
|
||||||
|
memset(pn, 0, sizeof(pn));
|
||||||
|
}
|
||||||
|
bool IsNull() const
|
||||||
|
{
|
||||||
|
for (int i = 0; i < WIDTH; i++)
|
||||||
|
if (pn[i] != 0)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 160-bit unsigned big integer. */
|
/** 160-bit unsigned big integer. */
|
||||||
|
@ -330,4 +347,7 @@ public:
|
||||||
uint64_t GetHash(const uint256& salt) const;
|
uint64_t GetHash(const uint256& salt) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Temporary for migration to opaque uint160/256
|
||||||
|
inline uint256 uint256S(const std::string &x) { return uint256(x); }
|
||||||
|
|
||||||
#endif // BITCOIN_UINT256_H
|
#endif // BITCOIN_UINT256_H
|
||||||
|
|
Loading…
Reference in a new issue