use csv; use rhoast_utils::eth_address_from_public_key::get_eth_addr_from_public_key; use rhoast_utils::pub_from_private::{get_pri_key, get_pub_key, get_seckey_from_string}; use rhoast_utils::rev_address_from_public_key::{ get_new_rev_address, get_rev_addr_from_eth, get_rev_addr_from_private_key, rev_address_from_public_key, verify_rev_addr, }; use serde::Deserialize; #[derive(Debug, Deserialize)] struct TestKey { pk: String, pubk: String, eth: String, rev: String, } fn get_keys() -> Vec { let mut returned_vec: Vec = vec![]; let mut rdr = csv::Reader::from_path("tests/test_keys/testing-keys.csv").unwrap(); for result in rdr.deserialize() { let record: TestKey = result.unwrap(); returned_vec.push(record); } returned_vec } #[test] fn test_eth_from_public_key() { let keys: Vec = get_keys(); let eth = get_eth_addr_from_public_key(&keys[0].pubk).unwrap(); assert_eq!(eth, format!("0x{}", keys[0].eth)) } #[test] fn test_get_public_key_from_sec_key() { let keys: Vec = get_keys(); let seckey = get_seckey_from_string(&keys[1].pk).unwrap(); let pub_key = get_pub_key(&seckey); assert_eq!(pub_key, keys[1].pubk); } #[test] fn test_get_private_key() { let key = get_pri_key(); let key_string = &key.display_secret().to_string(); assert_eq!(64, key_string.len()) } #[test] fn test_get_rev_from_eth() { let keys: Vec = get_keys(); let rev_addr = get_rev_addr_from_eth(&keys[2].eth).unwrap(); assert_eq!(rev_addr, keys[2].rev) } #[test] fn test_get_rev_addr_pub_key() { let keys: Vec = get_keys(); let rev_addr = rev_address_from_public_key(&keys[1].pubk).unwrap(); assert_eq!(rev_addr, keys[1].rev) } #[test] fn test_get_rev_from_pri_key() { let keys: Vec = get_keys(); let seckey = get_seckey_from_string(&keys[1].pk).unwrap(); let rev_addr = get_rev_addr_from_private_key(&seckey).unwrap(); assert_eq!(rev_addr, keys[1].rev) } #[test] fn test_generate_rev_addr() { let rev_addr = get_new_rev_address().unwrap(); assert_eq!(64, rev_addr.pri_key.len()); assert_eq!(130, rev_addr.pub_key.len()); } #[test] fn test_verify_rev_adr() { let keys: Vec = get_keys(); let valid = verify_rev_addr(&keys[2].rev).unwrap(); assert!(valid) }