lair_keystore_api/lair_api/
derive_seed.rs1use super::*;
2
3#[derive(Debug, serde::Serialize, serde::Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct LairApiReqDeriveSeed {
7 pub msg_id: Arc<str>,
9
10 pub src_tag: Arc<str>,
12
13 #[serde(skip_serializing_if = "Option::is_none", default)]
15 pub src_deep_lock_passphrase: Option<DeepLockPassphrase>,
16
17 pub dst_tag: Arc<str>,
19
20 #[serde(skip_serializing_if = "Option::is_none", default)]
22 pub dst_deep_lock_passphrase: Option<DeepLockPassphrase>,
23
24 pub derivation_path: Box<[u32]>,
28}
29
30impl LairApiReqDeriveSeed {
31 pub fn new(
33 src_tag: Arc<str>,
34 src_deep_lock_passphrase: Option<DeepLockPassphrase>,
35 dst_tag: Arc<str>,
36 dst_deep_lock_passphrase: Option<DeepLockPassphrase>,
37 derivation_path: Box<[u32]>,
38 ) -> Self {
39 Self {
40 msg_id: new_msg_id(),
41 src_tag,
42 src_deep_lock_passphrase,
43 dst_tag,
44 dst_deep_lock_passphrase,
45 derivation_path,
46 }
47 }
48}
49
50impl std::convert::TryFrom<LairApiEnum> for LairApiReqDeriveSeed {
51 type Error = one_err::OneErr;
52
53 fn try_from(e: LairApiEnum) -> Result<Self, Self::Error> {
54 if let LairApiEnum::ReqDeriveSeed(s) = e {
55 Ok(s)
56 } else {
57 Err(format!("Invalid response type: {e:?}").into())
58 }
59 }
60}
61
62impl AsLairCodec for LairApiReqDeriveSeed {
63 fn into_api_enum(self) -> LairApiEnum {
64 LairApiEnum::ReqDeriveSeed(self)
65 }
66}
67
68#[derive(Debug, serde::Serialize, serde::Deserialize)]
70#[serde(rename_all = "camelCase")]
71pub struct LairApiResDeriveSeed {
72 pub msg_id: Arc<str>,
74
75 pub seed_info: SeedInfo,
77}
78
79impl std::convert::TryFrom<LairApiEnum> for LairApiResDeriveSeed {
80 type Error = one_err::OneErr;
81
82 fn try_from(e: LairApiEnum) -> Result<Self, Self::Error> {
83 if let LairApiEnum::ResDeriveSeed(s) = e {
84 Ok(s)
85 } else {
86 Err(format!("Invalid response type: {e:?}").into())
87 }
88 }
89}
90
91impl AsLairCodec for LairApiResDeriveSeed {
92 fn into_api_enum(self) -> LairApiEnum {
93 LairApiEnum::ResDeriveSeed(self)
94 }
95}
96
97impl AsLairRequest for LairApiReqDeriveSeed {
98 type Response = LairApiResDeriveSeed;
99}
100
101impl AsLairResponse for LairApiResDeriveSeed {
102 type Request = LairApiReqDeriveSeed;
103}