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 pub slot: u64,
26 pub next_epoch_timestamp: Timestamp,
28}
29
30#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq)]
32#[serde(rename_all = "camelCase")]
33pub struct MainchainData {
34 pub epoch: u32,
36 pub slot: u64,
38 pub next_epoch_timestamp: Timestamp,
40}
41
42#[derive(Debug)]
44pub enum GetStatusRpcError {
45 CannotConvertSidechainSlotToTimestamp,
47 CannotConvertTimestampToMainchainData,
49}
50
51impl From<GetStatusRpcError> for ErrorObjectOwned {
52 fn from(e: GetStatusRpcError) -> Self {
53 ErrorObject::owned::<u8>(-1, format!("{e:?}"), None)
54 }
55}