forked from such-gitea/wownero
support old BP
This commit is contained in:
@@ -216,6 +216,7 @@ namespace rct {
|
||||
switch (type)
|
||||
{
|
||||
case RCTTypeSimple:
|
||||
case RCTTypeSimpleBulletproof:
|
||||
case RCTTypeBulletproof:
|
||||
case RCTTypeBulletproof2:
|
||||
return true;
|
||||
@@ -228,6 +229,8 @@ namespace rct {
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case RCTTypeSimpleBulletproof:
|
||||
case RCTTypeFullBulletproof:
|
||||
case RCTTypeBulletproof:
|
||||
case RCTTypeBulletproof2:
|
||||
return true;
|
||||
@@ -236,6 +239,18 @@ namespace rct {
|
||||
}
|
||||
}
|
||||
|
||||
bool is_rct_old_bulletproof(int type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case RCTTypeSimpleBulletproof:
|
||||
case RCTTypeFullBulletproof:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool is_rct_borromean(int type)
|
||||
{
|
||||
switch (type)
|
||||
@@ -248,6 +263,25 @@ namespace rct {
|
||||
}
|
||||
}
|
||||
|
||||
size_t n_bulletproof_v1_amounts(const Bulletproof &proof)
|
||||
{
|
||||
CHECK_AND_ASSERT_MES(proof.L.size() >= 6, 0, "Invalid bulletproof L size");
|
||||
CHECK_AND_ASSERT_MES(proof.L.size() <= 31, 0, "Insane bulletproof L size");
|
||||
return 1 << (proof.L.size() - 6);
|
||||
}
|
||||
size_t n_bulletproof_v1_amounts(const std::vector<Bulletproof> &proofs)
|
||||
{
|
||||
size_t n = 0;
|
||||
for (const Bulletproof &proof: proofs)
|
||||
{
|
||||
size_t n2 = n_bulletproof_v1_amounts(proof);
|
||||
CHECK_AND_ASSERT_MES(n2 < std::numeric_limits<uint32_t>::max() - n, 0, "Invalid number of bulletproofs");
|
||||
if (n2 == 0)
|
||||
return 0;
|
||||
n += n2;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
size_t n_bulletproof_amounts(const Bulletproof &proof)
|
||||
{
|
||||
CHECK_AND_ASSERT_MES(proof.L.size() >= 6, 0, "Invalid bulletproof L size");
|
||||
|
||||
Reference in New Issue
Block a user