Add get_signature_status() to SyncClient

And move bank::Result to transaction module.
This commit is contained in:
Greg Fitzgerald
2019-04-05 10:42:54 -06:00
committed by Grimes
parent d3844ef32a
commit 46e6911ec1
12 changed files with 41 additions and 26 deletions

View File

@ -16,11 +16,11 @@ use crate::service::Service;
use crate::sigverify_stage::VerifiedPackets;
use bincode::deserialize;
use solana_metrics::counter::Counter;
use solana_runtime::bank::{self, Bank};
use solana_runtime::bank::Bank;
use solana_runtime::locked_accounts_results::LockedAccountsResults;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::timing::{self, duration_as_us, MAX_RECENT_BLOCKHASHES};
use solana_sdk::transaction::{Transaction, TransactionError};
use solana_sdk::transaction::{self, Transaction, TransactionError};
use std::net::UdpSocket;
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::mpsc::{Receiver, RecvTimeoutError};
@ -220,7 +220,7 @@ impl BankingStage {
fn record_transactions(
bank_slot: u64,
txs: &[Transaction],
results: &[bank::Result<()>],
results: &[transaction::Result<()>],
poh: &Arc<Mutex<PohRecorder>>,
) -> Result<()> {
let processed_transactions: Vec<_> = results

View File

@ -4,11 +4,12 @@ use crate::entry::{Entry, EntrySlice};
use crate::leader_schedule_utils;
use rayon::prelude::*;
use solana_metrics::counter::Counter;
use solana_runtime::bank::{Bank, Result};
use solana_runtime::bank::Bank;
use solana_runtime::locked_accounts_results::LockedAccountsResults;
use solana_sdk::genesis_block::GenesisBlock;
use solana_sdk::timing::duration_as_ms;
use solana_sdk::timing::MAX_RECENT_BLOCKHASHES;
use solana_sdk::transaction::Result;
use std::result;
use std::sync::Arc;
use std::time::Instant;

View File

@ -10,11 +10,11 @@ use jsonrpc_core::{Error, Metadata, Result};
use jsonrpc_derive::rpc;
use solana_client::rpc_signature_status::RpcSignatureStatus;
use solana_drone::drone::request_airdrop_transaction;
use solana_runtime::bank;
use solana_runtime::bank::Bank;
use solana_sdk::account::Account;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::Signature;
use solana_sdk::transaction::{Transaction, TransactionError};
use solana_sdk::transaction::{self, Transaction, TransactionError};
use std::mem;
use std::net::{SocketAddr, UdpSocket};
use std::sync::atomic::{AtomicBool, Ordering};
@ -46,7 +46,7 @@ pub struct JsonRpcRequestProcessor {
}
impl JsonRpcRequestProcessor {
fn bank(&self) -> Arc<bank::Bank> {
fn bank(&self) -> Arc<Bank> {
self.bank_forks.read().unwrap().working_bank()
}
@ -79,7 +79,7 @@ impl JsonRpcRequestProcessor {
bs58::encode(id).into_string()
}
pub fn get_signature_status(&self, signature: Signature) -> Option<bank::Result<()>> {
pub fn get_signature_status(&self, signature: Signature) -> Option<transaction::Result<()>> {
self.get_signature_confirmation_status(signature)
.map(|x| x.1)
}
@ -92,7 +92,7 @@ impl JsonRpcRequestProcessor {
pub fn get_signature_confirmation_status(
&self,
signature: Signature,
) -> Option<(usize, bank::Result<()>)> {
) -> Option<(usize, transaction::Result<()>)> {
self.bank().get_signature_confirmation_status(&signature)
}
@ -731,7 +731,7 @@ mod tests {
fn new_bank_forks() -> (Arc<RwLock<BankForks>>, Keypair) {
let (genesis_block, alice) = GenesisBlock::new(10_000);
let bank = bank::Bank::new(&genesis_block);
let bank = Bank::new(&genesis_block);
(
Arc::new(RwLock::new(BankForks::new(bank.slot(), bank))),
alice,

View File

@ -228,12 +228,12 @@ mod tests {
use jsonrpc_pubsub::{PubSubHandler, Session};
use solana_budget_api;
use solana_budget_api::budget_instruction;
use solana_runtime::bank::{self, Bank};
use solana_runtime::bank::Bank;
use solana_sdk::genesis_block::GenesisBlock;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::system_transaction;
use solana_sdk::transaction::Transaction;
use solana_sdk::transaction::{self, Transaction};
use std::thread::sleep;
use std::time::Duration;
use tokio::prelude::{Async, Stream};
@ -242,7 +242,7 @@ mod tests {
bank: &Arc<Bank>,
tx: &Transaction,
subscriptions: &RpcSubscriptions,
) -> bank::Result<Arc<Bank>> {
) -> transaction::Result<Arc<Bank>> {
bank.process_transaction(tx)?;
subscriptions.notify_subscribers(&bank);

View File

@ -6,11 +6,11 @@ use jsonrpc_core::futures::Future;
use jsonrpc_pubsub::typed::Sink;
use jsonrpc_pubsub::SubscriptionId;
use solana_client::rpc_signature_status::RpcSignatureStatus;
use solana_runtime::bank::{self, Bank};
use solana_runtime::bank::Bank;
use solana_sdk::account::Account;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::Signature;
use solana_sdk::transaction::TransactionError;
use solana_sdk::transaction::{self, TransactionError};
use std::collections::HashMap;
use std::sync::RwLock;
@ -96,7 +96,7 @@ impl RpcSubscriptions {
}
}
pub fn check_signature(&self, signature: &Signature, bank_error: &bank::Result<()>) {
pub fn check_signature(&self, signature: &Signature, bank_error: &transaction::Result<()>) {
let status = match bank_error {
Ok(_) => RpcSignatureStatus::Confirmed,
Err(TransactionError::AccountInUse) => RpcSignatureStatus::AccountInUse,