Skip to main content

canic_core/dto/
cycles.rs

1use crate::{cdk::types::Cycles, dto::prelude::*};
2
3//
4// CycleTrackerEntry
5//
6
7#[derive(CandidType, Deserialize)]
8pub struct CycleTrackerEntry {
9    pub timestamp_secs: u64,
10    pub cycles: Cycles,
11}
12
13//
14// CycleTopupEventStatus
15//
16
17#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
18#[remain::sorted]
19pub enum CycleTopupEventStatus {
20    RequestErr,
21    RequestOk,
22    RequestScheduled,
23}
24
25//
26// CycleTopupEvent
27//
28
29#[derive(CandidType, Deserialize)]
30pub struct CycleTopupEvent {
31    pub timestamp_secs: u64,
32    pub sequence: u32,
33    pub requested_cycles: Cycles,
34    pub transferred_cycles: Option<Cycles>,
35    pub status: CycleTopupEventStatus,
36    pub error: Option<String>,
37}