safecoin_client/
rpc_deprecated_config.rs

1#![allow(deprecated)]
2use {
3    crate::rpc_config::{
4        EncodingConfig, RpcBlockConfig, RpcEncodingConfigWrapper, RpcTransactionConfig,
5    },
6    solana_sdk::{clock::Slot, commitment_config::CommitmentConfig},
7    safecoin_transaction_status::{TransactionDetails, UiTransactionEncoding},
8};
9
10#[deprecated(
11    since = "1.7.0",
12    note = "Please use RpcSignaturesForAddressConfig instead"
13)]
14#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
15#[serde(rename_all = "camelCase")]
16pub struct RpcGetConfirmedSignaturesForAddress2Config {
17    pub before: Option<String>, // Signature as base-58 string
18    pub until: Option<String>,  // Signature as base-58 string
19    pub limit: Option<usize>,
20    #[serde(flatten)]
21    pub commitment: Option<CommitmentConfig>,
22}
23
24#[deprecated(since = "1.7.0", note = "Please use RpcBlockConfig instead")]
25#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct RpcConfirmedBlockConfig {
28    pub encoding: Option<UiTransactionEncoding>,
29    pub transaction_details: Option<TransactionDetails>,
30    pub rewards: Option<bool>,
31    #[serde(flatten)]
32    pub commitment: Option<CommitmentConfig>,
33}
34
35impl EncodingConfig for RpcConfirmedBlockConfig {
36    fn new_with_encoding(encoding: &Option<UiTransactionEncoding>) -> Self {
37        Self {
38            encoding: *encoding,
39            ..Self::default()
40        }
41    }
42}
43
44impl RpcConfirmedBlockConfig {
45    pub fn rewards_only() -> Self {
46        Self {
47            transaction_details: Some(TransactionDetails::None),
48            ..Self::default()
49        }
50    }
51
52    pub fn rewards_with_commitment(commitment: Option<CommitmentConfig>) -> Self {
53        Self {
54            transaction_details: Some(TransactionDetails::None),
55            commitment,
56            ..Self::default()
57        }
58    }
59}
60
61impl From<RpcConfirmedBlockConfig> for RpcEncodingConfigWrapper<RpcConfirmedBlockConfig> {
62    fn from(config: RpcConfirmedBlockConfig) -> Self {
63        RpcEncodingConfigWrapper::Current(Some(config))
64    }
65}
66
67impl From<RpcConfirmedBlockConfig> for RpcBlockConfig {
68    fn from(config: RpcConfirmedBlockConfig) -> Self {
69        Self {
70            encoding: config.encoding,
71            transaction_details: config.transaction_details,
72            rewards: config.rewards,
73            commitment: config.commitment,
74            max_supported_transaction_version: None,
75        }
76    }
77}
78
79#[deprecated(since = "1.7.0", note = "Please use RpcTransactionConfig instead")]
80#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
81#[serde(rename_all = "camelCase")]
82pub struct RpcConfirmedTransactionConfig {
83    pub encoding: Option<UiTransactionEncoding>,
84    #[serde(flatten)]
85    pub commitment: Option<CommitmentConfig>,
86}
87
88impl EncodingConfig for RpcConfirmedTransactionConfig {
89    fn new_with_encoding(encoding: &Option<UiTransactionEncoding>) -> Self {
90        Self {
91            encoding: *encoding,
92            ..Self::default()
93        }
94    }
95}
96
97impl From<RpcConfirmedTransactionConfig> for RpcTransactionConfig {
98    fn from(config: RpcConfirmedTransactionConfig) -> Self {
99        Self {
100            encoding: config.encoding,
101            commitment: config.commitment,
102            max_supported_transaction_version: None,
103        }
104    }
105}
106
107#[deprecated(since = "1.7.0", note = "Please use RpcBlocksConfigWrapper instead")]
108#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
109#[serde(untagged)]
110pub enum RpcConfirmedBlocksConfigWrapper {
111    EndSlotOnly(Option<Slot>),
112    CommitmentOnly(Option<CommitmentConfig>),
113}
114
115impl RpcConfirmedBlocksConfigWrapper {
116    pub fn unzip(&self) -> (Option<Slot>, Option<CommitmentConfig>) {
117        match &self {
118            RpcConfirmedBlocksConfigWrapper::EndSlotOnly(end_slot) => (*end_slot, None),
119            RpcConfirmedBlocksConfigWrapper::CommitmentOnly(commitment) => (None, *commitment),
120        }
121    }
122}