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 #[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 }
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 #[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 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}