Move RpcSignatureStatus into its own module

And fixup some imports from previous commits.
This commit is contained in:
Greg Fitzgerald 2019-02-17 11:17:58 -07:00
parent 34fceca7ff
commit e9b0e3cb9d
6 changed files with 42 additions and 30 deletions

View File

@ -64,6 +64,7 @@ pub mod rpc_pubsub;
pub mod rpc_pubsub_service;
pub mod rpc_request;
pub mod rpc_service;
pub mod rpc_status;
pub mod rpc_subscriptions;
pub mod service;
pub mod sigverify;

View File

@ -3,6 +3,7 @@
use crate::bank::{self, Bank, BankError};
use crate::cluster_info::ClusterInfo;
use crate::packet::PACKET_DATA_SIZE;
use crate::rpc_status::RpcSignatureStatus;
use crate::storage_stage::StorageState;
use bincode::{deserialize, serialize};
use bs58;
@ -15,7 +16,6 @@ use solana_sdk::signature::Signature;
use solana_sdk::transaction::Transaction;
use std::mem;
use std::net::{SocketAddr, UdpSocket};
use std::str::FromStr;
use std::sync::{Arc, RwLock};
use std::thread::sleep;
use std::time::{Duration, Instant};
@ -123,31 +123,6 @@ pub struct Meta {
}
impl Metadata for Meta {}
#[derive(Copy, Clone, PartialEq, Serialize, Debug)]
pub enum RpcSignatureStatus {
AccountInUse,
AccountLoadedTwice,
Confirmed,
GenericFailure,
ProgramRuntimeError,
SignatureNotFound,
}
impl FromStr for RpcSignatureStatus {
type Err = Error;
fn from_str(s: &str) -> Result<RpcSignatureStatus> {
match s {
"AccountInUse" => Ok(RpcSignatureStatus::AccountInUse),
"AccountLoadedTwice" => Ok(RpcSignatureStatus::AccountLoadedTwice),
"Confirmed" => Ok(RpcSignatureStatus::Confirmed),
"GenericFailure" => Ok(RpcSignatureStatus::GenericFailure),
"ProgramRuntimeError" => Ok(RpcSignatureStatus::ProgramRuntimeError),
"SignatureNotFound" => Ok(RpcSignatureStatus::SignatureNotFound),
_ => Err(Error::parse_error()),
}
}
}
#[rpc]
pub trait RpcSol {
type Metadata;
@ -356,11 +331,12 @@ mod tests {
use crate::bank::Bank;
use crate::cluster_info::NodeInfo;
use crate::genesis_block::GenesisBlock;
use jsonrpc_core::Response;
use jsonrpc_core::{MetaIoHandler, Response};
use solana_sdk::hash::{hash, Hash};
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::system_transaction::SystemTransaction;
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use std::thread;
fn start_rpc_handler_with_tx(pubkey: Pubkey) -> (MetaIoHandler<Meta>, Meta, Hash, Keypair) {
let (genesis_block, alice) = GenesisBlock::new(10_000);

View File

@ -1,7 +1,7 @@
//! The `pubsub` module implements a threaded subscription service on client RPC request
use crate::bank::Bank;
use crate::rpc::RpcSignatureStatus;
use crate::rpc_status::RpcSignatureStatus;
use crate::rpc_subscriptions::RpcSubscriptions;
use bs58;
use jsonrpc_core::futures::Future;
@ -215,11 +215,13 @@ mod tests {
use crate::genesis_block::GenesisBlock;
use jsonrpc_core::futures::sync::mpsc;
use jsonrpc_core::Response;
use jsonrpc_pubsub::{PubSubHandler, Session};
use solana_sdk::budget_program;
use solana_sdk::budget_transaction::BudgetTransaction;
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::system_transaction::SystemTransaction;
use std::thread::sleep;
use std::time::Duration;
use tokio::prelude::{Async, Stream};
#[test]

30
src/rpc_status.rs Normal file
View File

@ -0,0 +1,30 @@
//! The `rpc_status` module defines transaction status codes
use jsonrpc_core::{Error, Result};
use std::str::FromStr;
#[derive(Copy, Clone, PartialEq, Serialize, Debug)]
pub enum RpcSignatureStatus {
AccountInUse,
AccountLoadedTwice,
Confirmed,
GenericFailure,
ProgramRuntimeError,
SignatureNotFound,
}
impl FromStr for RpcSignatureStatus {
type Err = Error;
fn from_str(s: &str) -> Result<RpcSignatureStatus> {
match s {
"AccountInUse" => Ok(RpcSignatureStatus::AccountInUse),
"AccountLoadedTwice" => Ok(RpcSignatureStatus::AccountLoadedTwice),
"Confirmed" => Ok(RpcSignatureStatus::Confirmed),
"GenericFailure" => Ok(RpcSignatureStatus::GenericFailure),
"ProgramRuntimeError" => Ok(RpcSignatureStatus::ProgramRuntimeError),
"SignatureNotFound" => Ok(RpcSignatureStatus::SignatureNotFound),
_ => Err(Error::parse_error()),
}
}
}

View File

@ -1,7 +1,7 @@
//! The `pubsub` module implements a threaded subscription service on client RPC request
use crate::bank::{self, BankError};
use crate::rpc::RpcSignatureStatus;
use crate::rpc_status::RpcSignatureStatus;
use jsonrpc_core::futures::Future;
use jsonrpc_pubsub::typed::Sink;
use jsonrpc_pubsub::SubscriptionId;
@ -121,7 +121,9 @@ impl RpcSubscriptions {
#[cfg(test)]
mod tests {
use super::*;
use crate::bank::Bank;
use crate::genesis_block::GenesisBlock;
use jsonrpc_pubsub::typed::Subscriber;
use solana_sdk::budget_program;
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::system_transaction::SystemTransaction;

View File

@ -4,12 +4,13 @@ use chrono::prelude::*;
use clap::ArgMatches;
use serde_json;
use serde_json::json;
use solana::rpc::{RpcSignatureStatus, RPC_PORT};
#[cfg(test)]
use solana::rpc_mock::{request_airdrop_transaction, MockRpcClient as RpcClient};
#[cfg(not(test))]
use solana::rpc_request::RpcClient;
use solana::rpc_request::{get_rpc_request_str, RpcRequest};
use solana::rpc_service::RPC_PORT;
use solana::rpc_status::RpcSignatureStatus;
#[cfg(not(test))]
use solana_drone::drone::request_airdrop_transaction;
use solana_drone::drone::DRONE_PORT;