use eth2_keystore::Uuid; use eth2_wallet::Wallet; const EXPECTED_SECRET: &str = "147addc7ec981eb2715a22603813271cce540e0b7f577126011eb06249d9227c"; const PASSWORD: &str = "testpassword"; pub fn decode_and_check_seed(json: &str) -> Wallet { let wallet = Wallet::from_json_str(json).expect("should decode keystore json"); let expected_sk = hex::decode(EXPECTED_SECRET).unwrap(); let seed = wallet.decrypt_seed(PASSWORD.as_bytes()).unwrap(); assert_eq!(seed.as_bytes(), &expected_sk[..]); wallet } #[test] fn eip2386_test_vector_scrypt() { let vector = r#" { "crypto": { "checksum": { "function": "sha256", "message": "8bdadea203eeaf8f23c96137af176ded4b098773410634727bd81c4e8f7f1021", "params": {} }, "cipher": { "function": "aes-128-ctr", "message": "7f8211b88dfb8694bac7de3fa32f5f84d0a30f15563358133cda3b287e0f3f4a", "params": { "iv": "9476702ab99beff3e8012eff49ffb60d" } }, "kdf": { "function": "pbkdf2", "message": "", "params": { "c": 16, "dklen": 32, "prf": "hmac-sha256", "salt": "dd35b0c08ebb672fe18832120a55cb8098f428306bf5820f5486b514f61eb712" } } }, "name": "Test wallet 2", "nextaccount": 0, "type": "hierarchical deterministic", "uuid": "b74559b8-ed56-4841-b25c-dba1b7c9d9d5", "version": 1 } "#; let wallet = decode_and_check_seed(vector); assert_eq!( *wallet.uuid(), Uuid::parse_str("b74559b8-ed56-4841-b25c-dba1b7c9d9d5").unwrap(), "uuid" ); assert_eq!(wallet.name(), "Test wallet 2", "name"); assert_eq!(wallet.nextaccount(), 0, "nextaccount"); assert_eq!(wallet.type_field(), "hierarchical deterministic", "type"); }