Remove the min(max( construction for the ct_exponent argument

We removed the similar construction for ct_bits in an earlier commit.
The construction is to keep the value between -1 and 18. This kind of
means that a user that inputs a value outside that range will not get an
error, but will use the value on the edge of the range instead.

It's probably better to return an error (generated by secp256k1) in the
case of invalid input.
This commit is contained in:
Steven Roose 2020-03-24 14:15:15 +00:00
parent 95602ec21f
commit edfa40eb69
No known key found for this signature in database
GPG key ID: 2F2A88D7F8D68E87

View file

@ -178,7 +178,7 @@ bool GenerateRangeproof(std::vector<unsigned char>& rangeproof, const std::vecto
memcpy(asset_message+32, asset_blindptrs[asset_blindptrs.size()-1], 32);
// Sign rangeproof
int ct_exponent = std::min(std::max((int)gArgs.GetArg("-ct_exponent", 0), -1), 18);
int ct_exponent = (int)gArgs.GetArg("-ct_exponent", 0);
int ct_bits = (int)gArgs.GetArg("-ct_bits", 52);
// If min_value is 0, scriptPubKey must be unspendable
uint64_t min_value = scriptPubKey.IsUnspendable() ? 0 : 1;