lighthouse-pulse/src/state/validator_record.rs

66 lines
2.0 KiB
Rust
Raw Normal View History

2018-07-06 07:54:07 +00:00
use super::utils::types::{ Sha256Digest, Address };
use super::utils::bls::PublicKey;
pub struct ValidatorRecord {
pub pubkey: PublicKey,
pub withdrawal_shard: u16,
pub withdrawal_address: Address,
pub randao_commitment: Sha256Digest,
pub balance: u64,
pub switch_dynasty: u64
}
impl ValidatorRecord {
pub fn new(pubkey: PublicKey,
withdrawal_shard: u16,
withdrawal_address: Address,
randao_commitment: Sha256Digest,
balance: u64,
switch_dynasty: u64) -> ValidatorRecord {
ValidatorRecord {
pubkey: pubkey,
withdrawal_shard: withdrawal_shard,
withdrawal_address: withdrawal_address,
randao_commitment: randao_commitment,
balance: balance,
switch_dynasty: switch_dynasty
}
}
}
#[cfg(test)]
mod tests {
extern crate rand;
use super::*;
use super::super::utils::bls::Keypair;
use self::rand::{ SeedableRng, XorShiftRng };
#[test]
fn test_new() {
let mut rng = XorShiftRng::from_seed([0xbc4f6d44, 0xd62f276c, 0xb963afd0, 0x5455863d]);
let keypair = Keypair::generate(&mut rng);
let withdrawal_shard = 1;
let withdrawal_address = Address::random();
let randao_commitment = Sha256Digest::random();
let balance = 100;
let switch_dynasty = 10;
let v = ValidatorRecord::new(
keypair.public,
withdrawal_shard,
withdrawal_address,
randao_commitment,
balance,
switch_dynasty);
// TODO: figure out how to compare keys
// assert_eq!(v.pubkey, keypair.public);
assert_eq!(v.withdrawal_shard, withdrawal_shard);
assert_eq!(v.withdrawal_address, withdrawal_address);
assert_eq!(v.randao_commitment, randao_commitment);
assert_eq!(v.balance, balance);
assert_eq!(v.switch_dynasty, switch_dynasty);
}
}