ertosns 2 лет назад
Родитель
Сommit
9502408115
2 измененных файлов с 27 добавлено и 0 удалено
  1. 9 0
      src/sdk/src/crypto/constants.rs
  2. 18 0
      src/sdk/src/crypto/wif.rs

+ 9 - 0
src/sdk/src/crypto/constants.rs

@@ -41,3 +41,12 @@ pub(crate) const L_ORCHARD_SCALAR: usize = 255;
 
 
 /// $\ell_\mathsf{value}$
 /// $\ell_\mathsf{value}$
 pub(crate) const L_VALUE: usize = 64;
 pub(crate) const L_VALUE: usize = 64;
+
+/// main-net wallet import format prefix
+pub const MAINNET_ADDRS_PREFIX: [u8; 1] = [0x80];
+
+/// test-net wallet import format prefix
+pub const TESTNET_ADDRS_PREFIX: [u8; 1] = [0x01];
+
+/// WIF checksum length
+pub const WIF_CHECKSUM_LEN: usize = 4;

+ 18 - 0
src/sdk/src/crypto/wif.rs

@@ -108,3 +108,21 @@ impl TryInto<SecretKey> for String {
         Ok(sk.unwrap())
         Ok(sk.unwrap())
     }
     }
 }
 }
+
+#[cfg(test)]
+mod tests {
+    use crate::crypto::{wif::WIF, SecretKey};
+    #[test]
+    fn test_sk_towif() {
+        let sk_bytes: [u8; 32] = [0; 32];
+        let sk_str = std::str::from_utf8(&sk_bytes).unwrap();
+        let sk = SecretKey::from_bytes(sk_bytes).unwrap();
+        let wif = WIF::from(sk);
+
+        let sk_res = match wif.try_into() {
+            Err(why) => panic!("{:?}", why),
+            Ok(value) => value,
+        };
+        assert!(sk == sk_res);
+    }
+}