Rpc: enable getConfirmedBlock and getConfirmedTransaction to return confirmed (not yet finalized) data (#16142)
* Add Blockstore block and tx apis that allow unrooted responses * Add TransactionStatusMessage, and send on bank freeze; also refactor TransactionStatusSender * Track highest slot with tx-status writes complete * Rename and unpub fn * Add commitment to GetConfirmed input configs * Support confirmed blocks in getConfirmedBlock * Support confirmed txs in getConfirmedTransaction * Update sigs-for-addr2 comment * Enable confirmed block in cli * Enable confirmed transaction in cli * Review comments * Rename blockstore method
This commit is contained in:
		@@ -4,9 +4,10 @@ use crate::{
 | 
			
		||||
    mock_sender::{MockSender, Mocks},
 | 
			
		||||
    rpc_config::RpcAccountInfoConfig,
 | 
			
		||||
    rpc_config::{
 | 
			
		||||
        RpcConfirmedBlockConfig, RpcGetConfirmedSignaturesForAddress2Config,
 | 
			
		||||
        RpcLargestAccountsConfig, RpcProgramAccountsConfig, RpcSendTransactionConfig,
 | 
			
		||||
        RpcSimulateTransactionConfig, RpcTokenAccountsFilter,
 | 
			
		||||
        RpcConfirmedBlockConfig, RpcConfirmedTransactionConfig,
 | 
			
		||||
        RpcGetConfirmedSignaturesForAddress2Config, RpcLargestAccountsConfig,
 | 
			
		||||
        RpcProgramAccountsConfig, RpcSendTransactionConfig, RpcSimulateTransactionConfig,
 | 
			
		||||
        RpcTokenAccountsFilter,
 | 
			
		||||
    },
 | 
			
		||||
    rpc_request::{RpcError, RpcRequest, RpcResponseErrorData, TokenAccountsFilter},
 | 
			
		||||
    rpc_response::*,
 | 
			
		||||
@@ -527,7 +528,7 @@ impl RpcClient {
 | 
			
		||||
        self.send(RpcRequest::GetConfirmedBlock, json!([slot, encoding]))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn get_configured_confirmed_block(
 | 
			
		||||
    pub fn get_confirmed_block_with_config(
 | 
			
		||||
        &self,
 | 
			
		||||
        slot: Slot,
 | 
			
		||||
        config: RpcConfirmedBlockConfig,
 | 
			
		||||
@@ -619,6 +620,17 @@ impl RpcClient {
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn get_confirmed_transaction_with_config(
 | 
			
		||||
        &self,
 | 
			
		||||
        signature: &Signature,
 | 
			
		||||
        config: RpcConfirmedTransactionConfig,
 | 
			
		||||
    ) -> ClientResult<EncodedConfirmedTransaction> {
 | 
			
		||||
        self.send(
 | 
			
		||||
            RpcRequest::GetConfirmedTransaction,
 | 
			
		||||
            json!([signature.to_string(), config]),
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn get_block_time(&self, slot: Slot) -> ClientResult<UnixTimestamp> {
 | 
			
		||||
        let request = RpcRequest::GetBlockTime;
 | 
			
		||||
        let response = self.sender.send(request, json!([slot]));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user