| @@ -7,15 +7,18 @@ | ||||
| //! Asynchronous implementations are expected to create transactions, sign them, and send | ||||
| //! them but without waiting to see if the server accepted it. | ||||
|  | ||||
| use crate::account::Account; | ||||
| use crate::fee_calculator::FeeCalculator; | ||||
| use crate::hash::Hash; | ||||
| use crate::instruction::Instruction; | ||||
| use crate::message::Message; | ||||
| use crate::pubkey::Pubkey; | ||||
| use crate::signature::{Keypair, Signature}; | ||||
| use crate::transaction; | ||||
| use crate::transport::Result; | ||||
| use crate::{ | ||||
|     account::Account, | ||||
|     clock::Slot, | ||||
|     fee_calculator::FeeCalculator, | ||||
|     hash::Hash, | ||||
|     instruction::Instruction, | ||||
|     message::Message, | ||||
|     pubkey::Pubkey, | ||||
|     signature::{Keypair, Signature}, | ||||
|     transaction, | ||||
|     transport::Result, | ||||
| }; | ||||
| use std::io; | ||||
|  | ||||
| pub trait Client: SyncClient + AsyncClient { | ||||
| @@ -54,7 +57,7 @@ pub trait SyncClient { | ||||
|     ) -> Result<Option<transaction::Result<()>>>; | ||||
|  | ||||
|     /// Get last known slot | ||||
|     fn get_slot(&self) -> Result<u64>; | ||||
|     fn get_slot(&self) -> Result<Slot>; | ||||
|  | ||||
|     /// Get transaction count | ||||
|     fn get_transaction_count(&self) -> Result<u64>; | ||||
|   | ||||
| @@ -45,7 +45,7 @@ impl EpochSchedule { | ||||
|     pub fn new(slots_per_epoch: u64) -> Self { | ||||
|         Self::custom(slots_per_epoch, slots_per_epoch, true) | ||||
|     } | ||||
|     pub fn custom(slots_per_epoch: u64, leader_schedule_slot_offset: u64, warmup: bool) -> Self { | ||||
|     pub fn custom(slots_per_epoch: Epoch, leader_schedule_slot_offset: u64, warmup: bool) -> Self { | ||||
|         assert!(slots_per_epoch >= MINIMUM_SLOTS_PER_EPOCH as u64); | ||||
|         let (first_normal_epoch, first_normal_slot) = if warmup { | ||||
|             let next_power_of_two = slots_per_epoch.next_power_of_two(); | ||||
| @@ -70,7 +70,7 @@ impl EpochSchedule { | ||||
|     } | ||||
|  | ||||
|     /// get the length of the given epoch (in slots) | ||||
|     pub fn get_slots_in_epoch(&self, epoch: u64) -> u64 { | ||||
|     pub fn get_slots_in_epoch(&self, epoch: Epoch) -> u64 { | ||||
|         if epoch < self.first_normal_epoch { | ||||
|             2u64.pow(epoch as u32 + MINIMUM_SLOTS_PER_EPOCH.trailing_zeros() as u32) | ||||
|         } else { | ||||
| @@ -80,7 +80,7 @@ impl EpochSchedule { | ||||
|  | ||||
|     /// get the epoch for which the given slot should save off | ||||
|     ///  information about stakers | ||||
|     pub fn get_leader_schedule_epoch(&self, slot: u64) -> u64 { | ||||
|     pub fn get_leader_schedule_epoch(&self, slot: Slot) -> Epoch { | ||||
|         if slot < self.first_normal_slot { | ||||
|             // until we get to normal slots, behave as if leader_schedule_slot_offset == slots_per_epoch | ||||
|             self.get_epoch_and_slot_index(slot).0 + 1 | ||||
| @@ -92,12 +92,12 @@ impl EpochSchedule { | ||||
|     } | ||||
|  | ||||
|     /// get epoch for the given slot | ||||
|     pub fn get_epoch(&self, slot: u64) -> u64 { | ||||
|     pub fn get_epoch(&self, slot: Slot) -> Epoch { | ||||
|         self.get_epoch_and_slot_index(slot).0 | ||||
|     } | ||||
|  | ||||
|     /// get epoch and offset into the epoch for the given slot | ||||
|     pub fn get_epoch_and_slot_index(&self, slot: u64) -> (u64, u64) { | ||||
|     pub fn get_epoch_and_slot_index(&self, slot: Slot) -> (Epoch, u64) { | ||||
|         if slot < self.first_normal_slot { | ||||
|             let epoch = (slot + MINIMUM_SLOTS_PER_EPOCH + 1) | ||||
|                 .next_power_of_two() | ||||
| @@ -119,7 +119,7 @@ impl EpochSchedule { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn get_first_slot_in_epoch(&self, epoch: u64) -> u64 { | ||||
|     pub fn get_first_slot_in_epoch(&self, epoch: Epoch) -> Slot { | ||||
|         if epoch <= self.first_normal_epoch { | ||||
|             (2u64.pow(epoch as u32) - 1) * MINIMUM_SLOTS_PER_EPOCH | ||||
|         } else { | ||||
| @@ -127,7 +127,7 @@ impl EpochSchedule { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn get_last_slot_in_epoch(&self, epoch: u64) -> u64 { | ||||
|     pub fn get_last_slot_in_epoch(&self, epoch: Epoch) -> Slot { | ||||
|         self.get_first_slot_in_epoch(epoch) + self.get_slots_in_epoch(epoch) - 1 | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| use crate::clock::Slot; | ||||
| use std::fmt; | ||||
| use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; | ||||
|  | ||||
| @@ -18,7 +19,7 @@ pub struct Meta { | ||||
|     pub port: u16, | ||||
|     pub v6: bool, | ||||
|     pub seed: [u8; 32], | ||||
|     pub slot: u64, | ||||
|     pub slot: Slot, | ||||
| } | ||||
|  | ||||
| #[derive(Clone)] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user