Struct solana_runtime::cost_tracker::CostTracker
source · pub struct CostTracker {
account_cost_limit: u64,
block_cost_limit: u64,
vote_cost_limit: u64,
cost_by_writable_accounts: HashMap<Pubkey, u64>,
block_cost: u64,
vote_cost: u64,
transaction_count: u64,
account_data_size: u64,
account_data_size_limit: Option<u64>,
}
Fields§
§account_cost_limit: u64
§block_cost_limit: u64
§vote_cost_limit: u64
§cost_by_writable_accounts: HashMap<Pubkey, u64>
§block_cost: u64
§vote_cost: u64
§transaction_count: u64
§account_data_size: u64
§account_data_size_limit: Option<u64>
The amount of total account data size remaining. If Some
, then do not add transactions
that would cause account_data_size
to exceed this limit.
Implementations§
source§impl CostTracker
impl CostTracker
sourcepub fn new_with_account_data_size_limit(
account_data_size_limit: Option<u64>
) -> Self
pub fn new_with_account_data_size_limit( account_data_size_limit: Option<u64> ) -> Self
Construct and new CostTracker and set the account data size limit.
sourcepub fn set_limits(
&mut self,
account_cost_limit: u64,
block_cost_limit: u64,
vote_cost_limit: u64
)
pub fn set_limits( &mut self, account_cost_limit: u64, block_cost_limit: u64, vote_cost_limit: u64 )
allows to adjust limits initiated during construction
pub fn try_add( &mut self, tx_cost: &TransactionCost ) -> Result<u64, CostTrackerError>
pub fn update_execution_cost( &mut self, estimated_tx_cost: &TransactionCost, actual_execution_units: u64 )
pub fn remove(&mut self, tx_cost: &TransactionCost)
pub fn block_cost(&self) -> u64
pub fn transaction_count(&self) -> u64
pub fn report_stats(&self, bank_slot: Slot)
fn find_costliest_account(&self) -> (Pubkey, u64)
fn would_fit(&self, tx_cost: &TransactionCost) -> Result<(), CostTrackerError>
fn add_transaction_cost(&mut self, tx_cost: &TransactionCost)
fn remove_transaction_cost(&mut self, tx_cost: &TransactionCost)
sourcefn add_transaction_execution_cost(
&mut self,
tx_cost: &TransactionCost,
adjustment: u64
)
fn add_transaction_execution_cost( &mut self, tx_cost: &TransactionCost, adjustment: u64 )
Apply additional actual execution units to cost_tracker
sourcefn sub_transaction_execution_cost(
&mut self,
tx_cost: &TransactionCost,
adjustment: u64
)
fn sub_transaction_execution_cost( &mut self, tx_cost: &TransactionCost, adjustment: u64 )
Subtract extra execution units from cost_tracker
sourcefn number_of_accounts(&self) -> usize
fn number_of_accounts(&self) -> usize
count number of none-zero CU accounts
Trait Implementations§
source§impl AbiExample for CostTracker
impl AbiExample for CostTracker
source§impl Debug for CostTracker
impl Debug for CostTracker
Auto Trait Implementations§
impl RefUnwindSafe for CostTracker
impl Send for CostTracker
impl Sync for CostTracker
impl Unpin for CostTracker
impl UnwindSafe for CostTracker
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more