pub struct SuiSystemStateSummary {Show 37 fields
pub epoch: u64,
pub protocol_version: u64,
pub system_state_version: u64,
pub storage_fund_total_object_storage_rebates: u64,
pub storage_fund_non_refundable_balance: u64,
pub reference_gas_price: u64,
pub safe_mode: bool,
pub safe_mode_storage_rewards: u64,
pub safe_mode_computation_rewards: u64,
pub safe_mode_storage_rebates: u64,
pub safe_mode_non_refundable_storage_fee: u64,
pub epoch_start_timestamp_ms: u64,
pub epoch_duration_ms: u64,
pub stake_subsidy_start_epoch: u64,
pub max_validator_count: u64,
pub min_validator_joining_stake: u64,
pub validator_low_stake_threshold: u64,
pub validator_very_low_stake_threshold: u64,
pub validator_low_stake_grace_period: u64,
pub stake_subsidy_balance: u64,
pub stake_subsidy_distribution_counter: u64,
pub stake_subsidy_current_distribution_amount: u64,
pub stake_subsidy_period_length: u64,
pub stake_subsidy_decrease_rate: u16,
pub total_stake: u64,
pub active_validators: Vec<SuiValidatorSummary>,
pub pending_active_validators_id: ObjectID,
pub pending_active_validators_size: u64,
pub pending_removals: Vec<u64>,
pub staking_pool_mappings_id: ObjectID,
pub staking_pool_mappings_size: u64,
pub inactive_pools_id: ObjectID,
pub inactive_pools_size: u64,
pub validator_candidates_id: ObjectID,
pub validator_candidates_size: u64,
pub at_risk_validators: Vec<(SuiAddress, u64)>,
pub validator_report_records: Vec<(SuiAddress, Vec<SuiAddress>)>,
}
Expand description
This is the JSON-RPC type for the SUI system state object. It flattens all fields to make them top-level fields such that it as minimum dependencies to the internal data structures of the SUI system state type.
Fields§
§epoch: u64
The current epoch ID, starting from 0.
protocol_version: u64
The current protocol version, starting from 1.
system_state_version: u64
The current version of the system state data structure type.
storage_fund_total_object_storage_rebates: u64
The storage rebates of all the objects on-chain stored in the storage fund.
storage_fund_non_refundable_balance: u64
The non-refundable portion of the storage fund coming from storage reinvestment, non-refundable storage rebates and any leftover staking rewards.
reference_gas_price: u64
The reference gas price for the current epoch.
safe_mode: bool
Whether the system is running in a downgraded safe mode due to a non-recoverable bug. This is set whenever we failed to execute advance_epoch, and ended up executing advance_epoch_safe_mode. It can be reset once we are able to successfully execute advance_epoch.
safe_mode_storage_rewards: u64
Amount of storage rewards accumulated (and not yet distributed) during safe mode.
safe_mode_computation_rewards: u64
Amount of computation rewards accumulated (and not yet distributed) during safe mode.
safe_mode_storage_rebates: u64
Amount of storage rebates accumulated (and not yet burned) during safe mode.
safe_mode_non_refundable_storage_fee: u64
Amount of non-refundable storage fee accumulated during safe mode.
epoch_start_timestamp_ms: u64
Unix timestamp of the current epoch start
epoch_duration_ms: u64
The duration of an epoch, in milliseconds.
stake_subsidy_start_epoch: u64
The starting epoch in which stake subsidies start being paid out
max_validator_count: u64
Maximum number of active validators at any moment. We do not allow the number of validators in any epoch to go above this.
min_validator_joining_stake: u64
Lower-bound on the amount of stake required to become a validator.
validator_low_stake_threshold: u64
Validators with stake amount below validator_low_stake_threshold
are considered to
have low stake and will be escorted out of the validator set after being below this
threshold for more than validator_low_stake_grace_period
number of epochs.
validator_very_low_stake_threshold: u64
Validators with stake below validator_very_low_stake_threshold
will be removed
immediately at epoch change, no grace period.
validator_low_stake_grace_period: u64
A validator can have stake below validator_low_stake_threshold
for this many epochs before being kicked out.
stake_subsidy_balance: u64
Balance of SUI set aside for stake subsidies that will be drawn down over time.
stake_subsidy_distribution_counter: u64
This counter may be different from the current epoch number if in some epochs we decide to skip the subsidy.
stake_subsidy_current_distribution_amount: u64
The amount of stake subsidy to be drawn down per epoch. This amount decays and decreases over time.
stake_subsidy_period_length: u64
Number of distributions to occur before the distribution amount decays.
stake_subsidy_decrease_rate: u16
The rate at which the distribution amount decays at the end of each period. Expressed in basis points.
total_stake: u64
Total amount of stake from all active validators at the beginning of the epoch.
active_validators: Vec<SuiValidatorSummary>
The list of active validators in the current epoch.
pending_active_validators_id: ObjectID
ID of the object that contains the list of new validators that will join at the end of the epoch.
pending_active_validators_size: u64
Number of new validators that will join at the end of the epoch.
pending_removals: Vec<u64>
Removal requests from the validators. Each element is an index
pointing to active_validators
.
staking_pool_mappings_id: ObjectID
ID of the object that maps from staking pool’s ID to the sui address of a validator.
staking_pool_mappings_size: u64
Number of staking pool mappings.
inactive_pools_id: ObjectID
ID of the object that maps from a staking pool ID to the inactive validator that has that pool as its staking pool.
inactive_pools_size: u64
Number of inactive staking pools.
validator_candidates_id: ObjectID
ID of the object that stores preactive validators, mapping their addresses to their Validator
structs.
validator_candidates_size: u64
Number of preactive validators.
at_risk_validators: Vec<(SuiAddress, u64)>
Map storing the number of epochs for which each validator has been below the low stake threshold.
validator_report_records: Vec<(SuiAddress, Vec<SuiAddress>)>
A map storing the records of validator reporting each other.
Implementations§
Trait Implementations§
source§impl Clone for SuiSystemStateSummary
impl Clone for SuiSystemStateSummary
source§fn clone(&self) -> SuiSystemStateSummary
fn clone(&self) -> SuiSystemStateSummary
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for SuiSystemStateSummary
impl Debug for SuiSystemStateSummary
source§impl Default for SuiSystemStateSummary
impl Default for SuiSystemStateSummary
source§impl<'de> Deserialize<'de> for SuiSystemStateSummary
impl<'de> Deserialize<'de> for SuiSystemStateSummary
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl JsonSchema for SuiSystemStateSummary
impl JsonSchema for SuiSystemStateSummary
source§fn schema_name() -> String
fn schema_name() -> String
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moreAuto Trait Implementations§
impl RefUnwindSafe for SuiSystemStateSummary
impl Send for SuiSystemStateSummary
impl Sync for SuiSystemStateSummary
impl Unpin for SuiSystemStateSummary
impl UnwindSafe for SuiSystemStateSummary
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
source§impl<D> Import for Dwhere
D: DeserializeOwned,
impl<D> Import for Dwhere
D: DeserializeOwned,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a Request
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.