sui_indexer/models/
raw_checkpoints.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4use crate::schema::raw_checkpoints;
5use crate::types::IndexedCheckpoint;
6use diesel::prelude::*;
7
8#[derive(Queryable, Insertable, Selectable, Debug, Clone, Default)]
9#[diesel(table_name = raw_checkpoints)]
10pub struct StoredRawCheckpoint {
11    pub sequence_number: i64,
12    /// BCS serialized CertifiedCheckpointSummary
13    pub certified_checkpoint: Vec<u8>,
14    /// BCS serialized CheckpointContents
15    pub checkpoint_contents: Vec<u8>,
16}
17
18impl From<&IndexedCheckpoint> for StoredRawCheckpoint {
19    fn from(c: &IndexedCheckpoint) -> Self {
20        Self {
21            sequence_number: c.sequence_number as i64,
22            certified_checkpoint: bcs::to_bytes(c.certified_checkpoint.as_ref().unwrap()).unwrap(),
23            checkpoint_contents: bcs::to_bytes(c.checkpoint_contents.as_ref().unwrap()).unwrap(),
24        }
25    }
26}