Improve function performance and readability

This commit is contained in:
aniampio
2023-10-24 15:02:19 +01:00
parent 4a54fd93f6
commit ea4980c6e2
4 changed files with 20 additions and 21 deletions
@@ -728,7 +728,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
@@ -91,7 +91,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.spend(
@@ -162,7 +162,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.spend(
@@ -179,7 +179,7 @@ mod tests {
.unwrap());
let pay_info2 = PayInfo { info: [7u8; 32] };
let pay_info2 = PayInfo { info: [7u8; 88] };
let (payment2, _) = upd_wallet.spend(
&params,
&verification_key,
@@ -253,7 +253,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.spend(
@@ -273,7 +273,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(
&params,
@@ -347,7 +347,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.spend(
@@ -367,7 +367,7 @@ mod tests {
let current_l = aggr_wallet.l.get();
aggr_wallet.l.set(current_l - 10);
let pay_info2 = PayInfo { info: [7u8; 32] };
let pay_info2 = PayInfo { info: [7u8; 88] };
let (payment2, _) = aggr_wallet.spend(
&params,
&verification_key,
@@ -311,25 +311,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(