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}