ckb_chain_spec/versionbits/
convert.rs

1use crate::versionbits::{Deployment, DeploymentPos, ThresholdState};
2use ckb_jsonrpc_types::{
3    self, DeploymentInfo, DeploymentPos as JsonDeploymentPos, DeploymentState,
4};
5
6impl From<ThresholdState> for DeploymentState {
7    fn from(state: ThresholdState) -> Self {
8        match state {
9            ThresholdState::Defined => DeploymentState::Defined,
10            ThresholdState::Started => DeploymentState::Started,
11            ThresholdState::LockedIn => DeploymentState::LockedIn,
12            ThresholdState::Active => DeploymentState::Active,
13            ThresholdState::Failed => DeploymentState::Failed,
14        }
15    }
16}
17
18impl From<Deployment> for DeploymentInfo {
19    fn from(deployment: Deployment) -> Self {
20        DeploymentInfo {
21            bit: deployment.bit,
22            start: deployment.start.into(),
23            timeout: deployment.timeout.into(),
24            min_activation_epoch: deployment.min_activation_epoch.into(),
25            period: deployment.period.into(),
26            threshold: deployment.threshold.into(),
27            state: DeploymentState::Defined,
28            since: 0.into(),
29        }
30    }
31}
32
33impl From<Deployment> for ckb_jsonrpc_types::Deployment {
34    fn from(deployment: Deployment) -> Self {
35        ckb_jsonrpc_types::Deployment {
36            bit: deployment.bit,
37            start: deployment.start.into(),
38            timeout: deployment.timeout.into(),
39            min_activation_epoch: deployment.min_activation_epoch.into(),
40            period: deployment.period.into(),
41            threshold: deployment.threshold.into(),
42        }
43    }
44}
45
46impl From<DeploymentPos> for JsonDeploymentPos {
47    fn from(pos: DeploymentPos) -> Self {
48        match pos {
49            DeploymentPos::Testdummy => JsonDeploymentPos::Testdummy,
50            DeploymentPos::LightClient => JsonDeploymentPos::LightClient,
51        }
52    }
53}