From cf70e5ff2f1ec85e33eeca584e2acfb90cdfeb14 Mon Sep 17 00:00:00 2001 From: Tyera Eulberg Date: Tue, 31 Jul 2018 11:27:08 -0600 Subject: [PATCH] Handle wrapped PublicKey struct --- src/bin/wallet.rs | 6 ++++-- src/crdt.rs | 3 ++- src/ncp.rs | 2 +- src/transaction.rs | 4 ++-- tests/data_replicator.rs | 6 +++--- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/bin/wallet.rs b/src/bin/wallet.rs index a804cfd192..447bfeded7 100644 --- a/src/bin/wallet.rs +++ b/src/bin/wallet.rs @@ -3,10 +3,12 @@ extern crate bincode; extern crate bs58; extern crate clap; extern crate dirs; +extern crate generic_array; extern crate serde_json; extern crate solana; use clap::{App, Arg, SubCommand}; +use generic_array::GenericArray; use solana::client::mk_client; use solana::crdt::NodeInfo; use solana::drone::DRONE_PORT; @@ -180,7 +182,7 @@ fn parse_args() -> Result> { display_actions(); Err(WalletError::BadParameter("Invalid public key".to_string()))?; } - PublicKey::clone_from_slice(&pubkey_vec) + PublicKey(GenericArray::clone_from_slice(&pubkey_vec)) } else { id.pubkey() }; @@ -228,7 +230,7 @@ fn process_command( match config.command { // Check client balance WalletCommand::Address => { - println!("{}", bs58::encode(config.id.pubkey()).into_string()); + println!("{}", config.id.pubkey()); } WalletCommand::Balance => { println!("Balance requested..."); diff --git a/src/crdt.rs b/src/crdt.rs index 55e818f18d..4d5db5ab50 100644 --- a/src/crdt.rs +++ b/src/crdt.rs @@ -135,7 +135,8 @@ pub struct NodeInfo { pub ledger_state: LedgerState, } -fn make_debug_id(buf: &[u8]) -> u64 { +fn make_debug_id(key: &PublicKey) -> u64 { + let buf: &[u8] = &key.0; let mut rdr = Cursor::new(&buf[..8]); rdr.read_u64::() .expect("rdr.read_u64 in fn debug_id") diff --git a/src/ncp.rs b/src/ncp.rs index c4ff31df72..f5b6ec6017 100644 --- a/src/ncp.rs +++ b/src/ncp.rs @@ -28,7 +28,7 @@ impl Ncp { let (request_sender, request_receiver) = channel(); trace!( "Ncp: id: {:?}, listening on: {:?}", - &crdt.read().unwrap().me[..4], + &crdt.read().unwrap().me.0[..4], gossip_listen_socket.local_addr().unwrap() ); let t_receiver = streamer::blob_receiver( diff --git a/src/transaction.rs b/src/transaction.rs index 953a77a51d..e4513f63fb 100644 --- a/src/transaction.rs +++ b/src/transaction.rs @@ -192,7 +192,7 @@ impl Transaction { /// Verify only the transaction signature. pub fn verify_sig(&self) -> bool { warn!("transaction signature verification called"); - self.sig.verify(&self.from, &self.get_sign_data()) + self.sig.verify(&self.from.0, &self.get_sign_data()) } /// Verify only the payment plan. @@ -319,7 +319,7 @@ mod tests { let tx_bytes = serialize(&tx).unwrap(); assert_matches!(memfind(&tx_bytes, &sign_data), Some(SIGNED_DATA_OFFSET)); assert_matches!(memfind(&tx_bytes, &tx.sig), Some(SIG_OFFSET)); - assert_matches!(memfind(&tx_bytes, &tx.from), Some(PUB_KEY_OFFSET)); + assert_matches!(memfind(&tx_bytes, &tx.from.0), Some(PUB_KEY_OFFSET)); } #[test] diff --git a/tests/data_replicator.rs b/tests/data_replicator.rs index 790e480ecb..70b70671cd 100644 --- a/tests/data_replicator.rs +++ b/tests/data_replicator.rs @@ -101,7 +101,7 @@ fn gossip_star() { let mut yd = yv.table[&yv.me].clone(); yd.version = 0; xv.insert(&yd); - trace!("star leader {:?}", &xv.me[..4]); + trace!("star leader {:?}", &xv.me.0[..4]); } }); } @@ -116,12 +116,12 @@ fn gossip_rstar() { let xv = listen[0].0.read().unwrap(); xv.table[&xv.me].clone() }; - trace!("rstar leader {:?}", &xd.id[..4]); + trace!("rstar leader {:?}", &xd.id.0[..4]); for n in 0..(num - 1) { let y = (n + 1) % listen.len(); let mut yv = listen[y].0.write().unwrap(); yv.insert(&xd); - trace!("rstar insert {:?} into {:?}", &xd.id[..4], &yv.me[..4]); + trace!("rstar insert {:?} into {:?}", &xd.id.0[..4], &yv.me.0[..4]); } }); }