sui_indexer_alt_schema/
epochs.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4use diesel::prelude::*;
5use sui_field_count::FieldCount;
6
7use crate::schema::{kv_epoch_ends, kv_epoch_starts, kv_feature_flags, kv_protocol_configs};
8
9#[derive(Insertable, Queryable, Debug, Clone, FieldCount)]
10#[diesel(table_name = kv_epoch_ends)]
11#[diesel(treat_none_as_default_value = false)]
12pub struct StoredEpochEnd {
13    pub epoch: i64,
14    pub cp_hi: i64,
15    pub tx_hi: i64,
16    pub end_timestamp_ms: i64,
17    pub safe_mode: bool,
18    pub total_stake: Option<i64>,
19    pub storage_fund_balance: Option<i64>,
20    pub storage_fund_reinvestment: Option<i64>,
21    pub storage_charge: Option<i64>,
22    pub storage_rebate: Option<i64>,
23    pub stake_subsidy_amount: Option<i64>,
24    pub total_gas_fees: Option<i64>,
25    pub total_stake_rewards_distributed: Option<i64>,
26    pub leftover_storage_fund_inflow: Option<i64>,
27    pub epoch_commitments: Vec<u8>,
28}
29
30#[derive(Insertable, Queryable, QueryableByName, Debug, Clone, FieldCount)]
31#[diesel(table_name = kv_epoch_starts)]
32pub struct StoredEpochStart {
33    pub epoch: i64,
34    pub protocol_version: i64,
35    pub cp_lo: i64,
36    pub start_timestamp_ms: i64,
37    pub reference_gas_price: i64,
38    pub system_state: Vec<u8>,
39}
40
41#[derive(Insertable, Queryable, Debug, Clone, FieldCount)]
42#[diesel(table_name = kv_feature_flags)]
43pub struct StoredFeatureFlag {
44    pub protocol_version: i64,
45    pub flag_name: String,
46    pub flag_value: bool,
47}
48
49#[derive(Insertable, Queryable, Debug, Clone, FieldCount)]
50#[diesel(table_name = kv_protocol_configs)]
51pub struct StoredProtocolConfig {
52    pub protocol_version: i64,
53    pub config_name: String,
54    pub config_value: Option<String>,
55}