This commit is contained in:
Roman Zajic 2024-06-14 15:00:41 +03:00 committed by GitHub
commit 4d95f7fabf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 1 deletions

View File

@ -10,6 +10,7 @@ blake2 = "0.10"
rpds = "1"
thiserror = "1"
serde = { version = "1.0", features = ["derive"], optional = true }
serde_test = "1.0.176"
# TODO: we only need types definition from this crate
cryptarchia-engine = { path = "../../consensus/cryptarchia-engine" }
nomos-utils = { path = "../../nomos-utils", optional = true }

View File

@ -386,10 +386,11 @@ impl core::fmt::Debug for LedgerState {
#[cfg(test)]
pub mod tests {
use super::{Coin, EpochState, Ledger, LedgerState};
use super::{Coin, EpochState, LeaderProof, Ledger, LedgerState, Nullifier};
use crate::{crypto::Blake2b, Commitment, Config, LedgerError};
use blake2::Digest;
use cryptarchia_engine::Slot;
use serde_test::{assert_tokens, Configure, Token};
type HeaderId = [u8; 32];
@ -741,4 +742,33 @@ pub mod tests {
Err(LedgerError::NullifierExists)
));
}
#[test]
fn test_conversions_for_leader_proof() {
let commitment = Commitment::from([0u8; 32]);
let commitment_bytes: [u8; 32] = commitment.into();
let _zero_bytes = [0u8; 32];
assert!(matches!(commitment_bytes, _zero_bytes));
let commitment_ref = commitment.as_ref();
assert_eq!(commitment_ref, &_zero_bytes);
let nullifier = Nullifier::from([0u8; 32]);
let _nullifier_bytes: [u8; 32] = nullifier.into();
assert!(matches!(_nullifier_bytes, _zero_bytes));
let slot = Slot::genesis();
let leader_proof = LeaderProof::dummy(slot);
assert_eq!(leader_proof.commitment(), &commitment);
assert_eq!(leader_proof.evolved_commitment(), &commitment);
assert_eq!(leader_proof.nullifier(), &nullifier);
// Test ser/de of compact representation for Nullifier
assert_tokens(&nullifier.compact(), &[Token::BorrowedBytes(&[0; 32])]);
// Test ser/de of compact representation for Commitment
assert_tokens(&commitment.compact(), &[Token::BorrowedBytes(&[0; 32])]);
}
}