From 25f25d0f820d1437487aaf3752f5a67985592249 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Tue, 29 Jan 2019 17:03:32 -0800 Subject: [PATCH] new_fullnode: don't return the genesis_block, nobody uses it --- src/thin_client.rs | 16 +++++++--------- tests/rpc.rs | 34 ++++++++++++++++++++++++++++----- wallet/tests/deploy.rs | 3 +-- wallet/tests/pay.rs | 9 +++------ wallet/tests/request_airdrop.rs | 3 +-- 5 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/thin_client.rs b/src/thin_client.rs index a8c86c9172..82ad0d6482 100644 --- a/src/thin_client.rs +++ b/src/thin_client.rs @@ -437,9 +437,7 @@ pub fn retry_get_balance( None } -pub fn new_fullnode( - ledger_name: &'static str, -) -> (Fullnode, NodeInfo, GenesisBlock, Keypair, String) { +pub fn new_fullnode(ledger_name: &'static str) -> (Fullnode, NodeInfo, Keypair, String) { use crate::cluster_info::Node; use crate::db_ledger::create_tmp_ledger; use crate::leader_scheduler::LeaderScheduler; @@ -474,7 +472,7 @@ pub fn new_fullnode( Default::default(), ); - (server, leader_data, genesis_block, alice, ledger_path) + (server, leader_data, alice, ledger_path) } #[cfg(test)] @@ -491,7 +489,7 @@ mod tests { #[test] fn test_thin_client() { solana_logger::setup(); - let (server, leader_data, _genesis_block, alice, ledger_path) = new_fullnode("thin_client"); + let (server, leader_data, alice, ledger_path) = new_fullnode("thin_client"); let bob_pubkey = Keypair::new().pubkey(); sleep(Duration::from_millis(900)); @@ -519,7 +517,7 @@ mod tests { fn test_bad_sig() { solana_logger::setup(); - let (server, leader_data, _genesis_block, alice, ledger_path) = new_fullnode("bad_sig"); + let (server, leader_data, alice, ledger_path) = new_fullnode("bad_sig"); let bob_pubkey = Keypair::new().pubkey(); //TODO: remove this sleep, or add a retry so CI is stable @@ -553,7 +551,7 @@ mod tests { #[test] fn test_client_check_signature() { solana_logger::setup(); - let (server, leader_data, _genesis_block, alice, ledger_path) = new_fullnode("thin_client"); + let (server, leader_data, alice, ledger_path) = new_fullnode("thin_client"); let bob_pubkey = Keypair::new().pubkey(); let mut client = mk_client(&leader_data); @@ -569,7 +567,7 @@ mod tests { #[test] fn test_register_vote_account() { solana_logger::setup(); - let (server, leader_data, _genesis_block, alice, ledger_path) = new_fullnode("thin_client"); + let (server, leader_data, alice, ledger_path) = new_fullnode("thin_client"); let mut client = mk_client(&leader_data); @@ -633,7 +631,7 @@ mod tests { #[test] fn test_zero_balance_after_nonzero() { solana_logger::setup(); - let (server, leader_data, _genesis_block, alice, ledger_path) = new_fullnode("thin_client"); + let (server, leader_data, alice, ledger_path) = new_fullnode("thin_client"); let bob_keypair = Keypair::new(); let mut client = mk_client(&leader_data); diff --git a/tests/rpc.rs b/tests/rpc.rs index 3078fbf106..7b8d2f1de4 100644 --- a/tests/rpc.rs +++ b/tests/rpc.rs @@ -1,9 +1,11 @@ use bincode::serialize; +use log::*; use reqwest; use reqwest::header::CONTENT_TYPE; use serde_json::{json, Value}; use solana::rpc_request::get_rpc_request_str; use solana::thin_client::new_fullnode; +use solana_sdk::hash::Hash; use solana_sdk::signature::{Keypair, KeypairUtil}; use solana_sdk::system_transaction::SystemTransaction; use solana_sdk::transaction::Transaction; @@ -12,12 +14,34 @@ use std::thread::sleep; use std::time::Duration; #[test] -#[ignore] fn test_rpc_send_tx() { - let (server, leader_data, genesis_block, alice, ledger_path) = new_fullnode("test_rpc_send_tx"); + solana_logger::setup(); + + let (server, leader_data, alice, ledger_path) = new_fullnode("test_rpc_send_tx"); let bob_pubkey = Keypair::new().pubkey(); - let last_id = genesis_block.last_id(); + let client = reqwest::Client::new(); + let request = json!({ + "jsonrpc": "2.0", + "id": 1, + "method": "getLastId", + "params": json!([]) + }); + let rpc_addr = leader_data.rpc; + let rpc_string = get_rpc_request_str(rpc_addr, false); + let mut response = client + .post(&rpc_string) + .header(CONTENT_TYPE, "application/json") + .body(request.to_string()) + .send() + .unwrap(); + let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap(); + let last_id_vec = bs58::decode(json["result"].as_str().unwrap()) + .into_vec() + .unwrap(); + let last_id = Hash::new(&last_id_vec); + + info!("last_id: {:?}", last_id); let tx = Transaction::system_move(&alice, bob_pubkey, 20, last_id, 0); let serial_tx = serialize(&tx).unwrap(); @@ -49,7 +73,7 @@ fn test_rpc_send_tx() { "params": [signature], }); - for _ in 0..5 { + for _ in 0..10 { let mut response = client .post(&rpc_string) .header(CONTENT_TYPE, "application/json") @@ -64,7 +88,7 @@ fn test_rpc_send_tx() { break; } - sleep(Duration::from_millis(250)); + sleep(Duration::from_millis(500)); } assert_eq!(confirmed_tx, true); diff --git a/wallet/tests/deploy.rs b/wallet/tests/deploy.rs index 7388b7f1f1..1f3a9233ce 100644 --- a/wallet/tests/deploy.rs +++ b/wallet/tests/deploy.rs @@ -17,8 +17,7 @@ fn test_wallet_deploy_program() { pathbuf.push("noop"); pathbuf.set_extension("so"); - let (server, leader_data, _genesis_block, alice, ledger_path) = - new_fullnode("test_wallet_deploy_program"); + let (server, leader_data, alice, ledger_path) = new_fullnode("test_wallet_deploy_program"); let (sender, receiver) = channel(); run_local_drone(alice, sender); diff --git a/wallet/tests/pay.rs b/wallet/tests/pay.rs index a55dc561dc..1d65b3c25a 100644 --- a/wallet/tests/pay.rs +++ b/wallet/tests/pay.rs @@ -24,8 +24,7 @@ fn check_balance(expected_balance: u64, client: &RpcClient, params: Value) { #[test] fn test_wallet_timestamp_tx() { - let (server, leader_data, _genesis_block, alice, ledger_path) = - new_fullnode("test_wallet_timestamp_tx"); + let (server, leader_data, alice, ledger_path) = new_fullnode("test_wallet_timestamp_tx"); let bob_pubkey = Keypair::new().pubkey(); let (sender, receiver) = channel(); @@ -92,8 +91,7 @@ fn test_wallet_timestamp_tx() { #[test] fn test_wallet_witness_tx() { - let (server, leader_data, _genesis_block, alice, ledger_path) = - new_fullnode("test_wallet_witness_tx"); + let (server, leader_data, alice, ledger_path) = new_fullnode("test_wallet_witness_tx"); let bob_pubkey = Keypair::new().pubkey(); let (sender, receiver) = channel(); @@ -156,8 +154,7 @@ fn test_wallet_witness_tx() { #[test] fn test_wallet_cancel_tx() { - let (server, leader_data, _genesis_block, alice, ledger_path) = - new_fullnode("test_wallet_cancel_tx"); + let (server, leader_data, alice, ledger_path) = new_fullnode("test_wallet_cancel_tx"); let bob_pubkey = Keypair::new().pubkey(); let (sender, receiver) = channel(); diff --git a/wallet/tests/request_airdrop.rs b/wallet/tests/request_airdrop.rs index 36f02490e0..54ff73d61d 100644 --- a/wallet/tests/request_airdrop.rs +++ b/wallet/tests/request_airdrop.rs @@ -9,8 +9,7 @@ use std::sync::mpsc::channel; #[test] fn test_wallet_request_airdrop() { - let (server, leader_data, _genesis_block, alice, ledger_path) = - new_fullnode("test_wallet_request_airdrop"); + let (server, leader_data, alice, ledger_path) = new_fullnode("test_wallet_request_airdrop"); let (sender, receiver) = channel(); run_local_drone(alice, sender);