|
|
@@ -342,12 +342,13 @@ impl JsonRpcRequestProcessor {
|
|
|
|
|
|
// Useful for unit testing
|
|
|
pub fn new_from_bank(
|
|
|
- bank: Arc<Bank>,
|
|
|
+ bank: Bank,
|
|
|
socket_addr_space: SocketAddrSpace,
|
|
|
connection_cache: Arc<ConnectionCache>,
|
|
|
) -> Self {
|
|
|
let genesis_hash = bank.hash();
|
|
|
- let bank_forks = BankForks::new_from_banks(&[bank.clone()], bank.slot());
|
|
|
+ let bank_forks = BankForks::new_rw_arc(bank);
|
|
|
+ let bank = bank_forks.read().unwrap().root_bank();
|
|
|
let blockstore = Arc::new(Blockstore::open(&get_tmp_ledger_path!()).unwrap());
|
|
|
let exit = Arc::new(AtomicBool::new(false));
|
|
|
let cluster_info = Arc::new({
|
|
|
@@ -5057,18 +5058,20 @@ pub mod tests {
|
|
|
fn test_rpc_request_processor_new() {
|
|
|
let bob_pubkey = solana_sdk::pubkey::new_rand();
|
|
|
let genesis = create_genesis_config(100);
|
|
|
- let bank = Bank::new_with_bank_forks_for_tests(&genesis.genesis_config).0;
|
|
|
- bank.transfer(20, &genesis.mint_keypair, &bob_pubkey)
|
|
|
- .unwrap();
|
|
|
+ let bank = Bank::new_for_tests(&genesis.genesis_config);
|
|
|
let connection_cache = Arc::new(ConnectionCache::new("connection_cache_test"));
|
|
|
- let request_processor = JsonRpcRequestProcessor::new_from_bank(
|
|
|
+ let meta = JsonRpcRequestProcessor::new_from_bank(
|
|
|
bank,
|
|
|
SocketAddrSpace::Unspecified,
|
|
|
connection_cache,
|
|
|
);
|
|
|
+
|
|
|
+ let bank = meta.bank_forks.read().unwrap().root_bank();
|
|
|
+ bank.transfer(20, &genesis.mint_keypair, &bob_pubkey)
|
|
|
+ .unwrap();
|
|
|
+
|
|
|
assert_eq!(
|
|
|
- request_processor
|
|
|
- .get_transaction_count(RpcContextConfig::default())
|
|
|
+ meta.get_transaction_count(RpcContextConfig::default())
|
|
|
.unwrap(),
|
|
|
1
|
|
|
);
|
|
|
@@ -5078,7 +5081,7 @@ pub mod tests {
|
|
|
fn test_rpc_get_balance() {
|
|
|
let genesis = create_genesis_config(20);
|
|
|
let mint_pubkey = genesis.mint_keypair.pubkey();
|
|
|
- let bank = Arc::new(Bank::new_for_tests(&genesis.genesis_config));
|
|
|
+ let bank = Bank::new_for_tests(&genesis.genesis_config);
|
|
|
let connection_cache = Arc::new(ConnectionCache::new("connection_cache_test"));
|
|
|
let meta = JsonRpcRequestProcessor::new_from_bank(
|
|
|
bank,
|
|
|
@@ -5110,7 +5113,7 @@ pub mod tests {
|
|
|
fn test_rpc_get_balance_via_client() {
|
|
|
let genesis = create_genesis_config(20);
|
|
|
let mint_pubkey = genesis.mint_keypair.pubkey();
|
|
|
- let bank = Arc::new(Bank::new_for_tests(&genesis.genesis_config));
|
|
|
+ let bank = Bank::new_for_tests(&genesis.genesis_config);
|
|
|
let connection_cache = Arc::new(ConnectionCache::new("connection_cache_test"));
|
|
|
let meta = JsonRpcRequestProcessor::new_from_bank(
|
|
|
bank,
|
|
|
@@ -5227,17 +5230,7 @@ pub mod tests {
|
|
|
fn test_rpc_get_tx_count() {
|
|
|
let bob_pubkey = solana_sdk::pubkey::new_rand();
|
|
|
let genesis = create_genesis_config(10);
|
|
|
- let bank = Bank::new_with_bank_forks_for_tests(&genesis.genesis_config).0;
|
|
|
- // Add 4 transactions
|
|
|
- bank.transfer(1, &genesis.mint_keypair, &bob_pubkey)
|
|
|
- .unwrap();
|
|
|
- bank.transfer(2, &genesis.mint_keypair, &bob_pubkey)
|
|
|
- .unwrap();
|
|
|
- bank.transfer(3, &genesis.mint_keypair, &bob_pubkey)
|
|
|
- .unwrap();
|
|
|
- bank.transfer(4, &genesis.mint_keypair, &bob_pubkey)
|
|
|
- .unwrap();
|
|
|
-
|
|
|
+ let bank = Bank::new_for_tests(&genesis.genesis_config);
|
|
|
let connection_cache = Arc::new(ConnectionCache::new("connection_cache_test"));
|
|
|
let meta = JsonRpcRequestProcessor::new_from_bank(
|
|
|
bank,
|
|
|
@@ -5248,6 +5241,17 @@ pub mod tests {
|
|
|
let mut io = MetaIoHandler::default();
|
|
|
io.extend_with(rpc_minimal::MinimalImpl.to_delegate());
|
|
|
|
|
|
+ // Add 4 transactions
|
|
|
+ let bank = meta.bank_forks.read().unwrap().root_bank();
|
|
|
+ bank.transfer(1, &genesis.mint_keypair, &bob_pubkey)
|
|
|
+ .unwrap();
|
|
|
+ bank.transfer(2, &genesis.mint_keypair, &bob_pubkey)
|
|
|
+ .unwrap();
|
|
|
+ bank.transfer(3, &genesis.mint_keypair, &bob_pubkey)
|
|
|
+ .unwrap();
|
|
|
+ bank.transfer(4, &genesis.mint_keypair, &bob_pubkey)
|
|
|
+ .unwrap();
|
|
|
+
|
|
|
let req = r#"{"jsonrpc":"2.0","id":1,"method":"getTransactionCount"}"#;
|
|
|
let res = io.handle_request_sync(req, meta);
|
|
|
let expected = r#"{"jsonrpc":"2.0","result":4,"id":1}"#;
|
|
|
@@ -6383,7 +6387,7 @@ pub mod tests {
|
|
|
#[test]
|
|
|
fn test_rpc_send_bad_tx() {
|
|
|
let genesis = create_genesis_config(100);
|
|
|
- let bank = Arc::new(Bank::new_for_tests(&genesis.genesis_config));
|
|
|
+ let bank = Bank::new_for_tests(&genesis.genesis_config);
|
|
|
let connection_cache = Arc::new(ConnectionCache::new("connection_cache_test"));
|
|
|
let meta = JsonRpcRequestProcessor::new_from_bank(
|
|
|
bank,
|