Pyethereum keystore support (#9710)
* support for keystore format produced by pyethereum lib + some debug msgs * made salt unbound also for Scrypt * made address optional and skip if its none * ignore values of any type, not just i32 * WIP: local deps * cleanup * enable optional address + more cleanup * yet another cleanup * enable keystore wo address import (using passwd) * cleanup * doc enchancement * parity/account fix * redesign after review * fix indentation * ignore just version in json under crypto * remove unnecessary borrowing within match str Co-Authored-By: tworec <tworec@golem.network> * remove another unnecessary borrowing Co-Authored-By: tworec <tworec@golem.network> * default derived instead of implementing * log dependency removed * [ethstore] warn restored + env_logger initialized in CLI * applied suggestion from @tomusdrw
This commit is contained in:
committed by
Niklas Adolfsson
parent
b5f510ead7
commit
469f9c26e7
@@ -46,7 +46,7 @@ pub struct KeyFile {
|
||||
pub id: Uuid,
|
||||
pub version: Version,
|
||||
pub crypto: Crypto,
|
||||
pub address: H160,
|
||||
pub address: Option<H160>,
|
||||
pub name: Option<String>,
|
||||
pub meta: Option<String>,
|
||||
}
|
||||
@@ -158,11 +158,6 @@ impl<'a> Visitor<'a> for KeyFileVisitor {
|
||||
None => return Err(V::Error::missing_field("crypto")),
|
||||
};
|
||||
|
||||
let address = match address {
|
||||
Some(address) => address,
|
||||
None => return Err(V::Error::missing_field("address")),
|
||||
};
|
||||
|
||||
let result = KeyFile {
|
||||
id: id,
|
||||
version: version,
|
||||
@@ -222,7 +217,7 @@ mod tests {
|
||||
let expected = KeyFile {
|
||||
id: Uuid::from_str("8777d9f6-7860-4b9b-88b7-0b57ee6b3a73").unwrap(),
|
||||
version: Version::V3,
|
||||
address: "6edddfc6349aff20bc6467ccf276c5b52487f7a8".into(),
|
||||
address: Some("6edddfc6349aff20bc6467ccf276c5b52487f7a8".into()),
|
||||
crypto: Crypto {
|
||||
cipher: Cipher::Aes128Ctr(Aes128Ctr {
|
||||
iv: "b5a7ec855ec9e2c405371356855fec83".into(),
|
||||
@@ -273,7 +268,7 @@ mod tests {
|
||||
let expected = KeyFile {
|
||||
id: "8777d9f6-7860-4b9b-88b7-0b57ee6b3a73".into(),
|
||||
version: Version::V3,
|
||||
address: "6edddfc6349aff20bc6467ccf276c5b52487f7a8".into(),
|
||||
address: Some("6edddfc6349aff20bc6467ccf276c5b52487f7a8".into()),
|
||||
crypto: Crypto {
|
||||
cipher: Cipher::Aes128Ctr(Aes128Ctr {
|
||||
iv: "b5a7ec855ec9e2c405371356855fec83".into(),
|
||||
@@ -301,7 +296,7 @@ mod tests {
|
||||
let file = KeyFile {
|
||||
id: "8777d9f6-7860-4b9b-88b7-0b57ee6b3a73".into(),
|
||||
version: Version::V3,
|
||||
address: "6edddfc6349aff20bc6467ccf276c5b52487f7a8".into(),
|
||||
address: Some("6edddfc6349aff20bc6467ccf276c5b52487f7a8".into()),
|
||||
crypto: Crypto {
|
||||
cipher: Cipher::Aes128Ctr(Aes128Ctr {
|
||||
iv: "b5a7ec855ec9e2c405371356855fec83".into(),
|
||||
|
||||
Reference in New Issue
Block a user