Update getSignatureStatus: support multiple signatures, include slot in each response item (#9022)
* Rename enable-rpc-get-confirmed-block * Rename RpcTransactionStatus -> RpcTransactionStatusMeta * Return simplified RpcTransactionStatus; Add support for multiple transactions * Update docs * typo
This commit is contained in:
@ -24,7 +24,7 @@ use rayon::{
|
||||
use rocksdb::DBRawIterator;
|
||||
use solana_client::rpc_response::{
|
||||
RpcConfirmedBlock, RpcEncodedTransaction, RpcRewards, RpcTransactionEncoding,
|
||||
RpcTransactionStatus, RpcTransactionWithStatusMeta,
|
||||
RpcTransactionStatusMeta, RpcTransactionWithStatusMeta,
|
||||
};
|
||||
use solana_measure::measure::Measure;
|
||||
use solana_metrics::{datapoint_debug, datapoint_error};
|
||||
@ -1501,7 +1501,7 @@ impl Blockstore {
|
||||
pub fn write_transaction_status(
|
||||
&self,
|
||||
index: (Slot, Signature),
|
||||
status: &RpcTransactionStatus,
|
||||
status: &RpcTransactionStatusMeta,
|
||||
) -> Result<()> {
|
||||
self.transaction_status_cf.put(index, status)
|
||||
}
|
||||
@ -4829,7 +4829,7 @@ pub mod tests {
|
||||
.put_meta_bytes(slot - 1, &serialize(&parent_meta).unwrap())
|
||||
.unwrap();
|
||||
|
||||
let expected_transactions: Vec<(Transaction, Option<RpcTransactionStatus>)> = entries
|
||||
let expected_transactions: Vec<(Transaction, Option<RpcTransactionStatusMeta>)> = entries
|
||||
.iter()
|
||||
.cloned()
|
||||
.filter(|entry| !entry.is_tick())
|
||||
@ -4846,7 +4846,7 @@ pub mod tests {
|
||||
.transaction_status_cf
|
||||
.put(
|
||||
(slot, signature),
|
||||
&RpcTransactionStatus {
|
||||
&RpcTransactionStatusMeta {
|
||||
status: Ok(()),
|
||||
fee: 42,
|
||||
pre_balances: pre_balances.clone(),
|
||||
@ -4858,7 +4858,7 @@ pub mod tests {
|
||||
.transaction_status_cf
|
||||
.put(
|
||||
(slot + 1, signature),
|
||||
&RpcTransactionStatus {
|
||||
&RpcTransactionStatusMeta {
|
||||
status: Ok(()),
|
||||
fee: 42,
|
||||
pre_balances: pre_balances.clone(),
|
||||
@ -4868,7 +4868,7 @@ pub mod tests {
|
||||
.unwrap();
|
||||
(
|
||||
transaction,
|
||||
Some(RpcTransactionStatus {
|
||||
Some(RpcTransactionStatusMeta {
|
||||
status: Ok(()),
|
||||
fee: 42,
|
||||
pre_balances,
|
||||
@ -5131,7 +5131,7 @@ pub mod tests {
|
||||
assert!(transaction_status_cf
|
||||
.put(
|
||||
(0, Signature::default()),
|
||||
&RpcTransactionStatus {
|
||||
&RpcTransactionStatusMeta {
|
||||
status: solana_sdk::transaction::Result::<()>::Err(
|
||||
TransactionError::AccountNotFound
|
||||
),
|
||||
@ -5143,7 +5143,7 @@ pub mod tests {
|
||||
.is_ok());
|
||||
|
||||
// result found
|
||||
let RpcTransactionStatus {
|
||||
let RpcTransactionStatusMeta {
|
||||
status,
|
||||
fee,
|
||||
pre_balances,
|
||||
@ -5161,7 +5161,7 @@ pub mod tests {
|
||||
assert!(transaction_status_cf
|
||||
.put(
|
||||
(9, Signature::default()),
|
||||
&RpcTransactionStatus {
|
||||
&RpcTransactionStatusMeta {
|
||||
status: solana_sdk::transaction::Result::<()>::Ok(()),
|
||||
fee: 9u64,
|
||||
pre_balances: pre_balances_vec.clone(),
|
||||
@ -5171,7 +5171,7 @@ pub mod tests {
|
||||
.is_ok());
|
||||
|
||||
// result found
|
||||
let RpcTransactionStatus {
|
||||
let RpcTransactionStatusMeta {
|
||||
status,
|
||||
fee,
|
||||
pre_balances,
|
||||
@ -5226,7 +5226,7 @@ pub mod tests {
|
||||
transaction_status_cf
|
||||
.put(
|
||||
(slot, transaction.signatures[0]),
|
||||
&RpcTransactionStatus {
|
||||
&RpcTransactionStatusMeta {
|
||||
status: solana_sdk::transaction::Result::<()>::Err(
|
||||
TransactionError::AccountNotFound,
|
||||
),
|
||||
|
@ -10,7 +10,7 @@ use rocksdb::{
|
||||
};
|
||||
use serde::de::DeserializeOwned;
|
||||
use serde::Serialize;
|
||||
use solana_client::rpc_response::{RpcRewards, RpcTransactionStatus};
|
||||
use solana_client::rpc_response::{RpcRewards, RpcTransactionStatusMeta};
|
||||
use solana_sdk::{clock::Slot, signature::Signature};
|
||||
use std::{collections::HashMap, fs, marker::PhantomData, path::Path, sync::Arc};
|
||||
use thiserror::Error;
|
||||
@ -269,7 +269,7 @@ pub trait TypedColumn: Column {
|
||||
}
|
||||
|
||||
impl TypedColumn for columns::TransactionStatus {
|
||||
type Type = RpcTransactionStatus;
|
||||
type Type = RpcTransactionStatusMeta;
|
||||
}
|
||||
|
||||
pub trait SlotColumn<Index = u64> {}
|
||||
|
Reference in New Issue
Block a user