script_sign/
keymap.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Debug, Serialize, Deserialize)]
5pub struct KeyMeta {
6    pub public_key_point_hex: String,
7}
8
9#[derive(Debug, Serialize, Deserialize)]
10pub struct KeyMap {
11    pub key_map: HashMap<String, KeyMeta>,
12}
13
14impl KeyMap {
15    pub fn system() -> Self {
16        let signing_keys = r##"
17{
18  "yk-r1": {
19    "public_key_point_hex": "04dd3eebd906c9cf00b08ec29f7ed61804d1cc1d1352d9257b628191e08fc3717c4fae3298cd5c4829cec8bf3a946e7db60b7857e1287f6a0bae6b3f2342f007d0"
20  }
21}
22"##;
23        // unwrap should not happen
24        let key_map: HashMap<String, KeyMeta> = serde_json::from_str(signing_keys).unwrap();
25        KeyMap { key_map }
26    }
27
28    pub fn from(key_map: HashMap<String, KeyMeta>) -> Self {
29        Self { key_map }
30    }
31
32    pub fn find(&self, key_id: &str) -> Option<&KeyMeta> {
33        self.key_map.get(key_id)
34    }
35}