Improve function performance and readability

This commit is contained in:
aniampio
2023-10-24 15:02:19 +01:00
committed by durch
parent 7836f5771b
commit ada02fe631
4 changed files with 37 additions and 41 deletions
@@ -744,7 +744,7 @@ mod tests {
let cc = g1 * o_c + gamma1 * v;
// compute hash of the payment info
let pay_info = PayInfo { info: [37u8; 32] };
let pay_info = PayInfo { info: [37u8; 88] };
let rr = hash_to_scalar(pay_info.info);
// evaluate the pseudorandom functions
@@ -107,7 +107,7 @@ mod tests {
.unwrap();
// Let's try to spend some coins
let pay_info1 = PayInfo { info: [6u8; 32] };
let pay_info1 = PayInfo { info: [6u8; 88] };
let spend_vv = 1;
let (payment1, _upd_wallet) = aggr_wallet
@@ -188,7 +188,7 @@ mod tests {
.unwrap();
// Let's try to spend some coins
let pay_info1 = PayInfo { info: [6u8; 32] };
let pay_info1 = PayInfo { info: [6u8; 88] };
let spend_vv = 1;
let (payment1, upd_wallet) = aggr_wallet
@@ -206,17 +206,16 @@ mod tests {
.spend_verify(&params, &verification_key, &pay_info1)
.unwrap());
let pay_info2 = PayInfo { info: [7u8; 32] };
let (payment2, _) = upd_wallet
.spend(
&params,
&verification_key,
&user_keypair.secret_key(),
&pay_info2,
false,
spend_vv,
)
.unwrap();
let pay_info2 = PayInfo { info: [7u8; 88] };
let (payment2, _) = upd_wallet.spend(
&params,
&verification_key,
&user_keypair.secret_key(),
&pay_info2,
false,
spend_vv,
).unwrap();
assert!(payment2
.spend_verify(&params, &verification_key, &pay_info2)
@@ -284,7 +283,7 @@ mod tests {
.unwrap();
// Let's try to spend some coins
let pay_info1 = PayInfo { info: [6u8; 32] };
let pay_info1 = PayInfo { info: [6u8; 88] };
let spend_vv = 1;
let (payment1, _upd_wallet) = aggr_wallet
@@ -306,7 +305,7 @@ mod tests {
let current_l = aggr_wallet.l.get();
aggr_wallet.l.set(current_l - 1);
let pay_info2 = PayInfo { info: [7u8; 32] };
let pay_info2 = PayInfo { info: [7u8; 88] };
let (payment2, _) = aggr_wallet
.spend(
@@ -388,7 +387,7 @@ mod tests {
.unwrap();
// Let's try to spend some coins
let pay_info1 = PayInfo { info: [6u8; 32] };
let pay_info1 = PayInfo { info: [6u8; 88] };
let spend_vv = 10;
let (payment1, _) = aggr_wallet
@@ -410,17 +409,15 @@ mod tests {
let current_l = aggr_wallet.l.get();
aggr_wallet.l.set(current_l - 10);
let pay_info2 = PayInfo { info: [7u8; 32] };
let (payment2, _) = aggr_wallet
.spend(
&params,
&verification_key,
&user_keypair.secret_key(),
&pay_info2,
false,
spend_vv,
)
.unwrap();
let pay_info2 = PayInfo { info: [7u8; 88] };
let (payment2, _) = aggr_wallet.spend(
&params,
&verification_key,
&user_keypair.secret_key(),
&pay_info2,
false,
spend_vv,
).unwrap();
let identify_result =
identify(payment1, payment2, pay_info1.clone(), pay_info2.clone()).unwrap();
@@ -315,25 +315,24 @@ pub fn compute_kappa(
#[derive(PartialEq, Eq, Debug, Clone)]
pub struct PayInfo {
pub info: [u8; 32],
pub info: [u8; 88],
}
pub fn generate_payinfo(provider_pk: PublicKeyUser) -> Vec<u8>{
let mut rng = thread_rng();
let mut rbytes = [0u8; 32];
rng.fill(&mut rbytes);
pub fn generate_payinfo(provider_pk: PublicKeyUser) -> PayInfo{
let mut info = [0u8; 88];
// Generating random bytes
thread_rng().fill(&mut info[..32]);
// Adding timestamp bytes
let timestamp = Utc::now().timestamp();
let timestamp_bytes: [u8; 8] = timestamp.to_be_bytes();
info[32..40].copy_from_slice(&timestamp.to_be_bytes());
// Adding provider public key bytes
let ppk_bytes = provider_pk.pk.to_affine().to_compressed();
info[40..].copy_from_slice(&ppk_bytes);
let mut payinfo = Vec::with_capacity(32 + 8 +48);
payinfo.extend_from_slice(&rbytes);
payinfo.extend_from_slice(&timestamp_bytes);
payinfo.extend_from_slice(&ppk_bytes);
payinfo
PayInfo { info }
}
#[derive(Debug, Clone, PartialEq)]
@@ -70,7 +70,7 @@ fn main() -> Result<(), CompactEcashError> {
assert_eq!(aggr_wallet, wallet);
// Let's try to spend some coins
let pay_info = PayInfo { info: [6u8; 32] };
let pay_info = PayInfo { info: [6u8; 88] };
let spend_vv = 1;
let (payment, _) = aggr_wallet.spend(