bitcoin_key/meta.rs
1crate::ix!();
2
3pub struct KeyMetadata {
4
5 n_version: i32,
6
7 /**
8 | 0 means unknown
9 |
10 */
11 n_create_time: i64,
12
13 /**
14 | optional HD/bip32 keypath. Still used
15 | to determine whether a key is a seed.
16 | Also kept for backwards compatibility
17 |
18 */
19 hd_keypath: String,
20
21 /**
22 | id of the HD seed used to derive this key
23 |
24 */
25 hd_seed_id: KeyID,
26
27 /**
28 | Key origin info with path and fingerprint
29 |
30 */
31 key_origin: KeyOriginInfo,
32
33 /**
34 | Whether the key_origin is useful
35 |
36 */
37 has_key_origin: bool, // default = false
38}
39
40pub mod key_metadata {
41 pub const VERSION_BASIC: i32 = 1;
42 pub const VERSION_WITH_HDDATA: i32 = 10;
43 pub const VERSION_WITH_KEY_ORIGIN: i32 = 12;
44 pub const CURRENT_VERSION: i32 = VERSION_WITH_KEY_ORIGIN;
45}
46
47lazy_static!{
48 /*
49 SERIALIZE_METHODS(CKeyMetadata, obj)
50 {
51 READWRITE(obj.nVersion, obj.nCreateTime);
52 if (obj.nVersion >= VERSION_WITH_HDDATA) {
53 READWRITE(obj.hdKeypath, obj.hd_seed_id);
54 }
55 if (obj.nVersion >= VERSION_WITH_KEY_ORIGIN)
56 {
57 READWRITE(obj.key_origin);
58 READWRITE(obj.has_key_origin);
59 }
60 }
61 */
62}
63
64impl Default for KeyMetadata {
65
66 fn default() -> Self {
67 todo!();
68 /*
69
70
71 SetNull();
72 */
73 }
74}
75
76impl KeyMetadata {
77
78 pub fn new(n_create_time: i64) -> Self {
79
80 todo!();
81 /*
82
83
84 SetNull();
85 nCreateTime = nCreateTime_;
86 */
87 }
88
89 pub fn set_null(&mut self) {
90
91 todo!();
92 /*
93 nVersion = CKeyMetadata::CURRENT_VERSION;
94 nCreateTime = 0;
95 hdKeypath.clear();
96 hd_seed_id.SetNull();
97 key_origin.clear();
98 has_key_origin = false;
99 */
100 }
101}