pallet_sidechain_rpc/types/
sidechain.rs1use jsonrpsee::types::{ErrorObject, ErrorObjectOwned};
4use serde::{Deserialize, Serialize};
5use sp_core::offchain::Timestamp;
6use std::fmt::Debug;
7
8#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq)]
10#[serde(rename_all = "camelCase")]
11pub struct GetStatusResponse {
12 pub sidechain: SidechainData,
14 pub mainchain: MainchainData,
16}
17
18#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq)]
20#[serde(rename_all = "camelCase")]
21pub struct SidechainData {
22 pub epoch: u64,
24 #[cfg(feature = "legacy-slotapi-compat")]
26 pub slot: Option<u64>,
27 pub next_epoch_timestamp: Timestamp,
29}
30
31#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq)]
33#[serde(rename_all = "camelCase")]
34pub struct MainchainData {
35 pub epoch: u32,
37 pub slot: u64,
39 pub next_epoch_timestamp: Timestamp,
41}
42
43#[derive(Debug)]
45pub enum GetStatusRpcError {
46 CannotConvertSidechainSlotToTimestamp,
48 CannotConvertTimestampToMainchainData,
50}
51
52impl From<GetStatusRpcError> for ErrorObjectOwned {
53 fn from(e: GetStatusRpcError) -> Self {
54 ErrorObject::owned::<u8>(-1, format!("{e:?}"), None)
55 }
56}