zk-token-sdk: fixing a range proof edge case (#23605)
* zk-token-sdk: fixing a range proof edge case * zk-token-sdk: clippy
This commit is contained in:
parent
3cf31fa9b8
commit
4e02ec342c
|
@ -35,8 +35,8 @@ const TRANSFER_AMOUNT_HI_BIT_LENGTH: usize = 32;
|
|||
|
||||
#[cfg(not(target_arch = "bpf"))]
|
||||
lazy_static::lazy_static! {
|
||||
pub static ref COMMITMENT_MAX: PedersenCommitment = Pedersen::encode(1_u64 <<
|
||||
TRANSFER_AMOUNT_LO_NEGATED_BIT_LENGTH);
|
||||
pub static ref COMMITMENT_MAX: PedersenCommitment = Pedersen::encode((1_u64 <<
|
||||
TRANSFER_AMOUNT_LO_NEGATED_BIT_LENGTH) - 1);
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
|
@ -353,7 +353,7 @@ impl TransferProof {
|
|||
)
|
||||
} else {
|
||||
let transfer_amount_lo_negated =
|
||||
(1 << TRANSFER_AMOUNT_LO_NEGATED_BIT_LENGTH) - transfer_amount_lo as u64;
|
||||
(1 << TRANSFER_AMOUNT_LO_NEGATED_BIT_LENGTH) - 1 - transfer_amount_lo as u64;
|
||||
let opening_lo_negated = &PedersenOpening::default() - opening_lo;
|
||||
|
||||
RangeProof::new(
|
||||
|
@ -513,6 +513,24 @@ mod test {
|
|||
let dest_pk = ElGamalKeypair::new_rand().public;
|
||||
let auditor_pk = ElGamalKeypair::new_rand().public;
|
||||
|
||||
// create source account spendable ciphertext
|
||||
let spendable_balance: u64 = 0;
|
||||
let spendable_ciphertext = source_keypair.public.encrypt(spendable_balance);
|
||||
|
||||
// transfer amount
|
||||
let transfer_amount: u64 = 0;
|
||||
|
||||
// create transfer data
|
||||
let transfer_data = TransferData::new(
|
||||
transfer_amount,
|
||||
(spendable_balance, &spendable_ciphertext),
|
||||
&source_keypair,
|
||||
(&dest_pk, &auditor_pk),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
assert!(transfer_data.verify().is_ok());
|
||||
|
||||
// create source account spendable ciphertext
|
||||
let spendable_balance: u64 = 77;
|
||||
let spendable_ciphertext = source_keypair.public.encrypt(spendable_balance);
|
||||
|
|
Loading…
Reference in New Issue