solana_binary_encoder/proto/
solana.storage.confirmed_block.rs

1
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct ConfirmedBlock {
4    #[prost(string, tag="1")]
5    pub previous_blockhash: ::prost::alloc::string::String,
6    #[prost(string, tag="2")]
7    pub blockhash: ::prost::alloc::string::String,
8    #[prost(uint64, tag="3")]
9    pub parent_slot: u64,
10    #[prost(message, repeated, tag="4")]
11    pub transactions: ::prost::alloc::vec::Vec<ConfirmedTransaction>,
12    #[prost(message, repeated, tag="5")]
13    pub rewards: ::prost::alloc::vec::Vec<Reward>,
14    #[prost(message, optional, tag="6")]
15    pub block_time: ::core::option::Option<UnixTimestamp>,
16    #[prost(message, optional, tag="7")]
17    pub block_height: ::core::option::Option<BlockHeight>,
18}
19
20#[derive(Clone, PartialEq, ::prost::Message)]
21pub struct ConfirmedTransaction {
22    #[prost(message, optional, tag="1")]
23    pub transaction: ::core::option::Option<Transaction>,
24    #[prost(message, optional, tag="2")]
25    pub meta: ::core::option::Option<TransactionStatusMeta>,
26}
27
28#[derive(Clone, PartialEq, ::prost::Message)]
29pub struct ConfirmedTransactionWithStatusMeta {
30    #[prost(uint64, tag="1")]
31    pub slot: u64,
32    #[prost(message, optional, tag="2")]
33    pub tx_with_meta: ::core::option::Option<ConfirmedTransaction>,
34    #[prost(message, optional, tag="3")]
35    pub block_time: ::core::option::Option<UnixTimestamp>,
36}
37
38#[derive(Clone, PartialEq, ::prost::Message)]
39pub struct Transaction {
40    #[prost(bytes="vec", repeated, tag="1")]
41    pub signatures: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
42    #[prost(message, optional, tag="2")]
43    pub message: ::core::option::Option<Message>,
44}
45
46#[derive(Clone, PartialEq, ::prost::Message)]
47pub struct Message {
48    #[prost(message, optional, tag="1")]
49    pub header: ::core::option::Option<MessageHeader>,
50    #[prost(bytes="vec", repeated, tag="2")]
51    pub account_keys: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
52    #[prost(bytes="vec", tag="3")]
53    pub recent_blockhash: ::prost::alloc::vec::Vec<u8>,
54    #[prost(message, repeated, tag="4")]
55    pub instructions: ::prost::alloc::vec::Vec<CompiledInstruction>,
56    #[prost(bool, tag="5")]
57    pub versioned: bool,
58    #[prost(message, repeated, tag="6")]
59    pub address_table_lookups: ::prost::alloc::vec::Vec<MessageAddressTableLookup>,
60}
61
62#[derive(Clone, PartialEq, ::prost::Message)]
63pub struct MessageHeader {
64    #[prost(uint32, tag="1")]
65    pub num_required_signatures: u32,
66    #[prost(uint32, tag="2")]
67    pub num_readonly_signed_accounts: u32,
68    #[prost(uint32, tag="3")]
69    pub num_readonly_unsigned_accounts: u32,
70}
71
72#[derive(Clone, PartialEq, ::prost::Message)]
73pub struct MessageAddressTableLookup {
74    #[prost(bytes="vec", tag="1")]
75    pub account_key: ::prost::alloc::vec::Vec<u8>,
76    #[prost(bytes="vec", tag="2")]
77    pub writable_indexes: ::prost::alloc::vec::Vec<u8>,
78    #[prost(bytes="vec", tag="3")]
79    pub readonly_indexes: ::prost::alloc::vec::Vec<u8>,
80}
81
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct TransactionStatusMeta {
84    #[prost(message, optional, tag="1")]
85    pub err: ::core::option::Option<TransactionError>,
86    #[prost(uint64, tag="2")]
87    pub fee: u64,
88    #[prost(uint64, repeated, tag="3")]
89    pub pre_balances: ::prost::alloc::vec::Vec<u64>,
90    #[prost(uint64, repeated, tag="4")]
91    pub post_balances: ::prost::alloc::vec::Vec<u64>,
92    #[prost(message, repeated, tag="5")]
93    pub inner_instructions: ::prost::alloc::vec::Vec<InnerInstructions>,
94    #[prost(bool, tag="10")]
95    pub inner_instructions_none: bool,
96    #[prost(string, repeated, tag="6")]
97    pub log_messages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
98    #[prost(bool, tag="11")]
99    pub log_messages_none: bool,
100    #[prost(message, repeated, tag="7")]
101    pub pre_token_balances: ::prost::alloc::vec::Vec<TokenBalance>,
102    #[prost(message, repeated, tag="8")]
103    pub post_token_balances: ::prost::alloc::vec::Vec<TokenBalance>,
104    #[prost(message, repeated, tag="9")]
105    pub rewards: ::prost::alloc::vec::Vec<Reward>,
106    #[prost(bytes="vec", repeated, tag="12")]
107    pub loaded_writable_addresses: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
108    #[prost(bytes="vec", repeated, tag="13")]
109    pub loaded_readonly_addresses: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
110    #[prost(message, optional, tag="14")]
111    pub return_data: ::core::option::Option<ReturnData>,
112    #[prost(bool, tag="15")]
113    pub return_data_none: bool,
114    ///  Sum of compute units consumed by all instructions.
115    ///  Available since Solana v1.10.35 / v1.11.6.
116    ///  Set to `None` for txs executed on earlier versions.
117    #[prost(uint64, optional, tag="16")]
118    pub compute_units_consumed: ::core::option::Option<u64>,
119}
120
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct TransactionError {
123    #[prost(bytes="vec", tag="1")]
124    pub err: ::prost::alloc::vec::Vec<u8>,
125}
126
127#[derive(Clone, PartialEq, ::prost::Message)]
128pub struct InnerInstructions {
129    #[prost(uint32, tag="1")]
130    pub index: u32,
131    #[prost(message, repeated, tag="2")]
132    pub instructions: ::prost::alloc::vec::Vec<InnerInstruction>,
133    // pub instructions: ::prost::alloc::vec::Vec<CompiledInstruction>,
134}
135
136#[allow(clippy::derive_partial_eq_without_eq)]
137#[derive(Clone, PartialEq, ::prost::Message)]
138pub struct InnerInstruction {
139    #[prost(uint32, tag = "1")]
140    pub program_id_index: u32,
141    #[prost(bytes = "vec", tag = "2")]
142    pub accounts: ::prost::alloc::vec::Vec<u8>,
143    #[prost(bytes = "vec", tag = "3")]
144    pub data: ::prost::alloc::vec::Vec<u8>,
145    /// Invocation stack height of an inner instruction.
146    /// Available since Solana v1.14.6
147    /// Set to `None` for txs executed on earlier versions.
148    #[prost(uint32, optional, tag = "4")]
149    pub stack_height: ::core::option::Option<u32>,
150}
151
152#[derive(Clone, PartialEq, ::prost::Message)]
153pub struct CompiledInstruction {
154    #[prost(uint32, tag="1")]
155    pub program_id_index: u32,
156    #[prost(bytes="vec", tag="2")]
157    pub accounts: ::prost::alloc::vec::Vec<u8>,
158    #[prost(bytes="vec", tag="3")]
159    pub data: ::prost::alloc::vec::Vec<u8>,
160}
161
162#[derive(Clone, PartialEq, ::prost::Message)]
163pub struct TokenBalance {
164    #[prost(uint32, tag="1")]
165    pub account_index: u32,
166    #[prost(string, tag="2")]
167    pub mint: ::prost::alloc::string::String,
168    #[prost(message, optional, tag="3")]
169    pub ui_token_amount: ::core::option::Option<UiTokenAmount>,
170    #[prost(string, tag="4")]
171    pub owner: ::prost::alloc::string::String,
172    #[prost(string, tag="5")]
173    pub program_id: ::prost::alloc::string::String,
174}
175
176#[derive(Clone, PartialEq, ::prost::Message)]
177pub struct UiTokenAmount {
178    #[prost(double, tag="1")]
179    pub ui_amount: f64,
180    #[prost(uint32, tag="2")]
181    pub decimals: u32,
182    #[prost(string, tag="3")]
183    pub amount: ::prost::alloc::string::String,
184    #[prost(string, tag="4")]
185    pub ui_amount_string: ::prost::alloc::string::String,
186}
187
188#[derive(Clone, PartialEq, ::prost::Message)]
189pub struct ReturnData {
190    #[prost(bytes="vec", tag="1")]
191    pub program_id: ::prost::alloc::vec::Vec<u8>,
192    #[prost(bytes="vec", tag="2")]
193    pub data: ::prost::alloc::vec::Vec<u8>,
194}
195
196#[derive(Clone, PartialEq, ::prost::Message)]
197pub struct Reward {
198    #[prost(string, tag="1")]
199    pub pubkey: ::prost::alloc::string::String,
200    #[prost(int64, tag="2")]
201    pub lamports: i64,
202    #[prost(uint64, tag="3")]
203    pub post_balance: u64,
204    #[prost(enumeration="RewardType", tag="4")]
205    pub reward_type: i32,
206    #[prost(string, tag="5")]
207    pub commission: ::prost::alloc::string::String,
208}
209
210#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct Rewards {
212    #[prost(message, repeated, tag="1")]
213    pub rewards: ::prost::alloc::vec::Vec<Reward>,
214}
215
216#[derive(Clone, PartialEq, ::prost::Message)]
217pub struct UnixTimestamp {
218    #[prost(int64, tag="1")]
219    pub timestamp: i64,
220}
221
222#[derive(Clone, PartialEq, ::prost::Message)]
223pub struct BlockHeight {
224    #[prost(uint64, tag="1")]
225    pub block_height: u64,
226}
227
228#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
229#[repr(i32)]
230pub enum RewardType {
231    Unspecified = 0,
232    Fee = 1,
233    Rent = 2,
234    Staking = 3,
235    Voting = 4,
236}
237
238impl RewardType {
239    /// String value of the enum field names used in the ProtoBuf definition.
240    ///
241    /// The values are not transformed in any way and thus are considered stable
242    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
243    pub fn as_str_name(&self) -> &'static str {
244        match self {
245            RewardType::Unspecified => "Unspecified",
246            RewardType::Fee => "Fee",
247            RewardType::Rent => "Rent",
248            RewardType::Staking => "Staking",
249            RewardType::Voting => "Voting",
250        }
251    }
252}