2019-10-31 13:26:55 -07:00
|
|
|
//! This account contains the clock slot, epoch, and leader_schedule_epoch
|
2019-06-06 19:27:49 -07:00
|
|
|
//!
|
2019-10-31 11:07:27 -07:00
|
|
|
pub use crate::clock::Clock;
|
2019-06-06 19:27:49 -07:00
|
|
|
|
2019-10-31 11:07:27 -07:00
|
|
|
use crate::{
|
|
|
|
account::Account,
|
|
|
|
clock::{Epoch, Segment, Slot},
|
2019-11-04 12:31:24 -08:00
|
|
|
sysvar::Sysvar,
|
2019-10-31 11:07:27 -07:00
|
|
|
};
|
2019-06-21 20:43:24 -07:00
|
|
|
|
2019-06-06 19:27:49 -07:00
|
|
|
const ID: [u8; 32] = [
|
2019-07-12 16:38:15 -07:00
|
|
|
6, 167, 213, 23, 24, 199, 116, 201, 40, 86, 99, 152, 105, 29, 94, 182, 139, 94, 184, 163, 155,
|
|
|
|
75, 109, 92, 115, 85, 91, 33, 0, 0, 0, 0,
|
2019-06-06 19:27:49 -07:00
|
|
|
];
|
|
|
|
|
2019-11-04 12:31:24 -08:00
|
|
|
crate::solana_sysvar_id!(ID, "SysvarC1ock11111111111111111111111111111111", Clock);
|
2019-07-12 16:38:15 -07:00
|
|
|
|
2019-11-04 12:31:24 -08:00
|
|
|
impl Sysvar for Clock {}
|
2019-09-09 16:38:52 -07:00
|
|
|
|
2019-11-04 12:31:24 -08:00
|
|
|
pub fn create_account(
|
2019-09-09 16:38:52 -07:00
|
|
|
lamports: u64,
|
|
|
|
slot: Slot,
|
|
|
|
segment: Segment,
|
|
|
|
epoch: Epoch,
|
2019-10-31 13:26:55 -07:00
|
|
|
leader_schedule_epoch: Epoch,
|
2019-09-09 16:38:52 -07:00
|
|
|
) -> Account {
|
2019-11-04 12:31:24 -08:00
|
|
|
Clock {
|
|
|
|
slot,
|
|
|
|
segment,
|
|
|
|
epoch,
|
|
|
|
leader_schedule_epoch,
|
2019-09-09 16:38:52 -07:00
|
|
|
}
|
2019-11-04 12:31:24 -08:00
|
|
|
.create_account(lamports)
|
2019-09-09 16:38:52 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
mod tests {
|
|
|
|
use super::*;
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_new() {
|
2019-11-04 12:31:24 -08:00
|
|
|
let account = create_account(1, 0, 0, 0, 0);
|
2019-09-09 16:38:52 -07:00
|
|
|
let clock = Clock::from_account(&account).unwrap();
|
|
|
|
assert_eq!(clock, Clock::default());
|
|
|
|
}
|
|
|
|
}
|