pub trait BankData: Sized + Send + Sync + 'static {
type Metadata: Metadata;
fn get_minimum_balance_for_rent_exemption(
&self,
meta: Self::Metadata,
data_len: usize,
commitment: Option<CommitmentConfig>
) -> Result<u64>;
fn get_inflation_governor(
&self,
meta: Self::Metadata,
commitment: Option<CommitmentConfig>
) -> Result<RpcInflationGovernor>;
fn get_inflation_rate(
&self,
meta: Self::Metadata
) -> Result<RpcInflationRate>;
fn get_epoch_schedule(&self, meta: Self::Metadata) -> Result<EpochSchedule>;
fn get_slot_leader(
&self,
meta: Self::Metadata,
commitment: Option<CommitmentConfig>
) -> Result<String>;
fn get_slot_leaders(
&self,
meta: Self::Metadata,
start_slot: Slot,
limit: u64
) -> Result<Vec<String>>;
fn get_block_production(
&self,
meta: Self::Metadata,
config: Option<RpcBlockProductionConfig>
) -> Result<RpcResponse<RpcBlockProduction>>;
fn to_delegate(self) -> IoDelegate<Self, Self::Metadata> { ... }
}
Required Associated Types
Required Methods
fn get_minimum_balance_for_rent_exemption(
&self,
meta: Self::Metadata,
data_len: usize,
commitment: Option<CommitmentConfig>
) -> Result<u64>
fn get_inflation_governor(
&self,
meta: Self::Metadata,
commitment: Option<CommitmentConfig>
) -> Result<RpcInflationGovernor>
fn get_inflation_rate(&self, meta: Self::Metadata) -> Result<RpcInflationRate>
fn get_epoch_schedule(&self, meta: Self::Metadata) -> Result<EpochSchedule>
fn get_slot_leader(
&self,
meta: Self::Metadata,
commitment: Option<CommitmentConfig>
) -> Result<String>
fn get_slot_leaders(
&self,
meta: Self::Metadata,
start_slot: Slot,
limit: u64
) -> Result<Vec<String>>
fn get_block_production(
&self,
meta: Self::Metadata,
config: Option<RpcBlockProductionConfig>
) -> Result<RpcResponse<RpcBlockProduction>>
Provided Methods
fn to_delegate(self) -> IoDelegate<Self, Self::Metadata>
fn to_delegate(self) -> IoDelegate<Self, Self::Metadata>
Create an IoDelegate
, wiring rpc calls to the trait methods.