diff --git a/Cargo.lock b/Cargo.lock
index ed292c5fbf..35c382e8a6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3898,6 +3898,7 @@ dependencies = [
"solana-logger 1.1.0",
"solana-net-utils 1.1.0",
"solana-sdk 1.1.0",
+ "solana-transaction-status 1.1.0",
"solana-vote-program 1.1.0",
"thiserror 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
"tungstenite 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3972,6 +3973,7 @@ dependencies = [
"solana-storage-program 1.1.0",
"solana-streamer 1.1.0",
"solana-sys-tuner 1.1.0",
+ "solana-transaction-status 1.1.0",
"solana-vote-program 1.1.0",
"solana-vote-signer 1.1.0",
"systemstat 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -4205,7 +4207,6 @@ dependencies = [
"serde_bytes 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
"sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-budget-program 1.1.0",
- "solana-client 1.1.0",
"solana-genesis-programs 1.1.0",
"solana-logger 1.1.0",
"solana-measure 1.1.0",
@@ -4217,6 +4218,7 @@ dependencies = [
"solana-runtime 1.1.0",
"solana-sdk 1.1.0",
"solana-stake-program 1.1.0",
+ "solana-transaction-status 1.1.0",
"solana-vote-program 1.1.0",
"symlink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -4645,6 +4647,17 @@ dependencies = [
"users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
+[[package]]
+name = "solana-transaction-status"
+version = "1.1.0"
+dependencies = [
+ "bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bs58 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.105 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.105 (registry+https://github.com/rust-lang/crates.io-index)",
+ "solana-sdk 1.1.0",
+]
+
[[package]]
name = "solana-upload-perf"
version = "1.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 9b5be03613..a1a869f59f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -53,6 +53,7 @@ members = [
"sdk-c",
"scripts",
"sys-tuner",
+ "transaction-status",
"upload-perf",
"net-utils",
"vote-signer",
diff --git a/client/Cargo.toml b/client/Cargo.toml
index 3fee7e96db..139d791c89 100644
--- a/client/Cargo.toml
+++ b/client/Cargo.toml
@@ -19,6 +19,7 @@ reqwest = { version = "0.10.4", default-features = false, features = ["blocking"
serde = "1.0.105"
serde_derive = "1.0.103"
serde_json = "1.0.48"
+solana-transaction-status = { path = "../transaction-status", version = "1.1.0" }
solana-net-utils = { path = "../net-utils", version = "1.1.0" }
solana-sdk = { path = "../sdk", version = "1.1.0" }
solana-vote-program = { path = "../programs/vote", version = "1.1.0" }
diff --git a/client/src/mock_rpc_client_request.rs b/client/src/mock_rpc_client_request.rs
index f442ae6319..91d3b6754d 100644
--- a/client/src/mock_rpc_client_request.rs
+++ b/client/src/mock_rpc_client_request.rs
@@ -2,7 +2,7 @@ use crate::{
client_error::Result,
generic_rpc_client_request::GenericRpcClientRequest,
rpc_request::RpcRequest,
- rpc_response::{Response, RpcResponseContext, RpcTransactionStatus},
+ rpc_response::{Response, RpcResponseContext},
};
use serde_json::{Number, Value};
use solana_sdk::{
@@ -10,6 +10,7 @@ use solana_sdk::{
instruction::InstructionError,
transaction::{self, TransactionError},
};
+use solana_transaction_status::TransactionStatus;
use std::{collections::HashMap, sync::RwLock};
pub const PUBKEY: &str = "7RoSF9fUmdphVCpabEoefH81WwrW7orsWonXWqTXkKV8";
@@ -100,7 +101,7 @@ impl GenericRpcClientRequest for MockRpcClientRequest {
let status = if self.url == "sig_not_found" {
None
} else {
- Some(RpcTransactionStatus { status, slot: 1 })
+ Some(TransactionStatus { status, slot: 1 })
};
serde_json::to_value(vec![status])?
}
diff --git a/client/src/rpc_client.rs b/client/src/rpc_client.rs
index 60aa7eb300..7776bbfdb4 100644
--- a/client/src/rpc_client.rs
+++ b/client/src/rpc_client.rs
@@ -23,6 +23,7 @@ use solana_sdk::{
signers::Signers,
transaction::{self, Transaction, TransactionError},
};
+use solana_transaction_status::{ConfirmedBlock, TransactionEncoding, TransactionStatus};
use solana_vote_program::vote_state::MAX_LOCKOUT_HISTORY;
use std::{
error,
@@ -119,7 +120,7 @@ impl RpcClient {
json!([[signature.to_string()], commitment_config]),
5,
)?;
- let result: Vec