diff --git a/src/sdk/src/crypto/constants.rs b/src/sdk/src/crypto/constants.rs index b64006b95..3fc9bdd05 100644 --- a/src/sdk/src/crypto/constants.rs +++ b/src/sdk/src/crypto/constants.rs @@ -41,3 +41,12 @@ pub(crate) const L_ORCHARD_SCALAR: usize = 255; /// $\ell_\mathsf{value}$ 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; diff --git a/src/sdk/src/crypto/wif.rs b/src/sdk/src/crypto/wif.rs index 643d04a49..bdfcdde53 100644 --- a/src/sdk/src/crypto/wif.rs +++ b/src/sdk/src/crypto/wif.rs @@ -108,3 +108,21 @@ impl TryInto for String { 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); + } +}