From 4f9c5153705e0fe6b43ad98db0c4156482d84977 Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Tue, 22 Jan 2019 17:00:16 +0300 Subject: [PATCH 01/10] IS-954 added freshness threshold Signed-off-by: Nikita Khateev --- libindy/src/commands/mod.rs | 4 + libindy/src/domain/mod.rs | 3 +- libindy/src/services/ledger/mod.rs | 51 +----- libindy/src/services/pool/request_handler.rs | 181 ++++++++++++++++++- libindy/src/utils/mod.rs | 2 + libindy/src/utils/transaction_metadata.rs | 67 +++++++ libindy/tests/indy.rs | 7 + 7 files changed, 262 insertions(+), 53 deletions(-) create mode 100644 libindy/src/utils/transaction_metadata.rs diff --git a/libindy/src/commands/mod.rs b/libindy/src/commands/mod.rs index 39e04a4b5b..21c350fb51 100644 --- a/libindy/src/commands/mod.rs +++ b/libindy/src/commands/mod.rs @@ -67,6 +67,10 @@ pub fn indy_set_runtime_config(config: IndyConfig) { Some(false) => env::set_var("RUST_BACKTRACE", "0"), _ => {} } + match config.freshness_threshold { + Some(threshold) => env::set_var("FRESHNESS_THRESHOLD", format!("{}", threshold)), + _ => {} + } } pub struct CommandExecutor { diff --git a/libindy/src/domain/mod.rs b/libindy/src/domain/mod.rs index ecb37a7c7e..ebd99e6ca4 100644 --- a/libindy/src/domain/mod.rs +++ b/libindy/src/domain/mod.rs @@ -8,5 +8,6 @@ pub mod wallet; #[derive(Debug, Serialize, Deserialize)] pub struct IndyConfig { pub crypto_thread_pool_size : Option, - pub collect_backtrace: Option + pub collect_backtrace: Option, + pub freshness_threshold: Option } \ No newline at end of file diff --git a/libindy/src/services/ledger/mod.rs b/libindy/src/services/ledger/mod.rs index a4bbc8532c..de448076e2 100644 --- a/libindy/src/services/ledger/mod.rs +++ b/libindy/src/services/ledger/mod.rs @@ -19,13 +19,14 @@ use domain::ledger::node::{NodeOperation, NodeOperationData}; use domain::ledger::nym::GetNymOperation; use domain::ledger::pool::{PoolConfigOperation, PoolRestartOperation, PoolUpgradeOperation}; use domain::ledger::request::Request; -use domain::ledger::response::{Message, Reply, ReplyType, ResponseMetadata}; +use domain::ledger::response::{Message, Reply, ReplyType}; use domain::ledger::rev_reg::{GetRevocRegDeltaReplyResult, GetRevocRegReplyResult, GetRevRegDeltaOperation, GetRevRegOperation, RevRegEntryOperation}; use domain::ledger::rev_reg_def::{GetRevocRegDefReplyResult, GetRevRegDefOperation, RevRegDefOperation}; use domain::ledger::schema::{GetSchemaOperation, GetSchemaOperationData, GetSchemaReplyResult, SchemaOperation, SchemaOperationData}; use domain::ledger::txn::{GetTxnOperation, LedgerType}; use domain::ledger::validator_info::GetValidatorInfoOperation; use errors::prelude::*; +use utils::transaction_metadata::*; pub mod merkletree; @@ -550,42 +551,11 @@ impl LedgerService { pub fn get_response_metadata(&self, response: &str) -> IndyResult { info!("get_response_metadata >>> response: {:?}", response); - let message: Message = serde_json::from_str(response) - .to_indy(IndyErrorKind::InvalidTransaction, "Cannot deserialize transaction Response")?; - - let response_object: Reply = LedgerService::handle_response_message_type(message)?; - let response_result = response_object.result(); - - let response_metadata = match response_result["ver"].as_str() { - None => LedgerService::parse_transaction_metadata_v0(&response_result), - Some("1") => LedgerService::parse_transaction_metadata_v1(&response_result), - ver @ _ => return Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Unsupported transaction response version: {:?}", ver))) - }; - - let res = serde_json::to_string(&response_metadata) - .to_indy(IndyErrorKind::InvalidState, "Cannot serialize ResponseMetadata")?; + let res = parse_response_metadata(response); info!("get_response_metadata <<< res: {:?}", res); - Ok(res) - } - - fn parse_transaction_metadata_v0(message: &serde_json::Value) -> ResponseMetadata { - ResponseMetadata { - seq_no: message["seqNo"].as_u64(), - txn_time: message["txnTime"].as_u64(), - last_txn_time: message["state_proof"]["multi_signature"]["value"]["timestamp"].as_u64(), - last_seq_no: None, - } - } - - fn parse_transaction_metadata_v1(message: &serde_json::Value) -> ResponseMetadata { - ResponseMetadata { - seq_no: message["txnMetadata"]["seqNo"].as_u64(), - txn_time: message["txnMetadata"]["txnTime"].as_u64(), - last_txn_time: message["multiSignature"]["signedState"]["stateMetadata"]["timestamp"].as_u64(), - last_seq_no: None, - } + res } pub fn parse_response(response: &str) -> IndyResult> where T: DeserializeOwned + ReplyType + ::std::fmt::Debug { @@ -601,18 +571,7 @@ impl LedgerService { let message: Message = serde_json::from_value(message) .to_indy(IndyErrorKind::LedgerItemNotFound, "Structure doesn't correspond to type. Most probably not found")?; // FIXME: Review how we handle not found - LedgerService::handle_response_message_type(message) - } - - fn handle_response_message_type(message: Message) -> IndyResult> where T: DeserializeOwned + ::std::fmt::Debug { - trace!("handle_response_message_type >>> message {:?}", message); - - match message { - Message::Reject(response) | Message::ReqNACK(response) => - Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Transaction has been failed: {:?}", response.reason))), - Message::Reply(reply) => - Ok(reply) - } + handle_response_message_type(message) } pub fn validate_action(&self, request: &str) -> IndyResult<()> { diff --git a/libindy/src/services/pool/request_handler.rs b/libindy/src/services/pool/request_handler.rs index 1eecc7e594..55e3c794af 100644 --- a/libindy/src/services/pool/request_handler.rs +++ b/libindy/src/services/pool/request_handler.rs @@ -5,6 +5,9 @@ use std::collections::HashMap; use std::collections::HashSet; use std::iter::FromIterator; use std::rc::Rc; +use std::env; +use std::str::FromStr; +use std::time::{SystemTime, UNIX_EPOCH}; use rmp_serde; use serde_json; @@ -24,6 +27,7 @@ use services::pool::networker::Networker; use services::pool::state_proof; use services::pool::types::CatchupRep; use services::pool::types::HashableValue; +use utils::transaction_metadata::get_last_signed_time; use super::indy_crypto::bls::Generator; use super::indy_crypto::bls::VerKey; @@ -128,7 +132,7 @@ struct CatchupSingleState { struct SingleState { denied_nodes: HashSet /* FIXME should be map, may be merged with replies */, - replies: HashMap>, + replies: HashMap>, timeout_nodes: HashSet, networker: Rc>, } @@ -346,15 +350,22 @@ impl RequestSM { if let Ok((result, result_without_proof)) = _get_msg_result_without_state_proof(&raw_msg) { let hashable = HashableValue { inner: result_without_proof }; - let cnt = { + let last_write_time =_get_response_freshness(&raw_msg); + + let (cnt, soonest) = { let set = state.replies.entry(hashable).or_insert(HashSet::new()); - set.insert(node_alias.clone()); - set.len() + set.insert((node_alias.clone(), last_write_time, raw_msg.clone())); + ( + set.len(), + set.iter().min_by_key(|(_, time, _)| time).map(|(_, _, req)| req).unwrap_or(&raw_msg).clone() + ) }; - if cnt > f || _check_state_proof(&result, f, &generator, &nodes, &raw_msg) { + if cnt > f + || _check_state_proof(&result, f, &generator, &nodes, &raw_msg) + && _get_cur_time() as u64 - last_write_time <= _get_freshness_threshold() { state.networker.borrow_mut().process_event(Some(NetworkerEvent::CleanTimeout(req_id, None))); - _send_ok_replies(&cmd_ids, &raw_msg); + _send_ok_replies(&cmd_ids, if cnt > f {&soonest} else {&raw_msg}); (RequestState::finish(), None) } else { (state.try_to_continue(req_id, node_alias, &cmd_ids, nodes.len(), timeout), None) @@ -690,6 +701,22 @@ fn _check_state_proof(msg_result: &SJsonValue, f: usize, gen: &Generator, bls_ke res } +fn _get_freshness_threshold() -> u64 { + u64::from_str( + &env::var("FRESHNESS_THRESHOLD") + .unwrap_or("600".to_string()) + ).unwrap_or(600) * 1000 +} + +fn _get_response_freshness(raw_msg: &str) -> u64 { + get_last_signed_time(raw_msg) +} + +fn _get_cur_time() -> u64 { + let since_epoch = SystemTime::now().duration_since(UNIX_EPOCH).expect("Time has gone backwards"); + since_epoch.as_secs() * 1000 + since_epoch.subsec_millis() as u64 +} + #[cfg(test)] pub mod tests { use services::ledger::merkletree::tree::Tree; @@ -1137,6 +1164,148 @@ pub mod tests { assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); } + #[test] + fn request_handler_process_reply_event_from_single_state_works_for_freshness_filtering() { + // Register custom state proof parser + { + use services::pool::{PoolService, REGISTERED_SP_PARSERS}; + use api::ErrorCode; + use libc::c_char; + use std::ffi::CString; + + REGISTERED_SP_PARSERS.lock().unwrap().clear(); + + extern fn test_sp(_reply_from_node: *const c_char, parsed_sp: *mut *const c_char) -> ErrorCode { + let sp: CString = CString::new("[]").unwrap(); + unsafe { *parsed_sp = sp.into_raw(); } + ErrorCode::Success + } + extern fn test_free(_data: *const c_char) -> ErrorCode { + ErrorCode::Success + } + PoolService::register_sp_parser("test", test_sp, test_free).unwrap(); + } + + let mut request_handler = _request_handler(2, 4); + request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); + // + request_handler.process_event(Some(RequestEvent::Reply( + Reply::default(), + json!({ + "result": { + "type": "test", + "ver": "1", + "multiSignature":{ + "signedState": { + "stateMetadata": { + "timestamp": _get_cur_time() - 700000 + } + } + } + }, + "op": "REPLY", + }).to_string(), + NODE.to_string(), + REQ_ID.to_string()))); + + { + let request_handler_ref = request_handler.request_wrapper.as_ref().unwrap(); + assert_match!(RequestState::Single(_), request_handler_ref.state); + } + + request_handler.process_event(Some(RequestEvent::Reply( + Reply::default(), + json!({ + "result": { + "type": "test", + "ver": "1", + "multiSignature":{ + "signedState": { + "stateMetadata": { + "timestamp": _get_cur_time() - 300000 + } + } + } + }, + "op": "REPLY", + }).to_string(), + NODE.to_string(), + REQ_ID.to_string()))); + assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); + } + + + #[test] + fn request_handler_process_reply_event_from_single_state_works_for_freshness_filtering_from_env_variable() { + env::set_var("FRESHNESS_THRESHOLD", "300"); + // Register custom state proof parser + { + use services::pool::{PoolService, REGISTERED_SP_PARSERS}; + use api::ErrorCode; + use libc::c_char; + use std::ffi::CString; + + REGISTERED_SP_PARSERS.lock().unwrap().clear(); + + extern fn test_sp(_reply_from_node: *const c_char, parsed_sp: *mut *const c_char) -> ErrorCode { + let sp: CString = CString::new("[]").unwrap(); + unsafe { *parsed_sp = sp.into_raw(); } + ErrorCode::Success + } + extern fn test_free(_data: *const c_char) -> ErrorCode { + ErrorCode::Success + } + PoolService::register_sp_parser("test", test_sp, test_free).unwrap(); + } + + let mut request_handler = _request_handler(2, 4); + request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); + // + request_handler.process_event(Some(RequestEvent::Reply( + Reply::default(), + json!({ + "result": { + "type": "test", + "ver": "1", + "multiSignature":{ + "signedState": { + "stateMetadata": { + "timestamp": _get_cur_time() - 400000 + } + } + } + }, + "op": "REPLY", + }).to_string(), + NODE.to_string(), + REQ_ID.to_string()))); + + { + let request_handler_ref = request_handler.request_wrapper.as_ref().unwrap(); + assert_match!(RequestState::Single(_), request_handler_ref.state); + } + + request_handler.process_event(Some(RequestEvent::Reply( + Reply::default(), + json!({ + "result": { + "type": "test", + "ver": "1", + "multiSignature":{ + "signedState": { + "stateMetadata": { + "timestamp": _get_cur_time() - 200000 + } + } + } + }, + "op": "REPLY", + }).to_string(), + NODE.to_string(), + REQ_ID.to_string()))); + assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); + } + #[test] fn request_handler_process_reply_event_from_single_state_works_for_not_completed() { let mut request_handler = _request_handler(1, 2); diff --git a/libindy/src/utils/mod.rs b/libindy/src/utils/mod.rs index 2d80b5996a..6da76ae2ab 100755 --- a/libindy/src/utils/mod.rs +++ b/libindy/src/utils/mod.rs @@ -26,3 +26,5 @@ pub mod test; #[macro_use] pub mod try; + +pub mod transaction_metadata; \ No newline at end of file diff --git a/libindy/src/utils/transaction_metadata.rs b/libindy/src/utils/transaction_metadata.rs new file mode 100644 index 0000000000..25df93e9b9 --- /dev/null +++ b/libindy/src/utils/transaction_metadata.rs @@ -0,0 +1,67 @@ +use errors::*; +use domain::ledger::response::{ + Message, + Reply, + ResponseMetadata +}; +use serde::de::DeserializeOwned; + +pub fn parse_response_metadata(response: &str) -> IndyResult { + let response_metadata = _parse_response_metadata(response)?; + + let res = serde_json::to_string(&response_metadata) + .to_indy(IndyErrorKind::InvalidState, "Cannot serialize ResponseMetadata")?; + + Ok(res) +} + +fn _parse_response_metadata(response: &str) -> IndyResult { + let message: Message = serde_json::from_str(response) + .to_indy(IndyErrorKind::InvalidTransaction, "Cannot deserialize transaction Response")?; + + let response_object: Reply = handle_response_message_type(message)?; + let response_result = response_object.result(); + + let response_metadata = match response_result["ver"].as_str() { + None => parse_transaction_metadata_v0(&response_result), + Some("1") => parse_transaction_metadata_v1(&response_result), + ver @ _ => return Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Unsupported transaction response version: {:?}", ver))) + }; + + Ok(response_metadata) +} + +pub fn get_last_signed_time(response: &str) -> u64 { + let c = _parse_response_metadata(response); + println!("{:?}", c); + c.map(|resp| resp.last_txn_time.unwrap_or(0)).unwrap_or(0) +} + +pub fn handle_response_message_type(message: Message) -> IndyResult> where T: DeserializeOwned + ::std::fmt::Debug { + trace!("handle_response_message_type >>> message {:?}", message); + + match message { + Message::Reject(response) | Message::ReqNACK(response) => + Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Transaction has been failed: {:?}", response.reason))), + Message::Reply(reply) => + Ok(reply) + } +} + +fn parse_transaction_metadata_v0(message: &serde_json::Value) -> ResponseMetadata { + ResponseMetadata { + seq_no: message["seqNo"].as_u64(), + txn_time: message["txnTime"].as_u64(), + last_txn_time: message["state_proof"]["multi_signature"]["value"]["timestamp"].as_u64(), + last_seq_no: None, + } +} + +fn parse_transaction_metadata_v1(message: &serde_json::Value) -> ResponseMetadata { + ResponseMetadata { + seq_no: message["txnMetadata"]["seqNo"].as_u64(), + txn_time: message["txnMetadata"]["txnTime"].as_u64(), + last_txn_time: message["multiSignature"]["signedState"]["stateMetadata"]["timestamp"].as_u64(), + last_seq_no: None, + } +} \ No newline at end of file diff --git a/libindy/tests/indy.rs b/libindy/tests/indy.rs index 45e22d126d..7e598f82ac 100644 --- a/libindy/tests/indy.rs +++ b/libindy/tests/indy.rs @@ -1,6 +1,13 @@ extern crate indyrs as indy; +use std::env; #[test] fn set_runtime_config_works() { indy::set_runtime_config(r#"{"crypto_thread_pool_size": 2}"#); +} + +#[test] +fn set_runtime_config_works_for_freshness_threshold() { + indy::set_runtime_config(r#"{"freshness_threshold": 352}"#); + assert_eq!(env::var("FRESHNESS_THRESHOLD").unwrap(), "352"); } \ No newline at end of file From f918fdb9c693909fcdb6156a556198868ca6c9a5 Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Mon, 28 Jan 2019 15:39:25 +0300 Subject: [PATCH 02/10] Add double resend on failure. Fix env variable Signed-off-by: Nikita Khateev --- libindy/src/commands/mod.rs | 4 +- libindy/src/domain/mod.rs | 2 +- libindy/src/services/pool/mod.rs | 2 +- libindy/src/services/pool/request_handler.rs | 65 ++++++++++++++++---- libindy/tests/indy.rs | 6 -- 5 files changed, 58 insertions(+), 21 deletions(-) diff --git a/libindy/src/commands/mod.rs b/libindy/src/commands/mod.rs index 48e38ba88a..dc8fd29a75 100644 --- a/libindy/src/commands/mod.rs +++ b/libindy/src/commands/mod.rs @@ -24,7 +24,7 @@ use services::blob_storage::BlobStorageService; use services::crypto::CryptoService; use services::ledger::LedgerService; use services::payments::PaymentsService; -use services::pool::PoolService; +use services::pool::{PoolService, request_handler::set_freshness_threshold}; use services::wallet::WalletService; use self::threadpool::ThreadPool; @@ -68,7 +68,7 @@ pub fn indy_set_runtime_config(config: IndyConfig) { _ => {} } match config.freshness_threshold { - Some(threshold) => env::set_var("FRESHNESS_THRESHOLD", format!("{}", threshold)), + Some(threshold) => set_freshness_threshold(threshold), _ => {} } } diff --git a/libindy/src/domain/mod.rs b/libindy/src/domain/mod.rs index ebd99e6ca4..779849bb82 100644 --- a/libindy/src/domain/mod.rs +++ b/libindy/src/domain/mod.rs @@ -9,5 +9,5 @@ pub mod wallet; pub struct IndyConfig { pub crypto_thread_pool_size : Option, pub collect_backtrace: Option, - pub freshness_threshold: Option + pub freshness_threshold: Option } \ No newline at end of file diff --git a/libindy/src/services/pool/mod.rs b/libindy/src/services/pool/mod.rs index f382179480..98c87e070b 100644 --- a/libindy/src/services/pool/mod.rs +++ b/libindy/src/services/pool/mod.rs @@ -33,7 +33,7 @@ mod events; mod merkle_tree_factory; mod networker; mod pool; -mod request_handler; +pub mod request_handler; mod state_proof; mod types; diff --git a/libindy/src/services/pool/request_handler.rs b/libindy/src/services/pool/request_handler.rs index 55e3c794af..5c407c0f54 100644 --- a/libindy/src/services/pool/request_handler.rs +++ b/libindy/src/services/pool/request_handler.rs @@ -5,8 +5,6 @@ use std::collections::HashMap; use std::collections::HashSet; use std::iter::FromIterator; use std::rc::Rc; -use std::env; -use std::str::FromStr; use std::time::{SystemTime, UNIX_EPOCH}; use rmp_serde; @@ -28,11 +26,14 @@ use services::pool::state_proof; use services::pool::types::CatchupRep; use services::pool::types::HashableValue; use utils::transaction_metadata::get_last_signed_time; +use std::sync::Mutex; use super::indy_crypto::bls::Generator; use super::indy_crypto::bls::VerKey; use self::rust_base58::FromBase58; +use std::hash::{Hash, Hasher}; +use std::ops::Mul; struct RequestSM { f: usize, @@ -132,7 +133,7 @@ struct CatchupSingleState { struct SingleState { denied_nodes: HashSet /* FIXME should be map, may be merged with replies */, - replies: HashMap>, + replies: HashMap>, timeout_nodes: HashSet, networker: Rc>, } @@ -215,6 +216,26 @@ impl RequestState { } } +struct NodeResponse { + raw_msg: String, + node_alias: String, + timestamp: u64 +} + +impl PartialEq for NodeResponse { + fn eq(&self, other: &NodeResponse) -> bool { + self.node_alias == other.node_alias + } +} + +impl Eq for NodeResponse {} + +impl Hash for NodeResponse { + fn hash(&self, state: &mut H) { + self.node_alias.hash(state); + } +} + impl RequestSM { fn handle_event(self, re: RequestEvent) -> (Self, Option) { let RequestSM { state, f, cmd_ids, nodes, generator, pool_name, timeout, extended_timeout } = self; @@ -354,10 +375,10 @@ impl RequestSM { let (cnt, soonest) = { let set = state.replies.entry(hashable).or_insert(HashSet::new()); - set.insert((node_alias.clone(), last_write_time, raw_msg.clone())); + set.insert(NodeResponse { node_alias: node_alias.clone(), timestamp: last_write_time, raw_msg: raw_msg.clone() }); ( set.len(), - set.iter().min_by_key(|(_, time, _)| time).map(|(_, _, req)| req).unwrap_or(&raw_msg).clone() + set.iter().min_by_key(|resp| resp.timestamp).map(|resp| &resp.raw_msg).unwrap_or(&raw_msg).clone() ) }; @@ -603,6 +624,7 @@ impl SingleState { fn try_to_continue(self, req_id: String, node_alias: String, cmd_ids: &Vec, nodes_cnt: usize, timeout: i64) -> RequestState { if self.is_consensus_reachable(nodes_cnt) { + self.networker.borrow_mut().process_event(Some(NetworkerEvent::Resend(req_id.clone(), timeout))); self.networker.borrow_mut().process_event(Some(NetworkerEvent::Resend(req_id.clone(), timeout))); self.networker.borrow_mut().process_event(Some(NetworkerEvent::CleanTimeout(req_id, Some(node_alias)))); RequestState::Single(self) @@ -701,11 +723,18 @@ fn _check_state_proof(msg_result: &SJsonValue, f: usize, gen: &Generator, bls_ke res } +lazy_static! { + static ref THRESHOLD: Mutex = Mutex::new(600); +} + +pub fn set_freshness_threshold(threshold: u64) { + let mut th = THRESHOLD.lock().unwrap(); + *th = ::std::cmp::max(threshold, 300); +} + fn _get_freshness_threshold() -> u64 { - u64::from_str( - &env::var("FRESHNESS_THRESHOLD") - .unwrap_or("600".to_string()) - ).unwrap_or(600) * 1000 + let t = THRESHOLD.lock().unwrap(); + t.mul(1000) } fn _get_response_freshness(raw_msg: &str) -> u64 { @@ -1160,7 +1189,21 @@ pub mod tests { let mut request_handler = _request_handler(1, 2); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); - request_handler.process_event(Some(RequestEvent::Reply(Reply::default(), r#"{"result": {"type":"test"}}"#.to_string(), NODE.to_string(), REQ_ID.to_string()))); + request_handler.process_event(Some(RequestEvent::Reply(Reply::default(), + json!({ + "result": { + "type": "test", + "ver": "1", + "multiSignature":{ + "signedState": { + "stateMetadata": { + "timestamp": _get_cur_time() - 300000 + } + } + } + }, + "op": "REPLY", + }).to_string(), NODE.to_string(), REQ_ID.to_string()))); assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); } @@ -1237,7 +1280,7 @@ pub mod tests { #[test] fn request_handler_process_reply_event_from_single_state_works_for_freshness_filtering_from_env_variable() { - env::set_var("FRESHNESS_THRESHOLD", "300"); + set_freshness_threshold(300); // Register custom state proof parser { use services::pool::{PoolService, REGISTERED_SP_PARSERS}; diff --git a/libindy/tests/indy.rs b/libindy/tests/indy.rs index 7e598f82ac..61fb4284e4 100644 --- a/libindy/tests/indy.rs +++ b/libindy/tests/indy.rs @@ -4,10 +4,4 @@ use std::env; #[test] fn set_runtime_config_works() { indy::set_runtime_config(r#"{"crypto_thread_pool_size": 2}"#); -} - -#[test] -fn set_runtime_config_works_for_freshness_threshold() { - indy::set_runtime_config(r#"{"freshness_threshold": 352}"#); - assert_eq!(env::var("FRESHNESS_THRESHOLD").unwrap(), "352"); } \ No newline at end of file From ccb84278cecfa3b010d87ffbe3871292b264afe7 Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Mon, 28 Jan 2019 16:42:09 +0300 Subject: [PATCH 03/10] Fix prints and rest files Signed-off-by: Nikita Khateev --- libindy/src/utils/transaction_metadata.rs | 1 - vcx/libvcx/debian/controlwq | 16 ---------------- ...3b8KDhvqk5xj31HxuDtof8iGoqQGXUcWoPnMxj1P86UV | Bin 642 -> 0 bytes ...3jNLpA2LpLVY1JmpXkuzf88wLzgt5tyzRR8LHJUAzfEJ | Bin 642 -> 0 bytes ...5JBYePUojURx7Mn1CTbg8QnU6ECWhrvhhdX9587Z5Y7Q | Bin 642 -> 0 bytes ...5yku8wJngsNdGLa4oBSVTchDRts3c1rsPoq4fdNaPH94 | Bin 642 -> 0 bytes ...8wcr11hekJQGJYCWam7Nceixutb3tqQVb91fwnoeruoF | Bin 642 -> 0 bytes ...EiLoheuCnq4zGThcfH1JJKkB1mG1sm4S2RD1Cjsp8pwB | Bin 642 -> 0 bytes ...FKJcHGguNxjjtpUeeYHJ6rweoqWCXug4XMbBvFJgqRvf | Bin 642 -> 0 bytes ...217DpRDT9ipP5iVCCaPStsUKu2qEgkXXLWA6bMNq9Yuv | Bin 2690 -> 0 bytes ...2Q7AEMCd5cfX7uGBjpLYAyN2AcbpbRJ3Pqg33Z6GS7qp | Bin 2690 -> 0 bytes ...2jup6MbVqyQHRAbkbxSvJ1TXzDijnV5of5AedUJ1opyV | Bin 2690 -> 0 bytes ...3ZkodGrfyLMmEEmRGEU3VVMT5aUa74Fe87XfEttQcCrL | Bin 2690 -> 0 bytes ...3ccGXZzQCAz2it6aoZj1gzsvbg1A4946QtxTrqVXMqDY | Bin 2690 -> 0 bytes ...43KCeXcNFY3NXexnExZozSUgvvxyhTjxJMDqzKvjKXL1 | Bin 2690 -> 0 bytes ...44XSiK67PsAa94rYBcbuAZtpxojcGvCAU5749rtc2AKK | Bin 2690 -> 0 bytes ...4gPBL1PRFyp8CBmALdFL6AEKxouEBhUs8dZFyYVG5cJ4 | Bin 2690 -> 0 bytes ...4idv5QaBk697PQACsX4rctotCfkxCgP2V4QbHYijWTxJ | Bin 2690 -> 0 bytes ...4wzfG5FRJpcmKpu5Q3r5vBpo1WExvenLmV9zSBj6nwqV | Bin 2690 -> 0 bytes ...5a12VN2cGTtsnmkBssmQq4LThwmfXC6UUUh3nhjyKZz8 | Bin 2690 -> 0 bytes ...6PyiD3MNqbLydaHritcUAk31UnExduJKZEADqfwaui7L | Bin 2690 -> 0 bytes ...6vgvVtVJqfFSwCj5iitRU8NYeQWTDKxZ2VpQmNF4yjj6 | Bin 2690 -> 0 bytes ...76g2a7MDxQo8BdkJMw4WPEBkCVWK5LwRF9WTzrEcg58E | Bin 2690 -> 0 bytes ...81Gi8F1mKsqYyRVXBXX3ZkLQ7wn1HtvLZdSjRN1w5iLJ | Bin 2690 -> 0 bytes ...8AGFoBrerQxswEM49aRGZFanP3TqP6n7CBUYVaqLuwcf | Bin 2690 -> 0 bytes ...8iurTTSqnRyxL4mDSrzYeeg31fgLRAjCUU4s43UcLpig | Bin 2690 -> 0 bytes ...8q64u57nVj3ygmTBGU4idFY6wSApXUaZGbMabpT5rzNG | Bin 2690 -> 0 bytes ...8t2zU6tSSw5fw9whj9zGHH5Edwox9fR9swWkXtEbhx7X | Bin 2690 -> 0 bytes ...927iGfRDtLxmUCY8Z7n1rxyNpxawX3QbauS8mK8KvJMx | Bin 2690 -> 0 bytes ...9prYJ8vjiqHGLgd5jmCEe9x6LcA9jWEecbQgSr6QEhwi | Bin 2690 -> 0 bytes ...9u3hA6KGMnJV6t8BBcED9muwoueJUNwbpf21AiB878Fo | Bin 2690 -> 0 bytes ...AQBYg5JrUCDWwKK3aE6fJoZzpYiVH6z2Kn3BxS1amEjQ | Bin 2690 -> 0 bytes ...Ay6J6AhMQxMoUizm9NmjPzoETrvQYeEK6oBQyGRARytw | Bin 2690 -> 0 bytes ...BEtBpG3yXrCwTjguDtHc4GWkQd5rUMFeszwpAY7Fk5Uz | Bin 2690 -> 0 bytes ...BGnCHTnUNUZfzrXR6seXHhLdQtFf6FiBxrZJcgCUccNJ | Bin 2690 -> 0 bytes ...BMgdrxf241SvvNyLfaeAbCPivqGyz1zKbhyDZ3rMhoeB | Bin 2690 -> 0 bytes ...Bbv5xV3dXwzVMBGm7X8FSVz5m2hf62orhEMKcFPRgEZq | Bin 2690 -> 0 bytes .../CUMfLS3wYLwXDS2bfRXVZFNUWQ6RQbbHZKqi74enQJH | Bin 2690 -> 0 bytes ...CprS9YBmn4eqWUAXuwJu3FZwx3mrwLVwQWBqH12ep3R6 | Bin 2690 -> 0 bytes ...D1vVgmN3hET8h33DbC6cLVnR7KvvUZdv7V9msRspiN9F | Bin 2690 -> 0 bytes ...DNiz7JMC67xkRFgyxxCdvWHYhnTgAA3jYeDsUshhGnmK | Bin 2690 -> 0 bytes ...DWDqbZcVJ6cDf7M98LfnpT5HKkDi36XY6QXnW2g4Sv9x | Bin 2690 -> 0 bytes ...DYLFF3pbs7z8XkeA9N69YM6xRixBWY8TpF6s3m1AYReh | Bin 2690 -> 0 bytes ...DcxXR7MTs29cwLTQA7QPX4peMED3knWng8Stm68MJrky | Bin 2690 -> 0 bytes ...Duwgz7CXKs5ZjwzNP7gHbuMh1hkBjRnQLPbCVkiHvCYw | Bin 2690 -> 0 bytes ...E3XVB3XGGhCwyKTo3CVLpFrRZTUmMiJGwsL9ffG57i2e | Bin 2690 -> 0 bytes ...EQa1NwBPyBG3KLt4yoXB83Vbo9R6euK8nTqyDoztZfk9 | Bin 2690 -> 0 bytes ...ES4KqwbeXB8Jt3y4rHxQwyk1dS6Yrc6c4UzgZxc1yEiQ | Bin 2690 -> 0 bytes ...EYx3mvvzpHB4Mxxm3M7yjWxvKpujR5LhvcBmhyTumyQ5 | Bin 2690 -> 0 bytes ...EbBiaucwuiMB4Jm2oMnR6E4hNh2x4u9399L43MJHXQmy | Bin 2690 -> 0 bytes ...EhPo8LVtVjXD2C7yri92E6dNcoxHiNg8HpNAHQETDbTz | Bin 2690 -> 0 bytes ...F2SaMTDe6BzJUtcbCiesZJN2Tep4CqWstTmMDfHRcJN4 | Bin 2690 -> 0 bytes ...FFsG4URZTWfy4Eo946wtxBQxcfTgR5YoodYd45UUnBEb | Bin 2690 -> 0 bytes ...FMeWdLDZuGxEM8sVUSbf3LeMvMhjVv6AB4HyYAvwRhFH | Bin 2690 -> 0 bytes ...FZcFCQYmtUsEft9qd5HNKUzd1PiFZEfs9mNJG1n8YT26 | Bin 2690 -> 0 bytes ...FoC9MEnkp6ec39oSN4xv3whKLs5hwiUefnZhbKVisdt8 | Bin 2690 -> 0 bytes ...G57zkay9K89eDgj2CewvVaRvz6GoK1tb9FTjPY655QyH | Bin 2690 -> 0 bytes ...GX4YWtuhTheRERDHZYq4muiauwUm2zL92xHxJ4s5qZc8 | Bin 2690 -> 0 bytes ...HSAW6TvAfJZh6EydZaSBaKvi4rp9jyC5Dy6T7DBDWHeP | Bin 2690 -> 0 bytes ...Habt6bNX2iFfFWZ8STMWym9qe9ZJBmANaPPf6of7HWeq | Bin 2690 -> 0 bytes ...Hf1EWjdDwnBFoAxQMEkgAgUgA2BQpbrDfuc93mDZ9wQz | Bin 2690 -> 0 bytes ...JEGwCargy7UdRtmxf3N1LZqNw1CuGKTUuu3Um5j5eJoy | Bin 2690 -> 0 bytes .../zAR9LfnskuwyAiJLj27vU5BerUShn7NK7UP4qwuv53z | Bin 2690 -> 0 bytes 63 files changed, 17 deletions(-) delete mode 100644 vcx/libvcx/debian/controlwq delete mode 100644 vcx/libvcx/tails.txt/3b8KDhvqk5xj31HxuDtof8iGoqQGXUcWoPnMxj1P86UV delete mode 100644 vcx/libvcx/tails.txt/3jNLpA2LpLVY1JmpXkuzf88wLzgt5tyzRR8LHJUAzfEJ delete mode 100644 vcx/libvcx/tails.txt/5JBYePUojURx7Mn1CTbg8QnU6ECWhrvhhdX9587Z5Y7Q delete mode 100644 vcx/libvcx/tails.txt/5yku8wJngsNdGLa4oBSVTchDRts3c1rsPoq4fdNaPH94 delete mode 100644 vcx/libvcx/tails.txt/8wcr11hekJQGJYCWam7Nceixutb3tqQVb91fwnoeruoF delete mode 100644 vcx/libvcx/tails.txt/EiLoheuCnq4zGThcfH1JJKkB1mG1sm4S2RD1Cjsp8pwB delete mode 100644 vcx/libvcx/tails.txt/FKJcHGguNxjjtpUeeYHJ6rweoqWCXug4XMbBvFJgqRvf delete mode 100644 vcx/libvcx/tails_file/217DpRDT9ipP5iVCCaPStsUKu2qEgkXXLWA6bMNq9Yuv delete mode 100644 vcx/libvcx/tails_file/2Q7AEMCd5cfX7uGBjpLYAyN2AcbpbRJ3Pqg33Z6GS7qp delete mode 100644 vcx/libvcx/tails_file/2jup6MbVqyQHRAbkbxSvJ1TXzDijnV5of5AedUJ1opyV delete mode 100644 vcx/libvcx/tails_file/3ZkodGrfyLMmEEmRGEU3VVMT5aUa74Fe87XfEttQcCrL delete mode 100644 vcx/libvcx/tails_file/3ccGXZzQCAz2it6aoZj1gzsvbg1A4946QtxTrqVXMqDY delete mode 100644 vcx/libvcx/tails_file/43KCeXcNFY3NXexnExZozSUgvvxyhTjxJMDqzKvjKXL1 delete mode 100644 vcx/libvcx/tails_file/44XSiK67PsAa94rYBcbuAZtpxojcGvCAU5749rtc2AKK delete mode 100644 vcx/libvcx/tails_file/4gPBL1PRFyp8CBmALdFL6AEKxouEBhUs8dZFyYVG5cJ4 delete mode 100644 vcx/libvcx/tails_file/4idv5QaBk697PQACsX4rctotCfkxCgP2V4QbHYijWTxJ delete mode 100644 vcx/libvcx/tails_file/4wzfG5FRJpcmKpu5Q3r5vBpo1WExvenLmV9zSBj6nwqV delete mode 100644 vcx/libvcx/tails_file/5a12VN2cGTtsnmkBssmQq4LThwmfXC6UUUh3nhjyKZz8 delete mode 100644 vcx/libvcx/tails_file/6PyiD3MNqbLydaHritcUAk31UnExduJKZEADqfwaui7L delete mode 100644 vcx/libvcx/tails_file/6vgvVtVJqfFSwCj5iitRU8NYeQWTDKxZ2VpQmNF4yjj6 delete mode 100644 vcx/libvcx/tails_file/76g2a7MDxQo8BdkJMw4WPEBkCVWK5LwRF9WTzrEcg58E delete mode 100644 vcx/libvcx/tails_file/81Gi8F1mKsqYyRVXBXX3ZkLQ7wn1HtvLZdSjRN1w5iLJ delete mode 100644 vcx/libvcx/tails_file/8AGFoBrerQxswEM49aRGZFanP3TqP6n7CBUYVaqLuwcf delete mode 100644 vcx/libvcx/tails_file/8iurTTSqnRyxL4mDSrzYeeg31fgLRAjCUU4s43UcLpig delete mode 100644 vcx/libvcx/tails_file/8q64u57nVj3ygmTBGU4idFY6wSApXUaZGbMabpT5rzNG delete mode 100644 vcx/libvcx/tails_file/8t2zU6tSSw5fw9whj9zGHH5Edwox9fR9swWkXtEbhx7X delete mode 100644 vcx/libvcx/tails_file/927iGfRDtLxmUCY8Z7n1rxyNpxawX3QbauS8mK8KvJMx delete mode 100644 vcx/libvcx/tails_file/9prYJ8vjiqHGLgd5jmCEe9x6LcA9jWEecbQgSr6QEhwi delete mode 100644 vcx/libvcx/tails_file/9u3hA6KGMnJV6t8BBcED9muwoueJUNwbpf21AiB878Fo delete mode 100644 vcx/libvcx/tails_file/AQBYg5JrUCDWwKK3aE6fJoZzpYiVH6z2Kn3BxS1amEjQ delete mode 100644 vcx/libvcx/tails_file/Ay6J6AhMQxMoUizm9NmjPzoETrvQYeEK6oBQyGRARytw delete mode 100644 vcx/libvcx/tails_file/BEtBpG3yXrCwTjguDtHc4GWkQd5rUMFeszwpAY7Fk5Uz delete mode 100644 vcx/libvcx/tails_file/BGnCHTnUNUZfzrXR6seXHhLdQtFf6FiBxrZJcgCUccNJ delete mode 100644 vcx/libvcx/tails_file/BMgdrxf241SvvNyLfaeAbCPivqGyz1zKbhyDZ3rMhoeB delete mode 100644 vcx/libvcx/tails_file/Bbv5xV3dXwzVMBGm7X8FSVz5m2hf62orhEMKcFPRgEZq delete mode 100644 vcx/libvcx/tails_file/CUMfLS3wYLwXDS2bfRXVZFNUWQ6RQbbHZKqi74enQJH delete mode 100644 vcx/libvcx/tails_file/CprS9YBmn4eqWUAXuwJu3FZwx3mrwLVwQWBqH12ep3R6 delete mode 100644 vcx/libvcx/tails_file/D1vVgmN3hET8h33DbC6cLVnR7KvvUZdv7V9msRspiN9F delete mode 100644 vcx/libvcx/tails_file/DNiz7JMC67xkRFgyxxCdvWHYhnTgAA3jYeDsUshhGnmK delete mode 100644 vcx/libvcx/tails_file/DWDqbZcVJ6cDf7M98LfnpT5HKkDi36XY6QXnW2g4Sv9x delete mode 100644 vcx/libvcx/tails_file/DYLFF3pbs7z8XkeA9N69YM6xRixBWY8TpF6s3m1AYReh delete mode 100644 vcx/libvcx/tails_file/DcxXR7MTs29cwLTQA7QPX4peMED3knWng8Stm68MJrky delete mode 100644 vcx/libvcx/tails_file/Duwgz7CXKs5ZjwzNP7gHbuMh1hkBjRnQLPbCVkiHvCYw delete mode 100644 vcx/libvcx/tails_file/E3XVB3XGGhCwyKTo3CVLpFrRZTUmMiJGwsL9ffG57i2e delete mode 100644 vcx/libvcx/tails_file/EQa1NwBPyBG3KLt4yoXB83Vbo9R6euK8nTqyDoztZfk9 delete mode 100644 vcx/libvcx/tails_file/ES4KqwbeXB8Jt3y4rHxQwyk1dS6Yrc6c4UzgZxc1yEiQ delete mode 100644 vcx/libvcx/tails_file/EYx3mvvzpHB4Mxxm3M7yjWxvKpujR5LhvcBmhyTumyQ5 delete mode 100644 vcx/libvcx/tails_file/EbBiaucwuiMB4Jm2oMnR6E4hNh2x4u9399L43MJHXQmy delete mode 100644 vcx/libvcx/tails_file/EhPo8LVtVjXD2C7yri92E6dNcoxHiNg8HpNAHQETDbTz delete mode 100644 vcx/libvcx/tails_file/F2SaMTDe6BzJUtcbCiesZJN2Tep4CqWstTmMDfHRcJN4 delete mode 100644 vcx/libvcx/tails_file/FFsG4URZTWfy4Eo946wtxBQxcfTgR5YoodYd45UUnBEb delete mode 100644 vcx/libvcx/tails_file/FMeWdLDZuGxEM8sVUSbf3LeMvMhjVv6AB4HyYAvwRhFH delete mode 100644 vcx/libvcx/tails_file/FZcFCQYmtUsEft9qd5HNKUzd1PiFZEfs9mNJG1n8YT26 delete mode 100644 vcx/libvcx/tails_file/FoC9MEnkp6ec39oSN4xv3whKLs5hwiUefnZhbKVisdt8 delete mode 100644 vcx/libvcx/tails_file/G57zkay9K89eDgj2CewvVaRvz6GoK1tb9FTjPY655QyH delete mode 100644 vcx/libvcx/tails_file/GX4YWtuhTheRERDHZYq4muiauwUm2zL92xHxJ4s5qZc8 delete mode 100644 vcx/libvcx/tails_file/HSAW6TvAfJZh6EydZaSBaKvi4rp9jyC5Dy6T7DBDWHeP delete mode 100644 vcx/libvcx/tails_file/Habt6bNX2iFfFWZ8STMWym9qe9ZJBmANaPPf6of7HWeq delete mode 100644 vcx/libvcx/tails_file/Hf1EWjdDwnBFoAxQMEkgAgUgA2BQpbrDfuc93mDZ9wQz delete mode 100644 vcx/libvcx/tails_file/JEGwCargy7UdRtmxf3N1LZqNw1CuGKTUuu3Um5j5eJoy delete mode 100644 vcx/libvcx/tails_file/zAR9LfnskuwyAiJLj27vU5BerUShn7NK7UP4qwuv53z diff --git a/libindy/src/utils/transaction_metadata.rs b/libindy/src/utils/transaction_metadata.rs index 25df93e9b9..ffdddcf60d 100644 --- a/libindy/src/utils/transaction_metadata.rs +++ b/libindy/src/utils/transaction_metadata.rs @@ -33,7 +33,6 @@ fn _parse_response_metadata(response: &str) -> IndyResult { pub fn get_last_signed_time(response: &str) -> u64 { let c = _parse_response_metadata(response); - println!("{:?}", c); c.map(|resp| resp.last_txn_time.unwrap_or(0)).unwrap_or(0) } diff --git a/vcx/libvcx/debian/controlwq b/vcx/libvcx/debian/controlwq deleted file mode 100644 index a3c234abff..0000000000 --- a/vcx/libvcx/debian/controlwq +++ /dev/null @@ -1,16 +0,0 @@ -Source: libvcx -Section: devel -Priority: optional -Maintainer: Hyperledger -Build-Depends: -Standards-Version: 1.0.0 -Vcs-Git: https://github.com/hyperledger/indy-sdk/ -Vcs-Browser: https://github.com/hyperledger/indy-sdk/ - - -Package: libvcx -Architecture: amd64 -Depends: libindy , libnullpay -Recommends: libnullpay -Suggests: build-essential -Description: This is a library on top of Libindy which fully implements the credentials exchange. diff --git a/vcx/libvcx/tails.txt/3b8KDhvqk5xj31HxuDtof8iGoqQGXUcWoPnMxj1P86UV b/vcx/libvcx/tails.txt/3b8KDhvqk5xj31HxuDtof8iGoqQGXUcWoPnMxj1P86UV deleted file mode 100644 index 135ef35f0fb560c20f1e60b4e54053448a1a23a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)71e0tfN92z)MeQ%1622K}1QIu<6gt@K6>wo<+H&sukvqx^ z7s3~WxgO$dLsLAgu9;y5QTJc4`vW`)V2{EaD5TL(T>}|c$5Dd@od=BWG%g53=Bw6! zr64>#c47f2Q|*<5FBVipLD_x&662{fz(WsxcgNWKEDye4IDStHRRUIm38+R6S!QS- zN@$AC*@vT<<{Yg_CUcTZ%UW?nRO? zQb0o^qa?tuNn!t@4hC`ZXUf-%#?D>nQ|WB0v|@TN-54SjTL%l-X+(7jqr}QzVs%JHhTbo#GoeBB zp%v>puPgD>1d^TwKl81WWi%twgwcGe6fGffMG26S8p>X@b&-ddCdG_Y|5l5J$9E23 zd%N|6L{`Z}@d_lc!aynDrBW1J3#G%HmEwbKWQVWn;Q_$#i{y>T!XX_81LoNlFnK}3 z_48#~6-~pe$Omi?QLjB)^erfB*cFo>u1A_iQ~FIY+Uf{b8BK@DEN9a33eeF1z$^~k z><`kY+gQ#W$dCv2brT|U}@$&PF(p=L2F6-nIW+@OaRPMTmrqf=vQ~#;l{+d zm38!C#rZ=x cxABJa=#OU2+QuOSVCT(vk&^TL2F2u9Mo{xIZ2$lO diff --git a/vcx/libvcx/tails.txt/3jNLpA2LpLVY1JmpXkuzf88wLzgt5tyzRR8LHJUAzfEJ b/vcx/libvcx/tails.txt/3jNLpA2LpLVY1JmpXkuzf88wLzgt5tyzRR8LHJUAzfEJ deleted file mode 100644 index ddf49b0215ff1a53dcd5a1f3af91877f2b2365fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)71e0vhpSjtV8%{T4Yt&u`(2)F-r=?OvPPpm)GtU0h6!6%vy{Te*IbY*IbJZTr1{1;GI5#>37;3+AzJbX>Uw%0qR~QMz3*9u^ z=+_u24oYT81ag(5Wz=lH6=WVwMgfu@0&3{SYg=t4TNbeB^8xnmC4{dZMor`d`adrDGUb_HXOhw%couAygaSd z5g=kp0hDC8Q4F<+L*8R$FH zwF(|fOaW1;-!O`4NW1*3LUYYC_d)GUTfC2&_rzt{9~ZU&xm1J`h6Wsq9wpJ1$2zk4 zSkjK#gTD>c2?c*nV-lo?qXu^)1GZ*qr&OFh4?B?piDH}t@^X#*?w})xHWuF{TY9pb c5C6ZyPRcP=xQYX@BXz%o%3~++kdLhU&yICAKmY&$ diff --git a/vcx/libvcx/tails.txt/5JBYePUojURx7Mn1CTbg8QnU6ECWhrvhhdX9587Z5Y7Q b/vcx/libvcx/tails.txt/5JBYePUojURx7Mn1CTbg8QnU6ECWhrvhhdX9587Z5Y7Q deleted file mode 100644 index 0b7a1dcab30a6bb73df23b540ce641514c2c8c5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)71e0usifi5kw6Mc`GbAKUcH!<_Aa=eTui_3m^Q!FwO0>I6ysTa4#*&Zd6} z+xXtNa%J=iD?4~pE3aA)>`36btsEyy`PrB5;;v%fNhMD-u!UYAgZDGD-mn^u6em#x z>JAG7<&=#l@twIubL&)-zIYy%b9J@v5CPN{;6qF5=nE?ofOb}jI<05$dNC>!Sx;Y0 zyHAFhqIK-#dAA-2Itd-h`T@jC0eEm2H+^sYtAglaVKDhz2JbV6<{)i_7YI)B+Z|9_ zAE&<0Yd|?$oCaZJc+>uYbpBsnmxGz{FB12Z{^~8Mb(uj^ER12ae;tG!$%O#UQN7y) zJ7?KO-WNfaB6wU9FdWwqiD+eN6(PQx1M6s_4uf3c^bBCc{v+YHGgQCJR74u0P`cGt z$K*d+4^nm^r6&r&7?h(Za2E5KNQ%z7i9n2W@~fN)@=Cz}$LhI@7%XZFu1S`oM-9WC zRC5R9aN0&vacrs@)9pu!q3+e>ak^<%%$Kvtau#&Xd0ax9Px*|`xPzkM6wVxLAF2{W zFKhewVjy0<+!3PJu@3acTv`uVVnDKSmJ21dwVR-8BKCc!Yfou^6ArRdqV2|G+JEv6 ztU6RqNx%_lV=xdF7A1oJhd{s|95S@D;+Yd}JxR|am5B7jA% zYB>S!6y=ZG$m)!g{}G{#ph0II<}k99JOreuCFrgE{U&tT87=wLSogTO>J^A+&j%pv c03;sVSy_t)z-f7a5Vyd=>Lu1r)lKl1VFjl)&;S4c diff --git a/vcx/libvcx/tails.txt/5yku8wJngsNdGLa4oBSVTchDRts3c1rsPoq4fdNaPH94 b/vcx/libvcx/tails.txt/5yku8wJngsNdGLa4oBSVTchDRts3c1rsPoq4fdNaPH94 deleted file mode 100644 index b606668eacdcd26b3e9ca114f091dd4977054ab9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)71e0ulGL$*}P4$BNW(w`Pc_z=i7*3$yxjnjJ%X-M;_7TLT~A4oLch2e;Bu z-MdHjl7%(KtE*&^Ea1KZT}(VN2@Wq-pwtB}q(jHBSeJtXr;~FN-OF!eR;6xaEB9|R z#UDAl;2Y>|)Pvt9m-_{^QX8a2ee|F(hGHnsr?IoiEfXPq7A>)y2o(YCsT!dg5XjPT z0rXhlGl4xk#A*}s%me$}ex(FWF;s38ck+6bNgb<>jl$C>Cw(DF+Ya}z3Imub!bw8F zm$Bs!n3l2y4=UG;(-0ZE>Yy?t8MJCpO99Efb{Jwr83KL!Bm{D*i*huZs&J%S&<}o+ zc8gwcIv21ZgwdHlGN_V3wtRGKf}YYSp&9Xb_;Ot{Y?d%nzW_%)9$uFGZq2;!Uq-#8 zQ9XMW$yC$0#$lGdgQNQc(+17^E>mRirXA@}UNb91fDbm&9vQV|C}y+%GMkw5Mh{>a zCP=*1Fs1EUhgcRDIaAdzk~)~c!O}-x_5TIFwi4&$Fn{%Oyl^e21hHvs?<2s(%3&*1 zCg?heC0U$@8UPg{Zro^{mjLJ&+b9xh&tpmzzd!6Cn7bu~p~fS_6Ax5b&CN};$OkHA zo#=<&Y1I=85NOb9%epS8lsu80lOnXc#o0t>5&DlR)#{eKc+2O9#z{{Y3}qd=rtX8t zhXaO@f}i%qdf;~E?BCpx$P>hZyta8Qe;xB9Cv%|}XCclcr>xgY_P`KSO9uVA`JTv;7B}fFNV~1tJ1{7gpid4%p7XSbN diff --git a/vcx/libvcx/tails.txt/8wcr11hekJQGJYCWam7Nceixutb3tqQVb91fwnoeruoF b/vcx/libvcx/tails.txt/8wcr11hekJQGJYCWam7Nceixutb3tqQVb91fwnoeruoF deleted file mode 100644 index faa6e6705d048f3c2107c0df66eccac7873e0f40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)71e0tm{0O;OPr9f&OSw0s2MDFD@w(_seq%GNtf%4m*6>j#iu1;2BkN^2?- zj9|=cL$3JQEMe6Q@HV@Xzf`?^*9|+}H*v+2I!yo{i$hw+Gt}(07gC@B14P?z)_sTb zVST5;ZZ*pYRyIhHa~#@i8?{XH?%03_6c>AoNC!U zE3_r-V^*5ul2vhRJF5_krk($-nBCM=+ayQM+orXq7R*r!M|ILk$YZz(s$V?DR3gN+ zdW-6Nl@>D=n3Frfnh=@6lg#y`ncofocob1K^$&kpPGw8_=Nf!f%O1{hF~)abbLiqT z!353vSw|t0m{vvRtQpqf-2jJL9s4-??q!h+!gXSQ)>R34&c?XG56jYbhT%B zN`n)(XzDs!EhFIH;@}G`1wUUFG`^vL;Y!}IL)7M!YNo&V+1JbTpA3j&y9#)fuy(a4 zId+M{S`W3e?18$$mB1vso^X2$wimVr4Gc>)vOg${ErVr3T)`Utfea82a_K!+7ms6> zX9RCe*vC_+wm43cIkQkv4L(^G)N|rGTK>&3Ot#>-Xb(f-^A)NR$*W)EsBz`#8Mw{c zXS8%N_9+IadRWfwtR6zM;N3XuRqTercMcpKon77Ue8Qi`Gs~~bmEjwX+ cx~k0Em;v*@WSLc(2U+-C6>9-u!^M0#i-X=d+W-In diff --git a/vcx/libvcx/tails.txt/EiLoheuCnq4zGThcfH1JJKkB1mG1sm4S2RD1Cjsp8pwB b/vcx/libvcx/tails.txt/EiLoheuCnq4zGThcfH1JJKkB1mG1sm4S2RD1Cjsp8pwB deleted file mode 100644 index f38fd295a8e60c6da34f9963234c2f54a1dcea03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)71e0w1_SEQ^_|D9IcjULZ_}Ex8Eg?ee{GJfoviHdyXPvK}yPKFN^u@UqvT zjh%k4@|h{OgD?J~;0(8t)(!Y{vIH}3iUQ(n3h>b?7o6klPApVIND{s73?Q5mv*>k2 zbPPv}*7|q=WhX#9Uy$yCAN{R)FHG0tUoTD&2_aYkVF#mw^}%#(7=wW-@o%V zZKiV6&@dtlTNNlik#ihgy%2;ryFh06a#Sp)4+cH`fyo9}p{EQ^L7>>@A&JJl+Tt#^ zWDwNxX?Y^-Mh{?3jb>O6R)O%;zZsOP9Y)@(12%FacP3SuoIbO0tpRY z>GR&9Mo3v0tGk9ezKo+KIOD!Bplic-PbnJ`ZxCrcYC4A_1SMRfVlyoHWV*DH>ZrVb`PG;vtUh$ c=(kowcNf-RxMidRrS8HjrdNKC-<8E&=W*CSPXGV_ diff --git a/vcx/libvcx/tails.txt/FKJcHGguNxjjtpUeeYHJ6rweoqWCXug4XMbBvFJgqRvf b/vcx/libvcx/tails.txt/FKJcHGguNxjjtpUeeYHJ6rweoqWCXug4XMbBvFJgqRvf deleted file mode 100644 index e6821d773bb77a7f69fffce3b6c6592af6f42def..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)71e0s$QsBs_sN0+=F?hfhb){xDO%oD8<5{^FZ_t>fCLGzP|j6Hb1qk45iG z6y(H$$0v01%Eq?$nCMCl_L)1~yatWqw07|Rh`Fv0?FeEPOsG``huQKOga7OL-rwNlr-RW@RQkIQl&!`?%Ce`G&(3*b=ae})! zk{`rYMgV>-U1l~@nb4|{z$hKshI8UsXTWlwtH>i+4&P4J2pAt8*cYU;XfE~RD{b{* z(t!|eh5mZWP3aNvWz)rA(-9a2=r|Lp%~={?7_~I0h+~D{Upx(e2KME8sU(Nm+y_O# z_%z4C5c;iq z66x;sWrPa7*kDM6v5Xw-V4yESrVTXxXsvT{>dMSapFVufFU6Ea$V3JSjfY_}FOP=w ze-kA1F0O#uN80dCS2fFDU$Tl8XcgcTPq0?!br*2Hv=X;SA!tM~T@(hxE&|pYpuZQ? c)u&l6i{)X5Tj=eg=MuFI?Sexmyo^?QBAXOA7XSbN diff --git a/vcx/libvcx/tails_file/217DpRDT9ipP5iVCCaPStsUKu2qEgkXXLWA6bMNq9Yuv b/vcx/libvcx/tails_file/217DpRDT9ipP5iVCCaPStsUKu2qEgkXXLWA6bMNq9Yuv deleted file mode 100644 index 616ee2d13468a3baa2bba3fb62aa8ec4d9dccf3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmV-|3Vrne0t^a3O!Uxg$Y&U+xk;9b1k!ql3t;c#G>V|8mLYyvq!!BV4Z}IaBFzb4 zeWb;lyNUQcH(;16+KLSrD1b%;roIZC~I=bW&LGir+IuKVKB>2MKy&bzm@i zQ5OR9)=~@r0nt?$Na84lbY=AT7aXgFhuvd}FLc)h;|VE7;Ww1kHC{s zg~e{U7N~btCQtgHZXK)XHYlXeH*X`!=p7(>Y{|Nq)luoLCo@A3kV~_*`yG~3><#3z zAfh+>&_|#PL|-4NIWi^3hvHf1b;Se=qya(mrIyr-7H=?;Qeo3YgdhR;5O&eA`jATE zxm8<@gABJ}46uckWf%k7^mahLd&6k;+^gn3Mn@=|JNV%l_!TR2W0*dS7Kt(m2sJ&= z!j{k%CE3#&$&9_qhw~|9e+{L{vVh`OdTC&fI=#iPlsoPO+5}&LsVDbeYQ1Xu>=AHO z2R!4{hyrx>-()(@pDAh_FHLIGRdDdSJkw{F1QMrI5h;d52#GMmQ#betzoIDXkha_w z_ENzLG*#6kLL=5lVuOC}#54;sjh6<2MbGEFudXF&-wopAW#KXIwHdqxvpuC^hcLOS zuW~h;Ik~-c?!1ERE7f8%z94HS&kp|Cz zVE~k;9*y>&g<^u0R>FtnhH9^b*^5y^O@B_R=Ml=n9wJ!g;g-CWv&&23PzM`F?Yl~K zh%HVjj>yH^cC0(K-U>>e5c*!kbkIj=%mzEM*gX_VBpt%^SLuD9t_csLZUa__yP!_S z5=p!dn3|MxvKX8#(?STghZ8sLAVR1yKLg9FNy&FjDk)i*EBPg{E>ns?CwRZY6keqnhx3q20q!4>7t z^uFa#lkB9Th*{I{F|rDw5tr55{BVbZHetZp^#ZUM_G6k#fQb_CYuO5>cfXnf$Dz;F6(1&|1_ zK_ZhS+5(qyfF7uvngOrXt0B^k^JLyfdo#TU5z|j);XisT7I}yhGqo?>$^ketG0hZ9 zRzR~q^ee;`{F)P3k7_lcFv~qdQR@06M+M2~AUc(X4}3J&%I=%ub)OyE2V?%28vx67 zeL}Dm83Mq{ZBk=MRd|C@j;*1bvjhi(?v=sk28?r65l#f<8XC_Xat@dy{&JNe%RG2b z84)6WZ^01V)jvGVw649qfdf@O$^L9P@37zYsjA+2kz(sST%qn;19fUkLEVKaq8LM2 zeET1-%H>vAS2cH}wqMjlorljk0^7Ep_wGSsiXAJm*PlXj2Tf{N|9vH^FlRCk-q?1` z0!Y&x;bf&AuNhxp+`xllZiwnU3eSwdBF%QTwGNZq6kUBl6CX&5=^5guWHNeHVI;{{ z$O>?0^FHzYV@hh1A2R`Fuh-I@Dg(P-0&VlhF1GG_n*JHE-@_sNNoJXwma<+7ap?+5 z`UC^@f4o~lTk5*&%p^nCSKpKF`Q|#2!jbzix((F|(;DV4b|48eGfOZGN+LbE@DG!p z{N`DK_z+vvjCnC-T_eAV?o2ltme&dO!UWB7U~*6+3gO)$`#{6EQ+|v$dK5Hyj~nfm zu!n5``i_<`_zXo6*$~@Oe&Icu3~&J}oE#1(=1303sYGN_2jQ7K34&eOc!i%uQzkF4 zWj&!O+X!46=nD+J#Dz2Jh{S>>mYYtZ;sTP{S{A-!Ly}!IupbqTr5O^f(iR7ZD>^iC<9JH zqulzxOL`yvAbW=}b|*NLYqo+~I27(dUZ_J!C;_LCl9woeUFT+_6kS1-P$uJ0h^7@g z=meg-0+%3`=DCc;8A2o5hv7WjN8LoU=TxkK2;@IIQY6U}`2U4`Wc&Q{F8q$^HUKjF zgLQWt=km^+j@f_GwBzYtrVWOeq5__REY8Hq=AgA-IW*qxww}rYE zW-h{W}YU?6pR|GWQup4!! z$(uF}Z{TcH@6oHqmtS09^6Tx*mAuw=H-Odv=^JzIjl{U*W(U(w2CgK~i`^uEn_TO7 z7f76t!n|5pQU~e#zIjZXc<>-e5un}KLYeNbeo&%3t%n@VTY0!I5!=XB~*loKP7m@B_{xKI%vlqMTQ`NLk zDHSNOzlOEL+#Jl1gRPXNY!6Osu0ixT)cyJdsl*0%rxA!(E&Z|Z(Fp(52`e6C`i0kA zaeY&Cl=l*{v@wplj~Q^Lld-H3kQ+@4Kor1ybd??(nik#^fo_)aY*hKqO(R;p&b3Aa zph^1gT-(e6JPd|bqBzD%0-crq>?TW-R0c4}HvPjm{E*EnTG{Fu1gd0V_F+Fi;AR<5 z(EGA^KNTyz@;Hgbj3Ljk*`n8|TExzFpnHsjlW}kigLbq@;sTDMOW(}a^G`*cmwM=V z`{|W{i-W;kLI$DZZ3w{?5*62&&tI?r#39#?aJOkdy?;!4<71T>s_vSR7YJ zWr^1bUF=uS<~uiTvYq_JRO&6b5bPV=(*Vu zOzmdmD;wBT3>ZSCq&|4e47~LIcao5D(m+=sbi`vlJQ#+d9TuH+-T{2hj>tlg91^@b z46tas`f2w!3oGo{9Tq6tqg6UA=@?YMSbtC8BtEdx9B^UwIv1$@$r|3(4KZ*!l?qZY z$sIf)pHetkN6+_BL(;_9P;gp^vw*!Z39ya!jYu_d;>V wvTb#p1F4ZSLBYtN9~}yO<~d%ceHnmY{LDcR_aX3U0mQ2JQ|9$NMR41vBSSP0y#N3J diff --git a/vcx/libvcx/tails_file/2Q7AEMCd5cfX7uGBjpLYAyN2AcbpbRJ3Pqg33Z6GS7qp b/vcx/libvcx/tails_file/2Q7AEMCd5cfX7uGBjpLYAyN2AcbpbRJ3Pqg33Z6GS7qp deleted file mode 100644 index 5724d7ea6a3b5396ffd2a795a36085ce12406aeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/2jup6MbVqyQHRAbkbxSvJ1TXzDijnV5of5AedUJ1opyV b/vcx/libvcx/tails_file/2jup6MbVqyQHRAbkbxSvJ1TXzDijnV5of5AedUJ1opyV deleted file mode 100644 index bbc7ea2a91cdedc1901e286269267731188f9282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 w4ZpADK`L4*V1%^ zEF7%f<>%IpFc_B$8WsNnICvCqA@2wLgcj1IC*nN;wHSoHLt|PI4}pn;@0x3Ae?PRS{^KDtB3W8UKF!=1ldlCD3tA z>hR?LQyS#r3^xGo=hyQujSz3!eR0MxR`^H{c68KM#@W{hnk`4Y@4w#oM9bNe^M_};LDHk2H-byo|$Jd}hKMlIakra8d z4PO(h7)mKul20w!8Qn8x&5Wq5aaYbRJI_59&&6jCHDw9cSNQPy&~? zIAKH8W47(#LP(Jm zs=w+*-*EE_mTvc>qM*sH&g=>?WFNQQ=ZyQO}Nkj z?r~m0VJf%@NFkNhPzC#L4Gni{m6S8SWZ_W9qd$z{p&3xtc9ss_F)vTDuprrpruu=& zG^1hb=Pwp%a0Ug5s*mj8eBfkCqXmxbJYOaGuu13`bLGfa3G z)5jEQ)eQdt&d|~iJ9WJY1w#fV3&)8cEjBKh1TQJrNu!Zo+Y6>O6q$0$MoHuI;2FCy z#(sul&%83d&9Ie?yJH5;FbV6z9Vn(7z8gFh1kT`1DM$?eN!QvQ|Y+KFRrV^Es zua$aAQFws6oS05Ll!|0@3`%-_+?GOp33z4Q4k4;FiQ0RPjm}eD6Szl>1il(Oh%HqZ zx(ZpQXz8hbiU&BBxgXU8k;Z)66L&JTqW_4%Y2rMkx-0$Q7MXVh#}c2Ssns!awqIkO zCz1`Fx$OcM-FRy6cGe|w338{8nG&51Mi|_gMXj@9p#W0E{S;*Cgrsv>IR<_6)6V(`FjXAC*Hrz@Z4_Q?g8 zDtJl#14Vcs*2Xl2KpjXibp{cVPb3A^O5-m%hW#SR=cVK@^V*!^_?hva&#Yl78?2Y-l7mOF`Wy`hzA#Or$ zRY_R$c_ZDf{3`o>8HJQ^jt=x(2?Fy=eo2C9msbL06$jYi5*Inmg2id%t;gw(dtUET z^13IVw*o(`E~AqLmMd)J;Ujs{qn1^)xT=0Upun8}z+MwSEo#w8>7&Hggh$9WoD)35 zQJRo~qqiw763FYd0S331Uf{BA=;}HUZdi!y!XH%eay^N*PpN`OFK4?7D|xTQ%HL7D zZRg!K4Fi0gaR-*QZiM6|R*r9!3nmNt6GrfS)1-MPcgch&BM~cD8VakcOe&LFk*KcS za7(TaqoJ&4uNqu(@M_o2*dJP+n3A!Qu5O zTMDzx1aaf`7$|I>i4uNrfhzMc)vEk2TfG~_;itoQoOB+!3hXa7Qf_wSQ4P{6&KU%+ zo1YJTiwv1=oYDkzs?1_BTJuAIao?ROV@MmrVe-AA#uC8F@F z5RG^SR0(G;VWHf4q5QneenaUDBN<4>h>HhJLfk;kPM+GG&kRKfN=w=!V$Y(Jf54hl zJc?AEK5*VYp7F1ZBR#I5IwE5byN%v+f`0ToeW<`S&z!uwf2wz=8pK2V$O#|pO9FVY zUQ$3@%xDERsKf4mkPQGDug>Za-_f+^F6V*@+e2AbP591z0-0`PW}s{0$VbYvWg1rUz2kaJ~k(Jxi}Mt+yb{va@!xULS)i~@sc z14+PA9)!}~zSUA1zLWNf^9JIn;u~DTa1(5Pr@ga3f(OQ`chCe9N}6!~tBd=1#!2~U zbQt4rp`LYhQ2wPy7N_@)42}yMiU*Tz-=f&jp>*TCS{*hLC(6Wiv%B-DFv5L9UHk!& z)R107G=bVvssXBO08Ecy zbZ!()*LO>VaDA&>=wMBM0nxp$<>z8PaxF^{b7@B}jOao5}N zqgK1;IF++5KQnK7<@*r&dJNbjHu=Qu4pZf$Y%Lm=blj99Q()I+;vM>Ka-^qAcM&%H}+ zjkZ7;1m@E-gdJKSg7_D&FRUvgP%Rl@{@Z|0;sn1z|98^5zRbC)$q|V8NEv0Aqeui| zFA)y6lwFO9uW4;WCu#r<7Zzg_EADU*oMtyjyYun!$gP;)9y&6ZEAs#D-mdSl&t|cJLtXE9NXqD}YKl5Olbv#Wq wI1tu3KJ_75a@C?SsUEc!6BbP`ii??5z7r%@%sCFvGG9~b{NEQAovh)l-L2*SssI20 diff --git a/vcx/libvcx/tails_file/43KCeXcNFY3NXexnExZozSUgvvxyhTjxJMDqzKvjKXL1 b/vcx/libvcx/tails_file/43KCeXcNFY3NXexnExZozSUgvvxyhTjxJMDqzKvjKXL1 deleted file mode 100644 index 11d7be8e6dbfb31a9273cee98e8b6048a2139a52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmV-|3Vrne0wb^3eWSAQXZijkQy)tA8GMaEOVT_0T8ZYoR`V1PAqPh<%XM<>(Q+rm zB{p8}>vUYj5My<8^5dBUzDf&tMiXu&Z>+pk&XDMlVIj@%CDx~_Op+vjUK%dhg{xUN zc_BP2b0BmaAR+l`{)CC{#lO^tdM5gxEk?7+a{+)7To)OxEH(umrYGu6cggvXNIRvI z#;BTrF?xkofl=B6ya5vQWB9$pg(MvprODa~1so=IT-cf%iS}l9`y#P_)fJf7u9(+$ z)?B@V6E#%JGwS^d&d|y5TtjTrUvD(xI7X_|9m!uN>DvB+oov4H2)5f=cY0V;b% zA_Gaiw$GaaOy9bVy*675FY`4EkH~7AErt84upRY`!^G%v7pO15Gv$OKF``1yRrH)ubzQ>t z#I+z5E*B03#855$L7Y05C7m~2;3%%|U#U$|yOLiIupi{CoC&GsFkPwY0bj@h`}tRQ z%pRdt#?2QZK2yUn2l;gVIto~49Yqj6_r|M_rm4z<0>Z_d_c;`}a0!ZvJqD^~*&o#@ za}G$lH!%P(OZz;4Le)$8sNN{Z4I?$35W7^Xw-Jokw37@pGl#n=ekaMO!m;}5P|0%c za-b$beskFF+Y#UdST?E+T&vB0f6*3$qgqsFloCPAbTm3o^+1GdumZHx!B^AHQbXti z63<(nzy^5o?)Sp*5h*~#*MKE`F##h+1IB_uOca*VzIm=Bm1o=~32Qa2kEijkOttP+PF2@O0_K9C>>Do{Qt=P+V8(aDex zws4{I#_W%sjIjl|G#64Cczu7@Z=^;jDIo@jxCIN8LYCK|!uCU8oOVIQn>_McPj^l%-nVr$ zm?Em%ClWBcwgHQQ&p?7(Y*SeyDf|6FdxeTFTdVOG?x}OP_ziq^$b{9JaSU~^m?hE_ zO)`ltex4t@+iv&7nke#Brx{IPD)C+!G;4TaAzoYlFPRvOH&wQw9y8Hlhk#C2X4O`txveB1zbTZM`%+4PPP{UWT3ZIl!UkL`XWFu|eJ*Xi;{sTHW0*lpz;$)GU^xlR*J3=QBrxJR8(Nh@ zU}um}u_CZ{)5*DbPqou*%S!Q4?7TcYvK0HLrOstQw%_w1Tp5!@i0&>PCv#>;MlpZ7 z4X6WVw?bw-sqBu4vdxkt1S2dNu05anQCwYanHH*)!HoIVwK`p&75p z@;guRu0%q-6YGn`ZO$vBAkNv;Yv1-mYx)r`9V3Pb<4hEV&F!dIeDM_ST)@VZF5dV| zO`sz0a0jW~Yz^Y<-i_mnq1_-s*183l{W(YQMhUh7K11dUzs;v*S)fN1#8u!7t^EsZ}W zJ2)k5QXi@? zqPn-yUu+4*a+iZ#-u3p?LJZ0_PH(*jf@%Ya*&pzg;BnBp&r2W#DQ$3z+`SC5-2eHJ z(TTbZ-u(t9bpUCYr%J;^&yO!wg3~Zs8qdB8y4I)VP zS_x0vkd5ePX5mp2P0#VhuK=&*Ln`U_OrU87UvCdzzlG(pQt;0mcq%p{oh}PSRQ!EP| zeZ3*UI~HCa^n>E9`a!y5oJ5r0zmwNPc8;~e3>D}n+`?KhVg3JfDf=<|GVgR(=Nx4U1BjxX}UClU21 z_lLInOcg5zxyLkgV9)zyo(qa9hs3b9KYKe|G!EOcw4DGWC_i5-v&IYM3FdO;zZG4S zc`l2jKc(}G5DztmLmNFA4H%Qz_Ea5lYCyo*fE>iV4#eL;5Xo!_|8+3vAYACk@Tx)Qwy}f3kx!nqhXLYjjmm@Wb@s)4qj}KEufo z+!dAx8wj-4B9%iu*{x?KufCfLUJz}Jz4Eu{J9cTiP7Sr#MBN+u6fxvKI&Ct@oG7d( wz6MjfbeyXA1bu$&Lj(%;U}YBF6&^`H0iL9Ut48eIaXKS-GkvEOYw?JOBUy diff --git a/vcx/libvcx/tails_file/44XSiK67PsAa94rYBcbuAZtpxojcGvCAU5749rtc2AKK b/vcx/libvcx/tails_file/44XSiK67PsAa94rYBcbuAZtpxojcGvCAU5749rtc2AKK deleted file mode 100644 index caa4785423e53eef99724d3b8d91685e8f45b011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/4gPBL1PRFyp8CBmALdFL6AEKxouEBhUs8dZFyYVG5cJ4 b/vcx/libvcx/tails_file/4gPBL1PRFyp8CBmALdFL6AEKxouEBhUs8dZFyYVG5cJ4 deleted file mode 100644 index 94e28555087d9097d23b3754356120aaada55317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmV-|3Vrne0s@&|*>sC~gH&yK>n@@smdGVa;Izm=)H_6E&2Z{vCw zdF@y^rKig6GBXjALuoT7tpEOqEx8c(Z?HmF-!wa|k^O8D0SPt&DEclauaq0nqgP0K zmQsE%w;w~TgI6mFPKg%dN-E&f355$~xCU)9PKthmQpJDv-WO6Jl5X$A+r{(*=?=pP zrn5~#uc(5K!KPCa2hjxYa}3OeZIP%^Sc_@TMUoQL-UPAM_^!Locge!6n=&Cid3mt7SOUz{zNjM2NnDS**}~XAlzZrT3)>t{yYJ zT<2w?+$~Z?^?3Lg5O#U@M0M~1p9<;kyL2S~@?l``yLu4ov;sZUOID^L)wnC$k2xvHsM@I!x zzVd+($(E4rykoO(&;Zgj zs&K_?@)DqX$IxG#IZYR|R|k7bF4uWm=t^d&%sxH;^yQ{geF`UV^6dt!ld)o=M|$(-S4lKFyzyHpmb z!Z1v@RjMCj4FsNPGGMkzvoU%5@6s}Y|3|b{Wvjuf`T2`WB%?CNy(4$Ckd&dZ-)NE)%USZ!Y!mOxGO;C<{TI}T?c&Df zLFm89QuSH#9bg<>Yj=a?o(P7N*-t?!G!SCqHJ`ZRaxaTt`5(IdL>B@S0GdcMuTQ$d)uY#H||OekLZM{_AvlM*r_Dgzf0 zGw1@+ciL_fuVOY|;@P53b#Ztc-L&c+Y~=*VedS8K4amRR~U|9S1XEQ9%#<3 za?(|3ulxbDStE+-HBhMpz06frJ+ByWw0q@s#m*XFcN8u1q=7uBtP-49;s6uDOXKAI zz0)nw(~}_ibe&Rgc1Y}t@L4+*D;%(~RzDPF3KajLalHlaiKO6RWvF>(pO)GW!AODY z&lZXbx9h0jGkaKQ*5@_OIFC_Y^T$nwn-#dTTKDfw$r(@{P1R^BV`nlrHrnMlMYD6< zYtMcK-KZpS-_T3zfD>7UB8pgd{3{OUC%Jcgq^??xCrUwsqFCCuQMq{I9T{`h%4>R8 z$p=4Gk9IIl8NL{&+_mW=#-!T!O05w9I0Y7eci>JKumz`jH>w;mkGgW>?2*95 z%6EZYGW{*OW8xLoXbFZl+81zM;d!KG28p!?ZWWVB*f=ei;&!*}GL1IYO4ua3r5020 ztK*~##+zyr5jvST)9&8ElK@uJBGZ{1-xppEF zYSKJXE*t3gI0TZ>c6~4P^_JpdqTVC?^iaylp-R|_&GD6#k^zC7juzqTuiNljL3^QL z{Tx-Ao69e5q8`!?1lSx9SzSPuLIzshh`(u)=&d_Vk>V!tm`8#|A&PfO4NbKX8@{93 zU>S-rLSzR|f4yicw$yZ8qJ$v2ZSPg(@~+@45I0#g2(f z7TACZAkBHfDKP$;9R@A!kvEXPyb+Qf%UZ&~h-5fD&0k(ux4Ie<7C&p%FeH)k87IKy z-OJCD7Xx*skx~gOKI{KTQ){>{zOJ9D;sl2#Syy|H^*M}$d5xow#&4&b;LT8c;o?ka zCQ~iFLK>zzA#ACRGD%Q77po_mGSaw~1~3pu=YF|aF5x2T$O8ZbjDQlua|TF`^MaUb z{jfb9He))jiI-8JXSSgvwIs-AEDC{99Kszc;QlrYp82rO8+85{BX=jzT~;B0JrM2J zpZUCSXhUazW1MgIV{;%ZO}zKQkOZJr6g!h4atW6&TRtj3t$yA4#c@ohUUCEs>Qe6J zwN$-omZW4#R_)+P1DKzbL0PvKm_a&7MO8_goS!x)-+#9K59(dD*H znz@x{&BL{sA&a#7uUI_QiLC+RJp>fT{N^(TpW=>0h@E#FbT=S2S|y`y2ylpLr-kX9 z%OJoiH#*h5DW7&`I3u(}D{bj$*`{I2LcET|9Tbi05gSF_jgDmr&6$auQED8|Kzy|} wU?xje&AG^lYDs|^l?q`eU;V&$Ql$4*6}!R!?>8>bW^5>`IB}@zzz@Y*?)}6rI{*Lx diff --git a/vcx/libvcx/tails_file/4idv5QaBk697PQACsX4rctotCfkxCgP2V4QbHYijWTxJ b/vcx/libvcx/tails_file/4idv5QaBk697PQACsX4rctotCfkxCgP2V4QbHYijWTxJ deleted file mode 100644 index 060771a9e209543712b83fef4b56f026145d0941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/4wzfG5FRJpcmKpu5Q3r5vBpo1WExvenLmV9zSBj6nwqV b/vcx/libvcx/tails_file/4wzfG5FRJpcmKpu5Q3r5vBpo1WExvenLmV9zSBj6nwqV deleted file mode 100644 index e496b46ba30729d3be5cff1009102c3908f9f17e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/5a12VN2cGTtsnmkBssmQq4LThwmfXC6UUUh3nhjyKZz8 b/vcx/libvcx/tails_file/5a12VN2cGTtsnmkBssmQq4LThwmfXC6UUUh3nhjyKZz8 deleted file mode 100644 index 077caa4ba9f37ed5d7a7a90a78e0306ef7b3af17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmV-|3Vrne0ukyZhL*!2G?3~Sb*w4cV48uSFTK1}S%C4-;YJ|9?*q|3j51g?JLn&p zm=8h^Un7v_Q)FVt+?-N<^ebDzn;r)yVua!BPQAhQRRax??3+$4`4DZ5k!)o9(Sr3dL)Il12$l3TJcWKf(P2&beqdQK)p0Yd_RYAGJu|9(XGZ8EUXN031<=Wd=AMaTPq;hez{eUrW>%u|BWC zb^;c!Zzl`|7p0LQG#Or9=} zyzWd)N<=)AX!osA{0qgue^Lp@4Hv|e_sBFS_ zMOR1yt?3q0X!I&ntxE(4H0dA|R0soc#1xay_kNLmR7sLhh3Kf| zp9f$V9u5J1-6c7EALcnF$;%P4#wr1>UtkYX)O48TnxY%0#U4e}8A?jDu1gJ}q7C|T zj;NydEp06958ZlsvHr50xC8)pV8Ro9YB(<1M01wnm4BVnm)OWjEuRRKvK-B0BLbWD z*~*N=tw)|HhzmTZx+vm1OE_JF&^vI`t!T`TFb4OR;JbhXu=u`UYJ#xWT%o|}rp1bM z_upXLAj(-Wkrv|8<`ZLvjTsj=fUOz0Gh;@B+3{#(=7YY7_1LnzgAG~9$4*xrd#d6` z?WvW|94k0TfoH7aYFJ0Ooy;_zN({1Ugs<51yHq}Ron_9H6G+LBIM;D?on&a0584l` zQ2{28xK)VI?&vw1IW(`iMFPX>2$pMzE>#;)$ud>bN*)mYHo0kA*yjXZUHJESoHPw4 zU;Cg7+Ph@$as1O8J;@yXFF{eAn=dDAR)iCS{=%N`>-6aI-bXICJmjT&NN=8=Jcou2looro5 zc*h7Ox@3QERJg%@j4|oy84Vnkd&<;u#y3Q$+>aGWiGqKK$7I&B=u!|>lzDu*MG_$G z5%?h8ay^wr?fq6ukFRi3Q?N9`4f4enXf!kz6%sH)y3H7D1i+RG3Z%k_NfMyyJwffL z+bEbRKGk5kX&TAH5*%R*pg!}6*btfdg|{-H3qv=7^aH`X>n}c}sRb4$1cN^Set-^6 zas>p1MB!K&h}4s4tuNdHq&V8UydOB?2D4-cQf2+O>M)67h$i8f!~vx9{h7EmAMrfW z%^I-y2mdSSj7GuaOr_2b>tjr4;fPOVC+qL-f@iTRLK-Nt56z7t^+I~c80b4NKex#8 zLsii(?qS*Sb(F9;%po@xVRRs~*-+OwxI$@`hCv!aPr-`-S;xW&E<9eQqXdd&_=`z0 z=#tLrsP^D~h470d7a&ih9z=_kf3uknmLy{6lADL9AeQoQ6TlZOZ2!7}dG8*?-PRO) zsIE4E@*=6+f!?MLL||k^oGMVd^sPGGw{C`4skNW_Hyn5+JRdsP7zEz^eHmTUHu(RYz&ySbBL-3ZU^>;X;?XZ{Q;CZ#*pX*nU+ys{l- zpPqo;{!}(OItj|1%^&%&vBMph20P!) zSBJ;@ehZGD3`T_~dvHM_(B~RwhabQ<2rX7`LB(c4r>n!clZc`Mc3p<#r(?ys&1*p? zmKv#g=k=Sy?dSBqqQCA36J^#-DFY;ub%g(g$>BNK!GM zPo^|+X%Xp7{uY}yO`;;>^JiBcvSW%rrU2rPX=akZrLQpxY7bKkYQ?@kQ-O_-Y?_C7 z0+Ym&0uvsGO23xH^>lVrmZcU6j2!CNu~)R8x#`H)v1!fh${(_@`{zF(jCSG{`vlq4$ z<6{4mZyDOk98>JLA?XOzB_Y1b0-#dQNp7wW$r;Rdt>dFMk~H`sSp~~sBu`t@oYA60 z)eBjSRVhkL`%)+F4Ri$w21d9 zrXxK<<^yd8=OwErEP34fMqmElAQCqE#rWxtO@-k?c?c}&P!KVN)3mrJ)oi|D6kGpeovNnSU@c{5f!l_ZUloQhG#-Wln$ zyb@u-L8dher~j`DyfsVRLbcd_gab@q_N!X^_irM-J1Xbztl-fBydROf+`@FCoC{2- zbO;H&!kmU|Jzm|NoBzB~D#&G3Y>dSu6zpno^c_qc(gqOijTgAs*W83L-DIc>m1D4) w%lrSFXyiX(QXQxhC>G@SL56hj-m`jj%s?JE8S*M1JdcKgToH)zP^_pBJwBZk0RR91 diff --git a/vcx/libvcx/tails_file/6PyiD3MNqbLydaHritcUAk31UnExduJKZEADqfwaui7L b/vcx/libvcx/tails_file/6PyiD3MNqbLydaHritcUAk31UnExduJKZEADqfwaui7L deleted file mode 100644 index fdd3cc0dfb9eae613b8c14d1f3e97dc1c9766026..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/76g2a7MDxQo8BdkJMw4WPEBkCVWK5LwRF9WTzrEcg58E b/vcx/libvcx/tails_file/76g2a7MDxQo8BdkJMw4WPEBkCVWK5LwRF9WTzrEcg58E deleted file mode 100644 index 14682b7284c52f36bf94a9af18d32ecdd97921ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmV-|3Vrne0taT7PY>qX4}PFi<%9)~R6Wuu?`;@m;-34Lp$Bdd2NqppenSurYM_Kl z1c2_{2uJjF{*Ea4XUqWzaVb+@L>Sjn0%y1kjtJ!$x^vFvR!>!v5hNVs; z&;^lb;hJ#lMnUv;qI1)ZVitI_bElNMd z+4e<5;t**eZFRHxH1$K0xV$OOWf)#gAzMZKtKym)v3ZP?3lP=;z3| zugx_QaTAGiYoQO@()Suo%nEbV`sKKOzd()kA0VI-LF14XJy&lhexbs6JhXLEJmUrk z=;?#@6?MT>#0#Sw@raPZS^d;K8@f5%72~2eRa91NK;Q>ruVk z0=s46assF4r-p7JeJ<{Qw=+U=PDm7fa3Vuki93=rJzzemrYNvy*x^~}Y- zY@l%mTT}0|(@OU~Y2z?5Xck2{-m*-zq`kJ*S?((7UZKnDjs#B*%byJU8-1%3>;xg` z=$}Q_$Ui(D|MCr3W_i=gqIf#^W4gdoybfNb86)wkq)tbo(YezTNiKwj~out)Liz2 zB!?d0BrKLk1bPgg=bDt>7`dv~BxSX@-yRW#2veR2eN%DF=J zVAA>j(^f}KGL;4?2coCfwjm|fEv_e%ftbCS;IH3naK=3+WH{{!Iq1^)M-KjmeHd^V z5eUdh?ZIz_)SeiUv_9JOzL)9W!0mg&Jl!#9vN%BiI7%e zUNIrEWG3cGVidV#{TWgk{)ad-MhP9@H4EzRdJD+MB_xI?!Rg29H14ml-6j;brCYa{ zW(`dGmVh`ege~P-H|?^I0OnCKVqDq7!tB2I+FzW6pd9A6`k)9Eay(Pion-d}@=f); zkvP$~@;04~e@TF!{~k@&9y?cPdjROP+r$z(rnp;VA32K@K}EU5uQ`hOb`u>M&ue&R z@`qmB<_vc2Vn7}2Uz|W+Gn1uqm0t)h@&=4TJ(@h<2zRCc1&Ho96|U z+w5L%z0)~JAs`&ZZD8*tkSw>{pjWl9Sw6hM$F~s*B-XQCKW$=65)Qy_GUOi{q}I+} zjf|PuQKV1>EI$P6I?j>zeZuM~gbE-7UyD6)=H`btl|NHwH;wxR@s)CJ!zWRPi9t?Rh-YkgCAXswj4pk{K!P|q=CM~(HO;yR41<^ zkr~rMGOSwtxz%^6F%G5hI%7xcSS`z)&f$aKX3*;J-m}yieMIf8yK`SxQtNC;JQIjx8vtKN^%Q=&uL;GeRD%b9?6G7)3z0|t zc^3w~5DDd;Z=~wI4l`k$z?X&qIi085meGSEpy0v^YBtb(M;*8}ki%Bs7Q)91y#W3< z7hCuo`@qn={&_bpSHvgTlM$Q=YnooixrNHPbJ-bbg9t@=MLNe!8(ToR1f|Ky_Y{l= zHd~LkD_hw1_u6)G%n|Mc5$1xW@zJ*N8d9&14bAi9S z51Y#egeAlPcM%M$ObR*0-4{F&Z-9>=4#iAHF3P-4!cWL6vOxJ|`xj*jWae5tqdz1U z1!d8li#6j@O3a7B-nPUR6v7s#aOt{VHR#&_3YUM_2lZS@)t@<2w?t zEg#$aD`8$r99F#}A;*t}Rix#5dzMcqt=7o-FYh>Z6aY+C4~yTU%vQLlL>B=Dh$y7A z+`2b~SY=)>2@`9QZUZkm;UTJLM=YqpoE$m*L2~vPY(cjM=P$dhW0-yWSg9Ulr z+@L~q=c|BJx;`lU#Ev7=jUZGOvn-Yz{ZVArj0Ypy6KD)d6!#U6lIuSBHPwe)`gYCZ zBYlMESfU%lcnku^SFaygiARKXtr@_vI0lOmawlHh(FsPV`aYe1)*R;Ze>>>Rjp$wf zroD{>n0Y;4afUaiA2Ni$TFn#uFczL2C8RtwuwfP1dzn-xxa+HtrmtRWKMk=P3_V#C zLk>S|f+StN2RL-|kOAOat!6jNe?8;qeh*Z<%+DadbR5Pr4(9sfed0Xk8>Tc{yQx_8 wcvQ>t3cssFOE+EQ1RQptD`NdRS5~Piz?#zR5x*Hg=>S{|KwQbdv{!5Q*|-KAQvd(} diff --git a/vcx/libvcx/tails_file/81Gi8F1mKsqYyRVXBXX3ZkLQ7wn1HtvLZdSjRN1w5iLJ b/vcx/libvcx/tails_file/81Gi8F1mKsqYyRVXBXX3ZkLQ7wn1HtvLZdSjRN1w5iLJ deleted file mode 100644 index bb47451bf291f07476c88c77db9cb5b1bb419740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/8AGFoBrerQxswEM49aRGZFanP3TqP6n7CBUYVaqLuwcf b/vcx/libvcx/tails_file/8AGFoBrerQxswEM49aRGZFanP3TqP6n7CBUYVaqLuwcf deleted file mode 100644 index a92f828a4c09d024fc9a7c822cca2f7196c4c269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/8iurTTSqnRyxL4mDSrzYeeg31fgLRAjCUU4s43UcLpig b/vcx/libvcx/tails_file/8iurTTSqnRyxL4mDSrzYeeg31fgLRAjCUU4s43UcLpig deleted file mode 100644 index 4b34be5fc7324432deb8e27c38a54ebb1e28110c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/8q64u57nVj3ygmTBGU4idFY6wSApXUaZGbMabpT5rzNG b/vcx/libvcx/tails_file/8q64u57nVj3ygmTBGU4idFY6wSApXUaZGbMabpT5rzNG deleted file mode 100644 index 8b6cf0d35f3b38e30c468da1409e0dd1dbd4dd21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/927iGfRDtLxmUCY8Z7n1rxyNpxawX3QbauS8mK8KvJMx b/vcx/libvcx/tails_file/927iGfRDtLxmUCY8Z7n1rxyNpxawX3QbauS8mK8KvJMx deleted file mode 100644 index 12e0f927745674037fbb5e79743f22309723e039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmV-|3Vrne0uwlT|#8vQoja7+rVIsVl$f;Y!b|1vOsblDg~5-TF4BpQ=s#EdfD|*{LhVOQcs9`}NbbQaLK~Q+efhY+mh&gksRc-4PU{qA%~;K5|au(%hn@ zRQSL}9@Uzo8|Qa)&tgEOt{XVgz`9lZjCn0=>N}&{CJk(myvMG;_>s<`uMI4w^b1#PQZ698LqDghxiANdUfcJrV`WW_DtW8+ZiAZG0XxX=>fa`53@DF2j2o~I>7U} z=Tu9MRV@R?m2h^hLm$vNGZVDopTh{KM)u_80xtIg9ZZeyt^~I+h73dU#a(^TFa$b0 zKtf8UxSo0xB5McI0XWCQ5gAr2ZetIJ&Y%mEmBsaX&k^A8#$DkwneRG zKuKl&NN_<+^!9A!kc)#kZHDj04j)J!rq6>?n9e}&y@3+_i&mDW(_fx8rH5VHE9NjW z>k%h$=K<5u-tIU_b!xCC31UmN#@lL)Q%*Db#d0|iXdnumN2aW zzyMJ69bIW?tsOd32OFu&ggEJ}e+JpADuEkj)4lq;ndLmNd%LhN``}j-ff9SFm)>@;cs@6BO5;!4$5fD?JgLi75oYG_I zGGaXdZtly0X1}7flyCMT= zk1#W7u;L&2_PK{UkAY=wJN0Io8czEAq%ujp85J%DiZLdDCz2zeQolzc13%sypccp| zq~z+z76Lb;{0p2tN*)PctxRYr$!oEsbh%+b@pE-fG^9;#=IqkE5+8QUeUXl-PmjQn z8@Jz6q9Q>CzV2OQS~%6unDu|Pck##9V_bDor2n%I)Ga0Y?%A%2qtF879%p_P^WM0_Q; zjzi%;V@h0S!_)FDyA*zGpY83#^Y4j&jwj54nPm{=5%#i1NDn%nE9Oq@fEYHKtC-6p zMbZt{l5#Tn@+h2LVOcfbR3v`Z5fd^iN(elntYXHx8<+l(oQ+C3QaJIzsMv{+<3!1u zT7cwTfe{b!L~p?0vRB5XKq9!*BK}8$;CMC2e&}?y&hp3lN?@$k)sdW(JRy;Q;F<&H7Qjj+j6oJ*xYQns0{sm zO>AC{XN{;=CvdnDfj%T^hz0-!eCViLm|8l@F&&gc5Au+_t>4c_gl8n zjovHBe&U2X3K39Td958_&gs3~^837{tUrZD95ihjGpH}Q2~OD{iyd+;oKfEFmN#{8 z%`af#Vac(f4@Gpm<(srR$oyQExf2MZsXyH>nZVAwVkZdhKQYSIPDbo;W%8O~E~WSC zULE7hB{YoLTm68pnRF5KLZ!0svv>Nnx=^mEM zkUKm|n;7f@q<4Hpg7Rde-Dmx@vsD0Fa3Z-oXlK9(WTjn)4RH=An+FRw5}Dy$+u3mO zip-REVggEPu_m5AO*INid+;z&;!NG0j|f+-D*X1jtE#;K0t04B2 z;~?1NO?1a#q=5T!$(yl*zlC{rz`zOi$|}vKdS4@VW)cGSsCs|ZbXLH0Dt^9&lKZr5*s~|?zcqa@ysol-xTA`&uAPq zC9NjU9^cM@-vnS zNf@zT6CUNN30Q_h%Db{d&Sx-n&&2G5A$qEA@`~mU>8{`0MGKg+mKtk0ooxNS)fers zGtm*`BaP$FSyQmf1zPd^i4Beif(w`(JrVa+U>6+hPlM6=jlPXfo}a?N)mlXO#|4r^ zRI?*&7mm}(?a0}tFxNU`CihOyxyU-2L!;Wfa2)J*7^@R*3WQ1I8x}`{{s-6mloXKlCRinD+*=3_ wm8A#%j>%f-eu57j}WL$V;8ON=4d}D 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 diff --git a/vcx/libvcx/tails_file/9u3hA6KGMnJV6t8BBcED9muwoueJUNwbpf21AiB878Fo b/vcx/libvcx/tails_file/9u3hA6KGMnJV6t8BBcED9muwoueJUNwbpf21AiB878Fo deleted file mode 100644 index 79880c78e1d8ec18cac48468887059db5578d32c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/AQBYg5JrUCDWwKK3aE6fJoZzpYiVH6z2Kn3BxS1amEjQ b/vcx/libvcx/tails_file/AQBYg5JrUCDWwKK3aE6fJoZzpYiVH6z2Kn3BxS1amEjQ deleted file mode 100644 index fecfba0e485e56518e7348bb139bb46eb68aa812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/BGnCHTnUNUZfzrXR6seXHhLdQtFf6FiBxrZJcgCUccNJ b/vcx/libvcx/tails_file/BGnCHTnUNUZfzrXR6seXHhLdQtFf6FiBxrZJcgCUccNJ deleted file mode 100644 index b6df08a0e54d47aa7d26442e94453772f1142bb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/Bbv5xV3dXwzVMBGm7X8FSVz5m2hf62orhEMKcFPRgEZq b/vcx/libvcx/tails_file/Bbv5xV3dXwzVMBGm7X8FSVz5m2hf62orhEMKcFPRgEZq deleted file mode 100644 index ab7286cebb1a5d019de5d5e1011b49aa5b197d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmV-|3Vrne0vyebgtDRb@@gcCE0B8^z_Ie}A}t!?lYV8N8#;qhH5m@mZAX3revNQN zr^p(R^zLf0OAsb5?MJ2OVu$FXZvp3&7B<#s*u!rvRcN`%4;>tYsH3^l`}|4jvruW> zG$2(yI;sPaKR5}i`GGLoXvpeC4QCHGpmp`!XQ_}_AP_zCQizSKy5|+`9HTjlzS&wB zp90Pi1q>tbibdz{atA`2Tt0u)A{{TvV~Vh)w1|Vh%*&p|_4WQA*rk=I%mB>Y`(e8m zQH8Cpsu0pb4h8@~DTSLa)=uc_k`cMAg{y*lYpu*?L=y^O_DV+he;^_;N(gnQ6HLWG zDm2LGt*HI&F7}iA9_6}f)}7=gI}wl`k2}U~%B~@TH1?6L0v`m*M+M%Kj@69q!vZeg z{vAc=z$#H}!+*JuL?|1Vlzze3tCS&=Dq__vvW$%rQVqci$Rq}q&#^C`Nv7MVX{>|B z=+O@-dAz_|{Q5|F2oE)yi`5~By^x^uWH>9(ZQcExdjy-mk0^8$^e(xu#TKni@DT}~#?*c|$43sC+Fn6Y= zp4e$TbEAKhfEMk24D(?~{+a`<*$cfoh;p#MS4S2UJ(BN6+&enThH7I*86IugDuv(V za|ut}HV7uGOI-}h7Cq3aB~!fk`OKzQnp~ESldw9OItkF4Hw%lVFJ-5$e~x10!BO{% zQ&0uFSYhgwGlw8i&K*gQtk=Krzu`PSbh!8V(xIkTw}HlYHQk{}DNpmgYarT3Np~A#x z5eYsk1L$5gZ554uiV2n{$RLXNq%wY%+}Z-?AUOb*v&;`kn*Ix7ZyzGWuYSq8D;!8> za3FdycL<(6c_gXVJLNHUC<6e^u{nqd`Bdb9sT-|O8GUKRx;>Z6P=3d-I#WjWMn|Z^ zu`t7mlh5PyWdWO_oK}-!^z83r5(%hCQL?LGo-kPOHMp43>2q6N} zY11Mn&aqh3Rf>1(_#+9)Tjel;awCDu7b0a+)fVA>%vZOPJ=V!MPiQ`>0A1JzTaJ8M zZUX_L)`BW1Vz=V@!^)^Cja%vU7U9Ta&Qj5+;|uzSe;3Yx%`qmj=zR){!v9ph-V>`7 zAAi?Xp3I@hODJaIyaW$7rKf<#N;DtyS)bEB$TRc=p}qI17elz&D2M@hH3gs4kU0w4 zp%LE7HNLaz6tQbiPX*zIzGl?1NV47%Q5pp39a?wPD22;bB&Ta{FUrxzGGoKUbi^hl zOw^5Y)+C|$W;i8Z%8t&t@_;K+nhS-8**sfQvHe-|jDKQSl@b7UtQLZl!tG@4mh^5V zf6n~2kf$$5Pu_oeD?lk!ySgJ{})SrO{6sB-5J(KKzFne*tY_|aU8piseL zg0E6m^kay~{0qQhe3L0)DY0EKp7ZEIL^O--T6NcAB1flI>IG?S`JYN5T+6s4WcY{QR zrK!)bGBp6OymAtGL%;6YRU>NtdtuT|l^dlXMR~agrP8=|e@%dfus{qtVBF%wSa0sri?t3777+|;9MOky? zDCMh~#LVY#zD0U5oP%8OJ#@F6(fh&vXiVs`eF4g&OZn1qh|k zEurn&Qjfao_0FWJ;R*ek#I=H@@2h*je+eq?yA9zWmIguKignc3N=FRDp6>=`3oM;ji>h0FSs7l)01;oSn=Qamk+XWi{isg z26%Te^r5C9RQ67W#&o{h~I8sE9m6==q1%89SFI#LTiuW>CX(ab{Yldo&2B8iCrk=a4^}o zC$#+pOEd*2KCcf&$F4S6Q3>ClPkh>pj=9={KsvM6<#LQrpc_0h46O;SH%dj~_#bar zP%oM_O6Vp^gE%N#GLitFDXSkibqSMhH;Zh|?ipQip5}j0)=Z~5BXCjx8T^jhYBv|R@=T>Y0wN-H+1sv?SSMw`Hc~>Fg zVQxXcUdLSCt;@r8Uhi4M(s;i{9SAlY;sEu4_#jvID_v|xU8grId^Ixq&FVz>urP$1 z#tr)!uXDVN#%qDO^nHTGD*lf4u212fihO3s^n1)=$RgZ=yaeei8%Hju1!k$=xDJ<2 wx6_>M#ojZjPk^Lt{Si}GQL!W7T3@pXQU{8(#bKf~jnQ4S*Y?0pw|>tG*ZR&Q2LJ#7 diff --git a/vcx/libvcx/tails_file/CUMfLS3wYLwXDS2bfRXVZFNUWQ6RQbbHZKqi74enQJH b/vcx/libvcx/tails_file/CUMfLS3wYLwXDS2bfRXVZFNUWQ6RQbbHZKqi74enQJH deleted file mode 100644 index 49694ec0d63848cbb0ec175f47c3bba3db9c5cde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/CprS9YBmn4eqWUAXuwJu3FZwx3mrwLVwQWBqH12ep3R6 b/vcx/libvcx/tails_file/CprS9YBmn4eqWUAXuwJu3FZwx3mrwLVwQWBqH12ep3R6 deleted file mode 100644 index 679bfd29a96a87c4997fefc114fd26fff9b19e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/DNiz7JMC67xkRFgyxxCdvWHYhnTgAA3jYeDsUshhGnmK b/vcx/libvcx/tails_file/DNiz7JMC67xkRFgyxxCdvWHYhnTgAA3jYeDsUshhGnmK deleted file mode 100644 index e2dfa037d9efdb8c5d9f6cfeee5ce13c469c7ff3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/DWDqbZcVJ6cDf7M98LfnpT5HKkDi36XY6QXnW2g4Sv9x b/vcx/libvcx/tails_file/DWDqbZcVJ6cDf7M98LfnpT5HKkDi36XY6QXnW2g4Sv9x deleted file mode 100644 index a1ebc0e3fe78d60728407358baacaed1e1677963..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/DYLFF3pbs7z8XkeA9N69YM6xRixBWY8TpF6s3m1AYReh b/vcx/libvcx/tails_file/DYLFF3pbs7z8XkeA9N69YM6xRixBWY8TpF6s3m1AYReh deleted file mode 100644 index eabd57cd4e22236a8af62202927503e9fa0a72ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 w0)2br diff --git a/vcx/libvcx/tails_file/DcxXR7MTs29cwLTQA7QPX4peMED3knWng8Stm68MJrky b/vcx/libvcx/tails_file/DcxXR7MTs29cwLTQA7QPX4peMED3knWng8Stm68MJrky deleted file mode 100644 index ccb17cc3aa6049c0be4ecf8a55c56ed5bfeed5a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/Duwgz7CXKs5ZjwzNP7gHbuMh1hkBjRnQLPbCVkiHvCYw b/vcx/libvcx/tails_file/Duwgz7CXKs5ZjwzNP7gHbuMh1hkBjRnQLPbCVkiHvCYw deleted file mode 100644 index 5679a72f1052d6be365b3155987fe7f8a3ffacd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 zcmV-|3Vrne0t<1o|M6RQJ}%TtI2>;>=t@^U%@ALgumos+h#R1{&1cgUNN?LIAzLkRuQc^{~rZDyahp%?5)0RP4ph z1Qs;40jHp~#63lKVZ7J#SLI#S63sL!EC`El>HB6J3m$MwfD=_A#Pt6|Il5hhpP?je za)uW)z=T8qREuPY(HFKpm*3$qkPJ$3)R~wSnMi`s4P^fdj8L^U6UA8^r47{$~BVveijNA^bZByW?zK(3!R8!w_X) z?l5^ULh6&T^1M&WhSbml$MHTuyzRu!>e#FA*ac&<=usG&`WWp0nm}kNN1*KqHrx`9KL0Q9I5# z;yG(X_}7c)^#Vw;`i&kGPr6tTcpa(Au1xErY__xAzELnHl0XAF6R{6>s!6tL?PISw zV(WIBqQQ+H|T3EMUe}NwLHG2Hbmq52OooSe|Yes)%r9>u2JXCo>hSY zGORf5cdmHt65HWgE(}H;H^M$OL#NY(S<<2@xjK>_wlVg6h3SW4LAN(f=?N?NMDlZQ zUM3i3`&Zo4^tAXmxyWE_csobq`wqA^kR5l5S6&ihNMSdAK5;f@Y-PU>ofEDmK}_0* zAYT1psue`^CEsq}kr-R<>JVtvf zVy#JACbF$dJDMz5wBWA6$gEJ<1f6??;y|dUE@C3eYtU4;)ArJDHaz@ z*8WY#BR)}Luxrf$xWU!ZR8*CWP2*EoWWm(U;sOA260KWdaA^Kd{4V-))a`q!HRWaJ z8_f~JHyuTaI2rWZ;4r;Dzd}xx`~t7Pn-0{4ja}cEI3R?+kYFUja1y9c4}l!#EYSbs z{dz}Nju-dLz9Ut3I~`L~VHS_q<`H|0@K9!2rb5&!{PpeuXk)Rh#2Nz-VBOhOXua?8 zF#x&7UrACe*tFYsJD=zL3(FO96pksbOWU&1^Y#;HVGEVCHK}Ox%S+qW=+8Jcu6^5x z-^=-vTqN}A@WRo9SrK_-|30t5vgQXzZj?NFr1WClB9x*~8-9k7<<8FH0T1^6tVUpo zkKpSyJ*trApAd8Zz_dBFg;DTFvEaZ|-4iUisNUx@bRx$LBA5qvjb1nW7!gkGE8Ew2 zTz6q>Wd{nJydh&#x;z2z-E>F-`w-#udM3o8AO#wyQYu6RK@xfFRECaNAw(u|Gr!J{ z>|w_xaw4llr(IQXG8N~3%pVRO#23*r!d1IQ=3`{gz%AoclXftZ-ZEbYpLM`GO9RKF zlt=B^VxQP0D@Zz?V#ej*<1G9JvP|2w>o=y{RUyPfJP8~%@!I*4-EU#;oYUClH4sNb ze>+0y$X}*BG8?`_1X-y$)6{teWdiqWa#QFWd$`U-5-^I5r2tQ_A0L~9Ht`WNgBzqh zg7E0v6FF>Oq~klE>~%aijr>sD%?jLCfQ5>61bZpW@>=HAr)mbSEAX*uC~bq~bP3St z+zvHg<}Mv$L>=B-MoX!*a)PRza{itK(}WOXnk!hN4IICAGdN�!SP=L>r~x^5#-5 zDL|P9qa^ACxwCZCjt|$Y4fG1NG%p6IiVx79bGf(7j4#WLH>p&;4H|(lv>D?W-tB!a z`De~iM|_t@>=mzExXTZ+7>gm)qQ{1-YZbQh%39kjUm1El0z-aB{iiWALf!qfp*F+z z)woWBnguN{%&$kUM0J2lh4PKmu#@@62hIRIY)L+Bkk5FeXb}A*RA1uCSm1O=W0^-Q z2;IjAx`naQe~>@BN^l49a2@2rEDm-pu%H@60sNoh^ylC>$AzPf<6BvElw|2C%p99| zU)c;;yq9UBN1Ta-nub~=Ct0)CldJfS+iv#O%MxHx${p}MgLJAUe>En*SEhN-F?$cO zztT{haMZJG!v{PB9fXL7exsisD5Ip@{9OP|4{8WH2_gAdu{07g$Rk$VZk`s$TaRA# z-vNnwdAA-U>^|yMlEJ@s$C7zy*A#scY+H|;8 zyDIY8U5=i;T+L__mqS~M6_HC+E75RBlnr8n3P!#>R_&`wSNAp@yWO)FXP#df_)n$N zox4|RH^GG)d~S_9$Nw9}t^*2rivA)Lvg#-vfzSRhlIL~oCpY9Py!{kQwaXHN;Ro6IAil4lXWFG_z^BmD2Rtv(# ziv6w-aG+3ITq2Q{XsuoJR67BH7a7aF7P%xKX6%Kolz^{D@&{Y?&=9@B^o>rW zo)=%a8RkRQZ0Cwa7evTzdF_ih&|TFDnGy*;R>Lsr?U2588U<{Yx5A_zdaQZMwKFN@ z$IJ=x8yJ0>04N%{%4x4DNydjSJJ^P+>m57<8NLzy;ErI0qXjQy#2=ff>fQa40uqCt&$>v=~guMHwf z6Ip~!<6z}_6c7T^6ET0-c|wU7O*=olV&Gz95AhTvcyuFq^ht|0S6V*dZZRrz^g z4Wfp&G9N^al7XdUPUkx?!qXtuX#u4?xJWEO!;PB5FPccsw)k)COlwR|*Kw`YvQ?%& zQXU#M0VQQy+FCU?ake{4Nb0p2^A#&H=n=OL0W62*Ais^abB>SQS8wO`U>vXOq8+mF#Iv>2P7TE#gy^I`}kl)x|WRvK(F^8UO$Q diff --git a/vcx/libvcx/tails_file/E3XVB3XGGhCwyKTo3CVLpFrRZTUmMiJGwsL9ffG57i2e b/vcx/libvcx/tails_file/E3XVB3XGGhCwyKTo3CVLpFrRZTUmMiJGwsL9ffG57i2e deleted file mode 100644 index e8808d4756ca24dd092eb081f0c7ebb531e0c688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 wCDFuBbTX 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 diff --git a/vcx/libvcx/tails_file/F2SaMTDe6BzJUtcbCiesZJN2Tep4CqWstTmMDfHRcJN4 b/vcx/libvcx/tails_file/F2SaMTDe6BzJUtcbCiesZJN2Tep4CqWstTmMDfHRcJN4 deleted file mode 100644 index fcaca52b3a5d7167a09ede9e79d293c835e94a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/FFsG4URZTWfy4Eo946wtxBQxcfTgR5YoodYd45UUnBEb b/vcx/libvcx/tails_file/FFsG4URZTWfy4Eo946wtxBQxcfTgR5YoodYd45UUnBEb deleted file mode 100644 index b45c61d67856748d0783358f13440da862f3c185..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/FZcFCQYmtUsEft9qd5HNKUzd1PiFZEfs9mNJG1n8YT26 b/vcx/libvcx/tails_file/FZcFCQYmtUsEft9qd5HNKUzd1PiFZEfs9mNJG1n8YT26 deleted file mode 100644 index ae9f863675057b460aec3a99db47b74fcaa157ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/GX4YWtuhTheRERDHZYq4muiauwUm2zL92xHxJ4s5qZc8 b/vcx/libvcx/tails_file/GX4YWtuhTheRERDHZYq4muiauwUm2zL92xHxJ4s5qZc8 deleted file mode 100644 index e339ca98b4323326ea84c1383607775057cea9b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/HSAW6TvAfJZh6EydZaSBaKvi4rp9jyC5Dy6T7DBDWHeP b/vcx/libvcx/tails_file/HSAW6TvAfJZh6EydZaSBaKvi4rp9jyC5Dy6T7DBDWHeP deleted file mode 100644 index 6fc11d9e7b30f1daaf6f94e1c18ea55d0883bf34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 diff --git a/vcx/libvcx/tails_file/JEGwCargy7UdRtmxf3N1LZqNw1CuGKTUuu3Um5j5eJoy b/vcx/libvcx/tails_file/JEGwCargy7UdRtmxf3N1LZqNw1CuGKTUuu3Um5j5eJoy deleted file mode 100644 index 24627ea99eac88c0659f52aca371a990af9cd1f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2690 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 Date: Mon, 28 Jan 2019 17:12:04 +0300 Subject: [PATCH 04/10] Remove unused import Signed-off-by: Nikita Khateev --- libindy/tests/indy.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/libindy/tests/indy.rs b/libindy/tests/indy.rs index 61fb4284e4..45e22d126d 100644 --- a/libindy/tests/indy.rs +++ b/libindy/tests/indy.rs @@ -1,5 +1,4 @@ extern crate indyrs as indy; -use std::env; #[test] fn set_runtime_config_works() { From 50486a717869e32e9e2c0971e20a9a0b3516eac6 Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Tue, 29 Jan 2019 13:44:53 +0300 Subject: [PATCH 05/10] Refactoring Signed-off-by: Nikita Khateev --- libindy/src/commands/ledger.rs | 10 ++- libindy/src/commands/mod.rs | 2 +- libindy/src/services/ledger/mod.rs | 18 ++--- libindy/src/services/pool/mod.rs | 80 ++++++++++++++++++-- libindy/src/services/pool/request_handler.rs | 14 +--- libindy/src/utils/transaction_metadata.rs | 66 ---------------- 6 files changed, 92 insertions(+), 98 deletions(-) delete mode 100644 libindy/src/utils/transaction_metadata.rs diff --git a/libindy/src/commands/ledger.rs b/libindy/src/commands/ledger.rs index 6a79c8a33e..1a72be8ede 100644 --- a/libindy/src/commands/ledger.rs +++ b/libindy/src/commands/ledger.rs @@ -16,7 +16,10 @@ use domain::ledger::node::NodeOperationData; use errors::prelude::*; use services::crypto::CryptoService; use services::ledger::LedgerService; -use services::pool::PoolService; +use services::pool::{ + PoolService, + parse_response_metadata +}; use services::wallet::{RecordOptions, WalletService}; use utils::crypto::base58; use utils::crypto::signature_serializer::serialize_signature; @@ -877,7 +880,10 @@ impl LedgerCommandExecutor { response: &str) -> IndyResult { debug!("get_response_metadata >>> response: {:?}", response); - let res = self.ledger_service.get_response_metadata(response)?; + let metadata = parse_response_metadata(response)?; + + let res = serde_json::to_string(&metadata) + .to_indy(IndyErrorKind::InvalidState, "Cannot serialize ResponseMetadata")?; debug!("get_response_metadata <<< res: {:?}", res); diff --git a/libindy/src/commands/mod.rs b/libindy/src/commands/mod.rs index dc8fd29a75..1193772047 100644 --- a/libindy/src/commands/mod.rs +++ b/libindy/src/commands/mod.rs @@ -24,7 +24,7 @@ use services::blob_storage::BlobStorageService; use services::crypto::CryptoService; use services::ledger::LedgerService; use services::payments::PaymentsService; -use services::pool::{PoolService, request_handler::set_freshness_threshold}; +use services::pool::{PoolService, set_freshness_threshold}; use services::wallet::WalletService; use self::threadpool::ThreadPool; diff --git a/libindy/src/services/ledger/mod.rs b/libindy/src/services/ledger/mod.rs index a393b24761..2c842b0bd0 100644 --- a/libindy/src/services/ledger/mod.rs +++ b/libindy/src/services/ledger/mod.rs @@ -26,7 +26,6 @@ use domain::ledger::schema::{GetSchemaOperation, GetSchemaOperationData, GetSche use domain::ledger::txn::{GetTxnOperation, LedgerType}; use domain::ledger::validator_info::GetValidatorInfoOperation; use errors::prelude::*; -use utils::transaction_metadata::*; pub mod merkletree; @@ -549,16 +548,6 @@ impl LedgerService { Ok(res) } - pub fn get_response_metadata(&self, response: &str) -> IndyResult { - info!("get_response_metadata >>> response: {:?}", response); - - let res = parse_response_metadata(response); - - info!("get_response_metadata <<< res: {:?}", res); - - res - } - pub fn parse_response(response: &str) -> IndyResult> where T: DeserializeOwned + ReplyType + ::std::fmt::Debug { trace!("parse_response >>> response {:?}", response); @@ -572,7 +561,12 @@ impl LedgerService { let message: Message = serde_json::from_value(message) .to_indy(IndyErrorKind::LedgerItemNotFound, "Structure doesn't correspond to type. Most probably not found")?; // FIXME: Review how we handle not found - handle_response_message_type(message) + match message { + Message::Reject(response) | Message::ReqNACK(response) => + Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Transaction has been failed: {:?}", response.reason))), + Message::Reply(reply) => + Ok(reply) + } } pub fn validate_action(&self, request: &str) -> IndyResult<()> { diff --git a/libindy/src/services/pool/mod.rs b/libindy/src/services/pool/mod.rs index 98c87e070b..6023fe1b90 100644 --- a/libindy/src/services/pool/mod.rs +++ b/libindy/src/services/pool/mod.rs @@ -9,6 +9,9 @@ extern crate sha2; extern crate time; extern crate zmq; +use self::byteorder::{ByteOrder, LittleEndian}; +use self::zmq::Socket; + use std::{fs, io}; use std::cell::RefCell; use std::collections::HashMap; @@ -16,24 +19,29 @@ use std::io::Write; use std::sync::Mutex; use serde_json; +use serde::de::DeserializeOwned; use api::ledger::{CustomFree, CustomTransactionParser}; -use domain::pool::{PoolConfig, PoolOpenConfig}; -use errors::prelude::*; +use domain::{ + pool::{PoolConfig, PoolOpenConfig}, + ledger::response::{ + Message, + Reply, + ResponseMetadata + } +}; +use errors::*; use services::pool::pool::{Pool, ZMQPool}; use utils::environment; use utils::sequence; -use self::byteorder::{ByteOrder, LittleEndian}; -use self::zmq::Socket; - mod catchup; mod commander; mod events; mod merkle_tree_factory; mod networker; mod pool; -pub mod request_handler; +mod request_handler; mod state_proof; mod types; @@ -256,6 +264,66 @@ impl PoolService { } } +lazy_static! { + static ref THRESHOLD: Mutex = Mutex::new(600); +} + +pub fn set_freshness_threshold(threshold: u64) { + let mut th = THRESHOLD.lock().unwrap(); + *th = ::std::cmp::max(threshold, 300); +} + + +pub fn parse_response_metadata(response: &str) -> IndyResult { + let message: Message = serde_json::from_str(response) + .to_indy(IndyErrorKind::InvalidTransaction, "Cannot deserialize transaction Response")?; + + let response_object: Reply = _handle_response_message_type(message)?; + let response_result = response_object.result(); + + let response_metadata = match response_result["ver"].as_str() { + None => _parse_transaction_metadata_v0(&response_result), + Some("1") => _parse_transaction_metadata_v1(&response_result), + ver @ _ => return Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Unsupported transaction response version: {:?}", ver))) + }; + + Ok(response_metadata) +} + +pub fn get_last_signed_time(response: &str) -> u64 { + let c = parse_response_metadata(response); + c.map(|resp| resp.last_txn_time.unwrap_or(0)).unwrap_or(0) +} + +fn _handle_response_message_type(message: Message) -> IndyResult> where T: DeserializeOwned + ::std::fmt::Debug { + trace!("handle_response_message_type >>> message {:?}", message); + + match message { + Message::Reject(response) | Message::ReqNACK(response) => + Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Transaction has been failed: {:?}", response.reason))), + Message::Reply(reply) => + Ok(reply) + } +} + +fn _parse_transaction_metadata_v0(message: &serde_json::Value) -> ResponseMetadata { + ResponseMetadata { + seq_no: message["seqNo"].as_u64(), + txn_time: message["txnTime"].as_u64(), + last_txn_time: message["state_proof"]["multi_signature"]["value"]["timestamp"].as_u64(), + last_seq_no: None, + } +} + +fn _parse_transaction_metadata_v1(message: &serde_json::Value) -> ResponseMetadata { + ResponseMetadata { + seq_no: message["txnMetadata"]["seqNo"].as_u64(), + txn_time: message["txnMetadata"]["txnTime"].as_u64(), + last_txn_time: message["multiSignature"]["signedState"]["stateMetadata"]["timestamp"].as_u64(), + last_seq_no: None, + } +} + #[cfg(test)] mod tests { use std::thread; diff --git a/libindy/src/services/pool/request_handler.rs b/libindy/src/services/pool/request_handler.rs index 5c407c0f54..b50a633e03 100644 --- a/libindy/src/services/pool/request_handler.rs +++ b/libindy/src/services/pool/request_handler.rs @@ -10,6 +10,7 @@ use std::time::{SystemTime, UNIX_EPOCH}; use rmp_serde; use serde_json; use serde_json::Value as SJsonValue; +use self::super::THRESHOLD; use commands::Command; use commands::CommandExecutor; @@ -20,13 +21,12 @@ use services::pool::catchup::{build_catchup_req, CatchupProgress, check_cons_pro use services::pool::events::NetworkerEvent; use services::pool::events::PoolEvent; use services::pool::events::RequestEvent; +use services::pool::get_last_signed_time; use services::pool::merkle_tree_factory; use services::pool::networker::Networker; use services::pool::state_proof; use services::pool::types::CatchupRep; use services::pool::types::HashableValue; -use utils::transaction_metadata::get_last_signed_time; -use std::sync::Mutex; use super::indy_crypto::bls::Generator; use super::indy_crypto::bls::VerKey; @@ -723,15 +723,6 @@ fn _check_state_proof(msg_result: &SJsonValue, f: usize, gen: &Generator, bls_ke res } -lazy_static! { - static ref THRESHOLD: Mutex = Mutex::new(600); -} - -pub fn set_freshness_threshold(threshold: u64) { - let mut th = THRESHOLD.lock().unwrap(); - *th = ::std::cmp::max(threshold, 300); -} - fn _get_freshness_threshold() -> u64 { let t = THRESHOLD.lock().unwrap(); t.mul(1000) @@ -1155,6 +1146,7 @@ pub mod tests { mod single { use super::*; + use services::pool::set_freshness_threshold; #[test] fn request_handler_process_reply_event_from_single_state_works_for_consensus_reached() { diff --git a/libindy/src/utils/transaction_metadata.rs b/libindy/src/utils/transaction_metadata.rs deleted file mode 100644 index ffdddcf60d..0000000000 --- a/libindy/src/utils/transaction_metadata.rs +++ /dev/null @@ -1,66 +0,0 @@ -use errors::*; -use domain::ledger::response::{ - Message, - Reply, - ResponseMetadata -}; -use serde::de::DeserializeOwned; - -pub fn parse_response_metadata(response: &str) -> IndyResult { - let response_metadata = _parse_response_metadata(response)?; - - let res = serde_json::to_string(&response_metadata) - .to_indy(IndyErrorKind::InvalidState, "Cannot serialize ResponseMetadata")?; - - Ok(res) -} - -fn _parse_response_metadata(response: &str) -> IndyResult { - let message: Message = serde_json::from_str(response) - .to_indy(IndyErrorKind::InvalidTransaction, "Cannot deserialize transaction Response")?; - - let response_object: Reply = handle_response_message_type(message)?; - let response_result = response_object.result(); - - let response_metadata = match response_result["ver"].as_str() { - None => parse_transaction_metadata_v0(&response_result), - Some("1") => parse_transaction_metadata_v1(&response_result), - ver @ _ => return Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Unsupported transaction response version: {:?}", ver))) - }; - - Ok(response_metadata) -} - -pub fn get_last_signed_time(response: &str) -> u64 { - let c = _parse_response_metadata(response); - c.map(|resp| resp.last_txn_time.unwrap_or(0)).unwrap_or(0) -} - -pub fn handle_response_message_type(message: Message) -> IndyResult> where T: DeserializeOwned + ::std::fmt::Debug { - trace!("handle_response_message_type >>> message {:?}", message); - - match message { - Message::Reject(response) | Message::ReqNACK(response) => - Err(err_msg(IndyErrorKind::InvalidTransaction, format!("Transaction has been failed: {:?}", response.reason))), - Message::Reply(reply) => - Ok(reply) - } -} - -fn parse_transaction_metadata_v0(message: &serde_json::Value) -> ResponseMetadata { - ResponseMetadata { - seq_no: message["seqNo"].as_u64(), - txn_time: message["txnTime"].as_u64(), - last_txn_time: message["state_proof"]["multi_signature"]["value"]["timestamp"].as_u64(), - last_seq_no: None, - } -} - -fn parse_transaction_metadata_v1(message: &serde_json::Value) -> ResponseMetadata { - ResponseMetadata { - seq_no: message["txnMetadata"]["seqNo"].as_u64(), - txn_time: message["txnMetadata"]["txnTime"].as_u64(), - last_txn_time: message["multiSignature"]["signedState"]["stateMetadata"]["timestamp"].as_u64(), - last_seq_no: None, - } -} \ No newline at end of file From 3d25553e4c29af839164da16508b7557b9cfbcf8 Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Tue, 29 Jan 2019 14:31:57 +0300 Subject: [PATCH 06/10] Refactoring Signed-off-by: Nikita Khateev --- libindy/src/services/pool/mod.rs | 4 +- libindy/src/services/pool/request_handler.rs | 63 +++++++------------- libindy/src/utils/mod.rs | 1 - 3 files changed, 22 insertions(+), 46 deletions(-) diff --git a/libindy/src/services/pool/mod.rs b/libindy/src/services/pool/mod.rs index 6023fe1b90..b0a17bd577 100644 --- a/libindy/src/services/pool/mod.rs +++ b/libindy/src/services/pool/mod.rs @@ -290,9 +290,9 @@ pub fn parse_response_metadata(response: &str) -> IndyResult { Ok(response_metadata) } -pub fn get_last_signed_time(response: &str) -> u64 { +pub fn get_last_signed_time(response: &str) -> Option { let c = parse_response_metadata(response); - c.map(|resp| resp.last_txn_time.unwrap_or(0)).unwrap_or(0) + c.ok().and_then(|resp| resp.last_txn_time) } fn _handle_response_message_type(message: Message) -> IndyResult> where T: DeserializeOwned + ::std::fmt::Debug { diff --git a/libindy/src/services/pool/request_handler.rs b/libindy/src/services/pool/request_handler.rs index b50a633e03..25adc30443 100644 --- a/libindy/src/services/pool/request_handler.rs +++ b/libindy/src/services/pool/request_handler.rs @@ -371,7 +371,7 @@ impl RequestSM { if let Ok((result, result_without_proof)) = _get_msg_result_without_state_proof(&raw_msg) { let hashable = HashableValue { inner: result_without_proof }; - let last_write_time =_get_response_freshness(&raw_msg); + let last_write_time = get_last_signed_time(&raw_msg).unwrap_or(0); let (cnt, soonest) = { let set = state.replies.entry(hashable).or_insert(HashSet::new()); @@ -728,10 +728,6 @@ fn _get_freshness_threshold() -> u64 { t.mul(1000) } -fn _get_response_freshness(raw_msg: &str) -> u64 { - get_last_signed_time(raw_msg) -} - fn _get_cur_time() -> u64 { let since_epoch = SystemTime::now().duration_since(UNIX_EPOCH).expect("Time has gone backwards"); since_epoch.as_secs() * 1000 + since_epoch.subsec_millis() as u64 @@ -1159,26 +1155,7 @@ pub mod tests { #[test] fn request_handler_process_reply_event_from_single_state_works_for_state_proof() { - // Register custom state proof parser - { - use services::pool::{PoolService, REGISTERED_SP_PARSERS}; - use api::ErrorCode; - use libc::c_char; - use std::ffi::CString; - - REGISTERED_SP_PARSERS.lock().unwrap().clear(); - - extern fn test_sp(_reply_from_node: *const c_char, parsed_sp: *mut *const c_char) -> ErrorCode { - let sp: CString = CString::new("[]").unwrap(); - unsafe { *parsed_sp = sp.into_raw(); } - ErrorCode::Success - } - extern fn test_free(_data: *const c_char) -> ErrorCode { - ErrorCode::Success - } - PoolService::register_sp_parser("test", test_sp, test_free).unwrap(); - } - + add_state_proof_parser(); let mut request_handler = _request_handler(1, 2); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); request_handler.process_event(Some(RequestEvent::Reply(Reply::default(), @@ -1199,28 +1176,28 @@ pub mod tests { assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); } - #[test] - fn request_handler_process_reply_event_from_single_state_works_for_freshness_filtering() { - // Register custom state proof parser - { - use services::pool::{PoolService, REGISTERED_SP_PARSERS}; - use api::ErrorCode; - use libc::c_char; - use std::ffi::CString; + fn add_state_proof_parser() { + use services::pool::{PoolService, REGISTERED_SP_PARSERS}; + use api::ErrorCode; + use libc::c_char; + use std::ffi::CString; - REGISTERED_SP_PARSERS.lock().unwrap().clear(); + REGISTERED_SP_PARSERS.lock().unwrap().clear(); - extern fn test_sp(_reply_from_node: *const c_char, parsed_sp: *mut *const c_char) -> ErrorCode { - let sp: CString = CString::new("[]").unwrap(); - unsafe { *parsed_sp = sp.into_raw(); } - ErrorCode::Success - } - extern fn test_free(_data: *const c_char) -> ErrorCode { - ErrorCode::Success - } - PoolService::register_sp_parser("test", test_sp, test_free).unwrap(); + extern fn test_sp(_reply_from_node: *const c_char, parsed_sp: *mut *const c_char) -> ErrorCode { + let sp: CString = CString::new("[]").unwrap(); + unsafe { *parsed_sp = sp.into_raw(); } + ErrorCode::Success + } + extern fn test_free(_data: *const c_char) -> ErrorCode { + ErrorCode::Success } + PoolService::register_sp_parser("test", test_sp, test_free).unwrap(); + } + #[test] + fn request_handler_process_reply_event_from_single_state_works_for_freshness_filtering() { + add_state_proof_parser(); let mut request_handler = _request_handler(2, 4); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); // diff --git a/libindy/src/utils/mod.rs b/libindy/src/utils/mod.rs index fe3f063412..177c18ecea 100755 --- a/libindy/src/utils/mod.rs +++ b/libindy/src/utils/mod.rs @@ -30,5 +30,4 @@ pub mod test; #[macro_use] pub mod try; -pub mod transaction_metadata; pub mod option; From 3083e2883bfdb474d8e67e4a5f45bfa984e7c06f Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Tue, 29 Jan 2019 14:36:35 +0300 Subject: [PATCH 07/10] Refactoring Signed-off-by: Nikita Khateev --- libindy/src/commands/mod.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libindy/src/commands/mod.rs b/libindy/src/commands/mod.rs index 1193772047..660de2601c 100644 --- a/libindy/src/commands/mod.rs +++ b/libindy/src/commands/mod.rs @@ -67,9 +67,8 @@ pub fn indy_set_runtime_config(config: IndyConfig) { Some(false) => env::set_var("RUST_BACKTRACE", "0"), _ => {} } - match config.freshness_threshold { - Some(threshold) => set_freshness_threshold(threshold), - _ => {} + if let Some(threshold) = config.freshness_threshold { + set_freshness_threshold(threshold); } } From 2100242f27f3179df73bce8767fa24bc5924dbea Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Tue, 29 Jan 2019 16:42:51 +0300 Subject: [PATCH 08/10] Fix a problem with request from future Signed-off-by: Nikita Khateev --- libindy/src/services/pool/request_handler.rs | 46 +++++++++++--------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/libindy/src/services/pool/request_handler.rs b/libindy/src/services/pool/request_handler.rs index 25adc30443..51dbf0f806 100644 --- a/libindy/src/services/pool/request_handler.rs +++ b/libindy/src/services/pool/request_handler.rs @@ -378,13 +378,13 @@ impl RequestSM { set.insert(NodeResponse { node_alias: node_alias.clone(), timestamp: last_write_time, raw_msg: raw_msg.clone() }); ( set.len(), - set.iter().min_by_key(|resp| resp.timestamp).map(|resp| &resp.raw_msg).unwrap_or(&raw_msg).clone() + set.iter().max_by_key(|resp| resp.timestamp).map(|resp| &resp.raw_msg).unwrap_or(&raw_msg).clone() ) }; if cnt > f || _check_state_proof(&result, f, &generator, &nodes, &raw_msg) - && _get_cur_time() as u64 - last_write_time <= _get_freshness_threshold() { + && _get_cur_time() as u64 <= _get_freshness_threshold() + last_write_time { state.networker.borrow_mut().process_event(Some(NetworkerEvent::CleanTimeout(req_id, None))); _send_ok_replies(&cmd_ids, if cnt > f {&soonest} else {&raw_msg}); (RequestState::finish(), None) @@ -1176,6 +1176,29 @@ pub mod tests { assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); } + #[test] + fn request_handler_process_reply_event_from_single_state_works_for_state_proof_from_future() { + add_state_proof_parser(); + let mut request_handler = _request_handler(1, 2); + request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); + request_handler.process_event(Some(RequestEvent::Reply(Reply::default(), + json!({ + "result": { + "type": "test", + "ver": "1", + "multiSignature":{ + "signedState": { + "stateMetadata": { + "timestamp": _get_cur_time() + 300000 + } + } + } + }, + "op": "REPLY", + }).to_string(), NODE.to_string(), REQ_ID.to_string()))); + assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); + } + fn add_state_proof_parser() { use services::pool::{PoolService, REGISTERED_SP_PARSERS}; use api::ErrorCode; @@ -1251,24 +1274,7 @@ pub mod tests { fn request_handler_process_reply_event_from_single_state_works_for_freshness_filtering_from_env_variable() { set_freshness_threshold(300); // Register custom state proof parser - { - use services::pool::{PoolService, REGISTERED_SP_PARSERS}; - use api::ErrorCode; - use libc::c_char; - use std::ffi::CString; - - REGISTERED_SP_PARSERS.lock().unwrap().clear(); - - extern fn test_sp(_reply_from_node: *const c_char, parsed_sp: *mut *const c_char) -> ErrorCode { - let sp: CString = CString::new("[]").unwrap(); - unsafe { *parsed_sp = sp.into_raw(); } - ErrorCode::Success - } - extern fn test_free(_data: *const c_char) -> ErrorCode { - ErrorCode::Success - } - PoolService::register_sp_parser("test", test_sp, test_free).unwrap(); - } + add_state_proof_parser(); let mut request_handler = _request_handler(2, 4); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); From 59343fba030780e292cd51e4978637b3cf065706 Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Tue, 29 Jan 2019 16:59:14 +0300 Subject: [PATCH 09/10] Refactor some tests Signed-off-by: Nikita Khateev --- libindy/src/services/pool/request_handler.rs | 113 +++++-------------- 1 file changed, 27 insertions(+), 86 deletions(-) diff --git a/libindy/src/services/pool/request_handler.rs b/libindy/src/services/pool/request_handler.rs index 51dbf0f806..004a59286b 100644 --- a/libindy/src/services/pool/request_handler.rs +++ b/libindy/src/services/pool/request_handler.rs @@ -1153,26 +1153,31 @@ pub mod tests { assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); } + fn correct_state_proof_reply(timestamp: u64) -> String { + json!({ + "result": { + "type": "test", + "ver": "1", + "multiSignature":{ + "signedState": { + "stateMetadata": { + "timestamp": timestamp + } + } + } + }, + "op": "REPLY", + }).to_string() + } + #[test] fn request_handler_process_reply_event_from_single_state_works_for_state_proof() { add_state_proof_parser(); let mut request_handler = _request_handler(1, 2); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); - request_handler.process_event(Some(RequestEvent::Reply(Reply::default(), - json!({ - "result": { - "type": "test", - "ver": "1", - "multiSignature":{ - "signedState": { - "stateMetadata": { - "timestamp": _get_cur_time() - 300000 - } - } - } - }, - "op": "REPLY", - }).to_string(), NODE.to_string(), REQ_ID.to_string()))); + request_handler.process_event(Some( + RequestEvent::Reply(Reply::default(), correct_state_proof_reply(_get_cur_time() - 300000), NODE.to_string(), REQ_ID.to_string())) + ); assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); } @@ -1181,21 +1186,9 @@ pub mod tests { add_state_proof_parser(); let mut request_handler = _request_handler(1, 2); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); - request_handler.process_event(Some(RequestEvent::Reply(Reply::default(), - json!({ - "result": { - "type": "test", - "ver": "1", - "multiSignature":{ - "signedState": { - "stateMetadata": { - "timestamp": _get_cur_time() + 300000 - } - } - } - }, - "op": "REPLY", - }).to_string(), NODE.to_string(), REQ_ID.to_string()))); + request_handler.process_event( + Some(RequestEvent::Reply(Reply::default(), correct_state_proof_reply(_get_cur_time() + 300000), NODE.to_string(), REQ_ID.to_string())) + ); assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); } @@ -1226,20 +1219,7 @@ pub mod tests { // request_handler.process_event(Some(RequestEvent::Reply( Reply::default(), - json!({ - "result": { - "type": "test", - "ver": "1", - "multiSignature":{ - "signedState": { - "stateMetadata": { - "timestamp": _get_cur_time() - 700000 - } - } - } - }, - "op": "REPLY", - }).to_string(), + correct_state_proof_reply(_get_cur_time() - 700000), NODE.to_string(), REQ_ID.to_string()))); @@ -1250,20 +1230,7 @@ pub mod tests { request_handler.process_event(Some(RequestEvent::Reply( Reply::default(), - json!({ - "result": { - "type": "test", - "ver": "1", - "multiSignature":{ - "signedState": { - "stateMetadata": { - "timestamp": _get_cur_time() - 300000 - } - } - } - }, - "op": "REPLY", - }).to_string(), + correct_state_proof_reply(_get_cur_time() - 300000), NODE.to_string(), REQ_ID.to_string()))); assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); @@ -1281,20 +1248,7 @@ pub mod tests { // request_handler.process_event(Some(RequestEvent::Reply( Reply::default(), - json!({ - "result": { - "type": "test", - "ver": "1", - "multiSignature":{ - "signedState": { - "stateMetadata": { - "timestamp": _get_cur_time() - 400000 - } - } - } - }, - "op": "REPLY", - }).to_string(), + correct_state_proof_reply(_get_cur_time() - 400000), NODE.to_string(), REQ_ID.to_string()))); @@ -1305,20 +1259,7 @@ pub mod tests { request_handler.process_event(Some(RequestEvent::Reply( Reply::default(), - json!({ - "result": { - "type": "test", - "ver": "1", - "multiSignature":{ - "signedState": { - "stateMetadata": { - "timestamp": _get_cur_time() - 200000 - } - } - } - }, - "op": "REPLY", - }).to_string(), + correct_state_proof_reply(_get_cur_time() - 200000), NODE.to_string(), REQ_ID.to_string()))); assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); From 17c9f6083aef5bf2e67b373262bc9476860e4a5a Mon Sep 17 00:00:00 2001 From: Nikita Khateev Date: Tue, 29 Jan 2019 17:48:55 +0300 Subject: [PATCH 10/10] Fix default values Signed-off-by: Nikita Khateev --- libindy/src/services/pool/request_handler.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libindy/src/services/pool/request_handler.rs b/libindy/src/services/pool/request_handler.rs index 004a59286b..dfb90445ca 100644 --- a/libindy/src/services/pool/request_handler.rs +++ b/libindy/src/services/pool/request_handler.rs @@ -1172,6 +1172,7 @@ pub mod tests { #[test] fn request_handler_process_reply_event_from_single_state_works_for_state_proof() { + set_freshness_threshold(600); add_state_proof_parser(); let mut request_handler = _request_handler(1, 2); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); @@ -1183,6 +1184,7 @@ pub mod tests { #[test] fn request_handler_process_reply_event_from_single_state_works_for_state_proof_from_future() { + set_freshness_threshold(600); add_state_proof_parser(); let mut request_handler = _request_handler(1, 2); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); @@ -1213,6 +1215,7 @@ pub mod tests { #[test] fn request_handler_process_reply_event_from_single_state_works_for_freshness_filtering() { + set_freshness_threshold(600); add_state_proof_parser(); let mut request_handler = _request_handler(2, 4); request_handler.process_event(Some(RequestEvent::CustomSingleRequest(MESSAGE.to_string(), REQ_ID.to_string()))); @@ -1263,6 +1266,7 @@ pub mod tests { NODE.to_string(), REQ_ID.to_string()))); assert_match!(RequestState::Finish(_), request_handler.request_wrapper.unwrap().state); + set_freshness_threshold(600); } #[test]