Line data Source code
1 : // This is an auto-generated file. To add entries, edit fd_types.json
2 : #ifndef HEADER_FD_RUNTIME_TYPES
3 : #define HEADER_FD_RUNTIME_TYPES
4 :
5 : #include "fd_bincode.h"
6 : #include "../../ballet/utf8/fd_utf8.h"
7 : #include "fd_types_custom.h"
8 525 : #define FD_ACCOUNT_META_MAGIC 9823
9 :
10 : /* sdk/program/src/feature.rs#L22 */
11 : /* Encoded Size: Dynamic */
12 : struct fd_feature {
13 : ulong activated_at;
14 : uchar has_activated_at;
15 : };
16 : typedef struct fd_feature fd_feature_t;
17 0 : #define FD_FEATURE_ALIGN alignof(fd_feature_t)
18 :
19 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/fee_calculator.rs#L9 */
20 : /* Encoded Size: Fixed (8 bytes) */
21 : struct fd_fee_calculator {
22 : ulong lamports_per_signature;
23 : };
24 : typedef struct fd_fee_calculator fd_fee_calculator_t;
25 : #define FD_FEE_CALCULATOR_ALIGN alignof(fd_fee_calculator_t)
26 :
27 : /* Encoded Size: Fixed (24 bytes) */
28 : struct fd_hash_age {
29 : fd_fee_calculator_t fee_calculator;
30 : ulong hash_index;
31 : ulong timestamp;
32 : };
33 : typedef struct fd_hash_age fd_hash_age_t;
34 : #define FD_HASH_AGE_ALIGN alignof(fd_hash_age_t)
35 :
36 : /* Encoded Size: Fixed (56 bytes) */
37 : struct fd_hash_hash_age_pair {
38 : fd_hash_t key;
39 : fd_hash_age_t val;
40 : };
41 : typedef struct fd_hash_hash_age_pair fd_hash_hash_age_pair_t;
42 0 : #define FD_HASH_HASH_AGE_PAIR_ALIGN alignof(fd_hash_hash_age_pair_t)
43 :
44 : /* Encoded Size: Dynamic */
45 : struct fd_block_hash_vec {
46 : ulong last_hash_index;
47 : fd_hash_t * last_hash;
48 : ulong ages_len;
49 : fd_hash_hash_age_pair_t * ages;
50 : ulong max_age;
51 : };
52 : typedef struct fd_block_hash_vec fd_block_hash_vec_t;
53 : #define FD_BLOCK_HASH_VEC_ALIGN alignof(fd_block_hash_vec_t)
54 :
55 : struct fd_block_hash_vec_global {
56 : ulong last_hash_index;
57 : ulong last_hash_offset;
58 : ulong ages_len;
59 : ulong ages_offset;
60 : ulong max_age;
61 : };
62 : typedef struct fd_block_hash_vec_global fd_block_hash_vec_global_t;
63 : #define FD_BLOCK_HASH_VEC_GLOBAL_ALIGN alignof(fd_block_hash_vec_global_t)
64 :
65 0 : FD_FN_UNUSED static fd_hash_t * fd_block_hash_vec_last_hash_join( fd_block_hash_vec_global_t const * struct_mem ) {
66 0 : return struct_mem->last_hash_offset ? (fd_hash_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->last_hash_offset ) : NULL;
67 0 : }
68 0 : FD_FN_UNUSED static fd_hash_hash_age_pair_t * fd_block_hash_vec_ages_join( fd_block_hash_vec_global_t const * struct_mem ) { // vector
69 0 : return struct_mem->ages_offset ? (fd_hash_hash_age_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->ages_offset ) : NULL;
70 0 : }
71 0 : FD_FN_UNUSED static void fd_block_hash_vec_ages_update( fd_block_hash_vec_global_t * struct_mem, fd_hash_hash_age_pair_t * vec ) {
72 0 : struct_mem->ages_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
73 0 : }
74 : /* Encoded Size: Fixed (33 bytes) */
75 : struct fd_fee_rate_governor {
76 : ulong target_lamports_per_signature;
77 : ulong target_signatures_per_slot;
78 : ulong min_lamports_per_signature;
79 : ulong max_lamports_per_signature;
80 : uchar burn_percent;
81 : };
82 : typedef struct fd_fee_rate_governor fd_fee_rate_governor_t;
83 : #define FD_FEE_RATE_GOVERNOR_ALIGN alignof(fd_fee_rate_governor_t)
84 :
85 : /* Encoded Size: Fixed (16 bytes) */
86 : struct fd_slot_pair {
87 : ulong slot;
88 : ulong val;
89 : };
90 : typedef struct fd_slot_pair fd_slot_pair_t;
91 0 : #define FD_SLOT_PAIR_ALIGN alignof(fd_slot_pair_t)
92 :
93 : /* Encoded Size: Dynamic */
94 : struct fd_hard_forks {
95 : ulong hard_forks_len;
96 : fd_slot_pair_t * hard_forks;
97 : };
98 : typedef struct fd_hard_forks fd_hard_forks_t;
99 : #define FD_HARD_FORKS_ALIGN alignof(fd_hard_forks_t)
100 :
101 : struct fd_hard_forks_global {
102 : ulong hard_forks_len;
103 : ulong hard_forks_offset;
104 : };
105 : typedef struct fd_hard_forks_global fd_hard_forks_global_t;
106 : #define FD_HARD_FORKS_GLOBAL_ALIGN alignof(fd_hard_forks_global_t)
107 :
108 0 : FD_FN_UNUSED static fd_slot_pair_t * fd_hard_forks_hard_forks_join( fd_hard_forks_global_t const * struct_mem ) { // vector
109 0 : return struct_mem->hard_forks_offset ? (fd_slot_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->hard_forks_offset ) : NULL;
110 0 : }
111 0 : FD_FN_UNUSED static void fd_hard_forks_hard_forks_update( fd_hard_forks_global_t * struct_mem, fd_slot_pair_t * vec ) {
112 0 : struct_mem->hard_forks_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
113 0 : }
114 : /* Encoded Size: Fixed (48 bytes) */
115 : struct fd_inflation {
116 : double initial;
117 : double terminal;
118 : double taper;
119 : double foundation;
120 : double foundation_term;
121 : double unused;
122 : };
123 : typedef struct fd_inflation fd_inflation_t;
124 : #define FD_INFLATION_ALIGN alignof(fd_inflation_t)
125 :
126 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/rent.rs#L11 */
127 : /* Encoded Size: Fixed (17 bytes) */
128 : struct fd_rent {
129 : ulong lamports_per_uint8_year;
130 : double exemption_threshold;
131 : uchar burn_percent;
132 : };
133 : typedef struct fd_rent fd_rent_t;
134 3 : #define FD_RENT_ALIGN alignof(fd_rent_t)
135 :
136 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/epoch_schedule.rs#L26 */
137 : /* Encoded Size: Fixed (33 bytes) */
138 : struct fd_epoch_schedule {
139 : ulong slots_per_epoch;
140 : ulong leader_schedule_slot_offset;
141 : uchar warmup;
142 : ulong first_normal_epoch;
143 : ulong first_normal_slot;
144 : };
145 : typedef struct fd_epoch_schedule fd_epoch_schedule_t;
146 3 : #define FD_EPOCH_SCHEDULE_ALIGN alignof(fd_epoch_schedule_t)
147 :
148 : /* Encoded Size: Fixed (66 bytes) */
149 : struct fd_rent_collector {
150 : ulong epoch;
151 : fd_epoch_schedule_t epoch_schedule;
152 : double slots_per_year;
153 : fd_rent_t rent;
154 : };
155 : typedef struct fd_rent_collector fd_rent_collector_t;
156 : #define FD_RENT_COLLECTOR_ALIGN alignof(fd_rent_collector_t)
157 :
158 : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L17 */
159 : /* Encoded Size: Fixed (24 bytes) */
160 : struct fd_stake_history_entry {
161 : ulong effective;
162 : ulong activating;
163 : ulong deactivating;
164 : };
165 : typedef struct fd_stake_history_entry fd_stake_history_entry_t;
166 : #define FD_STAKE_HISTORY_ENTRY_ALIGN alignof(fd_stake_history_entry_t)
167 :
168 : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L66 */
169 : /* Encoded Size: Fixed (32 bytes) */
170 : struct fd_epoch_stake_history_entry_pair {
171 : ulong epoch;
172 : fd_stake_history_entry_t entry;
173 : };
174 : typedef struct fd_epoch_stake_history_entry_pair fd_epoch_stake_history_entry_pair_t;
175 : #define FD_EPOCH_STAKE_HISTORY_ENTRY_PAIR_ALIGN alignof(fd_epoch_stake_history_entry_pair_t)
176 :
177 : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L66 */
178 : /* Encoded Size: Fixed (16392 bytes) */
179 : struct fd_stake_history {
180 : ulong fd_stake_history_len;
181 : ulong fd_stake_history_size;
182 : ulong fd_stake_history_offset;
183 : fd_epoch_stake_history_entry_pair_t fd_stake_history[512];
184 : };
185 : typedef struct fd_stake_history fd_stake_history_t;
186 9 : #define FD_STAKE_HISTORY_ALIGN alignof(fd_stake_history_t)
187 :
188 : /* https://github.com/anza-xyz/agave/blob/6ac4fe32e28d8ceb4085072b61fa0c6cb09baac1/sdk/src/account.rs#L37 */
189 : /* Encoded Size: Dynamic */
190 : struct fd_solana_account {
191 : ulong lamports;
192 : ulong data_len;
193 : uchar* data;
194 : fd_pubkey_t owner;
195 : uchar executable;
196 : ulong rent_epoch;
197 : };
198 : typedef struct fd_solana_account fd_solana_account_t;
199 0 : #define FD_SOLANA_ACCOUNT_ALIGN alignof(fd_solana_account_t)
200 :
201 : struct fd_solana_account_global {
202 : ulong lamports;
203 : ulong data_len;
204 : ulong data_offset;
205 : fd_pubkey_t owner;
206 : uchar executable;
207 : ulong rent_epoch;
208 : };
209 : typedef struct fd_solana_account_global fd_solana_account_global_t;
210 : #define FD_SOLANA_ACCOUNT_GLOBAL_ALIGN alignof(fd_solana_account_global_t)
211 :
212 0 : FD_FN_UNUSED static uchar * fd_solana_account_data_join( fd_solana_account_global_t const * struct_mem ) { // vector
213 0 : return struct_mem->data_offset ? (uchar *)fd_type_pun( (uchar *)struct_mem + struct_mem->data_offset ) : NULL;
214 0 : }
215 0 : FD_FN_UNUSED static void fd_solana_account_data_update( fd_solana_account_global_t * struct_mem, uchar * vec ) {
216 0 : struct_mem->data_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
217 0 : }
218 : /* Encoded Size: Fixed (48 bytes) */
219 : struct __attribute__((packed)) fd_solana_account_stored_meta {
220 : ulong write_version_obsolete;
221 : ulong data_len;
222 : uchar pubkey[32];
223 : };
224 : typedef struct fd_solana_account_stored_meta fd_solana_account_stored_meta_t;
225 : #define FD_SOLANA_ACCOUNT_STORED_META_ALIGN (8UL)
226 :
227 : /* Encoded Size: Fixed (52 bytes) */
228 : struct __attribute__((packed)) fd_solana_account_meta {
229 : ulong lamports;
230 : ulong rent_epoch;
231 : uchar owner[32];
232 : uchar executable;
233 : uchar padding[3];
234 : };
235 : typedef struct fd_solana_account_meta fd_solana_account_meta_t;
236 : #define FD_SOLANA_ACCOUNT_META_ALIGN (8UL)
237 :
238 : /* Encoded Size: Fixed (136 bytes) */
239 : struct __attribute__((packed)) fd_solana_account_hdr {
240 : fd_solana_account_stored_meta_t meta;
241 : fd_solana_account_meta_t info;
242 : uchar padding[4];
243 : fd_hash_t hash;
244 : };
245 : typedef struct fd_solana_account_hdr fd_solana_account_hdr_t;
246 : #define FD_SOLANA_ACCOUNT_HDR_ALIGN (8UL)
247 :
248 : /* Encoded Size: Fixed (104 bytes) */
249 : struct __attribute__((packed)) fd_account_meta {
250 : ushort magic;
251 : ushort hlen;
252 : ulong dlen;
253 : uchar hash[32];
254 : ulong slot;
255 : fd_solana_account_meta_t info;
256 : };
257 : typedef struct fd_account_meta fd_account_meta_t;
258 : #define FD_ACCOUNT_META_ALIGN (8UL)
259 :
260 : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/vote/src/vote_account.rs#L323 */
261 : /* Encoded Size: Dynamic */
262 : struct fd_vote_accounts_pair {
263 : fd_pubkey_t key;
264 : ulong stake;
265 : fd_solana_account_t value;
266 : };
267 : typedef struct fd_vote_accounts_pair fd_vote_accounts_pair_t;
268 : #define FD_VOTE_ACCOUNTS_PAIR_ALIGN alignof(fd_vote_accounts_pair_t)
269 :
270 : struct fd_vote_accounts_pair_global {
271 : fd_pubkey_t key;
272 : ulong stake;
273 : fd_solana_account_global_t value;
274 : };
275 : typedef struct fd_vote_accounts_pair_global fd_vote_accounts_pair_global_t;
276 : #define FD_VOTE_ACCOUNTS_PAIR_GLOBAL_ALIGN alignof(fd_vote_accounts_pair_global_t)
277 :
278 : typedef struct fd_vote_accounts_pair_t_mapnode fd_vote_accounts_pair_t_mapnode_t;
279 : #define REDBLK_T fd_vote_accounts_pair_t_mapnode_t
280 : #define REDBLK_NAME fd_vote_accounts_pair_t_map
281 : #define REDBLK_IMPL_STYLE 1
282 : #include "../../util/tmpl/fd_redblack.c"
283 : struct fd_vote_accounts_pair_t_mapnode {
284 : fd_vote_accounts_pair_t elem;
285 : ulong redblack_parent;
286 : ulong redblack_left;
287 : ulong redblack_right;
288 : int redblack_color;
289 : };
290 : static inline fd_vote_accounts_pair_t_mapnode_t *
291 0 : fd_vote_accounts_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
292 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
293 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_accounts_pair_t_map_align() );
294 0 : void * map_mem = *alloc_mem;
295 0 : *alloc_mem = (uchar *)*alloc_mem + fd_vote_accounts_pair_t_map_footprint( len );
296 0 : return fd_vote_accounts_pair_t_map_join( fd_vote_accounts_pair_t_map_new( map_mem, len ) );
297 0 : }
298 : typedef struct fd_vote_accounts_pair_global_t_mapnode fd_vote_accounts_pair_global_t_mapnode_t;
299 : #define REDBLK_T fd_vote_accounts_pair_global_t_mapnode_t
300 : #define REDBLK_NAME fd_vote_accounts_pair_global_t_map
301 : #define REDBLK_IMPL_STYLE 1
302 : #include "../../util/tmpl/fd_redblack.c"
303 : struct fd_vote_accounts_pair_global_t_mapnode {
304 : fd_vote_accounts_pair_global_t elem;
305 : ulong redblack_parent;
306 : ulong redblack_left;
307 : ulong redblack_right;
308 : int redblack_color;
309 : };
310 : static inline fd_vote_accounts_pair_global_t_mapnode_t *
311 0 : fd_vote_accounts_pair_global_t_map_join_new( void * * alloc_mem, ulong len ) {
312 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
313 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_accounts_pair_global_t_map_align() );
314 0 : void * map_mem = *alloc_mem;
315 0 : *alloc_mem = (uchar *)*alloc_mem + fd_vote_accounts_pair_global_t_map_footprint( len );
316 0 : return fd_vote_accounts_pair_global_t_map_join( fd_vote_accounts_pair_global_t_map_new( map_mem, len ) );
317 0 : }
318 : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/vote/src/vote_account.rs#L46 */
319 : /* Encoded Size: Dynamic */
320 : struct fd_vote_accounts {
321 : fd_vote_accounts_pair_t_mapnode_t * vote_accounts_pool;
322 : fd_vote_accounts_pair_t_mapnode_t * vote_accounts_root;
323 : };
324 : typedef struct fd_vote_accounts fd_vote_accounts_t;
325 : #define FD_VOTE_ACCOUNTS_ALIGN alignof(fd_vote_accounts_t)
326 :
327 : struct fd_vote_accounts_global {
328 : ulong vote_accounts_pool_offset;
329 : ulong vote_accounts_root_offset;
330 : };
331 : typedef struct fd_vote_accounts_global fd_vote_accounts_global_t;
332 : #define FD_VOTE_ACCOUNTS_GLOBAL_ALIGN alignof(fd_vote_accounts_global_t)
333 :
334 0 : static FD_FN_UNUSED fd_vote_accounts_pair_global_t_mapnode_t * fd_vote_accounts_vote_accounts_pool_join( fd_vote_accounts_global_t const * type ) {
335 0 : if( FD_UNLIKELY( !type ) ) return NULL;
336 0 : return !!type->vote_accounts_pool_offset ? (fd_vote_accounts_pair_global_t_mapnode_t *)fd_vote_accounts_pair_global_t_map_join( fd_type_pun( (uchar *)type + type->vote_accounts_pool_offset ) ) : NULL;
337 0 : }
338 0 : static FD_FN_UNUSED fd_vote_accounts_pair_global_t_mapnode_t * fd_vote_accounts_vote_accounts_root_join( fd_vote_accounts_global_t const * type ) {
339 0 : if( FD_UNLIKELY( !type ) ) return NULL;
340 0 : return !!type->vote_accounts_root_offset ? (fd_vote_accounts_pair_global_t_mapnode_t *)fd_type_pun( (uchar *)type + type->vote_accounts_root_offset ) : NULL;
341 0 : }
342 0 : static FD_FN_UNUSED void fd_vote_accounts_vote_accounts_pool_update( fd_vote_accounts_global_t * type, fd_vote_accounts_pair_global_t_mapnode_t * pool ) {
343 0 : type->vote_accounts_pool_offset = !!pool ? (ulong)fd_vote_accounts_pair_global_t_map_leave( pool ) - (ulong)type : 0UL;
344 0 : }
345 0 : static FD_FN_UNUSED void fd_vote_accounts_vote_accounts_root_update( fd_vote_accounts_global_t * type, fd_vote_accounts_pair_global_t_mapnode_t * root ) {
346 0 : type->vote_accounts_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
347 0 : }
348 : /* Encoded Size: Fixed (33 bytes) */
349 : struct fd_account_keys_pair {
350 : fd_pubkey_t key;
351 : uchar exists;
352 : };
353 : typedef struct fd_account_keys_pair fd_account_keys_pair_t;
354 : #define FD_ACCOUNT_KEYS_PAIR_ALIGN alignof(fd_account_keys_pair_t)
355 :
356 : typedef struct fd_account_keys_pair_t_mapnode fd_account_keys_pair_t_mapnode_t;
357 : #define REDBLK_T fd_account_keys_pair_t_mapnode_t
358 : #define REDBLK_NAME fd_account_keys_pair_t_map
359 : #define REDBLK_IMPL_STYLE 1
360 : #include "../../util/tmpl/fd_redblack.c"
361 : struct fd_account_keys_pair_t_mapnode {
362 : fd_account_keys_pair_t elem;
363 : ulong redblack_parent;
364 : ulong redblack_left;
365 : ulong redblack_right;
366 : int redblack_color;
367 : };
368 : static inline fd_account_keys_pair_t_mapnode_t *
369 0 : fd_account_keys_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
370 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
371 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_account_keys_pair_t_map_align() );
372 0 : void * map_mem = *alloc_mem;
373 0 : *alloc_mem = (uchar *)*alloc_mem + fd_account_keys_pair_t_map_footprint( len );
374 0 : return fd_account_keys_pair_t_map_join( fd_account_keys_pair_t_map_new( map_mem, len ) );
375 0 : }
376 : /* Encoded Size: Dynamic */
377 : struct fd_account_keys {
378 : fd_account_keys_pair_t_mapnode_t * account_keys_pool;
379 : fd_account_keys_pair_t_mapnode_t * account_keys_root;
380 : };
381 : typedef struct fd_account_keys fd_account_keys_t;
382 : #define FD_ACCOUNT_KEYS_ALIGN alignof(fd_account_keys_t)
383 :
384 : struct fd_account_keys_global {
385 : ulong account_keys_pool_offset;
386 : ulong account_keys_root_offset;
387 : };
388 : typedef struct fd_account_keys_global fd_account_keys_global_t;
389 : #define FD_ACCOUNT_KEYS_GLOBAL_ALIGN alignof(fd_account_keys_global_t)
390 :
391 0 : static FD_FN_UNUSED fd_account_keys_pair_t_mapnode_t * fd_account_keys_account_keys_pool_join( fd_account_keys_global_t const * type ) {
392 0 : if( FD_UNLIKELY( !type ) ) return NULL;
393 0 : return !!type->account_keys_pool_offset ? (fd_account_keys_pair_t_mapnode_t *)fd_account_keys_pair_t_map_join( fd_type_pun( (uchar *)type + type->account_keys_pool_offset ) ) : NULL;
394 0 : }
395 0 : static FD_FN_UNUSED fd_account_keys_pair_t_mapnode_t * fd_account_keys_account_keys_root_join( fd_account_keys_global_t const * type ) {
396 0 : if( FD_UNLIKELY( !type ) ) return NULL;
397 0 : return !!type->account_keys_root_offset ? (fd_account_keys_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->account_keys_root_offset ) : NULL;
398 0 : }
399 0 : static FD_FN_UNUSED void fd_account_keys_account_keys_pool_update( fd_account_keys_global_t * type, fd_account_keys_pair_t_mapnode_t * pool ) {
400 0 : type->account_keys_pool_offset = !!pool ? (ulong)fd_account_keys_pair_t_map_leave( pool ) - (ulong)type : 0UL;
401 0 : }
402 0 : static FD_FN_UNUSED void fd_account_keys_account_keys_root_update( fd_account_keys_global_t * type, fd_account_keys_pair_t_mapnode_t * root ) {
403 0 : type->account_keys_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
404 0 : }
405 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L303 */
406 : /* Encoded Size: Fixed (64 bytes) */
407 : struct fd_delegation {
408 : fd_pubkey_t voter_pubkey;
409 : ulong stake;
410 : ulong activation_epoch;
411 : ulong deactivation_epoch;
412 : double warmup_cooldown_rate;
413 : };
414 : typedef struct fd_delegation fd_delegation_t;
415 : #define FD_DELEGATION_ALIGN alignof(fd_delegation_t)
416 :
417 : /* Encoded Size: Fixed (96 bytes) */
418 : struct fd_delegation_pair {
419 : fd_pubkey_t account;
420 : fd_delegation_t delegation;
421 : };
422 : typedef struct fd_delegation_pair fd_delegation_pair_t;
423 : #define FD_DELEGATION_PAIR_ALIGN alignof(fd_delegation_pair_t)
424 :
425 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L539 */
426 : /* Encoded Size: Fixed (72 bytes) */
427 : struct fd_stake {
428 : fd_delegation_t delegation;
429 : ulong credits_observed;
430 : };
431 : typedef struct fd_stake fd_stake_t;
432 : #define FD_STAKE_ALIGN alignof(fd_stake_t)
433 :
434 : /* Encoded Size: Fixed (104 bytes) */
435 : struct fd_stake_pair {
436 : fd_pubkey_t account;
437 : fd_stake_t stake;
438 : };
439 : typedef struct fd_stake_pair fd_stake_pair_t;
440 : #define FD_STAKE_PAIR_ALIGN alignof(fd_stake_pair_t)
441 :
442 : typedef struct fd_delegation_pair_t_mapnode fd_delegation_pair_t_mapnode_t;
443 : #define REDBLK_T fd_delegation_pair_t_mapnode_t
444 : #define REDBLK_NAME fd_delegation_pair_t_map
445 : #define REDBLK_IMPL_STYLE 1
446 : #include "../../util/tmpl/fd_redblack.c"
447 : struct fd_delegation_pair_t_mapnode {
448 : fd_delegation_pair_t elem;
449 : ulong redblack_parent;
450 : ulong redblack_left;
451 : ulong redblack_right;
452 : int redblack_color;
453 : };
454 : static inline fd_delegation_pair_t_mapnode_t *
455 0 : fd_delegation_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
456 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
457 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_delegation_pair_t_map_align() );
458 0 : void * map_mem = *alloc_mem;
459 0 : *alloc_mem = (uchar *)*alloc_mem + fd_delegation_pair_t_map_footprint( len );
460 0 : return fd_delegation_pair_t_map_join( fd_delegation_pair_t_map_new( map_mem, len ) );
461 0 : }
462 : /* https://github.com/anza-xyz/agave/blob/3e1c3a2f85b5b1d34031f2710d609347cfb77dfd/runtime/src/stakes.rs#L159 */
463 : /* Encoded Size: Dynamic */
464 : struct __attribute__((aligned(128UL))) fd_stakes {
465 : fd_vote_accounts_t vote_accounts;
466 : fd_delegation_pair_t_mapnode_t * stake_delegations_pool;
467 : fd_delegation_pair_t_mapnode_t * stake_delegations_root;
468 : ulong unused;
469 : ulong epoch;
470 : fd_stake_history_t stake_history;
471 : };
472 : typedef struct fd_stakes fd_stakes_t;
473 : #define FD_STAKES_ALIGN (128UL)
474 :
475 : struct __attribute__((aligned(128UL))) fd_stakes_global {
476 : fd_vote_accounts_global_t vote_accounts;
477 : ulong stake_delegations_pool_offset;
478 : ulong stake_delegations_root_offset;
479 : ulong unused;
480 : ulong epoch;
481 : fd_stake_history_t stake_history;
482 : };
483 : typedef struct fd_stakes_global fd_stakes_global_t;
484 : #define FD_STAKES_GLOBAL_ALIGN (128UL)
485 :
486 0 : static FD_FN_UNUSED fd_delegation_pair_t_mapnode_t * fd_stakes_stake_delegations_pool_join( fd_stakes_global_t const * type ) {
487 0 : if( FD_UNLIKELY( !type ) ) return NULL;
488 0 : return !!type->stake_delegations_pool_offset ? (fd_delegation_pair_t_mapnode_t *)fd_delegation_pair_t_map_join( fd_type_pun( (uchar *)type + type->stake_delegations_pool_offset ) ) : NULL;
489 0 : }
490 0 : static FD_FN_UNUSED fd_delegation_pair_t_mapnode_t * fd_stakes_stake_delegations_root_join( fd_stakes_global_t const * type ) {
491 0 : if( FD_UNLIKELY( !type ) ) return NULL;
492 0 : return !!type->stake_delegations_root_offset ? (fd_delegation_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->stake_delegations_root_offset ) : NULL;
493 0 : }
494 0 : static FD_FN_UNUSED void fd_stakes_stake_delegations_pool_update( fd_stakes_global_t * type, fd_delegation_pair_t_mapnode_t * pool ) {
495 0 : type->stake_delegations_pool_offset = !!pool ? (ulong)fd_delegation_pair_t_map_leave( pool ) - (ulong)type : 0UL;
496 0 : }
497 0 : static FD_FN_UNUSED void fd_stakes_stake_delegations_root_update( fd_stakes_global_t * type, fd_delegation_pair_t_mapnode_t * root ) {
498 0 : type->stake_delegations_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
499 0 : }
500 : typedef struct fd_stake_pair_t_mapnode fd_stake_pair_t_mapnode_t;
501 : #define REDBLK_T fd_stake_pair_t_mapnode_t
502 : #define REDBLK_NAME fd_stake_pair_t_map
503 : #define REDBLK_IMPL_STYLE 1
504 : #include "../../util/tmpl/fd_redblack.c"
505 : struct fd_stake_pair_t_mapnode {
506 : fd_stake_pair_t elem;
507 : ulong redblack_parent;
508 : ulong redblack_left;
509 : ulong redblack_right;
510 : int redblack_color;
511 : };
512 : static inline fd_stake_pair_t_mapnode_t *
513 0 : fd_stake_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
514 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
515 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_stake_pair_t_map_align() );
516 0 : void * map_mem = *alloc_mem;
517 0 : *alloc_mem = (uchar *)*alloc_mem + fd_stake_pair_t_map_footprint( len );
518 0 : return fd_stake_pair_t_map_join( fd_stake_pair_t_map_new( map_mem, len ) );
519 0 : }
520 : /* https://github.com/anza-xyz/agave/blob/436f7333a8465739df65c2534654102896e09eb5/runtime/src/stakes.rs#L160 */
521 : /* Encoded Size: Dynamic */
522 : struct fd_stakes_stake {
523 : fd_vote_accounts_t vote_accounts;
524 : fd_stake_pair_t_mapnode_t * stake_delegations_pool;
525 : fd_stake_pair_t_mapnode_t * stake_delegations_root;
526 : ulong unused;
527 : ulong epoch;
528 : fd_stake_history_t stake_history;
529 : };
530 : typedef struct fd_stakes_stake fd_stakes_stake_t;
531 : #define FD_STAKES_STAKE_ALIGN alignof(fd_stakes_stake_t)
532 :
533 : struct fd_stakes_stake_global {
534 : fd_vote_accounts_global_t vote_accounts;
535 : ulong stake_delegations_pool_offset;
536 : ulong stake_delegations_root_offset;
537 : ulong unused;
538 : ulong epoch;
539 : fd_stake_history_t stake_history;
540 : };
541 : typedef struct fd_stakes_stake_global fd_stakes_stake_global_t;
542 : #define FD_STAKES_STAKE_GLOBAL_ALIGN alignof(fd_stakes_stake_global_t)
543 :
544 0 : static FD_FN_UNUSED fd_stake_pair_t_mapnode_t * fd_stakes_stake_stake_delegations_pool_join( fd_stakes_stake_global_t const * type ) {
545 0 : if( FD_UNLIKELY( !type ) ) return NULL;
546 0 : return !!type->stake_delegations_pool_offset ? (fd_stake_pair_t_mapnode_t *)fd_stake_pair_t_map_join( fd_type_pun( (uchar *)type + type->stake_delegations_pool_offset ) ) : NULL;
547 0 : }
548 0 : static FD_FN_UNUSED fd_stake_pair_t_mapnode_t * fd_stakes_stake_stake_delegations_root_join( fd_stakes_stake_global_t const * type ) {
549 0 : if( FD_UNLIKELY( !type ) ) return NULL;
550 0 : return !!type->stake_delegations_root_offset ? (fd_stake_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->stake_delegations_root_offset ) : NULL;
551 0 : }
552 0 : static FD_FN_UNUSED void fd_stakes_stake_stake_delegations_pool_update( fd_stakes_stake_global_t * type, fd_stake_pair_t_mapnode_t * pool ) {
553 0 : type->stake_delegations_pool_offset = !!pool ? (ulong)fd_stake_pair_t_map_leave( pool ) - (ulong)type : 0UL;
554 0 : }
555 0 : static FD_FN_UNUSED void fd_stakes_stake_stake_delegations_root_update( fd_stakes_stake_global_t * type, fd_stake_pair_t_mapnode_t * root ) {
556 0 : type->stake_delegations_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
557 0 : }
558 : /* Encoded Size: Fixed (88 bytes) */
559 : struct fd_bank_incremental_snapshot_persistence {
560 : ulong full_slot;
561 : fd_hash_t full_hash;
562 : ulong full_capitalization;
563 : fd_hash_t incremental_hash;
564 : ulong incremental_capitalization;
565 : };
566 : typedef struct fd_bank_incremental_snapshot_persistence fd_bank_incremental_snapshot_persistence_t;
567 0 : #define FD_BANK_INCREMENTAL_SNAPSHOT_PERSISTENCE_ALIGN alignof(fd_bank_incremental_snapshot_persistence_t)
568 :
569 : /* https://github.com/anza-xyz/agave/blob/de6ce29e1a7ecbdc6dc39527fce80beea404d314/runtime/src/epoch_stakes.rs#L16 */
570 : /* Encoded Size: Dynamic */
571 : struct fd_node_vote_accounts {
572 : ulong vote_accounts_len;
573 : fd_pubkey_t * vote_accounts;
574 : ulong total_stake;
575 : };
576 : typedef struct fd_node_vote_accounts fd_node_vote_accounts_t;
577 : #define FD_NODE_VOTE_ACCOUNTS_ALIGN alignof(fd_node_vote_accounts_t)
578 :
579 : struct fd_node_vote_accounts_global {
580 : ulong vote_accounts_len;
581 : ulong vote_accounts_offset;
582 : ulong total_stake;
583 : };
584 : typedef struct fd_node_vote_accounts_global fd_node_vote_accounts_global_t;
585 : #define FD_NODE_VOTE_ACCOUNTS_GLOBAL_ALIGN alignof(fd_node_vote_accounts_global_t)
586 :
587 0 : FD_FN_UNUSED static fd_pubkey_t * fd_node_vote_accounts_vote_accounts_join( fd_node_vote_accounts_global_t const * struct_mem ) { // vector
588 0 : return struct_mem->vote_accounts_offset ? (fd_pubkey_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->vote_accounts_offset ) : NULL;
589 0 : }
590 0 : FD_FN_UNUSED static void fd_node_vote_accounts_vote_accounts_update( fd_node_vote_accounts_global_t * struct_mem, fd_pubkey_t * vec ) {
591 0 : struct_mem->vote_accounts_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
592 0 : }
593 : /* https://github.com/anza-xyz/agave/blob/de6ce29e1a7ecbdc6dc39527fce80beea404d314/runtime/src/epoch_stakes.rs#L10 */
594 : /* Encoded Size: Dynamic */
595 : struct fd_pubkey_node_vote_accounts_pair {
596 : fd_pubkey_t key;
597 : fd_node_vote_accounts_t value;
598 : };
599 : typedef struct fd_pubkey_node_vote_accounts_pair fd_pubkey_node_vote_accounts_pair_t;
600 : #define FD_PUBKEY_NODE_VOTE_ACCOUNTS_PAIR_ALIGN alignof(fd_pubkey_node_vote_accounts_pair_t)
601 :
602 : struct fd_pubkey_node_vote_accounts_pair_global {
603 : fd_pubkey_t key;
604 : fd_node_vote_accounts_global_t value;
605 : };
606 : typedef struct fd_pubkey_node_vote_accounts_pair_global fd_pubkey_node_vote_accounts_pair_global_t;
607 : #define FD_PUBKEY_NODE_VOTE_ACCOUNTS_PAIR_GLOBAL_ALIGN alignof(fd_pubkey_node_vote_accounts_pair_global_t)
608 :
609 : /* Encoded Size: Fixed (64 bytes) */
610 : struct fd_pubkey_pubkey_pair {
611 : fd_pubkey_t key;
612 : fd_pubkey_t value;
613 : };
614 : typedef struct fd_pubkey_pubkey_pair fd_pubkey_pubkey_pair_t;
615 : #define FD_PUBKEY_PUBKEY_PAIR_ALIGN alignof(fd_pubkey_pubkey_pair_t)
616 :
617 : typedef struct fd_pubkey_node_vote_accounts_pair_t_mapnode fd_pubkey_node_vote_accounts_pair_t_mapnode_t;
618 : #define REDBLK_T fd_pubkey_node_vote_accounts_pair_t_mapnode_t
619 : #define REDBLK_NAME fd_pubkey_node_vote_accounts_pair_t_map
620 : #define REDBLK_IMPL_STYLE 1
621 : #include "../../util/tmpl/fd_redblack.c"
622 : struct fd_pubkey_node_vote_accounts_pair_t_mapnode {
623 : fd_pubkey_node_vote_accounts_pair_t elem;
624 : ulong redblack_parent;
625 : ulong redblack_left;
626 : ulong redblack_right;
627 : int redblack_color;
628 : };
629 : static inline fd_pubkey_node_vote_accounts_pair_t_mapnode_t *
630 0 : fd_pubkey_node_vote_accounts_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
631 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
632 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_pubkey_node_vote_accounts_pair_t_map_align() );
633 0 : void * map_mem = *alloc_mem;
634 0 : *alloc_mem = (uchar *)*alloc_mem + fd_pubkey_node_vote_accounts_pair_t_map_footprint( len );
635 0 : return fd_pubkey_node_vote_accounts_pair_t_map_join( fd_pubkey_node_vote_accounts_pair_t_map_new( map_mem, len ) );
636 0 : }
637 : typedef struct fd_pubkey_node_vote_accounts_pair_global_t_mapnode fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t;
638 : #define REDBLK_T fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t
639 : #define REDBLK_NAME fd_pubkey_node_vote_accounts_pair_global_t_map
640 : #define REDBLK_IMPL_STYLE 1
641 : #include "../../util/tmpl/fd_redblack.c"
642 : struct fd_pubkey_node_vote_accounts_pair_global_t_mapnode {
643 : fd_pubkey_node_vote_accounts_pair_global_t elem;
644 : ulong redblack_parent;
645 : ulong redblack_left;
646 : ulong redblack_right;
647 : int redblack_color;
648 : };
649 : static inline fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *
650 0 : fd_pubkey_node_vote_accounts_pair_global_t_map_join_new( void * * alloc_mem, ulong len ) {
651 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
652 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_pubkey_node_vote_accounts_pair_global_t_map_align() );
653 0 : void * map_mem = *alloc_mem;
654 0 : *alloc_mem = (uchar *)*alloc_mem + fd_pubkey_node_vote_accounts_pair_global_t_map_footprint( len );
655 0 : return fd_pubkey_node_vote_accounts_pair_global_t_map_join( fd_pubkey_node_vote_accounts_pair_global_t_map_new( map_mem, len ) );
656 0 : }
657 : typedef struct fd_pubkey_pubkey_pair_t_mapnode fd_pubkey_pubkey_pair_t_mapnode_t;
658 : #define REDBLK_T fd_pubkey_pubkey_pair_t_mapnode_t
659 : #define REDBLK_NAME fd_pubkey_pubkey_pair_t_map
660 : #define REDBLK_IMPL_STYLE 1
661 : #include "../../util/tmpl/fd_redblack.c"
662 : struct fd_pubkey_pubkey_pair_t_mapnode {
663 : fd_pubkey_pubkey_pair_t elem;
664 : ulong redblack_parent;
665 : ulong redblack_left;
666 : ulong redblack_right;
667 : int redblack_color;
668 : };
669 : static inline fd_pubkey_pubkey_pair_t_mapnode_t *
670 0 : fd_pubkey_pubkey_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
671 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
672 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_pubkey_pubkey_pair_t_map_align() );
673 0 : void * map_mem = *alloc_mem;
674 0 : *alloc_mem = (uchar *)*alloc_mem + fd_pubkey_pubkey_pair_t_map_footprint( len );
675 0 : return fd_pubkey_pubkey_pair_t_map_join( fd_pubkey_pubkey_pair_t_map_new( map_mem, len ) );
676 0 : }
677 : /* https://github.com/anza-xyz/agave/blob/de6ce29e1a7ecbdc6dc39527fce80beea404d314/runtime/src/epoch_stakes.rs#L23 */
678 : /* Encoded Size: Dynamic */
679 : struct fd_epoch_stakes {
680 : fd_stakes_t stakes;
681 : ulong total_stake;
682 : fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node_id_to_vote_accounts_pool;
683 : fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node_id_to_vote_accounts_root;
684 : fd_pubkey_pubkey_pair_t_mapnode_t * epoch_authorized_voters_pool;
685 : fd_pubkey_pubkey_pair_t_mapnode_t * epoch_authorized_voters_root;
686 : };
687 : typedef struct fd_epoch_stakes fd_epoch_stakes_t;
688 : #define FD_EPOCH_STAKES_ALIGN alignof(fd_epoch_stakes_t)
689 :
690 : struct fd_epoch_stakes_global {
691 : fd_stakes_global_t stakes;
692 : ulong total_stake;
693 : ulong node_id_to_vote_accounts_pool_offset;
694 : ulong node_id_to_vote_accounts_root_offset;
695 : ulong epoch_authorized_voters_pool_offset;
696 : ulong epoch_authorized_voters_root_offset;
697 : };
698 : typedef struct fd_epoch_stakes_global fd_epoch_stakes_global_t;
699 : #define FD_EPOCH_STAKES_GLOBAL_ALIGN alignof(fd_epoch_stakes_global_t)
700 :
701 0 : static FD_FN_UNUSED fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * fd_epoch_stakes_node_id_to_vote_accounts_pool_join( fd_epoch_stakes_global_t const * type ) {
702 0 : if( FD_UNLIKELY( !type ) ) return NULL;
703 0 : return !!type->node_id_to_vote_accounts_pool_offset ? (fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *)fd_pubkey_node_vote_accounts_pair_global_t_map_join( fd_type_pun( (uchar *)type + type->node_id_to_vote_accounts_pool_offset ) ) : NULL;
704 0 : }
705 0 : static FD_FN_UNUSED fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * fd_epoch_stakes_node_id_to_vote_accounts_root_join( fd_epoch_stakes_global_t const * type ) {
706 0 : if( FD_UNLIKELY( !type ) ) return NULL;
707 0 : return !!type->node_id_to_vote_accounts_root_offset ? (fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *)fd_type_pun( (uchar *)type + type->node_id_to_vote_accounts_root_offset ) : NULL;
708 0 : }
709 0 : static FD_FN_UNUSED void fd_epoch_stakes_node_id_to_vote_accounts_pool_update( fd_epoch_stakes_global_t * type, fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * pool ) {
710 0 : type->node_id_to_vote_accounts_pool_offset = !!pool ? (ulong)fd_pubkey_node_vote_accounts_pair_global_t_map_leave( pool ) - (ulong)type : 0UL;
711 0 : }
712 0 : static FD_FN_UNUSED void fd_epoch_stakes_node_id_to_vote_accounts_root_update( fd_epoch_stakes_global_t * type, fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * root ) {
713 0 : type->node_id_to_vote_accounts_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
714 0 : }
715 0 : static FD_FN_UNUSED fd_pubkey_pubkey_pair_t_mapnode_t * fd_epoch_stakes_epoch_authorized_voters_pool_join( fd_epoch_stakes_global_t const * type ) {
716 0 : if( FD_UNLIKELY( !type ) ) return NULL;
717 0 : return !!type->epoch_authorized_voters_pool_offset ? (fd_pubkey_pubkey_pair_t_mapnode_t *)fd_pubkey_pubkey_pair_t_map_join( fd_type_pun( (uchar *)type + type->epoch_authorized_voters_pool_offset ) ) : NULL;
718 0 : }
719 0 : static FD_FN_UNUSED fd_pubkey_pubkey_pair_t_mapnode_t * fd_epoch_stakes_epoch_authorized_voters_root_join( fd_epoch_stakes_global_t const * type ) {
720 0 : if( FD_UNLIKELY( !type ) ) return NULL;
721 0 : return !!type->epoch_authorized_voters_root_offset ? (fd_pubkey_pubkey_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->epoch_authorized_voters_root_offset ) : NULL;
722 0 : }
723 0 : static FD_FN_UNUSED void fd_epoch_stakes_epoch_authorized_voters_pool_update( fd_epoch_stakes_global_t * type, fd_pubkey_pubkey_pair_t_mapnode_t * pool ) {
724 0 : type->epoch_authorized_voters_pool_offset = !!pool ? (ulong)fd_pubkey_pubkey_pair_t_map_leave( pool ) - (ulong)type : 0UL;
725 0 : }
726 0 : static FD_FN_UNUSED void fd_epoch_stakes_epoch_authorized_voters_root_update( fd_epoch_stakes_global_t * type, fd_pubkey_pubkey_pair_t_mapnode_t * root ) {
727 0 : type->epoch_authorized_voters_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
728 0 : }
729 : /* Encoded Size: Dynamic */
730 : struct fd_epoch_epoch_stakes_pair {
731 : ulong key;
732 : fd_epoch_stakes_t value;
733 : };
734 : typedef struct fd_epoch_epoch_stakes_pair fd_epoch_epoch_stakes_pair_t;
735 0 : #define FD_EPOCH_EPOCH_STAKES_PAIR_ALIGN alignof(fd_epoch_epoch_stakes_pair_t)
736 :
737 : struct fd_epoch_epoch_stakes_pair_global {
738 : ulong key;
739 : fd_epoch_stakes_global_t value;
740 : };
741 : typedef struct fd_epoch_epoch_stakes_pair_global fd_epoch_epoch_stakes_pair_global_t;
742 : #define FD_EPOCH_EPOCH_STAKES_PAIR_GLOBAL_ALIGN alignof(fd_epoch_epoch_stakes_pair_global_t)
743 :
744 : /* Encoded Size: Fixed (40 bytes) */
745 : struct fd_pubkey_u64_pair {
746 : fd_pubkey_t _0;
747 : ulong _1;
748 : };
749 : typedef struct fd_pubkey_u64_pair fd_pubkey_u64_pair_t;
750 0 : #define FD_PUBKEY_U64_PAIR_ALIGN alignof(fd_pubkey_u64_pair_t)
751 :
752 : /* Encoded Size: Dynamic */
753 : struct fd_unused_accounts {
754 : ulong unused1_len;
755 : fd_pubkey_t * unused1;
756 : ulong unused2_len;
757 : fd_pubkey_t * unused2;
758 : ulong unused3_len;
759 : fd_pubkey_u64_pair_t * unused3;
760 : };
761 : typedef struct fd_unused_accounts fd_unused_accounts_t;
762 : #define FD_UNUSED_ACCOUNTS_ALIGN alignof(fd_unused_accounts_t)
763 :
764 : struct fd_unused_accounts_global {
765 : ulong unused1_len;
766 : ulong unused1_offset;
767 : ulong unused2_len;
768 : ulong unused2_offset;
769 : ulong unused3_len;
770 : ulong unused3_offset;
771 : };
772 : typedef struct fd_unused_accounts_global fd_unused_accounts_global_t;
773 : #define FD_UNUSED_ACCOUNTS_GLOBAL_ALIGN alignof(fd_unused_accounts_global_t)
774 :
775 0 : FD_FN_UNUSED static fd_pubkey_t * fd_unused_accounts_unused1_join( fd_unused_accounts_global_t const * struct_mem ) { // vector
776 0 : return struct_mem->unused1_offset ? (fd_pubkey_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->unused1_offset ) : NULL;
777 0 : }
778 0 : FD_FN_UNUSED static void fd_unused_accounts_unused1_update( fd_unused_accounts_global_t * struct_mem, fd_pubkey_t * vec ) {
779 0 : struct_mem->unused1_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
780 0 : }
781 0 : FD_FN_UNUSED static fd_pubkey_t * fd_unused_accounts_unused2_join( fd_unused_accounts_global_t const * struct_mem ) { // vector
782 0 : return struct_mem->unused2_offset ? (fd_pubkey_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->unused2_offset ) : NULL;
783 0 : }
784 0 : FD_FN_UNUSED static void fd_unused_accounts_unused2_update( fd_unused_accounts_global_t * struct_mem, fd_pubkey_t * vec ) {
785 0 : struct_mem->unused2_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
786 0 : }
787 0 : FD_FN_UNUSED static fd_pubkey_u64_pair_t * fd_unused_accounts_unused3_join( fd_unused_accounts_global_t const * struct_mem ) { // vector
788 0 : return struct_mem->unused3_offset ? (fd_pubkey_u64_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->unused3_offset ) : NULL;
789 0 : }
790 0 : FD_FN_UNUSED static void fd_unused_accounts_unused3_update( fd_unused_accounts_global_t * struct_mem, fd_pubkey_u64_pair_t * vec ) {
791 0 : struct_mem->unused3_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
792 0 : }
793 : /* https://github.com/solana-labs/solana/blob/88aeaa82a856fc807234e7da0b31b89f2dc0e091/runtime/src/bank.rs#L967 */
794 : /* Encoded Size: Dynamic */
795 : struct fd_versioned_bank {
796 : fd_block_hash_vec_t blockhash_queue;
797 : ulong ancestors_len;
798 : fd_slot_pair_t * ancestors;
799 : fd_hash_t hash;
800 : fd_hash_t parent_hash;
801 : ulong parent_slot;
802 : fd_hard_forks_t hard_forks;
803 : ulong transaction_count;
804 : ulong tick_height;
805 : ulong signature_count;
806 : ulong capitalization;
807 : ulong max_tick_height;
808 : ulong* hashes_per_tick;
809 : ulong ticks_per_slot;
810 : uint128 ns_per_slot;
811 : ulong genesis_creation_time;
812 : double slots_per_year;
813 : ulong accounts_data_len;
814 : ulong slot;
815 : ulong epoch;
816 : ulong block_height;
817 : fd_pubkey_t collector_id;
818 : ulong collector_fees;
819 : fd_fee_calculator_t fee_calculator;
820 : fd_fee_rate_governor_t fee_rate_governor;
821 : ulong collected_rent;
822 : fd_rent_collector_t rent_collector;
823 : fd_epoch_schedule_t epoch_schedule;
824 : fd_inflation_t inflation;
825 : fd_stakes_t stakes;
826 : fd_unused_accounts_t unused_accounts;
827 : ulong epoch_stakes_len;
828 : fd_epoch_epoch_stakes_pair_t * epoch_stakes;
829 : uchar is_delta;
830 : };
831 : typedef struct fd_versioned_bank fd_versioned_bank_t;
832 : #define FD_VERSIONED_BANK_ALIGN alignof(fd_versioned_bank_t)
833 :
834 : struct fd_versioned_bank_global {
835 : fd_block_hash_vec_global_t blockhash_queue;
836 : ulong ancestors_len;
837 : ulong ancestors_offset;
838 : fd_hash_t hash;
839 : fd_hash_t parent_hash;
840 : ulong parent_slot;
841 : fd_hard_forks_global_t hard_forks;
842 : ulong transaction_count;
843 : ulong tick_height;
844 : ulong signature_count;
845 : ulong capitalization;
846 : ulong max_tick_height;
847 : ulong hashes_per_tick_offset;
848 : ulong ticks_per_slot;
849 : uint128 ns_per_slot;
850 : ulong genesis_creation_time;
851 : double slots_per_year;
852 : ulong accounts_data_len;
853 : ulong slot;
854 : ulong epoch;
855 : ulong block_height;
856 : fd_pubkey_t collector_id;
857 : ulong collector_fees;
858 : fd_fee_calculator_t fee_calculator;
859 : fd_fee_rate_governor_t fee_rate_governor;
860 : ulong collected_rent;
861 : fd_rent_collector_t rent_collector;
862 : fd_epoch_schedule_t epoch_schedule;
863 : fd_inflation_t inflation;
864 : fd_stakes_global_t stakes;
865 : fd_unused_accounts_global_t unused_accounts;
866 : ulong epoch_stakes_len;
867 : ulong epoch_stakes_offset;
868 : uchar is_delta;
869 : };
870 : typedef struct fd_versioned_bank_global fd_versioned_bank_global_t;
871 : #define FD_VERSIONED_BANK_GLOBAL_ALIGN alignof(fd_versioned_bank_global_t)
872 :
873 0 : FD_FN_UNUSED static fd_slot_pair_t * fd_versioned_bank_ancestors_join( fd_versioned_bank_global_t const * struct_mem ) { // vector
874 0 : return struct_mem->ancestors_offset ? (fd_slot_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->ancestors_offset ) : NULL;
875 0 : }
876 0 : FD_FN_UNUSED static void fd_versioned_bank_ancestors_update( fd_versioned_bank_global_t * struct_mem, fd_slot_pair_t * vec ) {
877 0 : struct_mem->ancestors_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
878 0 : }
879 0 : FD_FN_UNUSED static ulong * fd_versioned_bank_hashes_per_tick_join( fd_versioned_bank_global_t const * struct_mem ) {
880 0 : return struct_mem->hashes_per_tick_offset ? (ulong *)fd_type_pun( (uchar *)struct_mem + struct_mem->hashes_per_tick_offset ) : NULL;
881 0 : }
882 0 : FD_FN_UNUSED static fd_epoch_epoch_stakes_pair_global_t * fd_versioned_bank_epoch_stakes_join( fd_versioned_bank_global_t const * struct_mem ) { // vector
883 0 : return struct_mem->epoch_stakes_offset ? (fd_epoch_epoch_stakes_pair_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->epoch_stakes_offset ) : NULL;
884 0 : }
885 0 : FD_FN_UNUSED static void fd_versioned_bank_epoch_stakes_update( fd_versioned_bank_global_t * struct_mem, fd_epoch_epoch_stakes_pair_global_t * vec ) {
886 0 : struct_mem->epoch_stakes_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
887 0 : }
888 : /* Encoded Size: Fixed (40 bytes) */
889 : struct fd_bank_hash_stats {
890 : ulong num_updated_accounts;
891 : ulong num_removed_accounts;
892 : ulong num_lamports_stored;
893 : ulong total_data_len;
894 : ulong num_executable_accounts;
895 : };
896 : typedef struct fd_bank_hash_stats fd_bank_hash_stats_t;
897 : #define FD_BANK_HASH_STATS_ALIGN alignof(fd_bank_hash_stats_t)
898 :
899 : /* Encoded Size: Fixed (104 bytes) */
900 : struct fd_bank_hash_info {
901 : fd_hash_t accounts_delta_hash;
902 : fd_hash_t accounts_hash;
903 : fd_bank_hash_stats_t stats;
904 : };
905 : typedef struct fd_bank_hash_info fd_bank_hash_info_t;
906 : #define FD_BANK_HASH_INFO_ALIGN alignof(fd_bank_hash_info_t)
907 :
908 : /* Encoded Size: Fixed (40 bytes) */
909 : struct fd_slot_map_pair {
910 : ulong slot;
911 : fd_hash_t hash;
912 : };
913 : typedef struct fd_slot_map_pair fd_slot_map_pair_t;
914 0 : #define FD_SLOT_MAP_PAIR_ALIGN alignof(fd_slot_map_pair_t)
915 :
916 : /* Encoded Size: Fixed (16 bytes) */
917 : struct fd_snapshot_acc_vec {
918 : ulong id;
919 : ulong file_sz;
920 : };
921 : typedef struct fd_snapshot_acc_vec fd_snapshot_acc_vec_t;
922 0 : #define FD_SNAPSHOT_ACC_VEC_ALIGN alignof(fd_snapshot_acc_vec_t)
923 :
924 : /* Encoded Size: Dynamic */
925 : struct fd_snapshot_slot_acc_vecs {
926 : ulong slot;
927 : ulong account_vecs_len;
928 : fd_snapshot_acc_vec_t * account_vecs;
929 : };
930 : typedef struct fd_snapshot_slot_acc_vecs fd_snapshot_slot_acc_vecs_t;
931 0 : #define FD_SNAPSHOT_SLOT_ACC_VECS_ALIGN alignof(fd_snapshot_slot_acc_vecs_t)
932 :
933 : struct fd_snapshot_slot_acc_vecs_global {
934 : ulong slot;
935 : ulong account_vecs_len;
936 : ulong account_vecs_offset;
937 : };
938 : typedef struct fd_snapshot_slot_acc_vecs_global fd_snapshot_slot_acc_vecs_global_t;
939 : #define FD_SNAPSHOT_SLOT_ACC_VECS_GLOBAL_ALIGN alignof(fd_snapshot_slot_acc_vecs_global_t)
940 :
941 0 : FD_FN_UNUSED static fd_snapshot_acc_vec_t * fd_snapshot_slot_acc_vecs_account_vecs_join( fd_snapshot_slot_acc_vecs_global_t const * struct_mem ) { // vector
942 0 : return struct_mem->account_vecs_offset ? (fd_snapshot_acc_vec_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->account_vecs_offset ) : NULL;
943 0 : }
944 0 : FD_FN_UNUSED static void fd_snapshot_slot_acc_vecs_account_vecs_update( fd_snapshot_slot_acc_vecs_global_t * struct_mem, fd_snapshot_acc_vec_t * vec ) {
945 0 : struct_mem->account_vecs_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
946 0 : }
947 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/sdk/src/reward_type.rs#L7 */
948 : struct fd_reward_type {
949 : uint discriminant;
950 : };
951 : typedef struct fd_reward_type fd_reward_type_t;
952 : #define FD_REWARD_TYPE_ALIGN alignof(fd_reward_type_t)
953 :
954 : /* Accounts DB related fields in a snapshot */
955 : /* Encoded Size: Dynamic */
956 : struct fd_solana_accounts_db_fields {
957 : ulong storages_len;
958 : fd_snapshot_slot_acc_vecs_t * storages;
959 : ulong version;
960 : ulong slot;
961 : fd_bank_hash_info_t bank_hash_info;
962 : ulong historical_roots_len;
963 : ulong* historical_roots;
964 : ulong historical_roots_with_hash_len;
965 : fd_slot_map_pair_t * historical_roots_with_hash;
966 : };
967 : typedef struct fd_solana_accounts_db_fields fd_solana_accounts_db_fields_t;
968 : #define FD_SOLANA_ACCOUNTS_DB_FIELDS_ALIGN alignof(fd_solana_accounts_db_fields_t)
969 :
970 : struct fd_solana_accounts_db_fields_global {
971 : ulong storages_len;
972 : ulong storages_offset;
973 : ulong version;
974 : ulong slot;
975 : fd_bank_hash_info_t bank_hash_info;
976 : ulong historical_roots_len;
977 : ulong historical_roots_offset;
978 : ulong historical_roots_with_hash_len;
979 : ulong historical_roots_with_hash_offset;
980 : };
981 : typedef struct fd_solana_accounts_db_fields_global fd_solana_accounts_db_fields_global_t;
982 : #define FD_SOLANA_ACCOUNTS_DB_FIELDS_GLOBAL_ALIGN alignof(fd_solana_accounts_db_fields_global_t)
983 :
984 0 : FD_FN_UNUSED static fd_snapshot_slot_acc_vecs_global_t * fd_solana_accounts_db_fields_storages_join( fd_solana_accounts_db_fields_global_t const * struct_mem ) { // vector
985 0 : return struct_mem->storages_offset ? (fd_snapshot_slot_acc_vecs_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->storages_offset ) : NULL;
986 0 : }
987 0 : FD_FN_UNUSED static void fd_solana_accounts_db_fields_storages_update( fd_solana_accounts_db_fields_global_t * struct_mem, fd_snapshot_slot_acc_vecs_global_t * vec ) {
988 0 : struct_mem->storages_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
989 0 : }
990 0 : FD_FN_UNUSED static ulong * fd_solana_accounts_db_fields_historical_roots_join( fd_solana_accounts_db_fields_global_t const * struct_mem ) { // vector
991 0 : return struct_mem->historical_roots_offset ? (ulong *)fd_type_pun( (uchar *)struct_mem + struct_mem->historical_roots_offset ) : NULL;
992 0 : }
993 0 : FD_FN_UNUSED static void fd_solana_accounts_db_fields_historical_roots_update( fd_solana_accounts_db_fields_global_t * struct_mem, ulong * vec ) {
994 0 : struct_mem->historical_roots_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
995 0 : }
996 0 : FD_FN_UNUSED static fd_slot_map_pair_t * fd_solana_accounts_db_fields_historical_roots_with_hash_join( fd_solana_accounts_db_fields_global_t const * struct_mem ) { // vector
997 0 : return struct_mem->historical_roots_with_hash_offset ? (fd_slot_map_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->historical_roots_with_hash_offset ) : NULL;
998 0 : }
999 0 : FD_FN_UNUSED static void fd_solana_accounts_db_fields_historical_roots_with_hash_update( fd_solana_accounts_db_fields_global_t * struct_mem, fd_slot_map_pair_t * vec ) {
1000 0 : struct_mem->historical_roots_with_hash_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
1001 0 : }
1002 : /* https://github.com/anza-xyz/agave/blob/436f7333a8465739df65c2534654102896e09eb5/runtime/src/epoch_stakes.rs#L25 */
1003 : /* Encoded Size: Dynamic */
1004 : struct fd_versioned_epoch_stakes_current {
1005 : fd_stakes_stake_t stakes;
1006 : ulong total_stake;
1007 : fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node_id_to_vote_accounts_pool;
1008 : fd_pubkey_node_vote_accounts_pair_t_mapnode_t * node_id_to_vote_accounts_root;
1009 : fd_pubkey_pubkey_pair_t_mapnode_t * epoch_authorized_voters_pool;
1010 : fd_pubkey_pubkey_pair_t_mapnode_t * epoch_authorized_voters_root;
1011 : };
1012 : typedef struct fd_versioned_epoch_stakes_current fd_versioned_epoch_stakes_current_t;
1013 : #define FD_VERSIONED_EPOCH_STAKES_CURRENT_ALIGN alignof(fd_versioned_epoch_stakes_current_t)
1014 :
1015 : struct fd_versioned_epoch_stakes_current_global {
1016 : fd_stakes_stake_global_t stakes;
1017 : ulong total_stake;
1018 : ulong node_id_to_vote_accounts_pool_offset;
1019 : ulong node_id_to_vote_accounts_root_offset;
1020 : ulong epoch_authorized_voters_pool_offset;
1021 : ulong epoch_authorized_voters_root_offset;
1022 : };
1023 : typedef struct fd_versioned_epoch_stakes_current_global fd_versioned_epoch_stakes_current_global_t;
1024 : #define FD_VERSIONED_EPOCH_STAKES_CURRENT_GLOBAL_ALIGN alignof(fd_versioned_epoch_stakes_current_global_t)
1025 :
1026 0 : static FD_FN_UNUSED fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * fd_versioned_epoch_stakes_current_node_id_to_vote_accounts_pool_join( fd_versioned_epoch_stakes_current_global_t const * type ) {
1027 0 : if( FD_UNLIKELY( !type ) ) return NULL;
1028 0 : return !!type->node_id_to_vote_accounts_pool_offset ? (fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *)fd_pubkey_node_vote_accounts_pair_global_t_map_join( fd_type_pun( (uchar *)type + type->node_id_to_vote_accounts_pool_offset ) ) : NULL;
1029 0 : }
1030 0 : static FD_FN_UNUSED fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * fd_versioned_epoch_stakes_current_node_id_to_vote_accounts_root_join( fd_versioned_epoch_stakes_current_global_t const * type ) {
1031 0 : if( FD_UNLIKELY( !type ) ) return NULL;
1032 0 : return !!type->node_id_to_vote_accounts_root_offset ? (fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t *)fd_type_pun( (uchar *)type + type->node_id_to_vote_accounts_root_offset ) : NULL;
1033 0 : }
1034 0 : static FD_FN_UNUSED void fd_versioned_epoch_stakes_current_node_id_to_vote_accounts_pool_update( fd_versioned_epoch_stakes_current_global_t * type, fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * pool ) {
1035 0 : type->node_id_to_vote_accounts_pool_offset = !!pool ? (ulong)fd_pubkey_node_vote_accounts_pair_global_t_map_leave( pool ) - (ulong)type : 0UL;
1036 0 : }
1037 0 : static FD_FN_UNUSED void fd_versioned_epoch_stakes_current_node_id_to_vote_accounts_root_update( fd_versioned_epoch_stakes_current_global_t * type, fd_pubkey_node_vote_accounts_pair_global_t_mapnode_t * root ) {
1038 0 : type->node_id_to_vote_accounts_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
1039 0 : }
1040 0 : static FD_FN_UNUSED fd_pubkey_pubkey_pair_t_mapnode_t * fd_versioned_epoch_stakes_current_epoch_authorized_voters_pool_join( fd_versioned_epoch_stakes_current_global_t const * type ) {
1041 0 : if( FD_UNLIKELY( !type ) ) return NULL;
1042 0 : return !!type->epoch_authorized_voters_pool_offset ? (fd_pubkey_pubkey_pair_t_mapnode_t *)fd_pubkey_pubkey_pair_t_map_join( fd_type_pun( (uchar *)type + type->epoch_authorized_voters_pool_offset ) ) : NULL;
1043 0 : }
1044 0 : static FD_FN_UNUSED fd_pubkey_pubkey_pair_t_mapnode_t * fd_versioned_epoch_stakes_current_epoch_authorized_voters_root_join( fd_versioned_epoch_stakes_current_global_t const * type ) {
1045 0 : if( FD_UNLIKELY( !type ) ) return NULL;
1046 0 : return !!type->epoch_authorized_voters_root_offset ? (fd_pubkey_pubkey_pair_t_mapnode_t *)fd_type_pun( (uchar *)type + type->epoch_authorized_voters_root_offset ) : NULL;
1047 0 : }
1048 0 : static FD_FN_UNUSED void fd_versioned_epoch_stakes_current_epoch_authorized_voters_pool_update( fd_versioned_epoch_stakes_current_global_t * type, fd_pubkey_pubkey_pair_t_mapnode_t * pool ) {
1049 0 : type->epoch_authorized_voters_pool_offset = !!pool ? (ulong)fd_pubkey_pubkey_pair_t_map_leave( pool ) - (ulong)type : 0UL;
1050 0 : }
1051 0 : static FD_FN_UNUSED void fd_versioned_epoch_stakes_current_epoch_authorized_voters_root_update( fd_versioned_epoch_stakes_current_global_t * type, fd_pubkey_pubkey_pair_t_mapnode_t * root ) {
1052 0 : type->epoch_authorized_voters_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
1053 0 : }
1054 : union fd_versioned_epoch_stakes_inner {
1055 : fd_versioned_epoch_stakes_current_t Current;
1056 : };
1057 : typedef union fd_versioned_epoch_stakes_inner fd_versioned_epoch_stakes_inner_t;
1058 :
1059 : union fd_versioned_epoch_stakes_inner_global {
1060 : fd_versioned_epoch_stakes_current_global_t Current;
1061 : };
1062 : typedef union fd_versioned_epoch_stakes_inner_global fd_versioned_epoch_stakes_inner_global_t;
1063 :
1064 : /* https://github.com/anza-xyz/agave/blob/436f7333a8465739df65c2534654102896e09eb5/runtime/src/epoch_stakes.rs#L24 */
1065 : struct fd_versioned_epoch_stakes {
1066 : uint discriminant;
1067 : fd_versioned_epoch_stakes_inner_t inner;
1068 : };
1069 : typedef struct fd_versioned_epoch_stakes fd_versioned_epoch_stakes_t;
1070 : #define FD_VERSIONED_EPOCH_STAKES_ALIGN alignof(fd_versioned_epoch_stakes_t)
1071 : struct fd_versioned_epoch_stakes_global {
1072 : uint discriminant;
1073 : fd_versioned_epoch_stakes_inner_global_t inner;
1074 : };
1075 : typedef struct fd_versioned_epoch_stakes_global fd_versioned_epoch_stakes_global_t;
1076 : #define FD_VERSIONED_EPOCH_STAKES_GLOBAL_ALIGN alignof(fd_versioned_epoch_stakes_global_t)
1077 :
1078 : /* Encoded Size: Dynamic */
1079 : struct fd_versioned_epoch_stakes_pair {
1080 : ulong epoch;
1081 : fd_versioned_epoch_stakes_t val;
1082 : };
1083 : typedef struct fd_versioned_epoch_stakes_pair fd_versioned_epoch_stakes_pair_t;
1084 0 : #define FD_VERSIONED_EPOCH_STAKES_PAIR_ALIGN alignof(fd_versioned_epoch_stakes_pair_t)
1085 :
1086 : struct fd_versioned_epoch_stakes_pair_global {
1087 : ulong epoch;
1088 : fd_versioned_epoch_stakes_global_t val;
1089 : };
1090 : typedef struct fd_versioned_epoch_stakes_pair_global fd_versioned_epoch_stakes_pair_global_t;
1091 : #define FD_VERSIONED_EPOCH_STAKES_PAIR_GLOBAL_ALIGN alignof(fd_versioned_epoch_stakes_pair_global_t)
1092 :
1093 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/sdk/src/reward_info.rs#L5 */
1094 : /* Encoded Size: Fixed (28 bytes) */
1095 : struct fd_reward_info {
1096 : fd_reward_type_t reward_type;
1097 : ulong lamports;
1098 : ulong post_balance;
1099 : ulong commission;
1100 : };
1101 : typedef struct fd_reward_info fd_reward_info_t;
1102 : #define FD_REWARD_INFO_ALIGN alignof(fd_reward_info_t)
1103 :
1104 : /* You can cast this to a (fd_lthash_value_t *) and use it directly since the alignment is preserved */
1105 : /* Encoded Size: Fixed (2048 bytes) */
1106 : struct __attribute__((aligned(128UL))) fd_slot_lthash {
1107 : uchar lthash[2048];
1108 : };
1109 : typedef struct fd_slot_lthash fd_slot_lthash_t;
1110 0 : #define FD_SLOT_LTHASH_ALIGN (128UL)
1111 :
1112 : /* Encoded Size: Dynamic */
1113 : struct fd_solana_manifest {
1114 : fd_versioned_bank_t bank;
1115 : fd_solana_accounts_db_fields_t accounts_db;
1116 : ulong lamports_per_signature;
1117 : fd_bank_incremental_snapshot_persistence_t * bank_incremental_snapshot_persistence;
1118 : fd_hash_t * epoch_account_hash;
1119 : ulong versioned_epoch_stakes_len;
1120 : fd_versioned_epoch_stakes_pair_t * versioned_epoch_stakes;
1121 : fd_slot_lthash_t * lthash;
1122 : };
1123 : typedef struct fd_solana_manifest fd_solana_manifest_t;
1124 0 : #define FD_SOLANA_MANIFEST_ALIGN alignof(fd_solana_manifest_t)
1125 :
1126 : struct fd_solana_manifest_global {
1127 : fd_versioned_bank_global_t bank;
1128 : fd_solana_accounts_db_fields_global_t accounts_db;
1129 : ulong lamports_per_signature;
1130 : ulong bank_incremental_snapshot_persistence_offset;
1131 : ulong epoch_account_hash_offset;
1132 : ulong versioned_epoch_stakes_len;
1133 : ulong versioned_epoch_stakes_offset;
1134 : ulong lthash_offset;
1135 : };
1136 : typedef struct fd_solana_manifest_global fd_solana_manifest_global_t;
1137 : #define FD_SOLANA_MANIFEST_GLOBAL_ALIGN alignof(fd_solana_manifest_global_t)
1138 :
1139 0 : FD_FN_UNUSED static fd_bank_incremental_snapshot_persistence_t * fd_solana_manifest_bank_incremental_snapshot_persistence_join( fd_solana_manifest_global_t const * struct_mem ) {
1140 0 : return struct_mem->bank_incremental_snapshot_persistence_offset ? (fd_bank_incremental_snapshot_persistence_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->bank_incremental_snapshot_persistence_offset ) : NULL;
1141 0 : }
1142 0 : FD_FN_UNUSED static fd_hash_t * fd_solana_manifest_epoch_account_hash_join( fd_solana_manifest_global_t const * struct_mem ) {
1143 0 : return struct_mem->epoch_account_hash_offset ? (fd_hash_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->epoch_account_hash_offset ) : NULL;
1144 0 : }
1145 0 : FD_FN_UNUSED static fd_versioned_epoch_stakes_pair_global_t * fd_solana_manifest_versioned_epoch_stakes_join( fd_solana_manifest_global_t const * struct_mem ) { // vector
1146 0 : return struct_mem->versioned_epoch_stakes_offset ? (fd_versioned_epoch_stakes_pair_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->versioned_epoch_stakes_offset ) : NULL;
1147 0 : }
1148 0 : FD_FN_UNUSED static void fd_solana_manifest_versioned_epoch_stakes_update( fd_solana_manifest_global_t * struct_mem, fd_versioned_epoch_stakes_pair_global_t * vec ) {
1149 0 : struct_mem->versioned_epoch_stakes_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
1150 0 : }
1151 0 : FD_FN_UNUSED static fd_slot_lthash_t * fd_solana_manifest_lthash_join( fd_solana_manifest_global_t const * struct_mem ) {
1152 0 : return struct_mem->lthash_offset ? (fd_slot_lthash_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->lthash_offset ) : NULL;
1153 0 : }
1154 : /* Encoded Size: Fixed (12 bytes) */
1155 : struct fd_rust_duration {
1156 : ulong seconds;
1157 : uint nanoseconds;
1158 : };
1159 : typedef struct fd_rust_duration fd_rust_duration_t;
1160 : #define FD_RUST_DURATION_ALIGN alignof(fd_rust_duration_t)
1161 :
1162 : /* Encoded Size: Dynamic */
1163 : struct fd_poh_config {
1164 : fd_rust_duration_t target_tick_duration;
1165 : ulong* target_tick_count;
1166 : ulong hashes_per_tick;
1167 : uchar has_hashes_per_tick;
1168 : };
1169 : typedef struct fd_poh_config fd_poh_config_t;
1170 : #define FD_POH_CONFIG_ALIGN alignof(fd_poh_config_t)
1171 :
1172 : /* Encoded Size: Dynamic */
1173 : struct fd_string_pubkey_pair {
1174 : ulong string_len;
1175 : uchar* string;
1176 : fd_pubkey_t pubkey;
1177 : };
1178 : typedef struct fd_string_pubkey_pair fd_string_pubkey_pair_t;
1179 0 : #define FD_STRING_PUBKEY_PAIR_ALIGN alignof(fd_string_pubkey_pair_t)
1180 :
1181 : /* Encoded Size: Dynamic */
1182 : struct fd_pubkey_account_pair {
1183 : fd_pubkey_t key;
1184 : fd_solana_account_t account;
1185 : };
1186 : typedef struct fd_pubkey_account_pair fd_pubkey_account_pair_t;
1187 0 : #define FD_PUBKEY_ACCOUNT_PAIR_ALIGN alignof(fd_pubkey_account_pair_t)
1188 :
1189 : /* Encoded Size: Dynamic */
1190 : struct fd_genesis_solana {
1191 : ulong creation_time;
1192 : ulong accounts_len;
1193 : fd_pubkey_account_pair_t * accounts;
1194 : ulong native_instruction_processors_len;
1195 : fd_string_pubkey_pair_t * native_instruction_processors;
1196 : ulong rewards_pools_len;
1197 : fd_pubkey_account_pair_t * rewards_pools;
1198 : ulong ticks_per_slot;
1199 : ulong unused;
1200 : fd_poh_config_t poh_config;
1201 : ulong __backwards_compat_with_v0_23;
1202 : fd_fee_rate_governor_t fee_rate_governor;
1203 : fd_rent_t rent;
1204 : fd_inflation_t inflation;
1205 : fd_epoch_schedule_t epoch_schedule;
1206 : uint cluster_type;
1207 : };
1208 : typedef struct fd_genesis_solana fd_genesis_solana_t;
1209 0 : #define FD_GENESIS_SOLANA_ALIGN alignof(fd_genesis_solana_t)
1210 :
1211 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/clock.rs#L114 */
1212 : /* Encoded Size: Fixed (40 bytes) */
1213 : struct fd_sol_sysvar_clock {
1214 : ulong slot;
1215 : long epoch_start_timestamp;
1216 : ulong epoch;
1217 : ulong leader_schedule_epoch;
1218 : long unix_timestamp;
1219 : };
1220 : typedef struct fd_sol_sysvar_clock fd_sol_sysvar_clock_t;
1221 3 : #define FD_SOL_SYSVAR_CLOCK_ALIGN alignof(fd_sol_sysvar_clock_t)
1222 :
1223 : /* https://github.com/solana-labs/solana/blob/30531d7a5b74f914dde53bfbb0bc2144f2ac92bb/sdk/program/src/last_restart_slot.rs#L7 */
1224 : /* Encoded Size: Fixed (8 bytes) */
1225 : struct fd_sol_sysvar_last_restart_slot {
1226 : ulong slot;
1227 : };
1228 : typedef struct fd_sol_sysvar_last_restart_slot fd_sol_sysvar_last_restart_slot_t;
1229 3 : #define FD_SOL_SYSVAR_LAST_RESTART_SLOT_ALIGN alignof(fd_sol_sysvar_last_restart_slot_t)
1230 :
1231 : /* Encoded Size: Fixed (12 bytes) */
1232 : struct fd_vote_lockout {
1233 : ulong slot;
1234 : uint confirmation_count;
1235 : };
1236 : typedef struct fd_vote_lockout fd_vote_lockout_t;
1237 : #define FD_VOTE_LOCKOUT_ALIGN alignof(fd_vote_lockout_t)
1238 :
1239 : /* Encoded Size: Dynamic */
1240 : struct fd_lockout_offset {
1241 : ulong offset;
1242 : uchar confirmation_count;
1243 : };
1244 : typedef struct fd_lockout_offset fd_lockout_offset_t;
1245 0 : #define FD_LOCKOUT_OFFSET_ALIGN alignof(fd_lockout_offset_t)
1246 :
1247 : /* https://github.com/firedancer-io/solana/blob/da470eef4652b3b22598a1f379cacfe82bd5928d/sdk/program/src/vote/authorized_voters.rs#L9 */
1248 : /* Encoded Size: Fixed (40 bytes) */
1249 : struct fd_vote_authorized_voter {
1250 : ulong epoch;
1251 : fd_pubkey_t pubkey;
1252 : ulong parent;
1253 : ulong left;
1254 : ulong right;
1255 : ulong prio;
1256 : };
1257 : typedef struct fd_vote_authorized_voter fd_vote_authorized_voter_t;
1258 : #define FD_VOTE_AUTHORIZED_VOTER_ALIGN alignof(fd_vote_authorized_voter_t)
1259 :
1260 : /* Encoded Size: Fixed (48 bytes) */
1261 : struct fd_vote_prior_voter {
1262 : fd_pubkey_t pubkey;
1263 : ulong epoch_start;
1264 : ulong epoch_end;
1265 : };
1266 : typedef struct fd_vote_prior_voter fd_vote_prior_voter_t;
1267 : #define FD_VOTE_PRIOR_VOTER_ALIGN alignof(fd_vote_prior_voter_t)
1268 :
1269 : /* Encoded Size: Fixed (56 bytes) */
1270 : struct fd_vote_prior_voter_0_23_5 {
1271 : fd_pubkey_t pubkey;
1272 : ulong epoch_start;
1273 : ulong epoch_end;
1274 : ulong slot;
1275 : };
1276 : typedef struct fd_vote_prior_voter_0_23_5 fd_vote_prior_voter_0_23_5_t;
1277 : #define FD_VOTE_PRIOR_VOTER_0_23_5_ALIGN alignof(fd_vote_prior_voter_0_23_5_t)
1278 :
1279 : /* Encoded Size: Fixed (24 bytes) */
1280 : struct fd_vote_epoch_credits {
1281 : ulong epoch;
1282 : ulong credits;
1283 : ulong prev_credits;
1284 : };
1285 : typedef struct fd_vote_epoch_credits fd_vote_epoch_credits_t;
1286 : #define FD_VOTE_EPOCH_CREDITS_ALIGN alignof(fd_vote_epoch_credits_t)
1287 :
1288 : /* Encoded Size: Fixed (16 bytes) */
1289 : struct fd_vote_block_timestamp {
1290 : ulong slot;
1291 : long timestamp;
1292 : };
1293 : typedef struct fd_vote_block_timestamp fd_vote_block_timestamp_t;
1294 : #define FD_VOTE_BLOCK_TIMESTAMP_ALIGN alignof(fd_vote_block_timestamp_t)
1295 :
1296 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
1297 : /* Encoded Size: Fixed (1545 bytes) */
1298 : struct fd_vote_prior_voters {
1299 : fd_vote_prior_voter_t buf[32];
1300 : ulong idx;
1301 : uchar is_empty;
1302 : };
1303 : typedef struct fd_vote_prior_voters fd_vote_prior_voters_t;
1304 : #define FD_VOTE_PRIOR_VOTERS_ALIGN alignof(fd_vote_prior_voters_t)
1305 :
1306 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
1307 : /* Encoded Size: Fixed (1800 bytes) */
1308 : struct fd_vote_prior_voters_0_23_5 {
1309 : fd_vote_prior_voter_0_23_5_t buf[32];
1310 : ulong idx;
1311 : };
1312 : typedef struct fd_vote_prior_voters_0_23_5 fd_vote_prior_voters_0_23_5_t;
1313 : #define FD_VOTE_PRIOR_VOTERS_0_23_5_ALIGN alignof(fd_vote_prior_voters_0_23_5_t)
1314 :
1315 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
1316 : /* Encoded Size: Fixed (13 bytes) */
1317 : struct fd_landed_vote {
1318 : uchar latency;
1319 : fd_vote_lockout_t lockout;
1320 : };
1321 : typedef struct fd_landed_vote fd_landed_vote_t;
1322 : #define FD_LANDED_VOTE_ALIGN alignof(fd_landed_vote_t)
1323 :
1324 : #define DEQUE_NAME deq_fd_vote_lockout_t
1325 0 : #define DEQUE_T fd_vote_lockout_t
1326 : #include "../../util/tmpl/fd_deque_dynamic.c"
1327 : #undef DEQUE_NAME
1328 : #undef DEQUE_T
1329 : #undef DEQUE_MAX
1330 : static inline fd_vote_lockout_t *
1331 0 : deq_fd_vote_lockout_t_join_new( void * * alloc_mem, ulong max ) {
1332 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
1333 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_vote_lockout_t_align() );
1334 0 : void * deque_mem = *alloc_mem;
1335 0 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_vote_lockout_t_footprint( max );
1336 0 : return deq_fd_vote_lockout_t_join( deq_fd_vote_lockout_t_new( deque_mem, max ) );
1337 0 : }
1338 :
1339 : #define DEQUE_NAME deq_fd_vote_epoch_credits_t
1340 390 : #define DEQUE_T fd_vote_epoch_credits_t
1341 : #include "../../util/tmpl/fd_deque_dynamic.c"
1342 : #undef DEQUE_NAME
1343 : #undef DEQUE_T
1344 : #undef DEQUE_MAX
1345 : static inline fd_vote_epoch_credits_t *
1346 12 : deq_fd_vote_epoch_credits_t_join_new( void * * alloc_mem, ulong max ) {
1347 12 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
1348 12 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_vote_epoch_credits_t_align() );
1349 12 : void * deque_mem = *alloc_mem;
1350 12 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_vote_epoch_credits_t_footprint( max );
1351 12 : return deq_fd_vote_epoch_credits_t_join( deq_fd_vote_epoch_credits_t_new( deque_mem, max ) );
1352 12 : }
1353 :
1354 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/vote_state_0_23_5.rs#L6 */
1355 : /* Encoded Size: Dynamic */
1356 : struct fd_vote_state_0_23_5 {
1357 : fd_pubkey_t node_pubkey;
1358 : fd_pubkey_t authorized_voter;
1359 : ulong authorized_voter_epoch;
1360 : fd_vote_prior_voters_0_23_5_t prior_voters;
1361 : fd_pubkey_t authorized_withdrawer;
1362 : uchar commission;
1363 : fd_vote_lockout_t * votes; /* fd_deque_dynamic (min cnt 32) */
1364 : ulong root_slot;
1365 : uchar has_root_slot;
1366 : fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
1367 : fd_vote_block_timestamp_t last_timestamp;
1368 : };
1369 : typedef struct fd_vote_state_0_23_5 fd_vote_state_0_23_5_t;
1370 : #define FD_VOTE_STATE_0_23_5_ALIGN alignof(fd_vote_state_0_23_5_t)
1371 :
1372 24 : #define FD_VOTE_AUTHORIZED_VOTERS_MIN 64
1373 : #define POOL_NAME fd_vote_authorized_voters_pool
1374 48 : #define POOL_T fd_vote_authorized_voter_t
1375 804 : #define POOL_NEXT parent
1376 : #include "../../util/tmpl/fd_pool.c"
1377 : static inline fd_vote_authorized_voter_t *
1378 12 : fd_vote_authorized_voters_pool_join_new( void * * alloc_mem, ulong num ) {
1379 12 : if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
1380 12 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_authorized_voters_pool_align() );
1381 12 : void * pool_mem = *alloc_mem;
1382 12 : *alloc_mem = (uchar *)*alloc_mem + fd_vote_authorized_voters_pool_footprint( num );
1383 12 : return fd_vote_authorized_voters_pool_join( fd_vote_authorized_voters_pool_new( pool_mem, num ) );
1384 12 : }
1385 : #define TREAP_NAME fd_vote_authorized_voters_treap
1386 : #define TREAP_T fd_vote_authorized_voter_t
1387 : #define TREAP_QUERY_T ulong
1388 0 : #define TREAP_CMP(q,e) ( (q == (e)->epoch) ? 0 : ( (q < (e)->epoch) ? -1 : 1 ) )
1389 0 : #define TREAP_LT(e0,e1) ((e0)->epoch<(e1)->epoch)
1390 : #include "../../util/tmpl/fd_treap.c"
1391 : static inline fd_vote_authorized_voters_treap_t *
1392 12 : fd_vote_authorized_voters_treap_join_new( void * * alloc_mem, ulong num ) {
1393 12 : if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
1394 12 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_authorized_voters_treap_align() );
1395 12 : void * treap_mem = *alloc_mem;
1396 12 : *alloc_mem = (uchar *)*alloc_mem + fd_vote_authorized_voters_treap_footprint( num );
1397 12 : return fd_vote_authorized_voters_treap_join( fd_vote_authorized_voters_treap_new( treap_mem, num ) );
1398 12 : }
1399 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
1400 : /* Encoded Size: Dynamic */
1401 : struct fd_vote_authorized_voters {
1402 : fd_vote_authorized_voter_t * pool;
1403 : fd_vote_authorized_voters_treap_t * treap;
1404 : };
1405 : typedef struct fd_vote_authorized_voters fd_vote_authorized_voters_t;
1406 : #define FD_VOTE_AUTHORIZED_VOTERS_ALIGN alignof(fd_vote_authorized_voters_t)
1407 :
1408 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
1409 : /* Encoded Size: Dynamic */
1410 : struct fd_vote_state_1_14_11 {
1411 : fd_pubkey_t node_pubkey;
1412 : fd_pubkey_t authorized_withdrawer;
1413 : uchar commission;
1414 : fd_vote_lockout_t * votes; /* fd_deque_dynamic (min cnt 32) */
1415 : ulong root_slot;
1416 : uchar has_root_slot;
1417 : fd_vote_authorized_voters_t authorized_voters;
1418 : fd_vote_prior_voters_t prior_voters;
1419 : fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
1420 : fd_vote_block_timestamp_t last_timestamp;
1421 : };
1422 : typedef struct fd_vote_state_1_14_11 fd_vote_state_1_14_11_t;
1423 : #define FD_VOTE_STATE_1_14_11_ALIGN alignof(fd_vote_state_1_14_11_t)
1424 :
1425 : #define DEQUE_NAME deq_fd_landed_vote_t
1426 192 : #define DEQUE_T fd_landed_vote_t
1427 : #include "../../util/tmpl/fd_deque_dynamic.c"
1428 : #undef DEQUE_NAME
1429 : #undef DEQUE_T
1430 : #undef DEQUE_MAX
1431 : static inline fd_landed_vote_t *
1432 12 : deq_fd_landed_vote_t_join_new( void * * alloc_mem, ulong max ) {
1433 12 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
1434 12 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_landed_vote_t_align() );
1435 12 : void * deque_mem = *alloc_mem;
1436 12 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_landed_vote_t_footprint( max );
1437 12 : return deq_fd_landed_vote_t_join( deq_fd_landed_vote_t_new( deque_mem, max ) );
1438 12 : }
1439 :
1440 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
1441 : /* Encoded Size: Dynamic */
1442 : struct fd_vote_state {
1443 : fd_pubkey_t node_pubkey;
1444 : fd_pubkey_t authorized_withdrawer;
1445 : uchar commission;
1446 : fd_landed_vote_t * votes; /* fd_deque_dynamic (min cnt 32) */
1447 : ulong root_slot;
1448 : uchar has_root_slot;
1449 : fd_vote_authorized_voters_t authorized_voters;
1450 : fd_vote_prior_voters_t prior_voters;
1451 : fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
1452 : fd_vote_block_timestamp_t last_timestamp;
1453 : };
1454 : typedef struct fd_vote_state fd_vote_state_t;
1455 : #define FD_VOTE_STATE_ALIGN alignof(fd_vote_state_t)
1456 :
1457 : union fd_vote_state_versioned_inner {
1458 : fd_vote_state_0_23_5_t v0_23_5;
1459 : fd_vote_state_1_14_11_t v1_14_11;
1460 : fd_vote_state_t current;
1461 : };
1462 : typedef union fd_vote_state_versioned_inner fd_vote_state_versioned_inner_t;
1463 :
1464 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/vote_state_versions.rs#L4 */
1465 : struct fd_vote_state_versioned {
1466 : uint discriminant;
1467 : fd_vote_state_versioned_inner_t inner;
1468 : };
1469 : typedef struct fd_vote_state_versioned fd_vote_state_versioned_t;
1470 30 : #define FD_VOTE_STATE_VERSIONED_ALIGN alignof(fd_vote_state_versioned_t)
1471 :
1472 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L185 */
1473 : /* Encoded Size: Dynamic */
1474 : struct fd_vote_state_update {
1475 : fd_vote_lockout_t * lockouts; /* fd_deque_dynamic (min cnt 32) */
1476 : ulong root;
1477 : uchar has_root;
1478 : fd_hash_t hash;
1479 : long timestamp;
1480 : uchar has_timestamp;
1481 : };
1482 : typedef struct fd_vote_state_update fd_vote_state_update_t;
1483 : #define FD_VOTE_STATE_UPDATE_ALIGN alignof(fd_vote_state_update_t)
1484 :
1485 : /* Encoded Size: Dynamic */
1486 : struct fd_compact_vote_state_update {
1487 : ulong root;
1488 : ushort lockouts_len;
1489 : fd_lockout_offset_t * lockouts;
1490 : fd_hash_t hash;
1491 : long timestamp;
1492 : uchar has_timestamp;
1493 : };
1494 : typedef struct fd_compact_vote_state_update fd_compact_vote_state_update_t;
1495 : #define FD_COMPACT_VOTE_STATE_UPDATE_ALIGN alignof(fd_compact_vote_state_update_t)
1496 :
1497 : /* https://github.com/solana-labs/solana/blob/252438e28fbfb2c695fe1215171b83456e4b761c/programs/vote/src/vote_instruction.rs#L143 */
1498 : /* Encoded Size: Dynamic */
1499 : struct fd_compact_vote_state_update_switch {
1500 : fd_compact_vote_state_update_t compact_vote_state_update;
1501 : fd_hash_t hash;
1502 : };
1503 : typedef struct fd_compact_vote_state_update_switch fd_compact_vote_state_update_switch_t;
1504 : #define FD_COMPACT_VOTE_STATE_UPDATE_SWITCH_ALIGN alignof(fd_compact_vote_state_update_switch_t)
1505 :
1506 : #define DEQUE_NAME deq_fd_lockout_offset_t
1507 0 : #define DEQUE_T fd_lockout_offset_t
1508 : #include "../../util/tmpl/fd_deque_dynamic.c"
1509 : #undef DEQUE_NAME
1510 : #undef DEQUE_T
1511 : #undef DEQUE_MAX
1512 : static inline fd_lockout_offset_t *
1513 0 : deq_fd_lockout_offset_t_join_new( void * * alloc_mem, ulong max ) {
1514 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
1515 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_lockout_offset_t_align() );
1516 0 : void * deque_mem = *alloc_mem;
1517 0 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_lockout_offset_t_footprint( max );
1518 0 : return deq_fd_lockout_offset_t_join( deq_fd_lockout_offset_t_new( deque_mem, max ) );
1519 0 : }
1520 :
1521 : /* https://github.com/anza-xyz/agave/blob/20ee70cd1829cd414d09040460defecf9792a370/sdk/program/src/vote/state/mod.rs#L990 */
1522 : /* Encoded Size: Dynamic */
1523 : struct fd_compact_tower_sync {
1524 : ulong root;
1525 : fd_lockout_offset_t * lockout_offsets; /* fd_deque_dynamic (min cnt 32) */
1526 : fd_hash_t hash;
1527 : long timestamp;
1528 : uchar has_timestamp;
1529 : fd_hash_t block_id;
1530 : };
1531 : typedef struct fd_compact_tower_sync fd_compact_tower_sync_t;
1532 : #define FD_COMPACT_TOWER_SYNC_ALIGN alignof(fd_compact_tower_sync_t)
1533 :
1534 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L185 */
1535 : /* Encoded Size: Dynamic */
1536 : struct fd_tower_sync {
1537 : fd_vote_lockout_t * lockouts; /* fd_deque_dynamic */
1538 : ulong lockouts_cnt;
1539 : ulong root;
1540 : uchar has_root;
1541 : fd_hash_t hash;
1542 : long timestamp;
1543 : uchar has_timestamp;
1544 : fd_hash_t block_id;
1545 : };
1546 : typedef struct fd_tower_sync fd_tower_sync_t;
1547 : #define FD_TOWER_SYNC_ALIGN alignof(fd_tower_sync_t)
1548 :
1549 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L104 */
1550 : /* Encoded Size: Dynamic */
1551 : struct fd_tower_sync_switch {
1552 : fd_tower_sync_t tower_sync;
1553 : fd_hash_t hash;
1554 : };
1555 : typedef struct fd_tower_sync_switch fd_tower_sync_switch_t;
1556 : #define FD_TOWER_SYNC_SWITCH_ALIGN alignof(fd_tower_sync_switch_t)
1557 :
1558 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/slot_history.rs#L11 */
1559 : /* Encoded Size: Dynamic */
1560 : struct fd_slot_history {
1561 : uchar has_bits;
1562 : ulong bits_bitvec_len;
1563 : ulong* bits_bitvec;
1564 : ulong bits_len;
1565 : ulong next_slot;
1566 : };
1567 : typedef struct fd_slot_history fd_slot_history_t;
1568 3 : #define FD_SLOT_HISTORY_ALIGN alignof(fd_slot_history_t)
1569 :
1570 : struct fd_slot_history_global {
1571 : uchar has_bits;
1572 : ulong bits_bitvec_len;
1573 : ulong bits_bitvec_offset;
1574 : ulong bits_len;
1575 : ulong next_slot;
1576 : };
1577 : typedef struct fd_slot_history_global fd_slot_history_global_t;
1578 : #define FD_SLOT_HISTORY_GLOBAL_ALIGN alignof(fd_slot_history_global_t)
1579 :
1580 : /* Encoded Size: Fixed (40 bytes) */
1581 : struct fd_slot_hash {
1582 : ulong slot;
1583 : fd_hash_t hash;
1584 : };
1585 : typedef struct fd_slot_hash fd_slot_hash_t;
1586 6 : #define FD_SLOT_HASH_ALIGN alignof(fd_slot_hash_t)
1587 :
1588 : #define DEQUE_NAME deq_fd_slot_hash_t
1589 0 : #define DEQUE_T fd_slot_hash_t
1590 : #include "../../util/tmpl/fd_deque_dynamic.c"
1591 : #undef DEQUE_NAME
1592 : #undef DEQUE_T
1593 : #undef DEQUE_MAX
1594 : static inline fd_slot_hash_t *
1595 0 : deq_fd_slot_hash_t_join_new( void * * alloc_mem, ulong max ) {
1596 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
1597 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_slot_hash_t_align() );
1598 0 : void * deque_mem = *alloc_mem;
1599 0 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_slot_hash_t_footprint( max );
1600 0 : return deq_fd_slot_hash_t_join( deq_fd_slot_hash_t_new( deque_mem, max ) );
1601 0 : }
1602 :
1603 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/slot_hashes.rs#L31 */
1604 : /* Encoded Size: Dynamic */
1605 : struct fd_slot_hashes {
1606 : fd_slot_hash_t * hashes; /* fd_deque_dynamic (min cnt 512) */
1607 : };
1608 : typedef struct fd_slot_hashes fd_slot_hashes_t;
1609 3 : #define FD_SLOT_HASHES_ALIGN alignof(fd_slot_hashes_t)
1610 :
1611 : struct fd_slot_hashes_global {
1612 : ulong hashes_offset; /* fd_deque_dynamic (min cnt 512) */
1613 : };
1614 : typedef struct fd_slot_hashes_global fd_slot_hashes_global_t;
1615 : #define FD_SLOT_HASHES_GLOBAL_ALIGN alignof(fd_slot_hashes_global_t)
1616 :
1617 0 : static FD_FN_UNUSED fd_slot_hash_t * fd_slot_hashes_hashes_join( fd_slot_hashes_global_t * type ) { // deque
1618 0 : return type->hashes_offset ? (fd_slot_hash_t *)deq_fd_slot_hash_t_join( fd_type_pun( (uchar *)type + type->hashes_offset ) ) : NULL;
1619 0 : }
1620 : /* Encoded Size: Fixed (40 bytes) */
1621 : struct fd_block_block_hash_entry {
1622 : fd_hash_t blockhash;
1623 : fd_fee_calculator_t fee_calculator;
1624 : };
1625 : typedef struct fd_block_block_hash_entry fd_block_block_hash_entry_t;
1626 : #define FD_BLOCK_BLOCK_HASH_ENTRY_ALIGN alignof(fd_block_block_hash_entry_t)
1627 :
1628 : #define DEQUE_NAME deq_fd_block_block_hash_entry_t
1629 0 : #define DEQUE_T fd_block_block_hash_entry_t
1630 : #include "../../util/tmpl/fd_deque_dynamic.c"
1631 : #undef DEQUE_NAME
1632 : #undef DEQUE_T
1633 : #undef DEQUE_MAX
1634 : static inline fd_block_block_hash_entry_t *
1635 0 : deq_fd_block_block_hash_entry_t_join_new( void * * alloc_mem, ulong max ) {
1636 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
1637 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_block_block_hash_entry_t_align() );
1638 0 : void * deque_mem = *alloc_mem;
1639 0 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_block_block_hash_entry_t_footprint( max );
1640 0 : return deq_fd_block_block_hash_entry_t_join( deq_fd_block_block_hash_entry_t_new( deque_mem, max ) );
1641 0 : }
1642 :
1643 : /* Encoded Size: Dynamic */
1644 : struct fd_recent_block_hashes {
1645 : fd_block_block_hash_entry_t * hashes; /* fd_deque_dynamic (min cnt 151) */
1646 : };
1647 : typedef struct fd_recent_block_hashes fd_recent_block_hashes_t;
1648 0 : #define FD_RECENT_BLOCK_HASHES_ALIGN alignof(fd_recent_block_hashes_t)
1649 :
1650 : struct fd_recent_block_hashes_global {
1651 : ulong hashes_offset; /* fd_deque_dynamic (min cnt 151) */
1652 : };
1653 : typedef struct fd_recent_block_hashes_global fd_recent_block_hashes_global_t;
1654 : #define FD_RECENT_BLOCK_HASHES_GLOBAL_ALIGN alignof(fd_recent_block_hashes_global_t)
1655 :
1656 0 : static FD_FN_UNUSED fd_block_block_hash_entry_t * fd_recent_block_hashes_hashes_join( fd_recent_block_hashes_global_t * type ) { // deque
1657 0 : return type->hashes_offset ? (fd_block_block_hash_entry_t *)deq_fd_block_block_hash_entry_t_join( fd_type_pun( (uchar *)type + type->hashes_offset ) ) : NULL;
1658 0 : }
1659 : /* Encoded Size: Dynamic */
1660 : struct fd_slot_meta {
1661 : ulong slot;
1662 : ulong consumed;
1663 : ulong received;
1664 : long first_shred_timestamp;
1665 : ulong last_index;
1666 : ulong parent_slot;
1667 : ulong next_slot_len;
1668 : ulong* next_slot;
1669 : uchar is_connected;
1670 : ulong entry_end_indexes_len;
1671 : uint* entry_end_indexes;
1672 : };
1673 : typedef struct fd_slot_meta fd_slot_meta_t;
1674 0 : #define FD_SLOT_META_ALIGN alignof(fd_slot_meta_t)
1675 :
1676 : /* A validator timestamp oracle vote received from a voting node */
1677 : /* Encoded Size: Fixed (48 bytes) */
1678 : struct fd_clock_timestamp_vote {
1679 : fd_pubkey_t pubkey;
1680 : long timestamp;
1681 : ulong slot;
1682 : };
1683 : typedef struct fd_clock_timestamp_vote fd_clock_timestamp_vote_t;
1684 : #define FD_CLOCK_TIMESTAMP_VOTE_ALIGN alignof(fd_clock_timestamp_vote_t)
1685 :
1686 : typedef struct fd_clock_timestamp_vote_t_mapnode fd_clock_timestamp_vote_t_mapnode_t;
1687 : #define REDBLK_T fd_clock_timestamp_vote_t_mapnode_t
1688 : #define REDBLK_NAME fd_clock_timestamp_vote_t_map
1689 : #define REDBLK_IMPL_STYLE 1
1690 : #include "../../util/tmpl/fd_redblack.c"
1691 : struct fd_clock_timestamp_vote_t_mapnode {
1692 : fd_clock_timestamp_vote_t elem;
1693 : ulong redblack_parent;
1694 : ulong redblack_left;
1695 : ulong redblack_right;
1696 : int redblack_color;
1697 : };
1698 : static inline fd_clock_timestamp_vote_t_mapnode_t *
1699 0 : fd_clock_timestamp_vote_t_map_join_new( void * * alloc_mem, ulong len ) {
1700 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
1701 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_clock_timestamp_vote_t_map_align() );
1702 0 : void * map_mem = *alloc_mem;
1703 0 : *alloc_mem = (uchar *)*alloc_mem + fd_clock_timestamp_vote_t_map_footprint( len );
1704 0 : return fd_clock_timestamp_vote_t_map_join( fd_clock_timestamp_vote_t_map_new( map_mem, len ) );
1705 0 : }
1706 : /* Validator timestamp oracle votes received from voting nodes. TODO: make this a map */
1707 : /* Encoded Size: Dynamic */
1708 : struct fd_clock_timestamp_votes {
1709 : fd_clock_timestamp_vote_t_mapnode_t * votes_pool;
1710 : fd_clock_timestamp_vote_t_mapnode_t * votes_root;
1711 : };
1712 : typedef struct fd_clock_timestamp_votes fd_clock_timestamp_votes_t;
1713 : #define FD_CLOCK_TIMESTAMP_VOTES_ALIGN alignof(fd_clock_timestamp_votes_t)
1714 :
1715 : struct fd_clock_timestamp_votes_global {
1716 : ulong votes_pool_offset;
1717 : ulong votes_root_offset;
1718 : };
1719 : typedef struct fd_clock_timestamp_votes_global fd_clock_timestamp_votes_global_t;
1720 : #define FD_CLOCK_TIMESTAMP_VOTES_GLOBAL_ALIGN alignof(fd_clock_timestamp_votes_global_t)
1721 :
1722 0 : static FD_FN_UNUSED fd_clock_timestamp_vote_t_mapnode_t * fd_clock_timestamp_votes_votes_pool_join( fd_clock_timestamp_votes_global_t const * type ) {
1723 0 : if( FD_UNLIKELY( !type ) ) return NULL;
1724 0 : return !!type->votes_pool_offset ? (fd_clock_timestamp_vote_t_mapnode_t *)fd_clock_timestamp_vote_t_map_join( fd_type_pun( (uchar *)type + type->votes_pool_offset ) ) : NULL;
1725 0 : }
1726 0 : static FD_FN_UNUSED fd_clock_timestamp_vote_t_mapnode_t * fd_clock_timestamp_votes_votes_root_join( fd_clock_timestamp_votes_global_t const * type ) {
1727 0 : if( FD_UNLIKELY( !type ) ) return NULL;
1728 0 : return !!type->votes_root_offset ? (fd_clock_timestamp_vote_t_mapnode_t *)fd_type_pun( (uchar *)type + type->votes_root_offset ) : NULL;
1729 0 : }
1730 0 : static FD_FN_UNUSED void fd_clock_timestamp_votes_votes_pool_update( fd_clock_timestamp_votes_global_t * type, fd_clock_timestamp_vote_t_mapnode_t * pool ) {
1731 0 : type->votes_pool_offset = !!pool ? (ulong)fd_clock_timestamp_vote_t_map_leave( pool ) - (ulong)type : 0UL;
1732 0 : }
1733 0 : static FD_FN_UNUSED void fd_clock_timestamp_votes_votes_root_update( fd_clock_timestamp_votes_global_t * type, fd_clock_timestamp_vote_t_mapnode_t * root ) {
1734 0 : type->votes_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
1735 0 : }
1736 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/sysvar/fees.rs#L21 */
1737 : /* Encoded Size: Fixed (8 bytes) */
1738 : struct fd_sysvar_fees {
1739 : fd_fee_calculator_t fee_calculator;
1740 : };
1741 : typedef struct fd_sysvar_fees fd_sysvar_fees_t;
1742 : #define FD_SYSVAR_FEES_ALIGN alignof(fd_sysvar_fees_t)
1743 :
1744 : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/sdk/program/src/epoch_rewards.rs#L14 */
1745 : /* Encoded Size: Fixed (81 bytes) */
1746 : struct fd_sysvar_epoch_rewards {
1747 : ulong distribution_starting_block_height;
1748 : ulong num_partitions;
1749 : fd_hash_t parent_blockhash;
1750 : uint128 total_points;
1751 : ulong total_rewards;
1752 : ulong distributed_rewards;
1753 : uchar active;
1754 : };
1755 : typedef struct fd_sysvar_epoch_rewards fd_sysvar_epoch_rewards_t;
1756 3 : #define FD_SYSVAR_EPOCH_REWARDS_ALIGN alignof(fd_sysvar_epoch_rewards_t)
1757 :
1758 : /* Encoded Size: Fixed (33 bytes) */
1759 : struct fd_config_keys_pair {
1760 : fd_pubkey_t key;
1761 : uchar signer;
1762 : };
1763 : typedef struct fd_config_keys_pair fd_config_keys_pair_t;
1764 0 : #define FD_CONFIG_KEYS_PAIR_ALIGN alignof(fd_config_keys_pair_t)
1765 :
1766 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/config.rs#L14 */
1767 : /* Encoded Size: Dynamic */
1768 : struct fd_stake_config {
1769 : ushort config_keys_len;
1770 : fd_config_keys_pair_t * config_keys;
1771 : double warmup_cooldown_rate;
1772 : uchar slash_penalty;
1773 : };
1774 : typedef struct fd_stake_config fd_stake_config_t;
1775 : #define FD_STAKE_CONFIG_ALIGN alignof(fd_stake_config_t)
1776 :
1777 : /* Encoded Size: Dynamic */
1778 : struct fd_feature_entry {
1779 : fd_pubkey_t pubkey;
1780 : ulong description_len;
1781 : uchar* description;
1782 : ulong since_slot;
1783 : };
1784 : typedef struct fd_feature_entry fd_feature_entry_t;
1785 : #define FD_FEATURE_ENTRY_ALIGN alignof(fd_feature_entry_t)
1786 :
1787 : struct fd_cluster_type {
1788 : uint discriminant;
1789 : };
1790 : typedef struct fd_cluster_type fd_cluster_type_t;
1791 : #define FD_CLUSTER_TYPE_ALIGN alignof(fd_cluster_type_t)
1792 :
1793 : /* Encoded Size: Fixed (12 bytes) */
1794 : struct fd_cluster_version {
1795 : uint major;
1796 : uint minor;
1797 : uint patch;
1798 : };
1799 : typedef struct fd_cluster_version fd_cluster_version_t;
1800 : #define FD_CLUSTER_VERSION_ALIGN alignof(fd_cluster_version_t)
1801 :
1802 : /* Encoded Size: Fixed (49 bytes) */
1803 : struct fd_stake_reward {
1804 : ulong prev;
1805 : ulong next;
1806 : ulong parent;
1807 : fd_pubkey_t stake_pubkey;
1808 : ulong credits_observed;
1809 : ulong lamports;
1810 : uchar valid;
1811 : };
1812 : typedef struct fd_stake_reward fd_stake_reward_t;
1813 : #define FD_STAKE_REWARD_ALIGN alignof(fd_stake_reward_t)
1814 :
1815 : /* Encoded Size: Fixed (42 bytes) */
1816 : struct fd_vote_reward {
1817 : fd_pubkey_t pubkey;
1818 : ulong vote_rewards;
1819 : uchar commission;
1820 : uchar needs_store;
1821 : };
1822 : typedef struct fd_vote_reward fd_vote_reward_t;
1823 : #define FD_VOTE_REWARD_ALIGN alignof(fd_vote_reward_t)
1824 :
1825 : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/programs/stake/src/points.rs#L21 */
1826 : /* Encoded Size: Fixed (24 bytes) */
1827 : struct fd_point_value {
1828 : ulong rewards;
1829 : uint128 points;
1830 : };
1831 : typedef struct fd_point_value fd_point_value_t;
1832 : #define FD_POINT_VALUE_ALIGN alignof(fd_point_value_t)
1833 :
1834 : #define POOL_NAME fd_partitioned_stake_rewards_pool
1835 0 : #define POOL_T fd_stake_reward_t
1836 0 : #define POOL_NEXT parent
1837 : #include "../../util/tmpl/fd_pool.c"
1838 : static inline fd_stake_reward_t *
1839 0 : fd_partitioned_stake_rewards_pool_join_new( void * * alloc_mem, ulong num ) {
1840 0 : if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
1841 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_partitioned_stake_rewards_pool_align() );
1842 0 : void * pool_mem = *alloc_mem;
1843 0 : *alloc_mem = (uchar *)*alloc_mem + fd_partitioned_stake_rewards_pool_footprint( num );
1844 0 : return fd_partitioned_stake_rewards_pool_join( fd_partitioned_stake_rewards_pool_new( pool_mem, num ) );
1845 0 : }
1846 : #define DLIST_NAME fd_partitioned_stake_rewards_dlist
1847 : #define DLIST_ELE_T fd_stake_reward_t
1848 : #include "../../util/tmpl/fd_dlist.c"
1849 : static inline fd_partitioned_stake_rewards_dlist_t *
1850 0 : fd_partitioned_stake_rewards_dlist_join_new( void * * alloc_mem, ulong num ) {
1851 0 : if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
1852 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_partitioned_stake_rewards_dlist_align() );
1853 0 : void * dlist_mem = *alloc_mem;
1854 0 : *alloc_mem = (uchar *)*alloc_mem + fd_partitioned_stake_rewards_dlist_footprint();
1855 0 : return fd_partitioned_stake_rewards_dlist_join( fd_partitioned_stake_rewards_dlist_new( dlist_mem ) );
1856 0 : }
1857 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L56 */
1858 : /* Encoded Size: Dynamic */
1859 : struct fd_partitioned_stake_rewards {
1860 : ulong partitions_len;
1861 : ulong partitions_lengths[4096];
1862 : fd_partitioned_stake_rewards_dlist_t * partitions;
1863 : fd_stake_reward_t * pool;
1864 : };
1865 : typedef struct fd_partitioned_stake_rewards fd_partitioned_stake_rewards_t;
1866 : #define FD_PARTITIONED_STAKE_REWARDS_ALIGN alignof(fd_partitioned_stake_rewards_t)
1867 :
1868 : struct fd_partitioned_stake_rewards_global {
1869 : ulong partitions_len;
1870 : ulong partitions_lengths[4096];
1871 : ulong partitions_offset;
1872 : ulong pool_offset;
1873 : };
1874 : typedef struct fd_partitioned_stake_rewards_global fd_partitioned_stake_rewards_global_t;
1875 : #define FD_PARTITIONED_STAKE_REWARDS_GLOBAL_ALIGN alignof(fd_partitioned_stake_rewards_global_t)
1876 :
1877 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L131 */
1878 : /* Encoded Size: Dynamic */
1879 : struct fd_stake_reward_calculation_partitioned {
1880 : fd_partitioned_stake_rewards_t partitioned_stake_rewards;
1881 : ulong total_stake_rewards_lamports;
1882 : };
1883 : typedef struct fd_stake_reward_calculation_partitioned fd_stake_reward_calculation_partitioned_t;
1884 : #define FD_STAKE_REWARD_CALCULATION_PARTITIONED_ALIGN alignof(fd_stake_reward_calculation_partitioned_t)
1885 :
1886 : #define POOL_NAME fd_stake_reward_calculation_pool
1887 0 : #define POOL_T fd_stake_reward_t
1888 0 : #define POOL_NEXT parent
1889 : #include "../../util/tmpl/fd_pool.c"
1890 : static inline fd_stake_reward_t *
1891 0 : fd_stake_reward_calculation_pool_join_new( void * * alloc_mem, ulong num ) {
1892 0 : if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
1893 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_stake_reward_calculation_pool_align() );
1894 0 : void * pool_mem = *alloc_mem;
1895 0 : *alloc_mem = (uchar *)*alloc_mem + fd_stake_reward_calculation_pool_footprint( num );
1896 0 : return fd_stake_reward_calculation_pool_join( fd_stake_reward_calculation_pool_new( pool_mem, num ) );
1897 0 : }
1898 : #define DLIST_NAME fd_stake_reward_calculation_dlist
1899 : #define DLIST_ELE_T fd_stake_reward_t
1900 : #include "../../util/tmpl/fd_dlist.c"
1901 : static inline fd_stake_reward_calculation_dlist_t *
1902 0 : fd_stake_reward_calculation_dlist_join_new( void * * alloc_mem, ulong num ) {
1903 0 : if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
1904 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_stake_reward_calculation_dlist_align() );
1905 0 : void * dlist_mem = *alloc_mem;
1906 0 : *alloc_mem = (uchar *)*alloc_mem + fd_stake_reward_calculation_dlist_footprint();
1907 0 : return fd_stake_reward_calculation_dlist_join( fd_stake_reward_calculation_dlist_new( dlist_mem ) );
1908 0 : }
1909 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L94 */
1910 : /* Encoded Size: Dynamic */
1911 : struct fd_stake_reward_calculation {
1912 : ulong stake_rewards_len;
1913 : fd_stake_reward_calculation_dlist_t * stake_rewards;
1914 : fd_stake_reward_t * pool;
1915 : ulong total_stake_rewards_lamports;
1916 : };
1917 : typedef struct fd_stake_reward_calculation fd_stake_reward_calculation_t;
1918 : #define FD_STAKE_REWARD_CALCULATION_ALIGN alignof(fd_stake_reward_calculation_t)
1919 :
1920 : typedef struct fd_vote_reward_t_mapnode fd_vote_reward_t_mapnode_t;
1921 : #define REDBLK_T fd_vote_reward_t_mapnode_t
1922 : #define REDBLK_NAME fd_vote_reward_t_map
1923 : #define REDBLK_IMPL_STYLE 1
1924 : #include "../../util/tmpl/fd_redblack.c"
1925 : struct fd_vote_reward_t_mapnode {
1926 : fd_vote_reward_t elem;
1927 : ulong redblack_parent;
1928 : ulong redblack_left;
1929 : ulong redblack_right;
1930 : int redblack_color;
1931 : };
1932 : static inline fd_vote_reward_t_mapnode_t *
1933 0 : fd_vote_reward_t_map_join_new( void * * alloc_mem, ulong len ) {
1934 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
1935 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_reward_t_map_align() );
1936 0 : void * map_mem = *alloc_mem;
1937 0 : *alloc_mem = (uchar *)*alloc_mem + fd_vote_reward_t_map_footprint( len );
1938 0 : return fd_vote_reward_t_map_join( fd_vote_reward_t_map_new( map_mem, len ) );
1939 0 : }
1940 : /* Encoded Size: Dynamic */
1941 : struct fd_calculate_stake_vote_rewards_result {
1942 : fd_stake_reward_calculation_t stake_reward_calculation;
1943 : fd_vote_reward_t_mapnode_t * vote_reward_map_pool;
1944 : fd_vote_reward_t_mapnode_t * vote_reward_map_root;
1945 : };
1946 : typedef struct fd_calculate_stake_vote_rewards_result fd_calculate_stake_vote_rewards_result_t;
1947 : #define FD_CALCULATE_STAKE_VOTE_REWARDS_RESULT_ALIGN alignof(fd_calculate_stake_vote_rewards_result_t)
1948 :
1949 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L102 */
1950 : /* Encoded Size: Dynamic */
1951 : struct fd_calculate_validator_rewards_result {
1952 : fd_calculate_stake_vote_rewards_result_t calculate_stake_vote_rewards_result;
1953 : fd_point_value_t point_value;
1954 : };
1955 : typedef struct fd_calculate_validator_rewards_result fd_calculate_validator_rewards_result_t;
1956 : #define FD_CALCULATE_VALIDATOR_REWARDS_RESULT_ALIGN alignof(fd_calculate_validator_rewards_result_t)
1957 :
1958 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L118 */
1959 : /* Encoded Size: Dynamic */
1960 : struct fd_partitioned_rewards_calculation {
1961 : fd_vote_reward_t_mapnode_t * vote_reward_map_pool;
1962 : fd_vote_reward_t_mapnode_t * vote_reward_map_root;
1963 : fd_stake_reward_calculation_partitioned_t stake_rewards_by_partition;
1964 : ulong old_vote_balance_and_staked;
1965 : ulong validator_rewards;
1966 : double validator_rate;
1967 : double foundation_rate;
1968 : double prev_epoch_duration_in_years;
1969 : ulong capitalization;
1970 : fd_point_value_t point_value;
1971 : };
1972 : typedef struct fd_partitioned_rewards_calculation fd_partitioned_rewards_calculation_t;
1973 : #define FD_PARTITIONED_REWARDS_CALCULATION_ALIGN alignof(fd_partitioned_rewards_calculation_t)
1974 :
1975 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L60 */
1976 : /* Encoded Size: Dynamic */
1977 : struct fd_start_block_height_and_rewards {
1978 : ulong distribution_starting_block_height;
1979 : fd_partitioned_stake_rewards_t partitioned_stake_rewards;
1980 : };
1981 : typedef struct fd_start_block_height_and_rewards fd_start_block_height_and_rewards_t;
1982 : #define FD_START_BLOCK_HEIGHT_AND_REWARDS_ALIGN alignof(fd_start_block_height_and_rewards_t)
1983 :
1984 : struct fd_start_block_height_and_rewards_global {
1985 : ulong distribution_starting_block_height;
1986 : fd_partitioned_stake_rewards_global_t partitioned_stake_rewards;
1987 : };
1988 : typedef struct fd_start_block_height_and_rewards_global fd_start_block_height_and_rewards_global_t;
1989 : #define FD_START_BLOCK_HEIGHT_AND_REWARDS_GLOBAL_ALIGN alignof(fd_start_block_height_and_rewards_global_t)
1990 :
1991 : /* Encoded Size: Dynamic */
1992 : struct fd_fd_epoch_reward_status_inner {
1993 : fd_start_block_height_and_rewards_t Active;
1994 : };
1995 : typedef struct fd_fd_epoch_reward_status_inner fd_fd_epoch_reward_status_inner_t;
1996 : #define FD_FD_EPOCH_REWARD_STATUS_INNER_ALIGN alignof(fd_fd_epoch_reward_status_inner_t)
1997 :
1998 : union fd_epoch_reward_status_inner {
1999 : fd_start_block_height_and_rewards_t Active;
2000 : };
2001 : typedef union fd_epoch_reward_status_inner fd_epoch_reward_status_inner_t;
2002 :
2003 : union fd_epoch_reward_status_inner_global {
2004 : fd_start_block_height_and_rewards_global_t Active;
2005 : };
2006 : typedef union fd_epoch_reward_status_inner_global fd_epoch_reward_status_inner_global_t;
2007 :
2008 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L70 */
2009 : struct fd_epoch_reward_status {
2010 : uint discriminant;
2011 : fd_epoch_reward_status_inner_t inner;
2012 : };
2013 : typedef struct fd_epoch_reward_status fd_epoch_reward_status_t;
2014 : #define FD_EPOCH_REWARD_STATUS_ALIGN alignof(fd_epoch_reward_status_t)
2015 : struct fd_epoch_reward_status_global {
2016 : uint discriminant;
2017 : fd_epoch_reward_status_inner_global_t inner;
2018 : };
2019 : typedef struct fd_epoch_reward_status_global fd_epoch_reward_status_global_t;
2020 : #define FD_EPOCH_REWARD_STATUS_GLOBAL_ALIGN alignof(fd_epoch_reward_status_global_t)
2021 :
2022 : /* Encoded Size: Fixed (32 bytes) */
2023 : struct fd_prev_epoch_inflation_rewards {
2024 : ulong validator_rewards;
2025 : double prev_epoch_duration_in_years;
2026 : double validator_rate;
2027 : double foundation_rate;
2028 : };
2029 : typedef struct fd_prev_epoch_inflation_rewards fd_prev_epoch_inflation_rewards_t;
2030 : #define FD_PREV_EPOCH_INFLATION_REWARDS_ALIGN alignof(fd_prev_epoch_inflation_rewards_t)
2031 :
2032 : #define DEQUE_NAME deq_ulong
2033 0 : #define DEQUE_T ulong
2034 : #include "../../util/tmpl/fd_deque_dynamic.c"
2035 : #undef DEQUE_NAME
2036 : #undef DEQUE_T
2037 : #undef DEQUE_MAX
2038 : static inline ulong *
2039 0 : deq_ulong_join_new( void * * alloc_mem, ulong max ) {
2040 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
2041 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_ulong_align() );
2042 0 : void * deque_mem = *alloc_mem;
2043 0 : *alloc_mem = (uchar *)*alloc_mem + deq_ulong_footprint( max );
2044 0 : return deq_ulong_join( deq_ulong_new( deque_mem, max ) );
2045 0 : }
2046 :
2047 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L133 */
2048 : /* Encoded Size: Dynamic */
2049 : struct fd_vote {
2050 : ulong * slots; /* fd_deque_dynamic */
2051 : fd_hash_t hash;
2052 : long* timestamp;
2053 : };
2054 : typedef struct fd_vote fd_vote_t;
2055 : #define FD_VOTE_ALIGN alignof(fd_vote_t)
2056 :
2057 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L230 */
2058 : /* Encoded Size: Fixed (97 bytes) */
2059 : struct fd_vote_init {
2060 : fd_pubkey_t node_pubkey;
2061 : fd_pubkey_t authorized_voter;
2062 : fd_pubkey_t authorized_withdrawer;
2063 : uchar commission;
2064 : };
2065 : typedef struct fd_vote_init fd_vote_init_t;
2066 : #define FD_VOTE_INIT_ALIGN alignof(fd_vote_init_t)
2067 :
2068 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L238 */
2069 : struct fd_vote_authorize {
2070 : uint discriminant;
2071 : };
2072 : typedef struct fd_vote_authorize fd_vote_authorize_t;
2073 : #define FD_VOTE_AUTHORIZE_ALIGN alignof(fd_vote_authorize_t)
2074 :
2075 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L37 */
2076 : /* Encoded Size: Fixed (36 bytes) */
2077 : struct fd_vote_authorize_pubkey {
2078 : fd_pubkey_t pubkey;
2079 : fd_vote_authorize_t vote_authorize;
2080 : };
2081 : typedef struct fd_vote_authorize_pubkey fd_vote_authorize_pubkey_t;
2082 : #define FD_VOTE_AUTHORIZE_PUBKEY_ALIGN alignof(fd_vote_authorize_pubkey_t)
2083 :
2084 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L78 */
2085 : /* Encoded Size: Dynamic */
2086 : struct fd_vote_switch {
2087 : fd_vote_t vote;
2088 : fd_hash_t hash;
2089 : };
2090 : typedef struct fd_vote_switch fd_vote_switch_t;
2091 : #define FD_VOTE_SWITCH_ALIGN alignof(fd_vote_switch_t)
2092 :
2093 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L104 */
2094 : /* Encoded Size: Dynamic */
2095 : struct fd_update_vote_state_switch {
2096 : fd_vote_state_update_t vote_state_update;
2097 : fd_hash_t hash;
2098 : };
2099 : typedef struct fd_update_vote_state_switch fd_update_vote_state_switch_t;
2100 : #define FD_UPDATE_VOTE_STATE_SWITCH_ALIGN alignof(fd_update_vote_state_switch_t)
2101 :
2102 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L244 */
2103 : /* Encoded Size: Dynamic */
2104 : struct fd_vote_authorize_with_seed_args {
2105 : fd_vote_authorize_t authorization_type;
2106 : fd_pubkey_t current_authority_derived_key_owner;
2107 : ulong current_authority_derived_key_seed_len;
2108 : uchar* current_authority_derived_key_seed;
2109 : fd_pubkey_t new_authority;
2110 : };
2111 : typedef struct fd_vote_authorize_with_seed_args fd_vote_authorize_with_seed_args_t;
2112 : #define FD_VOTE_AUTHORIZE_WITH_SEED_ARGS_ALIGN alignof(fd_vote_authorize_with_seed_args_t)
2113 :
2114 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L252 */
2115 : /* Encoded Size: Dynamic */
2116 : struct fd_vote_authorize_checked_with_seed_args {
2117 : fd_vote_authorize_t authorization_type;
2118 : fd_pubkey_t current_authority_derived_key_owner;
2119 : ulong current_authority_derived_key_seed_len;
2120 : uchar* current_authority_derived_key_seed;
2121 : };
2122 : typedef struct fd_vote_authorize_checked_with_seed_args fd_vote_authorize_checked_with_seed_args_t;
2123 : #define FD_VOTE_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN alignof(fd_vote_authorize_checked_with_seed_args_t)
2124 :
2125 : union fd_vote_instruction_inner {
2126 : fd_vote_init_t initialize_account;
2127 : fd_vote_authorize_pubkey_t authorize;
2128 : fd_vote_t vote;
2129 : ulong withdraw;
2130 : uchar update_commission;
2131 : fd_vote_switch_t vote_switch;
2132 : fd_vote_authorize_t authorize_checked;
2133 : fd_vote_state_update_t update_vote_state;
2134 : fd_update_vote_state_switch_t update_vote_state_switch;
2135 : fd_vote_authorize_with_seed_args_t authorize_with_seed;
2136 : fd_vote_authorize_checked_with_seed_args_t authorize_checked_with_seed;
2137 : fd_compact_vote_state_update_t compact_update_vote_state;
2138 : fd_compact_vote_state_update_switch_t compact_update_vote_state_switch;
2139 : fd_tower_sync_t tower_sync;
2140 : fd_tower_sync_switch_t tower_sync_switch;
2141 : };
2142 : typedef union fd_vote_instruction_inner fd_vote_instruction_inner_t;
2143 :
2144 : /* https://github.com/firedancer-io/solana/blob/53a4e5d6c58b2ffe89b09304e4437f8ca198dadd/programs/vote/src/vote_instruction.rs#L21 */
2145 : struct fd_vote_instruction {
2146 : uint discriminant;
2147 : fd_vote_instruction_inner_t inner;
2148 : };
2149 : typedef struct fd_vote_instruction fd_vote_instruction_t;
2150 0 : #define FD_VOTE_INSTRUCTION_ALIGN alignof(fd_vote_instruction_t)
2151 :
2152 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L158 */
2153 : /* Encoded Size: Fixed (48 bytes) */
2154 : struct fd_system_program_instruction_create_account {
2155 : ulong lamports;
2156 : ulong space;
2157 : fd_pubkey_t owner;
2158 : };
2159 : typedef struct fd_system_program_instruction_create_account fd_system_program_instruction_create_account_t;
2160 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_ALIGN alignof(fd_system_program_instruction_create_account_t)
2161 :
2162 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L193 */
2163 : /* Encoded Size: Dynamic */
2164 : struct fd_system_program_instruction_create_account_with_seed {
2165 : fd_pubkey_t base;
2166 : ulong seed_len;
2167 : uchar* seed;
2168 : ulong lamports;
2169 : ulong space;
2170 : fd_pubkey_t owner;
2171 : };
2172 : typedef struct fd_system_program_instruction_create_account_with_seed fd_system_program_instruction_create_account_with_seed_t;
2173 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_WITH_SEED_ALIGN alignof(fd_system_program_instruction_create_account_with_seed_t)
2174 :
2175 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L269 */
2176 : /* Encoded Size: Dynamic */
2177 : struct fd_system_program_instruction_allocate_with_seed {
2178 : fd_pubkey_t base;
2179 : ulong seed_len;
2180 : uchar* seed;
2181 : ulong space;
2182 : fd_pubkey_t owner;
2183 : };
2184 : typedef struct fd_system_program_instruction_allocate_with_seed fd_system_program_instruction_allocate_with_seed_t;
2185 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ALLOCATE_WITH_SEED_ALIGN alignof(fd_system_program_instruction_allocate_with_seed_t)
2186 :
2187 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L288 */
2188 : /* Encoded Size: Dynamic */
2189 : struct fd_system_program_instruction_assign_with_seed {
2190 : fd_pubkey_t base;
2191 : ulong seed_len;
2192 : uchar* seed;
2193 : fd_pubkey_t owner;
2194 : };
2195 : typedef struct fd_system_program_instruction_assign_with_seed fd_system_program_instruction_assign_with_seed_t;
2196 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ASSIGN_WITH_SEED_ALIGN alignof(fd_system_program_instruction_assign_with_seed_t)
2197 :
2198 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L288 */
2199 : /* Encoded Size: Dynamic */
2200 : struct fd_system_program_instruction_transfer_with_seed {
2201 : ulong lamports;
2202 : ulong from_seed_len;
2203 : uchar* from_seed;
2204 : fd_pubkey_t from_owner;
2205 : };
2206 : typedef struct fd_system_program_instruction_transfer_with_seed fd_system_program_instruction_transfer_with_seed_t;
2207 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_TRANSFER_WITH_SEED_ALIGN alignof(fd_system_program_instruction_transfer_with_seed_t)
2208 :
2209 : union fd_system_program_instruction_inner {
2210 : fd_system_program_instruction_create_account_t create_account;
2211 : fd_pubkey_t assign;
2212 : ulong transfer;
2213 : fd_system_program_instruction_create_account_with_seed_t create_account_with_seed;
2214 : ulong withdraw_nonce_account;
2215 : fd_pubkey_t initialize_nonce_account;
2216 : fd_pubkey_t authorize_nonce_account;
2217 : ulong allocate;
2218 : fd_system_program_instruction_allocate_with_seed_t allocate_with_seed;
2219 : fd_system_program_instruction_assign_with_seed_t assign_with_seed;
2220 : fd_system_program_instruction_transfer_with_seed_t transfer_with_seed;
2221 : };
2222 : typedef union fd_system_program_instruction_inner fd_system_program_instruction_inner_t;
2223 :
2224 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L152 */
2225 : struct fd_system_program_instruction {
2226 : uint discriminant;
2227 : fd_system_program_instruction_inner_t inner;
2228 : };
2229 : typedef struct fd_system_program_instruction fd_system_program_instruction_t;
2230 0 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ALIGN alignof(fd_system_program_instruction_t)
2231 :
2232 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L16 */
2233 : struct fd_system_error {
2234 : uint discriminant;
2235 : };
2236 : typedef struct fd_system_error fd_system_error_t;
2237 : #define FD_SYSTEM_ERROR_ALIGN alignof(fd_system_error_t)
2238 :
2239 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L169 */
2240 : /* Encoded Size: Fixed (64 bytes) */
2241 : struct fd_stake_authorized {
2242 : fd_pubkey_t staker;
2243 : fd_pubkey_t withdrawer;
2244 : };
2245 : typedef struct fd_stake_authorized fd_stake_authorized_t;
2246 : #define FD_STAKE_AUTHORIZED_ALIGN alignof(fd_stake_authorized_t)
2247 :
2248 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L135 */
2249 : /* Encoded Size: Fixed (48 bytes) */
2250 : struct fd_stake_lockup {
2251 : long unix_timestamp;
2252 : ulong epoch;
2253 : fd_pubkey_t custodian;
2254 : };
2255 : typedef struct fd_stake_lockup fd_stake_lockup_t;
2256 : #define FD_STAKE_LOCKUP_ALIGN alignof(fd_stake_lockup_t)
2257 :
2258 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L68 */
2259 : /* Encoded Size: Fixed (112 bytes) */
2260 : struct fd_stake_instruction_initialize {
2261 : fd_stake_authorized_t authorized;
2262 : fd_stake_lockup_t lockup;
2263 : };
2264 : typedef struct fd_stake_instruction_initialize fd_stake_instruction_initialize_t;
2265 : #define FD_STAKE_INSTRUCTION_INITIALIZE_ALIGN alignof(fd_stake_instruction_initialize_t)
2266 :
2267 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L78 */
2268 : /* Encoded Size: Dynamic */
2269 : struct fd_stake_lockup_custodian_args {
2270 : fd_stake_lockup_t lockup;
2271 : fd_sol_sysvar_clock_t clock;
2272 : fd_pubkey_t * custodian;
2273 : };
2274 : typedef struct fd_stake_lockup_custodian_args fd_stake_lockup_custodian_args_t;
2275 : #define FD_STAKE_LOCKUP_CUSTODIAN_ARGS_ALIGN alignof(fd_stake_lockup_custodian_args_t)
2276 :
2277 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L117 */
2278 : struct fd_stake_authorize {
2279 : uint discriminant;
2280 : };
2281 : typedef struct fd_stake_authorize fd_stake_authorize_t;
2282 : #define FD_STAKE_AUTHORIZE_ALIGN alignof(fd_stake_authorize_t)
2283 :
2284 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L78 */
2285 : /* Encoded Size: Fixed (36 bytes) */
2286 : struct fd_stake_instruction_authorize {
2287 : fd_pubkey_t pubkey;
2288 : fd_stake_authorize_t stake_authorize;
2289 : };
2290 : typedef struct fd_stake_instruction_authorize fd_stake_instruction_authorize_t;
2291 : #define FD_STAKE_INSTRUCTION_AUTHORIZE_ALIGN alignof(fd_stake_instruction_authorize_t)
2292 :
2293 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L241 */
2294 : /* Encoded Size: Dynamic */
2295 : struct fd_authorize_with_seed_args {
2296 : fd_pubkey_t new_authorized_pubkey;
2297 : fd_stake_authorize_t stake_authorize;
2298 : ulong authority_seed_len;
2299 : uchar* authority_seed;
2300 : fd_pubkey_t authority_owner;
2301 : };
2302 : typedef struct fd_authorize_with_seed_args fd_authorize_with_seed_args_t;
2303 : #define FD_AUTHORIZE_WITH_SEED_ARGS_ALIGN alignof(fd_authorize_with_seed_args_t)
2304 :
2305 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L249 */
2306 : /* Encoded Size: Dynamic */
2307 : struct fd_authorize_checked_with_seed_args {
2308 : fd_stake_authorize_t stake_authorize;
2309 : ulong authority_seed_len;
2310 : uchar* authority_seed;
2311 : fd_pubkey_t authority_owner;
2312 : };
2313 : typedef struct fd_authorize_checked_with_seed_args fd_authorize_checked_with_seed_args_t;
2314 : #define FD_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN alignof(fd_authorize_checked_with_seed_args_t)
2315 :
2316 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L235 */
2317 : /* Encoded Size: Dynamic */
2318 : struct fd_lockup_checked_args {
2319 : long* unix_timestamp;
2320 : ulong* epoch;
2321 : };
2322 : typedef struct fd_lockup_checked_args fd_lockup_checked_args_t;
2323 : #define FD_LOCKUP_CHECKED_ARGS_ALIGN alignof(fd_lockup_checked_args_t)
2324 :
2325 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L228 */
2326 : /* Encoded Size: Dynamic */
2327 : struct fd_lockup_args {
2328 : long* unix_timestamp;
2329 : ulong* epoch;
2330 : fd_pubkey_t * custodian;
2331 : };
2332 : typedef struct fd_lockup_args fd_lockup_args_t;
2333 : #define FD_LOCKUP_ARGS_ALIGN alignof(fd_lockup_args_t)
2334 :
2335 : union fd_stake_instruction_inner {
2336 : fd_stake_instruction_initialize_t initialize;
2337 : fd_stake_instruction_authorize_t authorize;
2338 : ulong split;
2339 : ulong withdraw;
2340 : fd_lockup_args_t set_lockup;
2341 : fd_authorize_with_seed_args_t authorize_with_seed;
2342 : fd_stake_authorize_t authorize_checked;
2343 : fd_authorize_checked_with_seed_args_t authorize_checked_with_seed;
2344 : fd_lockup_checked_args_t set_lockup_checked;
2345 : ulong move_stake;
2346 : ulong move_lamports;
2347 : };
2348 : typedef union fd_stake_instruction_inner fd_stake_instruction_inner_t;
2349 :
2350 : /* https://github.com/anza-xyz/agave/blob/cdff19c7807b006dd63429114fb1d9573bf74172/sdk/program/src/stake/instruction.rs#L96 */
2351 : struct fd_stake_instruction {
2352 : uint discriminant;
2353 : fd_stake_instruction_inner_t inner;
2354 : };
2355 : typedef struct fd_stake_instruction fd_stake_instruction_t;
2356 0 : #define FD_STAKE_INSTRUCTION_ALIGN alignof(fd_stake_instruction_t)
2357 :
2358 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L248 */
2359 : /* Encoded Size: Fixed (120 bytes) */
2360 : struct fd_stake_meta {
2361 : ulong rent_exempt_reserve;
2362 : fd_stake_authorized_t authorized;
2363 : fd_stake_lockup_t lockup;
2364 : };
2365 : typedef struct fd_stake_meta fd_stake_meta_t;
2366 : #define FD_STAKE_META_ALIGN alignof(fd_stake_meta_t)
2367 :
2368 : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/stake_flags.rs#L21 */
2369 : /* Encoded Size: Fixed (1 bytes) */
2370 : struct fd_stake_flags {
2371 : uchar bits;
2372 : };
2373 : typedef struct fd_stake_flags fd_stake_flags_t;
2374 : #define FD_STAKE_FLAGS_ALIGN alignof(fd_stake_flags_t)
2375 :
2376 : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L135 */
2377 : /* Encoded Size: Fixed (120 bytes) */
2378 : struct fd_stake_state_v2_initialized {
2379 : fd_stake_meta_t meta;
2380 : };
2381 : typedef struct fd_stake_state_v2_initialized fd_stake_state_v2_initialized_t;
2382 : #define FD_STAKE_STATE_V2_INITIALIZED_ALIGN alignof(fd_stake_state_v2_initialized_t)
2383 :
2384 : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L136 */
2385 : /* Encoded Size: Fixed (193 bytes) */
2386 : struct fd_stake_state_v2_stake {
2387 : fd_stake_meta_t meta;
2388 : fd_stake_t stake;
2389 : fd_stake_flags_t stake_flags;
2390 : };
2391 : typedef struct fd_stake_state_v2_stake fd_stake_state_v2_stake_t;
2392 : #define FD_STAKE_STATE_V2_STAKE_ALIGN alignof(fd_stake_state_v2_stake_t)
2393 :
2394 : union fd_stake_state_v2_inner {
2395 : fd_stake_state_v2_initialized_t initialized;
2396 : fd_stake_state_v2_stake_t stake;
2397 : };
2398 : typedef union fd_stake_state_v2_inner fd_stake_state_v2_inner_t;
2399 :
2400 : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L132 */
2401 : struct fd_stake_state_v2 {
2402 : uint discriminant;
2403 : fd_stake_state_v2_inner_t inner;
2404 : };
2405 : typedef struct fd_stake_state_v2 fd_stake_state_v2_t;
2406 0 : #define FD_STAKE_STATE_V2_ALIGN alignof(fd_stake_state_v2_t)
2407 :
2408 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/current.rs#L17 */
2409 : /* Encoded Size: Fixed (72 bytes) */
2410 : struct fd_nonce_data {
2411 : fd_pubkey_t authority;
2412 : fd_hash_t durable_nonce;
2413 : fd_fee_calculator_t fee_calculator;
2414 : };
2415 : typedef struct fd_nonce_data fd_nonce_data_t;
2416 : #define FD_NONCE_DATA_ALIGN alignof(fd_nonce_data_t)
2417 :
2418 : union fd_nonce_state_inner {
2419 : fd_nonce_data_t initialized;
2420 : };
2421 : typedef union fd_nonce_state_inner fd_nonce_state_inner_t;
2422 :
2423 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/current.rs#L65 */
2424 : struct fd_nonce_state {
2425 : uint discriminant;
2426 : fd_nonce_state_inner_t inner;
2427 : };
2428 : typedef struct fd_nonce_state fd_nonce_state_t;
2429 : #define FD_NONCE_STATE_ALIGN alignof(fd_nonce_state_t)
2430 :
2431 : union fd_nonce_state_versions_inner {
2432 : fd_nonce_state_t legacy;
2433 : fd_nonce_state_t current;
2434 : };
2435 : typedef union fd_nonce_state_versions_inner fd_nonce_state_versions_inner_t;
2436 :
2437 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/mod.rs#L9 */
2438 : struct fd_nonce_state_versions {
2439 : uint discriminant;
2440 : fd_nonce_state_versions_inner_t inner;
2441 : };
2442 : typedef struct fd_nonce_state_versions fd_nonce_state_versions_t;
2443 0 : #define FD_NONCE_STATE_VERSIONS_ALIGN alignof(fd_nonce_state_versions_t)
2444 :
2445 : /* https://github.com/solana-labs/solana/blob/6c520396cd76807f6227a7973f7373b37894251c/sdk/src/compute_budget.rs#L28 */
2446 : /* Encoded Size: Fixed (8 bytes) */
2447 : struct fd_compute_budget_program_instruction_request_units_deprecated {
2448 : uint units;
2449 : uint additional_fee;
2450 : };
2451 : typedef struct fd_compute_budget_program_instruction_request_units_deprecated fd_compute_budget_program_instruction_request_units_deprecated_t;
2452 : #define FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_REQUEST_UNITS_DEPRECATED_ALIGN alignof(fd_compute_budget_program_instruction_request_units_deprecated_t)
2453 :
2454 : union fd_compute_budget_program_instruction_inner {
2455 : fd_compute_budget_program_instruction_request_units_deprecated_t request_units_deprecated;
2456 : uint request_heap_frame;
2457 : uint set_compute_unit_limit;
2458 : ulong set_compute_unit_price;
2459 : uint set_loaded_accounts_data_size_limit;
2460 : };
2461 : typedef union fd_compute_budget_program_instruction_inner fd_compute_budget_program_instruction_inner_t;
2462 :
2463 : /* https://github.com/solana-labs/solana/blob/6c520396cd76807f6227a7973f7373b37894251c/sdk/src/compute_budget.rs#L25 */
2464 : struct fd_compute_budget_program_instruction {
2465 : uint discriminant;
2466 : fd_compute_budget_program_instruction_inner_t inner;
2467 : };
2468 : typedef struct fd_compute_budget_program_instruction fd_compute_budget_program_instruction_t;
2469 0 : #define FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_ALIGN alignof(fd_compute_budget_program_instruction_t)
2470 :
2471 : /* https://github.com/solana-labs/solana/blob/a03ae63daff987912c48ee286eb8ee7e8a84bf01/programs/config/src/lib.rs#L32 */
2472 : /* Encoded Size: Dynamic */
2473 : struct fd_config_keys {
2474 : ushort keys_len;
2475 : fd_config_keys_pair_t * keys;
2476 : };
2477 : typedef struct fd_config_keys fd_config_keys_t;
2478 0 : #define FD_CONFIG_KEYS_ALIGN alignof(fd_config_keys_t)
2479 :
2480 : /* Encoded Size: Dynamic */
2481 : struct fd_bpf_loader_program_instruction_write {
2482 : uint offset;
2483 : ulong bytes_len;
2484 : uchar* bytes;
2485 : };
2486 : typedef struct fd_bpf_loader_program_instruction_write fd_bpf_loader_program_instruction_write_t;
2487 : #define FD_BPF_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_bpf_loader_program_instruction_write_t)
2488 :
2489 : union fd_bpf_loader_program_instruction_inner {
2490 : fd_bpf_loader_program_instruction_write_t write;
2491 : };
2492 : typedef union fd_bpf_loader_program_instruction_inner fd_bpf_loader_program_instruction_inner_t;
2493 :
2494 : struct fd_bpf_loader_program_instruction {
2495 : uint discriminant;
2496 : fd_bpf_loader_program_instruction_inner_t inner;
2497 : };
2498 : typedef struct fd_bpf_loader_program_instruction fd_bpf_loader_program_instruction_t;
2499 : #define FD_BPF_LOADER_PROGRAM_INSTRUCTION_ALIGN alignof(fd_bpf_loader_program_instruction_t)
2500 :
2501 : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L21-L27 */
2502 : /* Encoded Size: Dynamic */
2503 : struct fd_loader_v4_program_instruction_write {
2504 : uint offset;
2505 : ulong bytes_len;
2506 : uchar* bytes;
2507 : };
2508 : typedef struct fd_loader_v4_program_instruction_write fd_loader_v4_program_instruction_write_t;
2509 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_loader_v4_program_instruction_write_t)
2510 :
2511 : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L35-L42 */
2512 : /* Encoded Size: Fixed (12 bytes) */
2513 : struct fd_loader_v4_program_instruction_copy {
2514 : uint destination_offset;
2515 : uint source_offset;
2516 : uint length;
2517 : };
2518 : typedef struct fd_loader_v4_program_instruction_copy fd_loader_v4_program_instruction_copy_t;
2519 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_COPY_ALIGN alignof(fd_loader_v4_program_instruction_copy_t)
2520 :
2521 : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L57-L60 */
2522 : /* Encoded Size: Fixed (4 bytes) */
2523 : struct fd_loader_v4_program_instruction_set_program_length {
2524 : uint new_size;
2525 : };
2526 : typedef struct fd_loader_v4_program_instruction_set_program_length fd_loader_v4_program_instruction_set_program_length_t;
2527 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_SET_PROGRAM_LENGTH_ALIGN alignof(fd_loader_v4_program_instruction_set_program_length_t)
2528 :
2529 : union fd_loader_v4_program_instruction_inner {
2530 : fd_loader_v4_program_instruction_write_t write;
2531 : fd_loader_v4_program_instruction_copy_t copy;
2532 : fd_loader_v4_program_instruction_set_program_length_t set_program_length;
2533 : };
2534 : typedef union fd_loader_v4_program_instruction_inner fd_loader_v4_program_instruction_inner_t;
2535 :
2536 : /* https://github.com/anza-xyz/agave/blob/007194391ca8313b2854d523769d0bedf040ef92/sdk/program/src/loader_v4_instruction.rs#L5 */
2537 : struct fd_loader_v4_program_instruction {
2538 : uint discriminant;
2539 : fd_loader_v4_program_instruction_inner_t inner;
2540 : };
2541 : typedef struct fd_loader_v4_program_instruction fd_loader_v4_program_instruction_t;
2542 0 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_ALIGN alignof(fd_loader_v4_program_instruction_t)
2543 :
2544 : /* Encoded Size: Dynamic */
2545 : struct fd_bpf_upgradeable_loader_program_instruction_write {
2546 : uint offset;
2547 : ulong bytes_len;
2548 : uchar* bytes;
2549 : };
2550 : typedef struct fd_bpf_upgradeable_loader_program_instruction_write fd_bpf_upgradeable_loader_program_instruction_write_t;
2551 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_write_t)
2552 :
2553 : /* Encoded Size: Fixed (8 bytes) */
2554 : struct fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len {
2555 : ulong max_data_len;
2556 : };
2557 : typedef struct fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t;
2558 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_DEPLOY_WITH_MAX_DATA_LEN_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t)
2559 :
2560 : /* Encoded Size: Fixed (4 bytes) */
2561 : struct fd_bpf_upgradeable_loader_program_instruction_extend_program {
2562 : uint additional_bytes;
2563 : };
2564 : typedef struct fd_bpf_upgradeable_loader_program_instruction_extend_program fd_bpf_upgradeable_loader_program_instruction_extend_program_t;
2565 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t)
2566 :
2567 : /* Encoded Size: Fixed (4 bytes) */
2568 : struct fd_bpf_upgradeable_loader_program_instruction_extend_program_checked {
2569 : uint additional_bytes;
2570 : };
2571 : typedef struct fd_bpf_upgradeable_loader_program_instruction_extend_program_checked fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t;
2572 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_CHECKED_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t)
2573 :
2574 : union fd_bpf_upgradeable_loader_program_instruction_inner {
2575 : fd_bpf_upgradeable_loader_program_instruction_write_t write;
2576 : fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t deploy_with_max_data_len;
2577 : fd_bpf_upgradeable_loader_program_instruction_extend_program_t extend_program;
2578 : fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t extend_program_checked;
2579 : };
2580 : typedef union fd_bpf_upgradeable_loader_program_instruction_inner fd_bpf_upgradeable_loader_program_instruction_inner_t;
2581 :
2582 : struct fd_bpf_upgradeable_loader_program_instruction {
2583 : uint discriminant;
2584 : fd_bpf_upgradeable_loader_program_instruction_inner_t inner;
2585 : };
2586 : typedef struct fd_bpf_upgradeable_loader_program_instruction fd_bpf_upgradeable_loader_program_instruction_t;
2587 0 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_t)
2588 :
2589 : /* Encoded Size: Dynamic */
2590 : struct fd_bpf_upgradeable_loader_state_buffer {
2591 : fd_pubkey_t * authority_address;
2592 : };
2593 : typedef struct fd_bpf_upgradeable_loader_state_buffer fd_bpf_upgradeable_loader_state_buffer_t;
2594 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_BUFFER_ALIGN alignof(fd_bpf_upgradeable_loader_state_buffer_t)
2595 :
2596 : /* Encoded Size: Fixed (32 bytes) */
2597 : struct fd_bpf_upgradeable_loader_state_program {
2598 : fd_pubkey_t programdata_address;
2599 : };
2600 : typedef struct fd_bpf_upgradeable_loader_state_program fd_bpf_upgradeable_loader_state_program_t;
2601 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_ALIGN alignof(fd_bpf_upgradeable_loader_state_program_t)
2602 :
2603 : /* Encoded Size: Dynamic */
2604 : struct fd_bpf_upgradeable_loader_state_program_data {
2605 : ulong slot;
2606 : fd_pubkey_t * upgrade_authority_address;
2607 : };
2608 : typedef struct fd_bpf_upgradeable_loader_state_program_data fd_bpf_upgradeable_loader_state_program_data_t;
2609 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_DATA_ALIGN alignof(fd_bpf_upgradeable_loader_state_program_data_t)
2610 :
2611 : union fd_bpf_upgradeable_loader_state_inner {
2612 : fd_bpf_upgradeable_loader_state_buffer_t buffer;
2613 : fd_bpf_upgradeable_loader_state_program_t program;
2614 : fd_bpf_upgradeable_loader_state_program_data_t program_data;
2615 : };
2616 : typedef union fd_bpf_upgradeable_loader_state_inner fd_bpf_upgradeable_loader_state_inner_t;
2617 :
2618 : struct fd_bpf_upgradeable_loader_state {
2619 : uint discriminant;
2620 : fd_bpf_upgradeable_loader_state_inner_t inner;
2621 : };
2622 : typedef struct fd_bpf_upgradeable_loader_state fd_bpf_upgradeable_loader_state_t;
2623 0 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_ALIGN alignof(fd_bpf_upgradeable_loader_state_t)
2624 :
2625 : /* https://github.com/anza-xyz/agave/blob/v2.1.4/sdk/program/src/loader_v4.rs#L33-L43 */
2626 : /* Encoded Size: Fixed (48 bytes) */
2627 : struct fd_loader_v4_state {
2628 : ulong slot;
2629 : fd_pubkey_t authority_address_or_next_version;
2630 : ulong status;
2631 : };
2632 : typedef struct fd_loader_v4_state fd_loader_v4_state_t;
2633 : #define FD_LOADER_V4_STATE_ALIGN alignof(fd_loader_v4_state_t)
2634 :
2635 : /* https://github.com/firedancer-io/solana/blob/f4b7c54f9e021b40cfc7cbd32dc12b19dedbe791/ledger/src/blockstore_meta.rs#L178 */
2636 : /* Encoded Size: Fixed (33 bytes) */
2637 : struct fd_frozen_hash_status {
2638 : fd_hash_t frozen_hash;
2639 : uchar is_duplicate_confirmed;
2640 : };
2641 : typedef struct fd_frozen_hash_status fd_frozen_hash_status_t;
2642 : #define FD_FROZEN_HASH_STATUS_ALIGN alignof(fd_frozen_hash_status_t)
2643 :
2644 : union fd_frozen_hash_versioned_inner {
2645 : fd_frozen_hash_status_t current;
2646 : };
2647 : typedef union fd_frozen_hash_versioned_inner fd_frozen_hash_versioned_inner_t;
2648 :
2649 : /* https://github.com/firedancer-io/solana/blob/f4b7c54f9e021b40cfc7cbd32dc12b19dedbe791/ledger/src/blockstore_meta.rs#L157 */
2650 : struct fd_frozen_hash_versioned {
2651 : uint discriminant;
2652 : fd_frozen_hash_versioned_inner_t inner;
2653 : };
2654 : typedef struct fd_frozen_hash_versioned fd_frozen_hash_versioned_t;
2655 0 : #define FD_FROZEN_HASH_VERSIONED_ALIGN alignof(fd_frozen_hash_versioned_t)
2656 :
2657 : /* Encoded Size: Dynamic */
2658 : struct fd_lookup_table_meta {
2659 : ulong deactivation_slot;
2660 : ulong last_extended_slot;
2661 : uchar last_extended_slot_start_index;
2662 : fd_pubkey_t authority;
2663 : uchar has_authority;
2664 : ushort _padding;
2665 : };
2666 : typedef struct fd_lookup_table_meta fd_lookup_table_meta_t;
2667 : #define FD_LOOKUP_TABLE_META_ALIGN alignof(fd_lookup_table_meta_t)
2668 :
2669 : /* Encoded Size: Dynamic */
2670 : struct fd_address_lookup_table {
2671 : fd_lookup_table_meta_t meta;
2672 : };
2673 : typedef struct fd_address_lookup_table fd_address_lookup_table_t;
2674 : #define FD_ADDRESS_LOOKUP_TABLE_ALIGN alignof(fd_address_lookup_table_t)
2675 :
2676 : union fd_address_lookup_table_state_inner {
2677 : fd_address_lookup_table_t lookup_table;
2678 : };
2679 : typedef union fd_address_lookup_table_state_inner fd_address_lookup_table_state_inner_t;
2680 :
2681 : struct fd_address_lookup_table_state {
2682 : uint discriminant;
2683 : fd_address_lookup_table_state_inner_t inner;
2684 : };
2685 : typedef struct fd_address_lookup_table_state fd_address_lookup_table_state_t;
2686 : #define FD_ADDRESS_LOOKUP_TABLE_STATE_ALIGN alignof(fd_address_lookup_table_state_t)
2687 :
2688 : /* https://github.com/solana-labs/solana/blob/52616cf7aa424a80f770e5ec3f2cd49d1cfeb845/gossip/src/ping_pong.rs#L22 */
2689 : /* Encoded Size: Fixed (128 bytes) */
2690 : struct fd_gossip_ping {
2691 : fd_pubkey_t from;
2692 : fd_hash_t token;
2693 : fd_signature_t signature;
2694 : };
2695 : typedef struct fd_gossip_ping fd_gossip_ping_t;
2696 : #define FD_GOSSIP_PING_ALIGN alignof(fd_gossip_ping_t)
2697 :
2698 : union fd_gossip_ip_addr_inner {
2699 : fd_gossip_ip4_addr_t ip4;
2700 : fd_gossip_ip6_addr_t ip6;
2701 : };
2702 : typedef union fd_gossip_ip_addr_inner fd_gossip_ip_addr_inner_t;
2703 :
2704 : /* https://doc.rust-lang.org/beta/src/core/net/socket_addr.rs.html#33 */
2705 : struct fd_gossip_ip_addr {
2706 : uint discriminant;
2707 : fd_gossip_ip_addr_inner_t inner;
2708 : };
2709 : typedef struct fd_gossip_ip_addr fd_gossip_ip_addr_t;
2710 6 : #define FD_GOSSIP_IP_ADDR_ALIGN alignof(fd_gossip_ip_addr_t)
2711 :
2712 : /* Encoded Size: Dynamic */
2713 : struct fd_gossip_prune_data {
2714 : fd_pubkey_t pubkey;
2715 : ulong prunes_len;
2716 : fd_pubkey_t * prunes;
2717 : fd_signature_t signature;
2718 : fd_pubkey_t destination;
2719 : ulong wallclock;
2720 : };
2721 : typedef struct fd_gossip_prune_data fd_gossip_prune_data_t;
2722 : #define FD_GOSSIP_PRUNE_DATA_ALIGN alignof(fd_gossip_prune_data_t)
2723 :
2724 : /* Encoded Size: Dynamic */
2725 : struct fd_gossip_prune_sign_data {
2726 : fd_pubkey_t pubkey;
2727 : ulong prunes_len;
2728 : fd_pubkey_t * prunes;
2729 : fd_pubkey_t destination;
2730 : ulong wallclock;
2731 : };
2732 : typedef struct fd_gossip_prune_sign_data fd_gossip_prune_sign_data_t;
2733 : #define FD_GOSSIP_PRUNE_SIGN_DATA_ALIGN alignof(fd_gossip_prune_sign_data_t)
2734 :
2735 : /* Encoded Size: Dynamic */
2736 : struct fd_gossip_prune_sign_data_with_prefix {
2737 : ulong prefix_len;
2738 : uchar* prefix;
2739 : fd_gossip_prune_sign_data_t data;
2740 : };
2741 : typedef struct fd_gossip_prune_sign_data_with_prefix fd_gossip_prune_sign_data_with_prefix_t;
2742 : #define FD_GOSSIP_PRUNE_SIGN_DATA_WITH_PREFIX_ALIGN alignof(fd_gossip_prune_sign_data_with_prefix_t)
2743 :
2744 : /* Encoded Size: Dynamic */
2745 : struct fd_gossip_socket_addr_old {
2746 : fd_gossip_ip_addr_t addr;
2747 : ushort port;
2748 : };
2749 : typedef struct fd_gossip_socket_addr_old fd_gossip_socket_addr_old_t;
2750 : #define FD_GOSSIP_SOCKET_ADDR_OLD_ALIGN alignof(fd_gossip_socket_addr_old_t)
2751 :
2752 : /* Encoded Size: Dynamic */
2753 : struct fd_gossip_socket_addr_ip4 {
2754 : fd_gossip_ip4_addr_t addr;
2755 : ushort port;
2756 : };
2757 : typedef struct fd_gossip_socket_addr_ip4 fd_gossip_socket_addr_ip4_t;
2758 : #define FD_GOSSIP_SOCKET_ADDR_IP4_ALIGN alignof(fd_gossip_socket_addr_ip4_t)
2759 :
2760 : /* https://doc.rust-lang.org/beta/src/core/net/socket_addr.rs.html#147 */
2761 : /* Encoded Size: Fixed (18 bytes) */
2762 : struct fd_gossip_socket_addr_ip6 {
2763 : fd_gossip_ip6_addr_t addr;
2764 : ushort port;
2765 : };
2766 : typedef struct fd_gossip_socket_addr_ip6 fd_gossip_socket_addr_ip6_t;
2767 : #define FD_GOSSIP_SOCKET_ADDR_IP6_ALIGN alignof(fd_gossip_socket_addr_ip6_t)
2768 :
2769 : union fd_gossip_socket_addr_inner {
2770 : fd_gossip_socket_addr_ip4_t ip4;
2771 : fd_gossip_socket_addr_ip6_t ip6;
2772 : };
2773 : typedef union fd_gossip_socket_addr_inner fd_gossip_socket_addr_inner_t;
2774 :
2775 : /* https://doc.rust-lang.org/beta/src/core/net/socket_addr.rs.html#33 */
2776 : struct fd_gossip_socket_addr {
2777 : uint discriminant;
2778 : fd_gossip_socket_addr_inner_t inner;
2779 : };
2780 : typedef struct fd_gossip_socket_addr fd_gossip_socket_addr_t;
2781 : #define FD_GOSSIP_SOCKET_ADDR_ALIGN alignof(fd_gossip_socket_addr_t)
2782 :
2783 : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/gossip/src/legacy_contact_info.rs#L14 */
2784 : /* Encoded Size: Dynamic */
2785 : struct fd_gossip_contact_info_v1 {
2786 : fd_pubkey_t id;
2787 : fd_gossip_socket_addr_t gossip;
2788 : fd_gossip_socket_addr_t tvu;
2789 : fd_gossip_socket_addr_t tvu_fwd;
2790 : fd_gossip_socket_addr_t repair;
2791 : fd_gossip_socket_addr_t tpu;
2792 : fd_gossip_socket_addr_t tpu_fwd;
2793 : fd_gossip_socket_addr_t tpu_vote;
2794 : fd_gossip_socket_addr_t rpc;
2795 : fd_gossip_socket_addr_t rpc_pubsub;
2796 : fd_gossip_socket_addr_t serve_repair;
2797 : ulong wallclock;
2798 : ushort shred_version;
2799 : };
2800 : typedef struct fd_gossip_contact_info_v1 fd_gossip_contact_info_v1_t;
2801 : #define FD_GOSSIP_CONTACT_INFO_V1_ALIGN alignof(fd_gossip_contact_info_v1_t)
2802 :
2803 : /* Encoded Size: Dynamic */
2804 : struct fd_gossip_vote {
2805 : uchar index;
2806 : fd_pubkey_t from;
2807 : fd_flamenco_txn_t txn;
2808 : ulong wallclock;
2809 : };
2810 : typedef struct fd_gossip_vote fd_gossip_vote_t;
2811 : #define FD_GOSSIP_VOTE_ALIGN alignof(fd_gossip_vote_t)
2812 :
2813 : struct fd_gossip_deprecated_compression_type {
2814 : uint discriminant;
2815 : };
2816 : typedef struct fd_gossip_deprecated_compression_type fd_gossip_deprecated_compression_type_t;
2817 : #define FD_GOSSIP_DEPRECATED_COMPRESSION_TYPE_ALIGN alignof(fd_gossip_deprecated_compression_type_t)
2818 :
2819 : /* Encoded Size: Dynamic */
2820 : struct fd_gossip_deprecated_epoch_incomplete_slots {
2821 : ulong first;
2822 : fd_gossip_deprecated_compression_type_t compression;
2823 : ulong compressed_list_len;
2824 : uchar* compressed_list;
2825 : };
2826 : typedef struct fd_gossip_deprecated_epoch_incomplete_slots fd_gossip_deprecated_epoch_incomplete_slots_t;
2827 0 : #define FD_GOSSIP_DEPRECATED_EPOCH_INCOMPLETE_SLOTS_ALIGN alignof(fd_gossip_deprecated_epoch_incomplete_slots_t)
2828 :
2829 : /* Encoded Size: Dynamic */
2830 : struct fd_gossip_lowest_slot {
2831 : uchar u8;
2832 : fd_pubkey_t from;
2833 : ulong root;
2834 : ulong lowest;
2835 : ulong slots_len;
2836 : ulong* slots;
2837 : ulong stash_len;
2838 : fd_gossip_deprecated_epoch_incomplete_slots_t * stash;
2839 : ulong wallclock;
2840 : };
2841 : typedef struct fd_gossip_lowest_slot fd_gossip_lowest_slot_t;
2842 : #define FD_GOSSIP_LOWEST_SLOT_ALIGN alignof(fd_gossip_lowest_slot_t)
2843 :
2844 : /* Encoded Size: Dynamic */
2845 : struct fd_gossip_slot_hashes {
2846 : fd_pubkey_t from;
2847 : ulong hashes_len;
2848 : fd_slot_hash_t * hashes;
2849 : ulong wallclock;
2850 : };
2851 : typedef struct fd_gossip_slot_hashes fd_gossip_slot_hashes_t;
2852 : #define FD_GOSSIP_SLOT_HASHES_ALIGN alignof(fd_gossip_slot_hashes_t)
2853 :
2854 : /* Encoded Size: Dynamic */
2855 : struct fd_gossip_slots {
2856 : ulong first_slot;
2857 : ulong num;
2858 : uchar has_slots;
2859 : ulong slots_bitvec_len;
2860 : uchar* slots_bitvec;
2861 : ulong slots_len;
2862 : };
2863 : typedef struct fd_gossip_slots fd_gossip_slots_t;
2864 : #define FD_GOSSIP_SLOTS_ALIGN alignof(fd_gossip_slots_t)
2865 :
2866 : /* Encoded Size: Dynamic */
2867 : struct fd_gossip_flate2_slots {
2868 : ulong first_slot;
2869 : ulong num;
2870 : ulong compressed_len;
2871 : uchar* compressed;
2872 : };
2873 : typedef struct fd_gossip_flate2_slots fd_gossip_flate2_slots_t;
2874 : #define FD_GOSSIP_FLATE2_SLOTS_ALIGN alignof(fd_gossip_flate2_slots_t)
2875 :
2876 : union fd_gossip_slots_enum_inner {
2877 : fd_gossip_flate2_slots_t flate2;
2878 : fd_gossip_slots_t uncompressed;
2879 : };
2880 : typedef union fd_gossip_slots_enum_inner fd_gossip_slots_enum_inner_t;
2881 :
2882 : struct fd_gossip_slots_enum {
2883 : uint discriminant;
2884 : fd_gossip_slots_enum_inner_t inner;
2885 : };
2886 : typedef struct fd_gossip_slots_enum fd_gossip_slots_enum_t;
2887 0 : #define FD_GOSSIP_SLOTS_ENUM_ALIGN alignof(fd_gossip_slots_enum_t)
2888 :
2889 : /* Encoded Size: Dynamic */
2890 : struct fd_gossip_epoch_slots {
2891 : uchar u8;
2892 : fd_pubkey_t from;
2893 : ulong slots_len;
2894 : fd_gossip_slots_enum_t * slots;
2895 : ulong wallclock;
2896 : };
2897 : typedef struct fd_gossip_epoch_slots fd_gossip_epoch_slots_t;
2898 : #define FD_GOSSIP_EPOCH_SLOTS_ALIGN alignof(fd_gossip_epoch_slots_t)
2899 :
2900 : /* Encoded Size: Dynamic */
2901 : struct fd_gossip_version_v1 {
2902 : fd_pubkey_t from;
2903 : ulong wallclock;
2904 : ushort major;
2905 : ushort minor;
2906 : ushort patch;
2907 : uint commit;
2908 : uchar has_commit;
2909 : };
2910 : typedef struct fd_gossip_version_v1 fd_gossip_version_v1_t;
2911 : #define FD_GOSSIP_VERSION_V1_ALIGN alignof(fd_gossip_version_v1_t)
2912 :
2913 : /* Encoded Size: Dynamic */
2914 : struct fd_gossip_version_v2 {
2915 : fd_pubkey_t from;
2916 : ulong wallclock;
2917 : ushort major;
2918 : ushort minor;
2919 : ushort patch;
2920 : uint commit;
2921 : uchar has_commit;
2922 : uint feature_set;
2923 : };
2924 : typedef struct fd_gossip_version_v2 fd_gossip_version_v2_t;
2925 : #define FD_GOSSIP_VERSION_V2_ALIGN alignof(fd_gossip_version_v2_t)
2926 :
2927 : /* Encoded Size: Dynamic */
2928 : struct fd_gossip_version_v3 {
2929 : ushort major;
2930 : ushort minor;
2931 : ushort patch;
2932 : uint commit;
2933 : uint feature_set;
2934 : ushort client;
2935 : };
2936 : typedef struct fd_gossip_version_v3 fd_gossip_version_v3_t;
2937 : #define FD_GOSSIP_VERSION_V3_ALIGN alignof(fd_gossip_version_v3_t)
2938 :
2939 : /* Encoded Size: Fixed (56 bytes) */
2940 : struct fd_gossip_node_instance {
2941 : fd_pubkey_t from;
2942 : ulong wallclock;
2943 : ulong timestamp;
2944 : ulong token;
2945 : };
2946 : typedef struct fd_gossip_node_instance fd_gossip_node_instance_t;
2947 : #define FD_GOSSIP_NODE_INSTANCE_ALIGN alignof(fd_gossip_node_instance_t)
2948 :
2949 : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/gossip/src/duplicate_shred.rs#L25 */
2950 : /* Encoded Size: Dynamic */
2951 : struct fd_gossip_duplicate_shred {
2952 : ushort duplicate_shred_index;
2953 : fd_pubkey_t from;
2954 : ulong wallclock;
2955 : ulong slot;
2956 : uint _unused;
2957 : uchar _unused_shred_type;
2958 : uchar num_chunks;
2959 : uchar chunk_index;
2960 : ulong chunk_len;
2961 : uchar* chunk;
2962 : };
2963 : typedef struct fd_gossip_duplicate_shred fd_gossip_duplicate_shred_t;
2964 : #define FD_GOSSIP_DUPLICATE_SHRED_ALIGN alignof(fd_gossip_duplicate_shred_t)
2965 :
2966 : /* Encoded Size: Dynamic */
2967 : struct fd_gossip_incremental_snapshot_hashes {
2968 : fd_pubkey_t from;
2969 : fd_slot_hash_t base_hash;
2970 : ulong hashes_len;
2971 : fd_slot_hash_t * hashes;
2972 : ulong wallclock;
2973 : };
2974 : typedef struct fd_gossip_incremental_snapshot_hashes fd_gossip_incremental_snapshot_hashes_t;
2975 : #define FD_GOSSIP_INCREMENTAL_SNAPSHOT_HASHES_ALIGN alignof(fd_gossip_incremental_snapshot_hashes_t)
2976 :
2977 : /* Encoded Size: Dynamic */
2978 : struct fd_gossip_socket_entry {
2979 : uchar key;
2980 : uchar index;
2981 : ushort offset;
2982 : };
2983 : typedef struct fd_gossip_socket_entry fd_gossip_socket_entry_t;
2984 6 : #define FD_GOSSIP_SOCKET_ENTRY_ALIGN alignof(fd_gossip_socket_entry_t)
2985 :
2986 : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/gossip/src/contact_info.rs#L85 */
2987 : /* Encoded Size: Dynamic */
2988 : struct fd_gossip_contact_info_v2 {
2989 : fd_pubkey_t from;
2990 : ulong wallclock;
2991 : ulong outset;
2992 : ushort shred_version;
2993 : fd_gossip_version_v3_t version;
2994 : ushort addrs_len;
2995 : fd_gossip_ip_addr_t * addrs;
2996 : ushort sockets_len;
2997 : fd_gossip_socket_entry_t * sockets;
2998 : ushort extensions_len;
2999 : uint* extensions;
3000 : };
3001 : typedef struct fd_gossip_contact_info_v2 fd_gossip_contact_info_v2_t;
3002 : #define FD_GOSSIP_CONTACT_INFO_V2_ALIGN alignof(fd_gossip_contact_info_v2_t)
3003 :
3004 : /* Encoded Size: Dynamic */
3005 : struct fd_restart_run_length_encoding_inner {
3006 : ushort bits;
3007 : };
3008 : typedef struct fd_restart_run_length_encoding_inner fd_restart_run_length_encoding_inner_t;
3009 0 : #define FD_RESTART_RUN_LENGTH_ENCODING_INNER_ALIGN alignof(fd_restart_run_length_encoding_inner_t)
3010 :
3011 : /* Encoded Size: Dynamic */
3012 : struct fd_restart_run_length_encoding {
3013 : ulong offsets_len;
3014 : fd_restart_run_length_encoding_inner_t * offsets;
3015 : };
3016 : typedef struct fd_restart_run_length_encoding fd_restart_run_length_encoding_t;
3017 : #define FD_RESTART_RUN_LENGTH_ENCODING_ALIGN alignof(fd_restart_run_length_encoding_t)
3018 :
3019 : /* Encoded Size: Dynamic */
3020 : struct fd_restart_raw_offsets {
3021 : uchar has_offsets;
3022 : ulong offsets_bitvec_len;
3023 : uchar* offsets_bitvec;
3024 : ulong offsets_len;
3025 : };
3026 : typedef struct fd_restart_raw_offsets fd_restart_raw_offsets_t;
3027 : #define FD_RESTART_RAW_OFFSETS_ALIGN alignof(fd_restart_raw_offsets_t)
3028 :
3029 : union fd_restart_slots_offsets_inner {
3030 : fd_restart_run_length_encoding_t run_length_encoding;
3031 : fd_restart_raw_offsets_t raw_offsets;
3032 : };
3033 : typedef union fd_restart_slots_offsets_inner fd_restart_slots_offsets_inner_t;
3034 :
3035 : struct fd_restart_slots_offsets {
3036 : uint discriminant;
3037 : fd_restart_slots_offsets_inner_t inner;
3038 : };
3039 : typedef struct fd_restart_slots_offsets fd_restart_slots_offsets_t;
3040 : #define FD_RESTART_SLOTS_OFFSETS_ALIGN alignof(fd_restart_slots_offsets_t)
3041 :
3042 : /* Encoded Size: Dynamic */
3043 : struct fd_gossip_restart_last_voted_fork_slots {
3044 : fd_pubkey_t from;
3045 : ulong wallclock;
3046 : fd_restart_slots_offsets_t offsets;
3047 : ulong last_voted_slot;
3048 : fd_hash_t last_voted_hash;
3049 : ushort shred_version;
3050 : };
3051 : typedef struct fd_gossip_restart_last_voted_fork_slots fd_gossip_restart_last_voted_fork_slots_t;
3052 : #define FD_GOSSIP_RESTART_LAST_VOTED_FORK_SLOTS_ALIGN alignof(fd_gossip_restart_last_voted_fork_slots_t)
3053 :
3054 : /* Encoded Size: Fixed (90 bytes) */
3055 : struct fd_gossip_restart_heaviest_fork {
3056 : fd_pubkey_t from;
3057 : ulong wallclock;
3058 : ulong last_slot;
3059 : fd_hash_t last_slot_hash;
3060 : ulong observed_stake;
3061 : ushort shred_version;
3062 : };
3063 : typedef struct fd_gossip_restart_heaviest_fork fd_gossip_restart_heaviest_fork_t;
3064 : #define FD_GOSSIP_RESTART_HEAVIEST_FORK_ALIGN alignof(fd_gossip_restart_heaviest_fork_t)
3065 :
3066 : union fd_crds_data_inner {
3067 : fd_gossip_contact_info_v1_t contact_info_v1;
3068 : fd_gossip_vote_t vote;
3069 : fd_gossip_lowest_slot_t lowest_slot;
3070 : fd_gossip_slot_hashes_t snapshot_hashes;
3071 : fd_gossip_slot_hashes_t accounts_hashes;
3072 : fd_gossip_epoch_slots_t epoch_slots;
3073 : fd_gossip_version_v1_t version_v1;
3074 : fd_gossip_version_v2_t version_v2;
3075 : fd_gossip_node_instance_t node_instance;
3076 : fd_gossip_duplicate_shred_t duplicate_shred;
3077 : fd_gossip_incremental_snapshot_hashes_t incremental_snapshot_hashes;
3078 : fd_gossip_contact_info_v2_t contact_info_v2;
3079 : fd_gossip_restart_last_voted_fork_slots_t restart_last_voted_fork_slots;
3080 : fd_gossip_restart_heaviest_fork_t restart_heaviest_fork;
3081 : };
3082 : typedef union fd_crds_data_inner fd_crds_data_inner_t;
3083 :
3084 : struct fd_crds_data {
3085 : uint discriminant;
3086 : fd_crds_data_inner_t inner;
3087 : };
3088 : typedef struct fd_crds_data fd_crds_data_t;
3089 : #define FD_CRDS_DATA_ALIGN alignof(fd_crds_data_t)
3090 :
3091 : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/bloom/src/bloom.rs#L26 */
3092 : /* Encoded Size: Dynamic */
3093 : struct fd_crds_bloom {
3094 : ulong keys_len;
3095 : ulong* keys;
3096 : uchar has_bits;
3097 : ulong bits_bitvec_len;
3098 : ulong* bits_bitvec;
3099 : ulong bits_len;
3100 : ulong num_bits_set;
3101 : };
3102 : typedef struct fd_crds_bloom fd_crds_bloom_t;
3103 : #define FD_CRDS_BLOOM_ALIGN alignof(fd_crds_bloom_t)
3104 :
3105 : /* https://github.com/firedancer-io/agave/blob/540d5bc56cd44e3cc61b179bd52e9a782a2c99e4/gossip/src/crds_gossip_pull.rs#L60 */
3106 : /* Encoded Size: Dynamic */
3107 : struct fd_crds_filter {
3108 : fd_crds_bloom_t filter;
3109 : ulong mask;
3110 : uint mask_bits;
3111 : };
3112 : typedef struct fd_crds_filter fd_crds_filter_t;
3113 : #define FD_CRDS_FILTER_ALIGN alignof(fd_crds_filter_t)
3114 :
3115 : /* Encoded Size: Dynamic */
3116 : struct fd_crds_value {
3117 : fd_signature_t signature;
3118 : fd_crds_data_t data;
3119 : };
3120 : typedef struct fd_crds_value fd_crds_value_t;
3121 36 : #define FD_CRDS_VALUE_ALIGN alignof(fd_crds_value_t)
3122 :
3123 : /* Encoded Size: Dynamic */
3124 : struct fd_gossip_pull_req {
3125 : fd_crds_filter_t filter;
3126 : fd_crds_value_t value;
3127 : };
3128 : typedef struct fd_gossip_pull_req fd_gossip_pull_req_t;
3129 : #define FD_GOSSIP_PULL_REQ_ALIGN alignof(fd_gossip_pull_req_t)
3130 :
3131 : /* Encoded Size: Dynamic */
3132 : struct fd_gossip_pull_resp {
3133 : fd_pubkey_t pubkey;
3134 : ulong crds_len;
3135 : fd_crds_value_t * crds;
3136 : };
3137 : typedef struct fd_gossip_pull_resp fd_gossip_pull_resp_t;
3138 : #define FD_GOSSIP_PULL_RESP_ALIGN alignof(fd_gossip_pull_resp_t)
3139 :
3140 : /* Encoded Size: Dynamic */
3141 : struct fd_gossip_push_msg {
3142 : fd_pubkey_t pubkey;
3143 : ulong crds_len;
3144 : fd_crds_value_t * crds;
3145 : };
3146 : typedef struct fd_gossip_push_msg fd_gossip_push_msg_t;
3147 : #define FD_GOSSIP_PUSH_MSG_ALIGN alignof(fd_gossip_push_msg_t)
3148 :
3149 : /* Encoded Size: Dynamic */
3150 : struct fd_gossip_prune_msg {
3151 : fd_pubkey_t pubkey;
3152 : fd_gossip_prune_data_t data;
3153 : };
3154 : typedef struct fd_gossip_prune_msg fd_gossip_prune_msg_t;
3155 : #define FD_GOSSIP_PRUNE_MSG_ALIGN alignof(fd_gossip_prune_msg_t)
3156 :
3157 : union fd_gossip_msg_inner {
3158 : fd_gossip_pull_req_t pull_req;
3159 : fd_gossip_pull_resp_t pull_resp;
3160 : fd_gossip_push_msg_t push_msg;
3161 : fd_gossip_prune_msg_t prune_msg;
3162 : fd_gossip_ping_t ping;
3163 : fd_gossip_ping_t pong;
3164 : };
3165 : typedef union fd_gossip_msg_inner fd_gossip_msg_inner_t;
3166 :
3167 : /* UDP payloads of the Solana gossip protocol */
3168 : struct fd_gossip_msg {
3169 : uint discriminant;
3170 : fd_gossip_msg_inner_t inner;
3171 : };
3172 : typedef struct fd_gossip_msg fd_gossip_msg_t;
3173 42 : #define FD_GOSSIP_MSG_ALIGN alignof(fd_gossip_msg_t)
3174 :
3175 : /* Encoded Size: Fixed (9 bytes) */
3176 : struct fd_addrlut_create {
3177 : ulong recent_slot;
3178 : uchar bump_seed;
3179 : };
3180 : typedef struct fd_addrlut_create fd_addrlut_create_t;
3181 : #define FD_ADDRLUT_CREATE_ALIGN alignof(fd_addrlut_create_t)
3182 :
3183 : /* Encoded Size: Dynamic */
3184 : struct fd_addrlut_extend {
3185 : ulong new_addrs_len;
3186 : fd_pubkey_t * new_addrs;
3187 : };
3188 : typedef struct fd_addrlut_extend fd_addrlut_extend_t;
3189 : #define FD_ADDRLUT_EXTEND_ALIGN alignof(fd_addrlut_extend_t)
3190 :
3191 : union fd_addrlut_instruction_inner {
3192 : fd_addrlut_create_t create_lut;
3193 : fd_addrlut_extend_t extend_lut;
3194 : };
3195 : typedef union fd_addrlut_instruction_inner fd_addrlut_instruction_inner_t;
3196 :
3197 : /* https://github.com/solana-labs/solana/blob/fb80288f885a62bcd923f4c9579fd0edeafaff9b/sdk/program/src/address_lookup_table/instruction.rs#L13 */
3198 : struct fd_addrlut_instruction {
3199 : uint discriminant;
3200 : fd_addrlut_instruction_inner_t inner;
3201 : };
3202 : typedef struct fd_addrlut_instruction fd_addrlut_instruction_t;
3203 0 : #define FD_ADDRLUT_INSTRUCTION_ALIGN alignof(fd_addrlut_instruction_t)
3204 :
3205 : /* https://github.com/anza-xyz/agave/blob/v2.2.7/core/src/repair/serve_repair.rs#L204-L210 */
3206 : /* Encoded Size: Fixed (140 bytes) */
3207 : struct fd_repair_request_header {
3208 : fd_signature_t signature;
3209 : fd_pubkey_t sender;
3210 : fd_pubkey_t recipient;
3211 : ulong timestamp;
3212 : uint nonce;
3213 : };
3214 : typedef struct fd_repair_request_header fd_repair_request_header_t;
3215 : #define FD_REPAIR_REQUEST_HEADER_ALIGN alignof(fd_repair_request_header_t)
3216 :
3217 : /* Encoded Size: Fixed (156 bytes) */
3218 : struct fd_repair_window_index {
3219 : fd_repair_request_header_t header;
3220 : ulong slot;
3221 : ulong shred_index;
3222 : };
3223 : typedef struct fd_repair_window_index fd_repair_window_index_t;
3224 : #define FD_REPAIR_WINDOW_INDEX_ALIGN alignof(fd_repair_window_index_t)
3225 :
3226 : /* Encoded Size: Fixed (156 bytes) */
3227 : struct fd_repair_highest_window_index {
3228 : fd_repair_request_header_t header;
3229 : ulong slot;
3230 : ulong shred_index;
3231 : };
3232 : typedef struct fd_repair_highest_window_index fd_repair_highest_window_index_t;
3233 : #define FD_REPAIR_HIGHEST_WINDOW_INDEX_ALIGN alignof(fd_repair_highest_window_index_t)
3234 :
3235 : /* Encoded Size: Fixed (148 bytes) */
3236 : struct fd_repair_orphan {
3237 : fd_repair_request_header_t header;
3238 : ulong slot;
3239 : };
3240 : typedef struct fd_repair_orphan fd_repair_orphan_t;
3241 : #define FD_REPAIR_ORPHAN_ALIGN alignof(fd_repair_orphan_t)
3242 :
3243 : /* Encoded Size: Fixed (148 bytes) */
3244 : struct fd_repair_ancestor_hashes {
3245 : fd_repair_request_header_t header;
3246 : ulong slot;
3247 : };
3248 : typedef struct fd_repair_ancestor_hashes fd_repair_ancestor_hashes_t;
3249 : #define FD_REPAIR_ANCESTOR_HASHES_ALIGN alignof(fd_repair_ancestor_hashes_t)
3250 :
3251 : union fd_repair_protocol_inner {
3252 : fd_gossip_ping_t pong;
3253 : fd_repair_window_index_t window_index;
3254 : fd_repair_highest_window_index_t highest_window_index;
3255 : fd_repair_orphan_t orphan;
3256 : fd_repair_ancestor_hashes_t ancestor_hashes;
3257 : };
3258 : typedef union fd_repair_protocol_inner fd_repair_protocol_inner_t;
3259 :
3260 : struct fd_repair_protocol {
3261 : uint discriminant;
3262 : fd_repair_protocol_inner_t inner;
3263 : };
3264 : typedef struct fd_repair_protocol fd_repair_protocol_t;
3265 18 : #define FD_REPAIR_PROTOCOL_ALIGN alignof(fd_repair_protocol_t)
3266 :
3267 : union fd_repair_response_inner {
3268 : fd_gossip_ping_t ping;
3269 : };
3270 : typedef union fd_repair_response_inner fd_repair_response_inner_t;
3271 :
3272 : struct fd_repair_response {
3273 : uint discriminant;
3274 : fd_repair_response_inner_t inner;
3275 : };
3276 : typedef struct fd_repair_response fd_repair_response_t;
3277 0 : #define FD_REPAIR_RESPONSE_ALIGN alignof(fd_repair_response_t)
3278 :
3279 : union fd_instr_error_enum_inner {
3280 : uint custom;
3281 : char* borsh_io_error;
3282 : };
3283 : typedef union fd_instr_error_enum_inner fd_instr_error_enum_inner_t;
3284 :
3285 : struct fd_instr_error_enum {
3286 : uint discriminant;
3287 : fd_instr_error_enum_inner_t inner;
3288 : };
3289 : typedef struct fd_instr_error_enum fd_instr_error_enum_t;
3290 : #define FD_INSTR_ERROR_ENUM_ALIGN alignof(fd_instr_error_enum_t)
3291 :
3292 : /* Encoded Size: Dynamic */
3293 : struct fd_txn_instr_error {
3294 : uchar instr_idx;
3295 : fd_instr_error_enum_t error;
3296 : };
3297 : typedef struct fd_txn_instr_error fd_txn_instr_error_t;
3298 : #define FD_TXN_INSTR_ERROR_ALIGN alignof(fd_txn_instr_error_t)
3299 :
3300 : union fd_txn_error_enum_inner {
3301 : fd_txn_instr_error_t instruction_error;
3302 : uchar duplicate_instruction;
3303 : uchar insufficient_funds_for_rent;
3304 : uchar program_execution_temporarily_restricted;
3305 : };
3306 : typedef union fd_txn_error_enum_inner fd_txn_error_enum_inner_t;
3307 :
3308 : struct fd_txn_error_enum {
3309 : uint discriminant;
3310 : fd_txn_error_enum_inner_t inner;
3311 : };
3312 : typedef struct fd_txn_error_enum fd_txn_error_enum_t;
3313 : #define FD_TXN_ERROR_ENUM_ALIGN alignof(fd_txn_error_enum_t)
3314 :
3315 : union fd_txn_result_inner {
3316 : fd_txn_error_enum_t error;
3317 : };
3318 : typedef union fd_txn_result_inner fd_txn_result_inner_t;
3319 :
3320 : struct fd_txn_result {
3321 : uint discriminant;
3322 : fd_txn_result_inner_t inner;
3323 : };
3324 : typedef struct fd_txn_result fd_txn_result_t;
3325 : #define FD_TXN_RESULT_ALIGN alignof(fd_txn_result_t)
3326 :
3327 : /* Encoded Size: Dynamic */
3328 : struct fd_cache_status {
3329 : uchar key_slice[20];
3330 : fd_txn_result_t result;
3331 : };
3332 : typedef struct fd_cache_status fd_cache_status_t;
3333 0 : #define FD_CACHE_STATUS_ALIGN alignof(fd_cache_status_t)
3334 :
3335 : /* Encoded Size: Dynamic */
3336 : struct fd_status_value {
3337 : ulong txn_idx;
3338 : ulong statuses_len;
3339 : fd_cache_status_t * statuses;
3340 : };
3341 : typedef struct fd_status_value fd_status_value_t;
3342 : #define FD_STATUS_VALUE_ALIGN alignof(fd_status_value_t)
3343 :
3344 : /* Encoded Size: Dynamic */
3345 : struct fd_status_pair {
3346 : fd_hash_t hash;
3347 : fd_status_value_t value;
3348 : };
3349 : typedef struct fd_status_pair fd_status_pair_t;
3350 0 : #define FD_STATUS_PAIR_ALIGN alignof(fd_status_pair_t)
3351 :
3352 : /* Encoded Size: Dynamic */
3353 : struct fd_slot_delta {
3354 : ulong slot;
3355 : uchar is_root;
3356 : ulong slot_delta_vec_len;
3357 : fd_status_pair_t * slot_delta_vec;
3358 : };
3359 : typedef struct fd_slot_delta fd_slot_delta_t;
3360 0 : #define FD_SLOT_DELTA_ALIGN alignof(fd_slot_delta_t)
3361 :
3362 : /* Encoded Size: Dynamic */
3363 : struct fd_bank_slot_deltas {
3364 : ulong slot_deltas_len;
3365 : fd_slot_delta_t * slot_deltas;
3366 : };
3367 : typedef struct fd_bank_slot_deltas fd_bank_slot_deltas_t;
3368 : #define FD_BANK_SLOT_DELTAS_ALIGN alignof(fd_bank_slot_deltas_t)
3369 :
3370 : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L85 */
3371 : /* Encoded Size: Fixed (60 bytes) */
3372 : struct fd_pubkey_rewardinfo_pair {
3373 : fd_pubkey_t pubkey;
3374 : fd_reward_info_t reward_info;
3375 : };
3376 : typedef struct fd_pubkey_rewardinfo_pair fd_pubkey_rewardinfo_pair_t;
3377 : #define FD_PUBKEY_REWARDINFO_PAIR_ALIGN alignof(fd_pubkey_rewardinfo_pair_t)
3378 :
3379 : /* Encoded Size: Dynamic */
3380 : struct fd_optional_account {
3381 : fd_solana_account_t * account;
3382 : };
3383 : typedef struct fd_optional_account fd_optional_account_t;
3384 : #define FD_OPTIONAL_ACCOUNT_ALIGN alignof(fd_optional_account_t)
3385 :
3386 : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/programs/stake/src/points.rs#L27 */
3387 : /* Encoded Size: Fixed (25 bytes) */
3388 : struct fd_calculated_stake_points {
3389 : uint128 points;
3390 : ulong new_credits_observed;
3391 : uchar force_credits_update_with_skipped_reward;
3392 : };
3393 : typedef struct fd_calculated_stake_points fd_calculated_stake_points_t;
3394 : #define FD_CALCULATED_STAKE_POINTS_ALIGN alignof(fd_calculated_stake_points_t)
3395 :
3396 : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/programs/stake/src/rewards.rs#L24 */
3397 : /* Encoded Size: Fixed (24 bytes) */
3398 : struct fd_calculated_stake_rewards {
3399 : ulong staker_rewards;
3400 : ulong voter_rewards;
3401 : ulong new_credits_observed;
3402 : };
3403 : typedef struct fd_calculated_stake_rewards fd_calculated_stake_rewards_t;
3404 : #define FD_CALCULATED_STAKE_REWARDS_ALIGN alignof(fd_calculated_stake_rewards_t)
3405 :
3406 : /* https://github.com/anza-xyz/agave/blob/v2.0.3/ledger/src/blockstore_meta.rs#L150-L156 */
3407 : /* Encoded Size: Dynamic */
3408 : struct fd_duplicate_slot_proof {
3409 : ulong shred1_len;
3410 : uchar* shred1;
3411 : ulong shred2_len;
3412 : uchar* shred2;
3413 : };
3414 : typedef struct fd_duplicate_slot_proof fd_duplicate_slot_proof_t;
3415 : #define FD_DUPLICATE_SLOT_PROOF_ALIGN alignof(fd_duplicate_slot_proof_t)
3416 :
3417 : /* Encoded Size: Fixed (104 bytes) */
3418 : struct fd_epoch_info_pair {
3419 : fd_pubkey_t account;
3420 : fd_stake_t stake;
3421 : };
3422 : typedef struct fd_epoch_info_pair fd_epoch_info_pair_t;
3423 0 : #define FD_EPOCH_INFO_PAIR_ALIGN alignof(fd_epoch_info_pair_t)
3424 :
3425 : /* Encoded Size: Dynamic */
3426 : struct fd_vote_info_pair {
3427 : fd_pubkey_t account;
3428 : fd_vote_state_versioned_t state;
3429 : };
3430 : typedef struct fd_vote_info_pair fd_vote_info_pair_t;
3431 : #define FD_VOTE_INFO_PAIR_ALIGN alignof(fd_vote_info_pair_t)
3432 :
3433 : typedef struct fd_vote_info_pair_t_mapnode fd_vote_info_pair_t_mapnode_t;
3434 : #define REDBLK_T fd_vote_info_pair_t_mapnode_t
3435 : #define REDBLK_NAME fd_vote_info_pair_t_map
3436 : #define REDBLK_IMPL_STYLE 1
3437 : #include "../../util/tmpl/fd_redblack.c"
3438 : struct fd_vote_info_pair_t_mapnode {
3439 : fd_vote_info_pair_t elem;
3440 : ulong redblack_parent;
3441 : ulong redblack_left;
3442 : ulong redblack_right;
3443 : int redblack_color;
3444 : };
3445 : static inline fd_vote_info_pair_t_mapnode_t *
3446 0 : fd_vote_info_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
3447 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
3448 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_info_pair_t_map_align() );
3449 0 : void * map_mem = *alloc_mem;
3450 0 : *alloc_mem = (uchar *)*alloc_mem + fd_vote_info_pair_t_map_footprint( len );
3451 0 : return fd_vote_info_pair_t_map_join( fd_vote_info_pair_t_map_new( map_mem, len ) );
3452 0 : }
3453 : /* Encoded Size: Dynamic */
3454 : struct fd_epoch_info {
3455 : ulong stake_infos_len;
3456 : fd_epoch_info_pair_t * stake_infos;
3457 : fd_vote_info_pair_t_mapnode_t * vote_states_pool;
3458 : fd_vote_info_pair_t_mapnode_t * vote_states_root;
3459 : ulong stake_infos_new_keys_start_idx;
3460 : };
3461 : typedef struct fd_epoch_info fd_epoch_info_t;
3462 : #define FD_EPOCH_INFO_ALIGN alignof(fd_epoch_info_t)
3463 :
3464 : /* https://github.com/anza-xyz/agave/blob/v2.2.0/cost-model/src/transaction_cost.rs#L153-L161 */
3465 : /* Encoded Size: Fixed (48 bytes) */
3466 : struct fd_usage_cost_details {
3467 : ulong signature_cost;
3468 : ulong write_lock_cost;
3469 : ulong data_bytes_cost;
3470 : ulong programs_execution_cost;
3471 : ulong loaded_accounts_data_size_cost;
3472 : ulong allocated_accounts_data_size;
3473 : };
3474 : typedef struct fd_usage_cost_details fd_usage_cost_details_t;
3475 : #define FD_USAGE_COST_DETAILS_ALIGN alignof(fd_usage_cost_details_t)
3476 :
3477 : union fd_transaction_cost_inner {
3478 : fd_usage_cost_details_t transaction;
3479 : };
3480 : typedef union fd_transaction_cost_inner fd_transaction_cost_inner_t;
3481 :
3482 : /* https://github.com/anza-xyz/agave/blob/v2.2.0/cost-model/src/transaction_cost.rs#L20-L23 */
3483 : struct fd_transaction_cost {
3484 : uint discriminant;
3485 : fd_transaction_cost_inner_t inner;
3486 : };
3487 : typedef struct fd_transaction_cost fd_transaction_cost_t;
3488 : #define FD_TRANSACTION_COST_ALIGN alignof(fd_transaction_cost_t)
3489 :
3490 : /* Encoded Size: Fixed (40 bytes) */
3491 : struct fd_account_costs_pair {
3492 : fd_pubkey_t key;
3493 : ulong cost;
3494 : };
3495 : typedef struct fd_account_costs_pair fd_account_costs_pair_t;
3496 : #define FD_ACCOUNT_COSTS_PAIR_ALIGN alignof(fd_account_costs_pair_t)
3497 :
3498 : typedef struct fd_account_costs_pair_t_mapnode fd_account_costs_pair_t_mapnode_t;
3499 : #define REDBLK_T fd_account_costs_pair_t_mapnode_t
3500 : #define REDBLK_NAME fd_account_costs_pair_t_map
3501 : #define REDBLK_IMPL_STYLE 1
3502 : #include "../../util/tmpl/fd_redblack.c"
3503 : struct fd_account_costs_pair_t_mapnode {
3504 : fd_account_costs_pair_t elem;
3505 : ulong redblack_parent;
3506 : ulong redblack_left;
3507 : ulong redblack_right;
3508 : int redblack_color;
3509 : };
3510 : static inline fd_account_costs_pair_t_mapnode_t *
3511 0 : fd_account_costs_pair_t_map_join_new( void * * alloc_mem, ulong len ) {
3512 0 : if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
3513 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_account_costs_pair_t_map_align() );
3514 0 : void * map_mem = *alloc_mem;
3515 0 : *alloc_mem = (uchar *)*alloc_mem + fd_account_costs_pair_t_map_footprint( len );
3516 0 : return fd_account_costs_pair_t_map_join( fd_account_costs_pair_t_map_new( map_mem, len ) );
3517 0 : }
3518 : /* Encoded Size: Dynamic */
3519 : struct fd_account_costs {
3520 : fd_account_costs_pair_t_mapnode_t * account_costs_pool;
3521 : fd_account_costs_pair_t_mapnode_t * account_costs_root;
3522 : };
3523 : typedef struct fd_account_costs fd_account_costs_t;
3524 : #define FD_ACCOUNT_COSTS_ALIGN alignof(fd_account_costs_t)
3525 :
3526 : /* https://github.com/anza-xyz/agave/blob/v2.2.0/cost-model/src/cost_tracker.rs#L62-L79 */
3527 : /* Encoded Size: Dynamic */
3528 : struct fd_cost_tracker {
3529 : ulong account_cost_limit;
3530 : ulong block_cost_limit;
3531 : ulong vote_cost_limit;
3532 : fd_account_costs_t cost_by_writable_accounts;
3533 : ulong block_cost;
3534 : ulong vote_cost;
3535 : ulong transaction_count;
3536 : ulong allocated_accounts_data_size;
3537 : ulong transaction_signature_count;
3538 : ulong secp256k1_instruction_signature_count;
3539 : ulong ed25519_instruction_signature_count;
3540 : ulong secp256r1_instruction_signature_count;
3541 : };
3542 : typedef struct fd_cost_tracker fd_cost_tracker_t;
3543 0 : #define FD_COST_TRACKER_ALIGN alignof(fd_cost_tracker_t)
3544 :
3545 : /* Encoded Size: Fixed (16 bytes) */
3546 : struct fd_rent_paying {
3547 : ulong lamports;
3548 : ulong data_size;
3549 : };
3550 : typedef struct fd_rent_paying fd_rent_paying_t;
3551 : #define FD_RENT_PAYING_ALIGN alignof(fd_rent_paying_t)
3552 :
3553 : union fd_rent_state_inner {
3554 : fd_rent_paying_t rent_paying;
3555 : };
3556 : typedef union fd_rent_state_inner fd_rent_state_inner_t;
3557 :
3558 : /* https://github.com/anza-xyz/agave/blob/v2.2.13/svm-rent-collector/src/rent_state.rs#L5-L15 */
3559 : struct fd_rent_state {
3560 : uint discriminant;
3561 : fd_rent_state_inner_t inner;
3562 : };
3563 : typedef struct fd_rent_state fd_rent_state_t;
3564 : #define FD_RENT_STATE_ALIGN alignof(fd_rent_state_t)
3565 :
3566 :
3567 : FD_PROTOTYPES_BEGIN
3568 :
3569 24 : static inline void fd_hash_new( fd_hash_t * self ) { (void)self; }
3570 : int fd_hash_encode( fd_hash_t const * self, fd_bincode_encode_ctx_t * ctx );
3571 : void fd_hash_walk( void * w, fd_hash_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
3572 0 : static inline ulong fd_hash_size( fd_hash_t const * self ) { (void)self; return sizeof(fd_hash_t); }
3573 0 : static inline ulong fd_hash_align( void ) { return alignof(fd_hash_t); }
3574 : int fd_hash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3575 : void * fd_hash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3576 :
3577 27 : static inline void fd_signature_new( fd_signature_t * self ) { (void)self; }
3578 : int fd_signature_encode( fd_signature_t const * self, fd_bincode_encode_ctx_t * ctx );
3579 : void fd_signature_walk( void * w, fd_signature_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
3580 0 : static inline ulong fd_signature_size( fd_signature_t const * self ) { (void)self; return sizeof(fd_signature_t); }
3581 0 : static inline ulong fd_signature_align( void ) { return alignof(fd_signature_t); }
3582 : int fd_signature_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3583 : void * fd_signature_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3584 :
3585 0 : static inline void fd_gossip_ip4_addr_new( fd_gossip_ip4_addr_t * self ) { (void)self; }
3586 : int fd_gossip_ip4_addr_encode( fd_gossip_ip4_addr_t const * self, fd_bincode_encode_ctx_t * ctx );
3587 : void fd_gossip_ip4_addr_walk( void * w, fd_gossip_ip4_addr_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
3588 0 : static inline ulong fd_gossip_ip4_addr_size( fd_gossip_ip4_addr_t const * self ) { (void)self; return sizeof(fd_gossip_ip4_addr_t); }
3589 0 : static inline ulong fd_gossip_ip4_addr_align( void ) { return alignof(fd_gossip_ip4_addr_t); }
3590 : int fd_gossip_ip4_addr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3591 : void * fd_gossip_ip4_addr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3592 :
3593 0 : static inline void fd_gossip_ip6_addr_new( fd_gossip_ip6_addr_t * self ) { (void)self; }
3594 : int fd_gossip_ip6_addr_encode( fd_gossip_ip6_addr_t const * self, fd_bincode_encode_ctx_t * ctx );
3595 : void fd_gossip_ip6_addr_walk( void * w, fd_gossip_ip6_addr_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
3596 0 : static inline ulong fd_gossip_ip6_addr_size( fd_gossip_ip6_addr_t const * self ) { (void)self; return sizeof(fd_gossip_ip6_addr_t); }
3597 0 : static inline ulong fd_gossip_ip6_addr_align( void ) { return alignof(fd_gossip_ip6_addr_t); }
3598 : int fd_gossip_ip6_addr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3599 : void * fd_gossip_ip6_addr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3600 :
3601 : void fd_feature_new( fd_feature_t * self );
3602 : int fd_feature_encode( fd_feature_t const * self, fd_bincode_encode_ctx_t * ctx );
3603 : void fd_feature_walk( void * w, fd_feature_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3604 : ulong fd_feature_size( fd_feature_t const * self );
3605 0 : static inline ulong fd_feature_align( void ) { return FD_FEATURE_ALIGN; }
3606 : int fd_feature_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3607 : void * fd_feature_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3608 :
3609 0 : static inline void fd_fee_calculator_new( fd_fee_calculator_t * self ) { fd_memset( self, 0, sizeof(fd_fee_calculator_t) ); }
3610 : int fd_fee_calculator_encode( fd_fee_calculator_t const * self, fd_bincode_encode_ctx_t * ctx );
3611 : void fd_fee_calculator_walk( void * w, fd_fee_calculator_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3612 0 : static inline ulong fd_fee_calculator_size( fd_fee_calculator_t const * self ) { (void)self; return 8UL; }
3613 0 : static inline ulong fd_fee_calculator_align( void ) { return FD_FEE_CALCULATOR_ALIGN; }
3614 0 : static inline int fd_fee_calculator_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3615 0 : *total_sz += sizeof(fd_fee_calculator_t);
3616 0 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3617 0 : return 0;
3618 0 : }
3619 : void * fd_fee_calculator_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3620 :
3621 0 : static inline void fd_hash_age_new( fd_hash_age_t * self ) { fd_memset( self, 0, sizeof(fd_hash_age_t) ); }
3622 : int fd_hash_age_encode( fd_hash_age_t const * self, fd_bincode_encode_ctx_t * ctx );
3623 : void fd_hash_age_walk( void * w, fd_hash_age_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3624 0 : static inline ulong fd_hash_age_size( fd_hash_age_t const * self ) { (void)self; return 24UL; }
3625 0 : static inline ulong fd_hash_age_align( void ) { return FD_HASH_AGE_ALIGN; }
3626 0 : static inline int fd_hash_age_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3627 0 : *total_sz += sizeof(fd_hash_age_t);
3628 0 : if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3629 0 : return 0;
3630 0 : }
3631 : void * fd_hash_age_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3632 :
3633 0 : static inline void fd_hash_hash_age_pair_new( fd_hash_hash_age_pair_t * self ) { fd_memset( self, 0, sizeof(fd_hash_hash_age_pair_t) ); }
3634 : int fd_hash_hash_age_pair_encode( fd_hash_hash_age_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3635 : void fd_hash_hash_age_pair_walk( void * w, fd_hash_hash_age_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3636 0 : static inline ulong fd_hash_hash_age_pair_size( fd_hash_hash_age_pair_t const * self ) { (void)self; return 56UL; }
3637 0 : static inline ulong fd_hash_hash_age_pair_align( void ) { return FD_HASH_HASH_AGE_PAIR_ALIGN; }
3638 0 : static inline int fd_hash_hash_age_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3639 0 : *total_sz += sizeof(fd_hash_hash_age_pair_t);
3640 0 : if( (ulong)ctx->data + 56UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3641 0 : return 0;
3642 0 : }
3643 : void * fd_hash_hash_age_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3644 :
3645 : void fd_block_hash_vec_new( fd_block_hash_vec_t * self );
3646 : int fd_block_hash_vec_encode( fd_block_hash_vec_t const * self, fd_bincode_encode_ctx_t * ctx );
3647 : void fd_block_hash_vec_walk( void * w, fd_block_hash_vec_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3648 : ulong fd_block_hash_vec_size( fd_block_hash_vec_t const * self );
3649 0 : static inline ulong fd_block_hash_vec_align( void ) { return FD_BLOCK_HASH_VEC_ALIGN; }
3650 : int fd_block_hash_vec_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3651 : void * fd_block_hash_vec_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3652 : void * fd_block_hash_vec_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3653 : int fd_block_hash_vec_encode_global( fd_block_hash_vec_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3654 : ulong fd_block_hash_vec_size_global( fd_block_hash_vec_global_t const * self );
3655 :
3656 12 : static inline void fd_fee_rate_governor_new( fd_fee_rate_governor_t * self ) { fd_memset( self, 0, sizeof(fd_fee_rate_governor_t) ); }
3657 : int fd_fee_rate_governor_encode( fd_fee_rate_governor_t const * self, fd_bincode_encode_ctx_t * ctx );
3658 : void fd_fee_rate_governor_walk( void * w, fd_fee_rate_governor_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3659 0 : static inline ulong fd_fee_rate_governor_size( fd_fee_rate_governor_t const * self ) { (void)self; return 33UL; }
3660 0 : static inline ulong fd_fee_rate_governor_align( void ) { return FD_FEE_RATE_GOVERNOR_ALIGN; }
3661 0 : static inline int fd_fee_rate_governor_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3662 0 : *total_sz += sizeof(fd_fee_rate_governor_t);
3663 0 : if( (ulong)ctx->data + 33UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3664 0 : return 0;
3665 0 : }
3666 : void * fd_fee_rate_governor_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3667 :
3668 0 : static inline void fd_slot_pair_new( fd_slot_pair_t * self ) { fd_memset( self, 0, sizeof(fd_slot_pair_t) ); }
3669 : int fd_slot_pair_encode( fd_slot_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3670 : void fd_slot_pair_walk( void * w, fd_slot_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3671 0 : static inline ulong fd_slot_pair_size( fd_slot_pair_t const * self ) { (void)self; return 16UL; }
3672 0 : static inline ulong fd_slot_pair_align( void ) { return FD_SLOT_PAIR_ALIGN; }
3673 0 : static inline int fd_slot_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3674 0 : *total_sz += sizeof(fd_slot_pair_t);
3675 0 : if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3676 0 : return 0;
3677 0 : }
3678 : void * fd_slot_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3679 :
3680 : void fd_hard_forks_new( fd_hard_forks_t * self );
3681 : int fd_hard_forks_encode( fd_hard_forks_t const * self, fd_bincode_encode_ctx_t * ctx );
3682 : void fd_hard_forks_walk( void * w, fd_hard_forks_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3683 : ulong fd_hard_forks_size( fd_hard_forks_t const * self );
3684 0 : static inline ulong fd_hard_forks_align( void ) { return FD_HARD_FORKS_ALIGN; }
3685 : int fd_hard_forks_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3686 : void * fd_hard_forks_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3687 : void * fd_hard_forks_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3688 : int fd_hard_forks_encode_global( fd_hard_forks_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3689 : ulong fd_hard_forks_size_global( fd_hard_forks_global_t const * self );
3690 :
3691 12 : static inline void fd_inflation_new( fd_inflation_t * self ) { fd_memset( self, 0, sizeof(fd_inflation_t) ); }
3692 : int fd_inflation_encode( fd_inflation_t const * self, fd_bincode_encode_ctx_t * ctx );
3693 : void fd_inflation_walk( void * w, fd_inflation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3694 0 : static inline ulong fd_inflation_size( fd_inflation_t const * self ) { (void)self; return 48UL; }
3695 0 : static inline ulong fd_inflation_align( void ) { return FD_INFLATION_ALIGN; }
3696 0 : static inline int fd_inflation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3697 0 : *total_sz += sizeof(fd_inflation_t);
3698 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3699 0 : return 0;
3700 0 : }
3701 : void * fd_inflation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3702 :
3703 12 : static inline void fd_rent_new( fd_rent_t * self ) { fd_memset( self, 0, sizeof(fd_rent_t) ); }
3704 : int fd_rent_encode( fd_rent_t const * self, fd_bincode_encode_ctx_t * ctx );
3705 : void fd_rent_walk( void * w, fd_rent_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3706 0 : static inline ulong fd_rent_size( fd_rent_t const * self ) { (void)self; return 17UL; }
3707 3 : static inline ulong fd_rent_align( void ) { return FD_RENT_ALIGN; }
3708 3 : static inline int fd_rent_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3709 3 : *total_sz += sizeof(fd_rent_t);
3710 3 : if( (ulong)ctx->data + 17UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3711 3 : return 0;
3712 3 : }
3713 : void * fd_rent_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3714 :
3715 : void fd_epoch_schedule_new( fd_epoch_schedule_t * self );
3716 : int fd_epoch_schedule_encode( fd_epoch_schedule_t const * self, fd_bincode_encode_ctx_t * ctx );
3717 : void fd_epoch_schedule_walk( void * w, fd_epoch_schedule_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3718 0 : static inline ulong fd_epoch_schedule_size( fd_epoch_schedule_t const * self ) { (void)self; return 33UL; }
3719 3 : static inline ulong fd_epoch_schedule_align( void ) { return FD_EPOCH_SCHEDULE_ALIGN; }
3720 : int fd_epoch_schedule_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3721 : void * fd_epoch_schedule_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3722 :
3723 : void fd_rent_collector_new( fd_rent_collector_t * self );
3724 : int fd_rent_collector_encode( fd_rent_collector_t const * self, fd_bincode_encode_ctx_t * ctx );
3725 : void fd_rent_collector_walk( void * w, fd_rent_collector_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3726 0 : static inline ulong fd_rent_collector_size( fd_rent_collector_t const * self ) { (void)self; return 66UL; }
3727 0 : static inline ulong fd_rent_collector_align( void ) { return FD_RENT_COLLECTOR_ALIGN; }
3728 : int fd_rent_collector_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3729 : void * fd_rent_collector_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3730 :
3731 0 : static inline void fd_stake_history_entry_new( fd_stake_history_entry_t * self ) { fd_memset( self, 0, sizeof(fd_stake_history_entry_t) ); }
3732 : int fd_stake_history_entry_encode( fd_stake_history_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
3733 : void fd_stake_history_entry_walk( void * w, fd_stake_history_entry_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3734 0 : static inline ulong fd_stake_history_entry_size( fd_stake_history_entry_t const * self ) { (void)self; return 24UL; }
3735 0 : static inline ulong fd_stake_history_entry_align( void ) { return FD_STAKE_HISTORY_ENTRY_ALIGN; }
3736 0 : static inline int fd_stake_history_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3737 0 : *total_sz += sizeof(fd_stake_history_entry_t);
3738 0 : if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3739 0 : return 0;
3740 0 : }
3741 : void * fd_stake_history_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3742 :
3743 7680 : static inline void fd_epoch_stake_history_entry_pair_new( fd_epoch_stake_history_entry_pair_t * self ) { fd_memset( self, 0, sizeof(fd_epoch_stake_history_entry_pair_t) ); }
3744 : int fd_epoch_stake_history_entry_pair_encode( fd_epoch_stake_history_entry_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3745 : void fd_epoch_stake_history_entry_pair_walk( void * w, fd_epoch_stake_history_entry_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3746 0 : static inline ulong fd_epoch_stake_history_entry_pair_size( fd_epoch_stake_history_entry_pair_t const * self ) { (void)self; return 32UL; }
3747 0 : static inline ulong fd_epoch_stake_history_entry_pair_align( void ) { return FD_EPOCH_STAKE_HISTORY_ENTRY_PAIR_ALIGN; }
3748 0 : static inline int fd_epoch_stake_history_entry_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3749 0 : *total_sz += sizeof(fd_epoch_stake_history_entry_pair_t);
3750 0 : if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3751 0 : return 0;
3752 0 : }
3753 : void * fd_epoch_stake_history_entry_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3754 :
3755 : void fd_stake_history_new( fd_stake_history_t * self );
3756 : int fd_stake_history_encode( fd_stake_history_t const * self, fd_bincode_encode_ctx_t * ctx );
3757 : void fd_stake_history_walk( void * w, fd_stake_history_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3758 0 : static inline ulong fd_stake_history_size( fd_stake_history_t const * self ) { (void)self; return 16392UL; }
3759 9 : static inline ulong fd_stake_history_align( void ) { return FD_STAKE_HISTORY_ALIGN; }
3760 : int fd_stake_history_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3761 : void * fd_stake_history_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3762 :
3763 : void fd_solana_account_new( fd_solana_account_t * self );
3764 : int fd_solana_account_encode( fd_solana_account_t const * self, fd_bincode_encode_ctx_t * ctx );
3765 : void fd_solana_account_walk( void * w, fd_solana_account_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3766 : ulong fd_solana_account_size( fd_solana_account_t const * self );
3767 0 : static inline ulong fd_solana_account_align( void ) { return FD_SOLANA_ACCOUNT_ALIGN; }
3768 : int fd_solana_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3769 : void * fd_solana_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3770 : void * fd_solana_account_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3771 : int fd_solana_account_encode_global( fd_solana_account_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3772 : ulong fd_solana_account_size_global( fd_solana_account_global_t const * self );
3773 :
3774 0 : static inline void fd_solana_account_stored_meta_new( fd_solana_account_stored_meta_t * self ) { fd_memset( self, 0, sizeof(fd_solana_account_stored_meta_t) ); }
3775 : int fd_solana_account_stored_meta_encode( fd_solana_account_stored_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
3776 : void fd_solana_account_stored_meta_walk( void * w, fd_solana_account_stored_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3777 0 : static inline ulong fd_solana_account_stored_meta_size( fd_solana_account_stored_meta_t const * self ) { (void)self; return 48UL; }
3778 0 : static inline ulong fd_solana_account_stored_meta_align( void ) { return FD_SOLANA_ACCOUNT_STORED_META_ALIGN; }
3779 0 : static inline int fd_solana_account_stored_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3780 0 : *total_sz += sizeof(fd_solana_account_stored_meta_t);
3781 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3782 0 : return 0;
3783 0 : }
3784 : void * fd_solana_account_stored_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3785 :
3786 : void fd_solana_account_meta_new( fd_solana_account_meta_t * self );
3787 : int fd_solana_account_meta_encode( fd_solana_account_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
3788 : void fd_solana_account_meta_walk( void * w, fd_solana_account_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3789 0 : static inline ulong fd_solana_account_meta_size( fd_solana_account_meta_t const * self ) { (void)self; return 52UL; }
3790 0 : static inline ulong fd_solana_account_meta_align( void ) { return FD_SOLANA_ACCOUNT_META_ALIGN; }
3791 : int fd_solana_account_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3792 : void * fd_solana_account_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3793 :
3794 : void fd_solana_account_hdr_new( fd_solana_account_hdr_t * self );
3795 : int fd_solana_account_hdr_encode( fd_solana_account_hdr_t const * self, fd_bincode_encode_ctx_t * ctx );
3796 : void fd_solana_account_hdr_walk( void * w, fd_solana_account_hdr_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3797 0 : static inline ulong fd_solana_account_hdr_size( fd_solana_account_hdr_t const * self ) { (void)self; return 136UL; }
3798 0 : static inline ulong fd_solana_account_hdr_align( void ) { return FD_SOLANA_ACCOUNT_HDR_ALIGN; }
3799 : int fd_solana_account_hdr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3800 : void * fd_solana_account_hdr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3801 :
3802 : void fd_account_meta_new( fd_account_meta_t * self );
3803 : int fd_account_meta_encode( fd_account_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
3804 : void fd_account_meta_walk( void * w, fd_account_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3805 0 : static inline ulong fd_account_meta_size( fd_account_meta_t const * self ) { (void)self; return 104UL; }
3806 0 : static inline ulong fd_account_meta_align( void ) { return FD_ACCOUNT_META_ALIGN; }
3807 : int fd_account_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3808 : void * fd_account_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3809 :
3810 : void fd_vote_accounts_pair_new( fd_vote_accounts_pair_t * self );
3811 : int fd_vote_accounts_pair_encode( fd_vote_accounts_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3812 : void fd_vote_accounts_pair_walk( void * w, fd_vote_accounts_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3813 : ulong fd_vote_accounts_pair_size( fd_vote_accounts_pair_t const * self );
3814 0 : static inline ulong fd_vote_accounts_pair_align( void ) { return FD_VOTE_ACCOUNTS_PAIR_ALIGN; }
3815 : int fd_vote_accounts_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3816 : void * fd_vote_accounts_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3817 : void * fd_vote_accounts_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3818 : int fd_vote_accounts_pair_encode_global( fd_vote_accounts_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3819 : ulong fd_vote_accounts_pair_size_global( fd_vote_accounts_pair_global_t const * self );
3820 :
3821 : void fd_vote_accounts_new( fd_vote_accounts_t * self );
3822 : int fd_vote_accounts_encode( fd_vote_accounts_t const * self, fd_bincode_encode_ctx_t * ctx );
3823 : void fd_vote_accounts_walk( void * w, fd_vote_accounts_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3824 : ulong fd_vote_accounts_size( fd_vote_accounts_t const * self );
3825 0 : static inline ulong fd_vote_accounts_align( void ) { return FD_VOTE_ACCOUNTS_ALIGN; }
3826 : int fd_vote_accounts_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3827 : void * fd_vote_accounts_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3828 : void * fd_vote_accounts_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3829 : int fd_vote_accounts_encode_global( fd_vote_accounts_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3830 : ulong fd_vote_accounts_size_global( fd_vote_accounts_global_t const * self );
3831 :
3832 0 : static inline void fd_account_keys_pair_new( fd_account_keys_pair_t * self ) { fd_memset( self, 0, sizeof(fd_account_keys_pair_t) ); }
3833 : int fd_account_keys_pair_encode( fd_account_keys_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3834 : void fd_account_keys_pair_walk( void * w, fd_account_keys_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3835 0 : static inline ulong fd_account_keys_pair_size( fd_account_keys_pair_t const * self ) { (void)self; return 33UL; }
3836 0 : static inline ulong fd_account_keys_pair_align( void ) { return FD_ACCOUNT_KEYS_PAIR_ALIGN; }
3837 0 : static inline int fd_account_keys_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3838 0 : *total_sz += sizeof(fd_account_keys_pair_t);
3839 0 : if( (ulong)ctx->data + 33UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3840 0 : return 0;
3841 0 : }
3842 : void * fd_account_keys_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3843 :
3844 : void fd_account_keys_new( fd_account_keys_t * self );
3845 : int fd_account_keys_encode( fd_account_keys_t const * self, fd_bincode_encode_ctx_t * ctx );
3846 : void fd_account_keys_walk( void * w, fd_account_keys_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3847 : ulong fd_account_keys_size( fd_account_keys_t const * self );
3848 0 : static inline ulong fd_account_keys_align( void ) { return FD_ACCOUNT_KEYS_ALIGN; }
3849 : int fd_account_keys_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3850 : void * fd_account_keys_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3851 : void * fd_account_keys_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3852 : int fd_account_keys_encode_global( fd_account_keys_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3853 : ulong fd_account_keys_size_global( fd_account_keys_global_t const * self );
3854 :
3855 0 : static inline void fd_delegation_new( fd_delegation_t * self ) { fd_memset( self, 0, sizeof(fd_delegation_t) ); }
3856 : int fd_delegation_encode( fd_delegation_t const * self, fd_bincode_encode_ctx_t * ctx );
3857 : void fd_delegation_walk( void * w, fd_delegation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3858 0 : static inline ulong fd_delegation_size( fd_delegation_t const * self ) { (void)self; return 64UL; }
3859 0 : static inline ulong fd_delegation_align( void ) { return FD_DELEGATION_ALIGN; }
3860 0 : static inline int fd_delegation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3861 0 : *total_sz += sizeof(fd_delegation_t);
3862 0 : if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3863 0 : return 0;
3864 0 : }
3865 : void * fd_delegation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3866 :
3867 0 : static inline void fd_delegation_pair_new( fd_delegation_pair_t * self ) { fd_memset( self, 0, sizeof(fd_delegation_pair_t) ); }
3868 : int fd_delegation_pair_encode( fd_delegation_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3869 : void fd_delegation_pair_walk( void * w, fd_delegation_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3870 0 : static inline ulong fd_delegation_pair_size( fd_delegation_pair_t const * self ) { (void)self; return 96UL; }
3871 0 : static inline ulong fd_delegation_pair_align( void ) { return FD_DELEGATION_PAIR_ALIGN; }
3872 0 : static inline int fd_delegation_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3873 0 : *total_sz += sizeof(fd_delegation_pair_t);
3874 0 : if( (ulong)ctx->data + 96UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3875 0 : return 0;
3876 0 : }
3877 : void * fd_delegation_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3878 :
3879 0 : static inline void fd_stake_new( fd_stake_t * self ) { fd_memset( self, 0, sizeof(fd_stake_t) ); }
3880 : int fd_stake_encode( fd_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
3881 : void fd_stake_walk( void * w, fd_stake_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3882 0 : static inline ulong fd_stake_size( fd_stake_t const * self ) { (void)self; return 72UL; }
3883 0 : static inline ulong fd_stake_align( void ) { return FD_STAKE_ALIGN; }
3884 0 : static inline int fd_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3885 0 : *total_sz += sizeof(fd_stake_t);
3886 0 : if( (ulong)ctx->data + 72UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3887 0 : return 0;
3888 0 : }
3889 : void * fd_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3890 :
3891 0 : static inline void fd_stake_pair_new( fd_stake_pair_t * self ) { fd_memset( self, 0, sizeof(fd_stake_pair_t) ); }
3892 : int fd_stake_pair_encode( fd_stake_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3893 : void fd_stake_pair_walk( void * w, fd_stake_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3894 0 : static inline ulong fd_stake_pair_size( fd_stake_pair_t const * self ) { (void)self; return 104UL; }
3895 0 : static inline ulong fd_stake_pair_align( void ) { return FD_STAKE_PAIR_ALIGN; }
3896 0 : static inline int fd_stake_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3897 0 : *total_sz += sizeof(fd_stake_pair_t);
3898 0 : if( (ulong)ctx->data + 104UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3899 0 : return 0;
3900 0 : }
3901 : void * fd_stake_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3902 :
3903 : void fd_stakes_new( fd_stakes_t * self );
3904 : int fd_stakes_encode( fd_stakes_t const * self, fd_bincode_encode_ctx_t * ctx );
3905 : void fd_stakes_walk( void * w, fd_stakes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3906 : ulong fd_stakes_size( fd_stakes_t const * self );
3907 0 : static inline ulong fd_stakes_align( void ) { return FD_STAKES_ALIGN; }
3908 : int fd_stakes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3909 : void * fd_stakes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3910 : void * fd_stakes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3911 : int fd_stakes_encode_global( fd_stakes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3912 : ulong fd_stakes_size_global( fd_stakes_global_t const * self );
3913 :
3914 : void fd_stakes_stake_new( fd_stakes_stake_t * self );
3915 : int fd_stakes_stake_encode( fd_stakes_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
3916 : void fd_stakes_stake_walk( void * w, fd_stakes_stake_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3917 : ulong fd_stakes_stake_size( fd_stakes_stake_t const * self );
3918 0 : static inline ulong fd_stakes_stake_align( void ) { return FD_STAKES_STAKE_ALIGN; }
3919 : int fd_stakes_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3920 : void * fd_stakes_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3921 : void * fd_stakes_stake_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3922 : int fd_stakes_stake_encode_global( fd_stakes_stake_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3923 : ulong fd_stakes_stake_size_global( fd_stakes_stake_global_t const * self );
3924 :
3925 0 : static inline void fd_bank_incremental_snapshot_persistence_new( fd_bank_incremental_snapshot_persistence_t * self ) { fd_memset( self, 0, sizeof(fd_bank_incremental_snapshot_persistence_t) ); }
3926 : int fd_bank_incremental_snapshot_persistence_encode( fd_bank_incremental_snapshot_persistence_t const * self, fd_bincode_encode_ctx_t * ctx );
3927 : void fd_bank_incremental_snapshot_persistence_walk( void * w, fd_bank_incremental_snapshot_persistence_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3928 0 : static inline ulong fd_bank_incremental_snapshot_persistence_size( fd_bank_incremental_snapshot_persistence_t const * self ) { (void)self; return 88UL; }
3929 0 : static inline ulong fd_bank_incremental_snapshot_persistence_align( void ) { return FD_BANK_INCREMENTAL_SNAPSHOT_PERSISTENCE_ALIGN; }
3930 0 : static inline int fd_bank_incremental_snapshot_persistence_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3931 0 : *total_sz += sizeof(fd_bank_incremental_snapshot_persistence_t);
3932 0 : if( (ulong)ctx->data + 88UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3933 0 : return 0;
3934 0 : }
3935 : void * fd_bank_incremental_snapshot_persistence_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3936 :
3937 : void fd_node_vote_accounts_new( fd_node_vote_accounts_t * self );
3938 : int fd_node_vote_accounts_encode( fd_node_vote_accounts_t const * self, fd_bincode_encode_ctx_t * ctx );
3939 : void fd_node_vote_accounts_walk( void * w, fd_node_vote_accounts_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3940 : ulong fd_node_vote_accounts_size( fd_node_vote_accounts_t const * self );
3941 0 : static inline ulong fd_node_vote_accounts_align( void ) { return FD_NODE_VOTE_ACCOUNTS_ALIGN; }
3942 : int fd_node_vote_accounts_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3943 : void * fd_node_vote_accounts_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3944 : void * fd_node_vote_accounts_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3945 : int fd_node_vote_accounts_encode_global( fd_node_vote_accounts_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3946 : ulong fd_node_vote_accounts_size_global( fd_node_vote_accounts_global_t const * self );
3947 :
3948 : void fd_pubkey_node_vote_accounts_pair_new( fd_pubkey_node_vote_accounts_pair_t * self );
3949 : int fd_pubkey_node_vote_accounts_pair_encode( fd_pubkey_node_vote_accounts_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3950 : void fd_pubkey_node_vote_accounts_pair_walk( void * w, fd_pubkey_node_vote_accounts_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3951 : ulong fd_pubkey_node_vote_accounts_pair_size( fd_pubkey_node_vote_accounts_pair_t const * self );
3952 0 : static inline ulong fd_pubkey_node_vote_accounts_pair_align( void ) { return FD_PUBKEY_NODE_VOTE_ACCOUNTS_PAIR_ALIGN; }
3953 : int fd_pubkey_node_vote_accounts_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3954 : void * fd_pubkey_node_vote_accounts_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3955 : void * fd_pubkey_node_vote_accounts_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3956 : int fd_pubkey_node_vote_accounts_pair_encode_global( fd_pubkey_node_vote_accounts_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3957 : ulong fd_pubkey_node_vote_accounts_pair_size_global( fd_pubkey_node_vote_accounts_pair_global_t const * self );
3958 :
3959 0 : static inline void fd_pubkey_pubkey_pair_new( fd_pubkey_pubkey_pair_t * self ) { fd_memset( self, 0, sizeof(fd_pubkey_pubkey_pair_t) ); }
3960 : int fd_pubkey_pubkey_pair_encode( fd_pubkey_pubkey_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3961 : void fd_pubkey_pubkey_pair_walk( void * w, fd_pubkey_pubkey_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3962 0 : static inline ulong fd_pubkey_pubkey_pair_size( fd_pubkey_pubkey_pair_t const * self ) { (void)self; return 64UL; }
3963 0 : static inline ulong fd_pubkey_pubkey_pair_align( void ) { return FD_PUBKEY_PUBKEY_PAIR_ALIGN; }
3964 0 : static inline int fd_pubkey_pubkey_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3965 0 : *total_sz += sizeof(fd_pubkey_pubkey_pair_t);
3966 0 : if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
3967 0 : return 0;
3968 0 : }
3969 : void * fd_pubkey_pubkey_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3970 :
3971 : void fd_epoch_stakes_new( fd_epoch_stakes_t * self );
3972 : int fd_epoch_stakes_encode( fd_epoch_stakes_t const * self, fd_bincode_encode_ctx_t * ctx );
3973 : void fd_epoch_stakes_walk( void * w, fd_epoch_stakes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3974 : ulong fd_epoch_stakes_size( fd_epoch_stakes_t const * self );
3975 0 : static inline ulong fd_epoch_stakes_align( void ) { return FD_EPOCH_STAKES_ALIGN; }
3976 : int fd_epoch_stakes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3977 : void * fd_epoch_stakes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3978 : void * fd_epoch_stakes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3979 : int fd_epoch_stakes_encode_global( fd_epoch_stakes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3980 : ulong fd_epoch_stakes_size_global( fd_epoch_stakes_global_t const * self );
3981 :
3982 : void fd_epoch_epoch_stakes_pair_new( fd_epoch_epoch_stakes_pair_t * self );
3983 : int fd_epoch_epoch_stakes_pair_encode( fd_epoch_epoch_stakes_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3984 : void fd_epoch_epoch_stakes_pair_walk( void * w, fd_epoch_epoch_stakes_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3985 : ulong fd_epoch_epoch_stakes_pair_size( fd_epoch_epoch_stakes_pair_t const * self );
3986 0 : static inline ulong fd_epoch_epoch_stakes_pair_align( void ) { return FD_EPOCH_EPOCH_STAKES_PAIR_ALIGN; }
3987 : int fd_epoch_epoch_stakes_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
3988 : void * fd_epoch_epoch_stakes_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
3989 : void * fd_epoch_epoch_stakes_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
3990 : int fd_epoch_epoch_stakes_pair_encode_global( fd_epoch_epoch_stakes_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
3991 : ulong fd_epoch_epoch_stakes_pair_size_global( fd_epoch_epoch_stakes_pair_global_t const * self );
3992 :
3993 0 : static inline void fd_pubkey_u64_pair_new( fd_pubkey_u64_pair_t * self ) { fd_memset( self, 0, sizeof(fd_pubkey_u64_pair_t) ); }
3994 : int fd_pubkey_u64_pair_encode( fd_pubkey_u64_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
3995 : void fd_pubkey_u64_pair_walk( void * w, fd_pubkey_u64_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
3996 0 : static inline ulong fd_pubkey_u64_pair_size( fd_pubkey_u64_pair_t const * self ) { (void)self; return 40UL; }
3997 0 : static inline ulong fd_pubkey_u64_pair_align( void ) { return FD_PUBKEY_U64_PAIR_ALIGN; }
3998 0 : static inline int fd_pubkey_u64_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
3999 0 : *total_sz += sizeof(fd_pubkey_u64_pair_t);
4000 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4001 0 : return 0;
4002 0 : }
4003 : void * fd_pubkey_u64_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4004 :
4005 : void fd_unused_accounts_new( fd_unused_accounts_t * self );
4006 : int fd_unused_accounts_encode( fd_unused_accounts_t const * self, fd_bincode_encode_ctx_t * ctx );
4007 : void fd_unused_accounts_walk( void * w, fd_unused_accounts_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4008 : ulong fd_unused_accounts_size( fd_unused_accounts_t const * self );
4009 0 : static inline ulong fd_unused_accounts_align( void ) { return FD_UNUSED_ACCOUNTS_ALIGN; }
4010 : int fd_unused_accounts_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4011 : void * fd_unused_accounts_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4012 : void * fd_unused_accounts_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4013 : int fd_unused_accounts_encode_global( fd_unused_accounts_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4014 : ulong fd_unused_accounts_size_global( fd_unused_accounts_global_t const * self );
4015 :
4016 : void fd_versioned_bank_new( fd_versioned_bank_t * self );
4017 : int fd_versioned_bank_encode( fd_versioned_bank_t const * self, fd_bincode_encode_ctx_t * ctx );
4018 : void fd_versioned_bank_walk( void * w, fd_versioned_bank_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4019 : ulong fd_versioned_bank_size( fd_versioned_bank_t const * self );
4020 0 : static inline ulong fd_versioned_bank_align( void ) { return FD_VERSIONED_BANK_ALIGN; }
4021 : int fd_versioned_bank_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4022 : void * fd_versioned_bank_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4023 : void * fd_versioned_bank_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4024 : int fd_versioned_bank_encode_global( fd_versioned_bank_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4025 : ulong fd_versioned_bank_size_global( fd_versioned_bank_global_t const * self );
4026 :
4027 0 : static inline void fd_bank_hash_stats_new( fd_bank_hash_stats_t * self ) { fd_memset( self, 0, sizeof(fd_bank_hash_stats_t) ); }
4028 : int fd_bank_hash_stats_encode( fd_bank_hash_stats_t const * self, fd_bincode_encode_ctx_t * ctx );
4029 : void fd_bank_hash_stats_walk( void * w, fd_bank_hash_stats_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4030 0 : static inline ulong fd_bank_hash_stats_size( fd_bank_hash_stats_t const * self ) { (void)self; return 40UL; }
4031 0 : static inline ulong fd_bank_hash_stats_align( void ) { return FD_BANK_HASH_STATS_ALIGN; }
4032 0 : static inline int fd_bank_hash_stats_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4033 0 : *total_sz += sizeof(fd_bank_hash_stats_t);
4034 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4035 0 : return 0;
4036 0 : }
4037 : void * fd_bank_hash_stats_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4038 :
4039 0 : static inline void fd_bank_hash_info_new( fd_bank_hash_info_t * self ) { fd_memset( self, 0, sizeof(fd_bank_hash_info_t) ); }
4040 : int fd_bank_hash_info_encode( fd_bank_hash_info_t const * self, fd_bincode_encode_ctx_t * ctx );
4041 : void fd_bank_hash_info_walk( void * w, fd_bank_hash_info_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4042 0 : static inline ulong fd_bank_hash_info_size( fd_bank_hash_info_t const * self ) { (void)self; return 104UL; }
4043 0 : static inline ulong fd_bank_hash_info_align( void ) { return FD_BANK_HASH_INFO_ALIGN; }
4044 0 : static inline int fd_bank_hash_info_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4045 0 : *total_sz += sizeof(fd_bank_hash_info_t);
4046 0 : if( (ulong)ctx->data + 104UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4047 0 : return 0;
4048 0 : }
4049 : void * fd_bank_hash_info_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4050 :
4051 0 : static inline void fd_slot_map_pair_new( fd_slot_map_pair_t * self ) { fd_memset( self, 0, sizeof(fd_slot_map_pair_t) ); }
4052 : int fd_slot_map_pair_encode( fd_slot_map_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
4053 : void fd_slot_map_pair_walk( void * w, fd_slot_map_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4054 0 : static inline ulong fd_slot_map_pair_size( fd_slot_map_pair_t const * self ) { (void)self; return 40UL; }
4055 0 : static inline ulong fd_slot_map_pair_align( void ) { return FD_SLOT_MAP_PAIR_ALIGN; }
4056 0 : static inline int fd_slot_map_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4057 0 : *total_sz += sizeof(fd_slot_map_pair_t);
4058 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4059 0 : return 0;
4060 0 : }
4061 : void * fd_slot_map_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4062 :
4063 0 : static inline void fd_snapshot_acc_vec_new( fd_snapshot_acc_vec_t * self ) { fd_memset( self, 0, sizeof(fd_snapshot_acc_vec_t) ); }
4064 : int fd_snapshot_acc_vec_encode( fd_snapshot_acc_vec_t const * self, fd_bincode_encode_ctx_t * ctx );
4065 : void fd_snapshot_acc_vec_walk( void * w, fd_snapshot_acc_vec_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4066 0 : static inline ulong fd_snapshot_acc_vec_size( fd_snapshot_acc_vec_t const * self ) { (void)self; return 16UL; }
4067 0 : static inline ulong fd_snapshot_acc_vec_align( void ) { return FD_SNAPSHOT_ACC_VEC_ALIGN; }
4068 0 : static inline int fd_snapshot_acc_vec_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4069 0 : *total_sz += sizeof(fd_snapshot_acc_vec_t);
4070 0 : if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4071 0 : return 0;
4072 0 : }
4073 : void * fd_snapshot_acc_vec_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4074 :
4075 : void fd_snapshot_slot_acc_vecs_new( fd_snapshot_slot_acc_vecs_t * self );
4076 : int fd_snapshot_slot_acc_vecs_encode( fd_snapshot_slot_acc_vecs_t const * self, fd_bincode_encode_ctx_t * ctx );
4077 : void fd_snapshot_slot_acc_vecs_walk( void * w, fd_snapshot_slot_acc_vecs_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4078 : ulong fd_snapshot_slot_acc_vecs_size( fd_snapshot_slot_acc_vecs_t const * self );
4079 0 : static inline ulong fd_snapshot_slot_acc_vecs_align( void ) { return FD_SNAPSHOT_SLOT_ACC_VECS_ALIGN; }
4080 : int fd_snapshot_slot_acc_vecs_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4081 : void * fd_snapshot_slot_acc_vecs_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4082 : void * fd_snapshot_slot_acc_vecs_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4083 : int fd_snapshot_slot_acc_vecs_encode_global( fd_snapshot_slot_acc_vecs_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4084 : ulong fd_snapshot_slot_acc_vecs_size_global( fd_snapshot_slot_acc_vecs_global_t const * self );
4085 :
4086 0 : static inline void fd_reward_type_new_disc( fd_reward_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
4087 0 : static inline void fd_reward_type_new( fd_reward_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
4088 : int fd_reward_type_encode( fd_reward_type_t const * self, fd_bincode_encode_ctx_t * ctx );
4089 : void fd_reward_type_walk( void * w, fd_reward_type_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4090 : ulong fd_reward_type_size( fd_reward_type_t const * self );
4091 0 : static inline ulong fd_reward_type_align( void ) { return FD_REWARD_TYPE_ALIGN; }
4092 : int fd_reward_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4093 : void * fd_reward_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4094 :
4095 : FD_FN_PURE uchar fd_reward_type_is_fee( fd_reward_type_t const * self );
4096 : FD_FN_PURE uchar fd_reward_type_is_rent( fd_reward_type_t const * self );
4097 : FD_FN_PURE uchar fd_reward_type_is_staking( fd_reward_type_t const * self );
4098 : FD_FN_PURE uchar fd_reward_type_is_voting( fd_reward_type_t const * self );
4099 : enum {
4100 : fd_reward_type_enum_fee = 0,
4101 : fd_reward_type_enum_rent = 1,
4102 : fd_reward_type_enum_staking = 2,
4103 : fd_reward_type_enum_voting = 3,
4104 : };
4105 : void fd_solana_accounts_db_fields_new( fd_solana_accounts_db_fields_t * self );
4106 : int fd_solana_accounts_db_fields_encode( fd_solana_accounts_db_fields_t const * self, fd_bincode_encode_ctx_t * ctx );
4107 : void fd_solana_accounts_db_fields_walk( void * w, fd_solana_accounts_db_fields_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4108 : ulong fd_solana_accounts_db_fields_size( fd_solana_accounts_db_fields_t const * self );
4109 0 : static inline ulong fd_solana_accounts_db_fields_align( void ) { return FD_SOLANA_ACCOUNTS_DB_FIELDS_ALIGN; }
4110 : int fd_solana_accounts_db_fields_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4111 : void * fd_solana_accounts_db_fields_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4112 : void * fd_solana_accounts_db_fields_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4113 : int fd_solana_accounts_db_fields_encode_global( fd_solana_accounts_db_fields_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4114 : ulong fd_solana_accounts_db_fields_size_global( fd_solana_accounts_db_fields_global_t const * self );
4115 :
4116 : void fd_versioned_epoch_stakes_current_new( fd_versioned_epoch_stakes_current_t * self );
4117 : int fd_versioned_epoch_stakes_current_encode( fd_versioned_epoch_stakes_current_t const * self, fd_bincode_encode_ctx_t * ctx );
4118 : void fd_versioned_epoch_stakes_current_walk( void * w, fd_versioned_epoch_stakes_current_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4119 : ulong fd_versioned_epoch_stakes_current_size( fd_versioned_epoch_stakes_current_t const * self );
4120 0 : static inline ulong fd_versioned_epoch_stakes_current_align( void ) { return FD_VERSIONED_EPOCH_STAKES_CURRENT_ALIGN; }
4121 : int fd_versioned_epoch_stakes_current_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4122 : void * fd_versioned_epoch_stakes_current_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4123 : void * fd_versioned_epoch_stakes_current_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4124 : int fd_versioned_epoch_stakes_current_encode_global( fd_versioned_epoch_stakes_current_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4125 : ulong fd_versioned_epoch_stakes_current_size_global( fd_versioned_epoch_stakes_current_global_t const * self );
4126 :
4127 : void fd_versioned_epoch_stakes_new_disc( fd_versioned_epoch_stakes_t * self, uint discriminant );
4128 : void fd_versioned_epoch_stakes_new( fd_versioned_epoch_stakes_t * self );
4129 : int fd_versioned_epoch_stakes_encode( fd_versioned_epoch_stakes_t const * self, fd_bincode_encode_ctx_t * ctx );
4130 : void fd_versioned_epoch_stakes_walk( void * w, fd_versioned_epoch_stakes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4131 : ulong fd_versioned_epoch_stakes_size( fd_versioned_epoch_stakes_t const * self );
4132 0 : static inline ulong fd_versioned_epoch_stakes_align( void ) { return FD_VERSIONED_EPOCH_STAKES_ALIGN; }
4133 : int fd_versioned_epoch_stakes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4134 : void * fd_versioned_epoch_stakes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4135 : void * fd_versioned_epoch_stakes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4136 : int fd_versioned_epoch_stakes_encode_global( fd_versioned_epoch_stakes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4137 : ulong fd_versioned_epoch_stakes_size_global( fd_versioned_epoch_stakes_global_t const * self );
4138 :
4139 : FD_FN_PURE uchar fd_versioned_epoch_stakes_is_Current( fd_versioned_epoch_stakes_t const * self );
4140 : enum {
4141 : fd_versioned_epoch_stakes_enum_Current = 0,
4142 : };
4143 : void fd_versioned_epoch_stakes_pair_new( fd_versioned_epoch_stakes_pair_t * self );
4144 : int fd_versioned_epoch_stakes_pair_encode( fd_versioned_epoch_stakes_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
4145 : void fd_versioned_epoch_stakes_pair_walk( void * w, fd_versioned_epoch_stakes_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4146 : ulong fd_versioned_epoch_stakes_pair_size( fd_versioned_epoch_stakes_pair_t const * self );
4147 0 : static inline ulong fd_versioned_epoch_stakes_pair_align( void ) { return FD_VERSIONED_EPOCH_STAKES_PAIR_ALIGN; }
4148 : int fd_versioned_epoch_stakes_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4149 : void * fd_versioned_epoch_stakes_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4150 : void * fd_versioned_epoch_stakes_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4151 : int fd_versioned_epoch_stakes_pair_encode_global( fd_versioned_epoch_stakes_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4152 : ulong fd_versioned_epoch_stakes_pair_size_global( fd_versioned_epoch_stakes_pair_global_t const * self );
4153 :
4154 : void fd_reward_info_new( fd_reward_info_t * self );
4155 : int fd_reward_info_encode( fd_reward_info_t const * self, fd_bincode_encode_ctx_t * ctx );
4156 : void fd_reward_info_walk( void * w, fd_reward_info_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4157 0 : static inline ulong fd_reward_info_size( fd_reward_info_t const * self ) { (void)self; return 28UL; }
4158 0 : static inline ulong fd_reward_info_align( void ) { return FD_REWARD_INFO_ALIGN; }
4159 : int fd_reward_info_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4160 : void * fd_reward_info_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4161 :
4162 0 : static inline void fd_slot_lthash_new( fd_slot_lthash_t * self ) { fd_memset( self, 0, sizeof(fd_slot_lthash_t) ); }
4163 : int fd_slot_lthash_encode( fd_slot_lthash_t const * self, fd_bincode_encode_ctx_t * ctx );
4164 : void fd_slot_lthash_walk( void * w, fd_slot_lthash_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4165 0 : static inline ulong fd_slot_lthash_size( fd_slot_lthash_t const * self ) { (void)self; return 2048UL; }
4166 0 : static inline ulong fd_slot_lthash_align( void ) { return FD_SLOT_LTHASH_ALIGN; }
4167 0 : static inline int fd_slot_lthash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4168 0 : *total_sz += sizeof(fd_slot_lthash_t);
4169 0 : if( (ulong)ctx->data + 2048UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4170 0 : return 0;
4171 0 : }
4172 : void * fd_slot_lthash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4173 :
4174 : void fd_solana_manifest_new( fd_solana_manifest_t * self );
4175 : int fd_solana_manifest_encode( fd_solana_manifest_t const * self, fd_bincode_encode_ctx_t * ctx );
4176 : void fd_solana_manifest_walk( void * w, fd_solana_manifest_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4177 : ulong fd_solana_manifest_size( fd_solana_manifest_t const * self );
4178 0 : static inline ulong fd_solana_manifest_align( void ) { return FD_SOLANA_MANIFEST_ALIGN; }
4179 : int fd_solana_manifest_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4180 : void * fd_solana_manifest_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4181 : void * fd_solana_manifest_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4182 : int fd_solana_manifest_encode_global( fd_solana_manifest_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4183 : ulong fd_solana_manifest_size_global( fd_solana_manifest_global_t const * self );
4184 :
4185 12 : static inline void fd_rust_duration_new( fd_rust_duration_t * self ) { fd_memset( self, 0, sizeof(fd_rust_duration_t) ); }
4186 : int fd_rust_duration_encode( fd_rust_duration_t const * self, fd_bincode_encode_ctx_t * ctx );
4187 : void fd_rust_duration_walk( void * w, fd_rust_duration_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4188 0 : static inline ulong fd_rust_duration_size( fd_rust_duration_t const * self ) { (void)self; return 12UL; }
4189 0 : static inline ulong fd_rust_duration_align( void ) { return FD_RUST_DURATION_ALIGN; }
4190 0 : static inline int fd_rust_duration_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4191 0 : *total_sz += sizeof(fd_rust_duration_t);
4192 0 : if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4193 0 : return 0;
4194 0 : }
4195 : void * fd_rust_duration_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4196 :
4197 : void fd_poh_config_new( fd_poh_config_t * self );
4198 : int fd_poh_config_encode( fd_poh_config_t const * self, fd_bincode_encode_ctx_t * ctx );
4199 : void fd_poh_config_walk( void * w, fd_poh_config_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4200 : ulong fd_poh_config_size( fd_poh_config_t const * self );
4201 0 : static inline ulong fd_poh_config_align( void ) { return FD_POH_CONFIG_ALIGN; }
4202 : int fd_poh_config_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4203 : void * fd_poh_config_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4204 :
4205 : void fd_string_pubkey_pair_new( fd_string_pubkey_pair_t * self );
4206 : int fd_string_pubkey_pair_encode( fd_string_pubkey_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
4207 : void fd_string_pubkey_pair_walk( void * w, fd_string_pubkey_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4208 : ulong fd_string_pubkey_pair_size( fd_string_pubkey_pair_t const * self );
4209 0 : static inline ulong fd_string_pubkey_pair_align( void ) { return FD_STRING_PUBKEY_PAIR_ALIGN; }
4210 : int fd_string_pubkey_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4211 : void * fd_string_pubkey_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4212 :
4213 : void fd_pubkey_account_pair_new( fd_pubkey_account_pair_t * self );
4214 : int fd_pubkey_account_pair_encode( fd_pubkey_account_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
4215 : void fd_pubkey_account_pair_walk( void * w, fd_pubkey_account_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4216 : ulong fd_pubkey_account_pair_size( fd_pubkey_account_pair_t const * self );
4217 0 : static inline ulong fd_pubkey_account_pair_align( void ) { return FD_PUBKEY_ACCOUNT_PAIR_ALIGN; }
4218 : int fd_pubkey_account_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4219 : void * fd_pubkey_account_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4220 :
4221 : void fd_genesis_solana_new( fd_genesis_solana_t * self );
4222 : int fd_genesis_solana_encode( fd_genesis_solana_t const * self, fd_bincode_encode_ctx_t * ctx );
4223 : void fd_genesis_solana_walk( void * w, fd_genesis_solana_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4224 : ulong fd_genesis_solana_size( fd_genesis_solana_t const * self );
4225 0 : static inline ulong fd_genesis_solana_align( void ) { return FD_GENESIS_SOLANA_ALIGN; }
4226 : int fd_genesis_solana_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4227 : void * fd_genesis_solana_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4228 :
4229 3 : static inline void fd_sol_sysvar_clock_new( fd_sol_sysvar_clock_t * self ) { fd_memset( self, 0, sizeof(fd_sol_sysvar_clock_t) ); }
4230 : int fd_sol_sysvar_clock_encode( fd_sol_sysvar_clock_t const * self, fd_bincode_encode_ctx_t * ctx );
4231 : void fd_sol_sysvar_clock_walk( void * w, fd_sol_sysvar_clock_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4232 0 : static inline ulong fd_sol_sysvar_clock_size( fd_sol_sysvar_clock_t const * self ) { (void)self; return 40UL; }
4233 3 : static inline ulong fd_sol_sysvar_clock_align( void ) { return FD_SOL_SYSVAR_CLOCK_ALIGN; }
4234 9 : static inline int fd_sol_sysvar_clock_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4235 9 : *total_sz += sizeof(fd_sol_sysvar_clock_t);
4236 9 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4237 6 : return 0;
4238 9 : }
4239 : void * fd_sol_sysvar_clock_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4240 :
4241 0 : static inline void fd_sol_sysvar_last_restart_slot_new( fd_sol_sysvar_last_restart_slot_t * self ) { fd_memset( self, 0, sizeof(fd_sol_sysvar_last_restart_slot_t) ); }
4242 : int fd_sol_sysvar_last_restart_slot_encode( fd_sol_sysvar_last_restart_slot_t const * self, fd_bincode_encode_ctx_t * ctx );
4243 : void fd_sol_sysvar_last_restart_slot_walk( void * w, fd_sol_sysvar_last_restart_slot_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4244 0 : static inline ulong fd_sol_sysvar_last_restart_slot_size( fd_sol_sysvar_last_restart_slot_t const * self ) { (void)self; return 8UL; }
4245 3 : static inline ulong fd_sol_sysvar_last_restart_slot_align( void ) { return FD_SOL_SYSVAR_LAST_RESTART_SLOT_ALIGN; }
4246 3 : static inline int fd_sol_sysvar_last_restart_slot_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4247 3 : *total_sz += sizeof(fd_sol_sysvar_last_restart_slot_t);
4248 3 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4249 3 : return 0;
4250 3 : }
4251 : void * fd_sol_sysvar_last_restart_slot_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4252 :
4253 0 : static inline void fd_vote_lockout_new( fd_vote_lockout_t * self ) { fd_memset( self, 0, sizeof(fd_vote_lockout_t) ); }
4254 : int fd_vote_lockout_encode( fd_vote_lockout_t const * self, fd_bincode_encode_ctx_t * ctx );
4255 : void fd_vote_lockout_walk( void * w, fd_vote_lockout_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4256 0 : static inline ulong fd_vote_lockout_size( fd_vote_lockout_t const * self ) { (void)self; return 12UL; }
4257 0 : static inline ulong fd_vote_lockout_align( void ) { return FD_VOTE_LOCKOUT_ALIGN; }
4258 0 : static inline int fd_vote_lockout_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4259 0 : *total_sz += sizeof(fd_vote_lockout_t);
4260 0 : if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4261 0 : return 0;
4262 0 : }
4263 : void * fd_vote_lockout_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4264 :
4265 : void fd_lockout_offset_new( fd_lockout_offset_t * self );
4266 : int fd_lockout_offset_encode( fd_lockout_offset_t const * self, fd_bincode_encode_ctx_t * ctx );
4267 : void fd_lockout_offset_walk( void * w, fd_lockout_offset_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4268 : ulong fd_lockout_offset_size( fd_lockout_offset_t const * self );
4269 0 : static inline ulong fd_lockout_offset_align( void ) { return FD_LOCKOUT_OFFSET_ALIGN; }
4270 : int fd_lockout_offset_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4271 : void * fd_lockout_offset_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4272 :
4273 12 : static inline void fd_vote_authorized_voter_new( fd_vote_authorized_voter_t * self ) { fd_memset( self, 0, sizeof(fd_vote_authorized_voter_t) ); }
4274 : int fd_vote_authorized_voter_encode( fd_vote_authorized_voter_t const * self, fd_bincode_encode_ctx_t * ctx );
4275 : void fd_vote_authorized_voter_walk( void * w, fd_vote_authorized_voter_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4276 0 : static inline ulong fd_vote_authorized_voter_size( fd_vote_authorized_voter_t const * self ) { (void)self; return 40UL; }
4277 0 : static inline ulong fd_vote_authorized_voter_align( void ) { return FD_VOTE_AUTHORIZED_VOTER_ALIGN; }
4278 0 : static inline int fd_vote_authorized_voter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4279 0 : *total_sz += sizeof(fd_vote_authorized_voter_t);
4280 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4281 0 : return 0;
4282 0 : }
4283 : void * fd_vote_authorized_voter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4284 :
4285 384 : static inline void fd_vote_prior_voter_new( fd_vote_prior_voter_t * self ) { fd_memset( self, 0, sizeof(fd_vote_prior_voter_t) ); }
4286 : int fd_vote_prior_voter_encode( fd_vote_prior_voter_t const * self, fd_bincode_encode_ctx_t * ctx );
4287 : void fd_vote_prior_voter_walk( void * w, fd_vote_prior_voter_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4288 0 : static inline ulong fd_vote_prior_voter_size( fd_vote_prior_voter_t const * self ) { (void)self; return 48UL; }
4289 0 : static inline ulong fd_vote_prior_voter_align( void ) { return FD_VOTE_PRIOR_VOTER_ALIGN; }
4290 0 : static inline int fd_vote_prior_voter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4291 0 : *total_sz += sizeof(fd_vote_prior_voter_t);
4292 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4293 0 : return 0;
4294 0 : }
4295 : void * fd_vote_prior_voter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4296 :
4297 0 : static inline void fd_vote_prior_voter_0_23_5_new( fd_vote_prior_voter_0_23_5_t * self ) { fd_memset( self, 0, sizeof(fd_vote_prior_voter_0_23_5_t) ); }
4298 : int fd_vote_prior_voter_0_23_5_encode( fd_vote_prior_voter_0_23_5_t const * self, fd_bincode_encode_ctx_t * ctx );
4299 : void fd_vote_prior_voter_0_23_5_walk( void * w, fd_vote_prior_voter_0_23_5_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4300 0 : static inline ulong fd_vote_prior_voter_0_23_5_size( fd_vote_prior_voter_0_23_5_t const * self ) { (void)self; return 56UL; }
4301 0 : static inline ulong fd_vote_prior_voter_0_23_5_align( void ) { return FD_VOTE_PRIOR_VOTER_0_23_5_ALIGN; }
4302 0 : static inline int fd_vote_prior_voter_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4303 0 : *total_sz += sizeof(fd_vote_prior_voter_0_23_5_t);
4304 0 : if( (ulong)ctx->data + 56UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4305 0 : return 0;
4306 0 : }
4307 : void * fd_vote_prior_voter_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4308 :
4309 390 : static inline void fd_vote_epoch_credits_new( fd_vote_epoch_credits_t * self ) { fd_memset( self, 0, sizeof(fd_vote_epoch_credits_t) ); }
4310 : int fd_vote_epoch_credits_encode( fd_vote_epoch_credits_t const * self, fd_bincode_encode_ctx_t * ctx );
4311 : void fd_vote_epoch_credits_walk( void * w, fd_vote_epoch_credits_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4312 0 : static inline ulong fd_vote_epoch_credits_size( fd_vote_epoch_credits_t const * self ) { (void)self; return 24UL; }
4313 0 : static inline ulong fd_vote_epoch_credits_align( void ) { return FD_VOTE_EPOCH_CREDITS_ALIGN; }
4314 0 : static inline int fd_vote_epoch_credits_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4315 0 : *total_sz += sizeof(fd_vote_epoch_credits_t);
4316 0 : if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4317 0 : return 0;
4318 0 : }
4319 : void * fd_vote_epoch_credits_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4320 :
4321 12 : static inline void fd_vote_block_timestamp_new( fd_vote_block_timestamp_t * self ) { fd_memset( self, 0, sizeof(fd_vote_block_timestamp_t) ); }
4322 : int fd_vote_block_timestamp_encode( fd_vote_block_timestamp_t const * self, fd_bincode_encode_ctx_t * ctx );
4323 : void fd_vote_block_timestamp_walk( void * w, fd_vote_block_timestamp_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4324 0 : static inline ulong fd_vote_block_timestamp_size( fd_vote_block_timestamp_t const * self ) { (void)self; return 16UL; }
4325 0 : static inline ulong fd_vote_block_timestamp_align( void ) { return FD_VOTE_BLOCK_TIMESTAMP_ALIGN; }
4326 0 : static inline int fd_vote_block_timestamp_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4327 0 : *total_sz += sizeof(fd_vote_block_timestamp_t);
4328 0 : if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4329 0 : return 0;
4330 0 : }
4331 : void * fd_vote_block_timestamp_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4332 :
4333 : void fd_vote_prior_voters_new( fd_vote_prior_voters_t * self );
4334 : int fd_vote_prior_voters_encode( fd_vote_prior_voters_t const * self, fd_bincode_encode_ctx_t * ctx );
4335 : void fd_vote_prior_voters_walk( void * w, fd_vote_prior_voters_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4336 0 : static inline ulong fd_vote_prior_voters_size( fd_vote_prior_voters_t const * self ) { (void)self; return 1545UL; }
4337 0 : static inline ulong fd_vote_prior_voters_align( void ) { return FD_VOTE_PRIOR_VOTERS_ALIGN; }
4338 : int fd_vote_prior_voters_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4339 : void * fd_vote_prior_voters_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4340 :
4341 0 : static inline void fd_vote_prior_voters_0_23_5_new( fd_vote_prior_voters_0_23_5_t * self ) { fd_memset( self, 0, sizeof(fd_vote_prior_voters_0_23_5_t) ); }
4342 : int fd_vote_prior_voters_0_23_5_encode( fd_vote_prior_voters_0_23_5_t const * self, fd_bincode_encode_ctx_t * ctx );
4343 : void fd_vote_prior_voters_0_23_5_walk( void * w, fd_vote_prior_voters_0_23_5_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4344 0 : static inline ulong fd_vote_prior_voters_0_23_5_size( fd_vote_prior_voters_0_23_5_t const * self ) { (void)self; return 1800UL; }
4345 0 : static inline ulong fd_vote_prior_voters_0_23_5_align( void ) { return FD_VOTE_PRIOR_VOTERS_0_23_5_ALIGN; }
4346 0 : static inline int fd_vote_prior_voters_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4347 0 : *total_sz += sizeof(fd_vote_prior_voters_0_23_5_t);
4348 0 : if( (ulong)ctx->data + 1800UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4349 0 : return 0;
4350 0 : }
4351 : void * fd_vote_prior_voters_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4352 :
4353 192 : static inline void fd_landed_vote_new( fd_landed_vote_t * self ) { fd_memset( self, 0, sizeof(fd_landed_vote_t) ); }
4354 : int fd_landed_vote_encode( fd_landed_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
4355 : void fd_landed_vote_walk( void * w, fd_landed_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4356 0 : static inline ulong fd_landed_vote_size( fd_landed_vote_t const * self ) { (void)self; return 13UL; }
4357 0 : static inline ulong fd_landed_vote_align( void ) { return FD_LANDED_VOTE_ALIGN; }
4358 0 : static inline int fd_landed_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4359 0 : *total_sz += sizeof(fd_landed_vote_t);
4360 0 : if( (ulong)ctx->data + 13UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4361 0 : return 0;
4362 0 : }
4363 : void * fd_landed_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4364 :
4365 : void fd_vote_state_0_23_5_new( fd_vote_state_0_23_5_t * self );
4366 : int fd_vote_state_0_23_5_encode( fd_vote_state_0_23_5_t const * self, fd_bincode_encode_ctx_t * ctx );
4367 : void fd_vote_state_0_23_5_walk( void * w, fd_vote_state_0_23_5_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4368 : ulong fd_vote_state_0_23_5_size( fd_vote_state_0_23_5_t const * self );
4369 0 : static inline ulong fd_vote_state_0_23_5_align( void ) { return FD_VOTE_STATE_0_23_5_ALIGN; }
4370 : int fd_vote_state_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4371 : void * fd_vote_state_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4372 :
4373 : void fd_vote_authorized_voters_new( fd_vote_authorized_voters_t * self );
4374 : int fd_vote_authorized_voters_encode( fd_vote_authorized_voters_t const * self, fd_bincode_encode_ctx_t * ctx );
4375 : void fd_vote_authorized_voters_walk( void * w, fd_vote_authorized_voters_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4376 : ulong fd_vote_authorized_voters_size( fd_vote_authorized_voters_t const * self );
4377 0 : static inline ulong fd_vote_authorized_voters_align( void ) { return FD_VOTE_AUTHORIZED_VOTERS_ALIGN; }
4378 : int fd_vote_authorized_voters_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4379 : void * fd_vote_authorized_voters_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4380 :
4381 : void fd_vote_state_1_14_11_new( fd_vote_state_1_14_11_t * self );
4382 : int fd_vote_state_1_14_11_encode( fd_vote_state_1_14_11_t const * self, fd_bincode_encode_ctx_t * ctx );
4383 : void fd_vote_state_1_14_11_walk( void * w, fd_vote_state_1_14_11_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4384 : ulong fd_vote_state_1_14_11_size( fd_vote_state_1_14_11_t const * self );
4385 0 : static inline ulong fd_vote_state_1_14_11_align( void ) { return FD_VOTE_STATE_1_14_11_ALIGN; }
4386 : int fd_vote_state_1_14_11_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4387 : void * fd_vote_state_1_14_11_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4388 :
4389 : void fd_vote_state_new( fd_vote_state_t * self );
4390 : int fd_vote_state_encode( fd_vote_state_t const * self, fd_bincode_encode_ctx_t * ctx );
4391 : void fd_vote_state_walk( void * w, fd_vote_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4392 : ulong fd_vote_state_size( fd_vote_state_t const * self );
4393 0 : static inline ulong fd_vote_state_align( void ) { return FD_VOTE_STATE_ALIGN; }
4394 : int fd_vote_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4395 : void * fd_vote_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4396 :
4397 : void fd_vote_state_versioned_new_disc( fd_vote_state_versioned_t * self, uint discriminant );
4398 : void fd_vote_state_versioned_new( fd_vote_state_versioned_t * self );
4399 : int fd_vote_state_versioned_encode( fd_vote_state_versioned_t const * self, fd_bincode_encode_ctx_t * ctx );
4400 : void fd_vote_state_versioned_walk( void * w, fd_vote_state_versioned_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4401 : ulong fd_vote_state_versioned_size( fd_vote_state_versioned_t const * self );
4402 30 : static inline ulong fd_vote_state_versioned_align( void ) { return FD_VOTE_STATE_VERSIONED_ALIGN; }
4403 : int fd_vote_state_versioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4404 : void * fd_vote_state_versioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4405 :
4406 : FD_FN_PURE uchar fd_vote_state_versioned_is_v0_23_5( fd_vote_state_versioned_t const * self );
4407 : FD_FN_PURE uchar fd_vote_state_versioned_is_v1_14_11( fd_vote_state_versioned_t const * self );
4408 : FD_FN_PURE uchar fd_vote_state_versioned_is_current( fd_vote_state_versioned_t const * self );
4409 : enum {
4410 : fd_vote_state_versioned_enum_v0_23_5 = 0,
4411 : fd_vote_state_versioned_enum_v1_14_11 = 1,
4412 : fd_vote_state_versioned_enum_current = 2,
4413 : };
4414 : void fd_vote_state_update_new( fd_vote_state_update_t * self );
4415 : int fd_vote_state_update_encode( fd_vote_state_update_t const * self, fd_bincode_encode_ctx_t * ctx );
4416 : void fd_vote_state_update_walk( void * w, fd_vote_state_update_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4417 : ulong fd_vote_state_update_size( fd_vote_state_update_t const * self );
4418 0 : static inline ulong fd_vote_state_update_align( void ) { return FD_VOTE_STATE_UPDATE_ALIGN; }
4419 : int fd_vote_state_update_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4420 : void * fd_vote_state_update_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4421 :
4422 : void fd_compact_vote_state_update_new( fd_compact_vote_state_update_t * self );
4423 : int fd_compact_vote_state_update_encode( fd_compact_vote_state_update_t const * self, fd_bincode_encode_ctx_t * ctx );
4424 : void fd_compact_vote_state_update_walk( void * w, fd_compact_vote_state_update_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4425 : ulong fd_compact_vote_state_update_size( fd_compact_vote_state_update_t const * self );
4426 0 : static inline ulong fd_compact_vote_state_update_align( void ) { return FD_COMPACT_VOTE_STATE_UPDATE_ALIGN; }
4427 : int fd_compact_vote_state_update_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4428 : void * fd_compact_vote_state_update_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4429 :
4430 : void fd_compact_vote_state_update_switch_new( fd_compact_vote_state_update_switch_t * self );
4431 : int fd_compact_vote_state_update_switch_encode( fd_compact_vote_state_update_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
4432 : void fd_compact_vote_state_update_switch_walk( void * w, fd_compact_vote_state_update_switch_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4433 : ulong fd_compact_vote_state_update_switch_size( fd_compact_vote_state_update_switch_t const * self );
4434 0 : static inline ulong fd_compact_vote_state_update_switch_align( void ) { return FD_COMPACT_VOTE_STATE_UPDATE_SWITCH_ALIGN; }
4435 : int fd_compact_vote_state_update_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4436 : void * fd_compact_vote_state_update_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4437 :
4438 : void fd_compact_tower_sync_new( fd_compact_tower_sync_t * self );
4439 : int fd_compact_tower_sync_encode( fd_compact_tower_sync_t const * self, fd_bincode_encode_ctx_t * ctx );
4440 : void fd_compact_tower_sync_walk( void * w, fd_compact_tower_sync_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4441 : ulong fd_compact_tower_sync_size( fd_compact_tower_sync_t const * self );
4442 0 : static inline ulong fd_compact_tower_sync_align( void ) { return FD_COMPACT_TOWER_SYNC_ALIGN; }
4443 : int fd_compact_tower_sync_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4444 : void * fd_compact_tower_sync_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4445 :
4446 : void fd_tower_sync_new( fd_tower_sync_t * self );
4447 : int fd_tower_sync_encode( fd_tower_sync_t const * self, fd_bincode_encode_ctx_t * ctx );
4448 : void fd_tower_sync_walk( void * w, fd_tower_sync_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4449 : ulong fd_tower_sync_size( fd_tower_sync_t const * self );
4450 0 : static inline ulong fd_tower_sync_align( void ) { return FD_TOWER_SYNC_ALIGN; }
4451 : int fd_tower_sync_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4452 : void * fd_tower_sync_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4453 :
4454 : void fd_tower_sync_switch_new( fd_tower_sync_switch_t * self );
4455 : int fd_tower_sync_switch_encode( fd_tower_sync_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
4456 : void fd_tower_sync_switch_walk( void * w, fd_tower_sync_switch_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4457 : ulong fd_tower_sync_switch_size( fd_tower_sync_switch_t const * self );
4458 0 : static inline ulong fd_tower_sync_switch_align( void ) { return FD_TOWER_SYNC_SWITCH_ALIGN; }
4459 : int fd_tower_sync_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4460 : void * fd_tower_sync_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4461 :
4462 : void fd_slot_history_new( fd_slot_history_t * self );
4463 : int fd_slot_history_encode( fd_slot_history_t const * self, fd_bincode_encode_ctx_t * ctx );
4464 : void fd_slot_history_walk( void * w, fd_slot_history_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4465 : ulong fd_slot_history_size( fd_slot_history_t const * self );
4466 3 : static inline ulong fd_slot_history_align( void ) { return FD_SLOT_HISTORY_ALIGN; }
4467 : int fd_slot_history_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4468 : void * fd_slot_history_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4469 : void * fd_slot_history_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4470 : int fd_slot_history_encode_global( fd_slot_history_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4471 : ulong fd_slot_history_size_global( fd_slot_history_global_t const * self );
4472 :
4473 3 : static inline void fd_slot_hash_new( fd_slot_hash_t * self ) { fd_memset( self, 0, sizeof(fd_slot_hash_t) ); }
4474 : int fd_slot_hash_encode( fd_slot_hash_t const * self, fd_bincode_encode_ctx_t * ctx );
4475 : void fd_slot_hash_walk( void * w, fd_slot_hash_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4476 0 : static inline ulong fd_slot_hash_size( fd_slot_hash_t const * self ) { (void)self; return 40UL; }
4477 0 : static inline ulong fd_slot_hash_align( void ) { return FD_SLOT_HASH_ALIGN; }
4478 0 : static inline int fd_slot_hash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4479 0 : *total_sz += sizeof(fd_slot_hash_t);
4480 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4481 0 : return 0;
4482 0 : }
4483 : void * fd_slot_hash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4484 :
4485 : void fd_slot_hashes_new( fd_slot_hashes_t * self );
4486 : int fd_slot_hashes_encode( fd_slot_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
4487 : void fd_slot_hashes_walk( void * w, fd_slot_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4488 : ulong fd_slot_hashes_size( fd_slot_hashes_t const * self );
4489 3 : static inline ulong fd_slot_hashes_align( void ) { return FD_SLOT_HASHES_ALIGN; }
4490 : int fd_slot_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4491 : void * fd_slot_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4492 : void * fd_slot_hashes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4493 : int fd_slot_hashes_encode_global( fd_slot_hashes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4494 : ulong fd_slot_hashes_size_global( fd_slot_hashes_global_t const * self );
4495 :
4496 0 : static inline void fd_block_block_hash_entry_new( fd_block_block_hash_entry_t * self ) { fd_memset( self, 0, sizeof(fd_block_block_hash_entry_t) ); }
4497 : int fd_block_block_hash_entry_encode( fd_block_block_hash_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
4498 : void fd_block_block_hash_entry_walk( void * w, fd_block_block_hash_entry_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4499 0 : static inline ulong fd_block_block_hash_entry_size( fd_block_block_hash_entry_t const * self ) { (void)self; return 40UL; }
4500 0 : static inline ulong fd_block_block_hash_entry_align( void ) { return FD_BLOCK_BLOCK_HASH_ENTRY_ALIGN; }
4501 0 : static inline int fd_block_block_hash_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4502 0 : *total_sz += sizeof(fd_block_block_hash_entry_t);
4503 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4504 0 : return 0;
4505 0 : }
4506 : void * fd_block_block_hash_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4507 :
4508 : void fd_recent_block_hashes_new( fd_recent_block_hashes_t * self );
4509 : int fd_recent_block_hashes_encode( fd_recent_block_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
4510 : void fd_recent_block_hashes_walk( void * w, fd_recent_block_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4511 : ulong fd_recent_block_hashes_size( fd_recent_block_hashes_t const * self );
4512 0 : static inline ulong fd_recent_block_hashes_align( void ) { return FD_RECENT_BLOCK_HASHES_ALIGN; }
4513 : int fd_recent_block_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4514 : void * fd_recent_block_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4515 : void * fd_recent_block_hashes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4516 : int fd_recent_block_hashes_encode_global( fd_recent_block_hashes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4517 : ulong fd_recent_block_hashes_size_global( fd_recent_block_hashes_global_t const * self );
4518 :
4519 : void fd_slot_meta_new( fd_slot_meta_t * self );
4520 : int fd_slot_meta_encode( fd_slot_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
4521 : void fd_slot_meta_walk( void * w, fd_slot_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4522 : ulong fd_slot_meta_size( fd_slot_meta_t const * self );
4523 0 : static inline ulong fd_slot_meta_align( void ) { return FD_SLOT_META_ALIGN; }
4524 : int fd_slot_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4525 : void * fd_slot_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4526 :
4527 0 : static inline void fd_clock_timestamp_vote_new( fd_clock_timestamp_vote_t * self ) { fd_memset( self, 0, sizeof(fd_clock_timestamp_vote_t) ); }
4528 : int fd_clock_timestamp_vote_encode( fd_clock_timestamp_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
4529 : void fd_clock_timestamp_vote_walk( void * w, fd_clock_timestamp_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4530 0 : static inline ulong fd_clock_timestamp_vote_size( fd_clock_timestamp_vote_t const * self ) { (void)self; return 48UL; }
4531 0 : static inline ulong fd_clock_timestamp_vote_align( void ) { return FD_CLOCK_TIMESTAMP_VOTE_ALIGN; }
4532 0 : static inline int fd_clock_timestamp_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4533 0 : *total_sz += sizeof(fd_clock_timestamp_vote_t);
4534 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4535 0 : return 0;
4536 0 : }
4537 : void * fd_clock_timestamp_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4538 :
4539 : void fd_clock_timestamp_votes_new( fd_clock_timestamp_votes_t * self );
4540 : int fd_clock_timestamp_votes_encode( fd_clock_timestamp_votes_t const * self, fd_bincode_encode_ctx_t * ctx );
4541 : void fd_clock_timestamp_votes_walk( void * w, fd_clock_timestamp_votes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4542 : ulong fd_clock_timestamp_votes_size( fd_clock_timestamp_votes_t const * self );
4543 0 : static inline ulong fd_clock_timestamp_votes_align( void ) { return FD_CLOCK_TIMESTAMP_VOTES_ALIGN; }
4544 : int fd_clock_timestamp_votes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4545 : void * fd_clock_timestamp_votes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4546 : void * fd_clock_timestamp_votes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4547 : int fd_clock_timestamp_votes_encode_global( fd_clock_timestamp_votes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4548 : ulong fd_clock_timestamp_votes_size_global( fd_clock_timestamp_votes_global_t const * self );
4549 :
4550 0 : static inline void fd_sysvar_fees_new( fd_sysvar_fees_t * self ) { fd_memset( self, 0, sizeof(fd_sysvar_fees_t) ); }
4551 : int fd_sysvar_fees_encode( fd_sysvar_fees_t const * self, fd_bincode_encode_ctx_t * ctx );
4552 : void fd_sysvar_fees_walk( void * w, fd_sysvar_fees_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4553 0 : static inline ulong fd_sysvar_fees_size( fd_sysvar_fees_t const * self ) { (void)self; return 8UL; }
4554 0 : static inline ulong fd_sysvar_fees_align( void ) { return FD_SYSVAR_FEES_ALIGN; }
4555 0 : static inline int fd_sysvar_fees_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4556 0 : *total_sz += sizeof(fd_sysvar_fees_t);
4557 0 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4558 0 : return 0;
4559 0 : }
4560 : void * fd_sysvar_fees_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4561 :
4562 : void fd_sysvar_epoch_rewards_new( fd_sysvar_epoch_rewards_t * self );
4563 : int fd_sysvar_epoch_rewards_encode( fd_sysvar_epoch_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
4564 : void fd_sysvar_epoch_rewards_walk( void * w, fd_sysvar_epoch_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4565 0 : static inline ulong fd_sysvar_epoch_rewards_size( fd_sysvar_epoch_rewards_t const * self ) { (void)self; return 81UL; }
4566 3 : static inline ulong fd_sysvar_epoch_rewards_align( void ) { return FD_SYSVAR_EPOCH_REWARDS_ALIGN; }
4567 : int fd_sysvar_epoch_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4568 : void * fd_sysvar_epoch_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4569 :
4570 : void fd_config_keys_pair_new( fd_config_keys_pair_t * self );
4571 : int fd_config_keys_pair_encode( fd_config_keys_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
4572 : void fd_config_keys_pair_walk( void * w, fd_config_keys_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4573 0 : static inline ulong fd_config_keys_pair_size( fd_config_keys_pair_t const * self ) { (void)self; return 33UL; }
4574 0 : static inline ulong fd_config_keys_pair_align( void ) { return FD_CONFIG_KEYS_PAIR_ALIGN; }
4575 : int fd_config_keys_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4576 : void * fd_config_keys_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4577 :
4578 : void fd_stake_config_new( fd_stake_config_t * self );
4579 : int fd_stake_config_encode( fd_stake_config_t const * self, fd_bincode_encode_ctx_t * ctx );
4580 : void fd_stake_config_walk( void * w, fd_stake_config_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4581 : ulong fd_stake_config_size( fd_stake_config_t const * self );
4582 0 : static inline ulong fd_stake_config_align( void ) { return FD_STAKE_CONFIG_ALIGN; }
4583 : int fd_stake_config_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4584 : void * fd_stake_config_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4585 :
4586 : void fd_feature_entry_new( fd_feature_entry_t * self );
4587 : int fd_feature_entry_encode( fd_feature_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
4588 : void fd_feature_entry_walk( void * w, fd_feature_entry_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4589 : ulong fd_feature_entry_size( fd_feature_entry_t const * self );
4590 0 : static inline ulong fd_feature_entry_align( void ) { return FD_FEATURE_ENTRY_ALIGN; }
4591 : int fd_feature_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4592 : void * fd_feature_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4593 :
4594 0 : static inline void fd_cluster_type_new_disc( fd_cluster_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
4595 0 : static inline void fd_cluster_type_new( fd_cluster_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
4596 : int fd_cluster_type_encode( fd_cluster_type_t const * self, fd_bincode_encode_ctx_t * ctx );
4597 : void fd_cluster_type_walk( void * w, fd_cluster_type_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4598 : ulong fd_cluster_type_size( fd_cluster_type_t const * self );
4599 0 : static inline ulong fd_cluster_type_align( void ) { return FD_CLUSTER_TYPE_ALIGN; }
4600 : int fd_cluster_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4601 : void * fd_cluster_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4602 :
4603 : FD_FN_PURE uchar fd_cluster_type_is_Testnet( fd_cluster_type_t const * self );
4604 : FD_FN_PURE uchar fd_cluster_type_is_MainnetBeta( fd_cluster_type_t const * self );
4605 : FD_FN_PURE uchar fd_cluster_type_is_Devnet( fd_cluster_type_t const * self );
4606 : FD_FN_PURE uchar fd_cluster_type_is_Development( fd_cluster_type_t const * self );
4607 : enum {
4608 : fd_cluster_type_enum_Testnet = 0,
4609 : fd_cluster_type_enum_MainnetBeta = 1,
4610 : fd_cluster_type_enum_Devnet = 2,
4611 : fd_cluster_type_enum_Development = 3,
4612 : };
4613 0 : static inline void fd_cluster_version_new( fd_cluster_version_t * self ) { fd_memset( self, 0, sizeof(fd_cluster_version_t) ); }
4614 : int fd_cluster_version_encode( fd_cluster_version_t const * self, fd_bincode_encode_ctx_t * ctx );
4615 : void fd_cluster_version_walk( void * w, fd_cluster_version_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4616 0 : static inline ulong fd_cluster_version_size( fd_cluster_version_t const * self ) { (void)self; return 12UL; }
4617 0 : static inline ulong fd_cluster_version_align( void ) { return FD_CLUSTER_VERSION_ALIGN; }
4618 0 : static inline int fd_cluster_version_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4619 0 : *total_sz += sizeof(fd_cluster_version_t);
4620 0 : if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4621 0 : return 0;
4622 0 : }
4623 : void * fd_cluster_version_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4624 :
4625 0 : static inline void fd_stake_reward_new( fd_stake_reward_t * self ) { fd_memset( self, 0, sizeof(fd_stake_reward_t) ); }
4626 : int fd_stake_reward_encode( fd_stake_reward_t const * self, fd_bincode_encode_ctx_t * ctx );
4627 : void fd_stake_reward_walk( void * w, fd_stake_reward_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4628 0 : static inline ulong fd_stake_reward_size( fd_stake_reward_t const * self ) { (void)self; return 49UL; }
4629 0 : static inline ulong fd_stake_reward_align( void ) { return FD_STAKE_REWARD_ALIGN; }
4630 0 : static inline int fd_stake_reward_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4631 0 : *total_sz += sizeof(fd_stake_reward_t);
4632 0 : if( (ulong)ctx->data + 49UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4633 0 : return 0;
4634 0 : }
4635 : void * fd_stake_reward_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4636 :
4637 0 : static inline void fd_vote_reward_new( fd_vote_reward_t * self ) { fd_memset( self, 0, sizeof(fd_vote_reward_t) ); }
4638 : int fd_vote_reward_encode( fd_vote_reward_t const * self, fd_bincode_encode_ctx_t * ctx );
4639 : void fd_vote_reward_walk( void * w, fd_vote_reward_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4640 0 : static inline ulong fd_vote_reward_size( fd_vote_reward_t const * self ) { (void)self; return 42UL; }
4641 0 : static inline ulong fd_vote_reward_align( void ) { return FD_VOTE_REWARD_ALIGN; }
4642 0 : static inline int fd_vote_reward_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4643 0 : *total_sz += sizeof(fd_vote_reward_t);
4644 0 : if( (ulong)ctx->data + 42UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4645 0 : return 0;
4646 0 : }
4647 : void * fd_vote_reward_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4648 :
4649 0 : static inline void fd_point_value_new( fd_point_value_t * self ) { fd_memset( self, 0, sizeof(fd_point_value_t) ); }
4650 : int fd_point_value_encode( fd_point_value_t const * self, fd_bincode_encode_ctx_t * ctx );
4651 : void fd_point_value_walk( void * w, fd_point_value_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4652 0 : static inline ulong fd_point_value_size( fd_point_value_t const * self ) { (void)self; return 24UL; }
4653 0 : static inline ulong fd_point_value_align( void ) { return FD_POINT_VALUE_ALIGN; }
4654 0 : static inline int fd_point_value_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4655 0 : *total_sz += sizeof(fd_point_value_t);
4656 0 : if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4657 0 : return 0;
4658 0 : }
4659 : void * fd_point_value_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4660 :
4661 : void fd_partitioned_stake_rewards_new( fd_partitioned_stake_rewards_t * self );
4662 : int fd_partitioned_stake_rewards_encode( fd_partitioned_stake_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
4663 : void fd_partitioned_stake_rewards_walk( void * w, fd_partitioned_stake_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4664 : ulong fd_partitioned_stake_rewards_size( fd_partitioned_stake_rewards_t const * self );
4665 0 : static inline ulong fd_partitioned_stake_rewards_align( void ) { return FD_PARTITIONED_STAKE_REWARDS_ALIGN; }
4666 : int fd_partitioned_stake_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4667 : void * fd_partitioned_stake_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4668 : void * fd_partitioned_stake_rewards_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4669 : int fd_partitioned_stake_rewards_encode_global( fd_partitioned_stake_rewards_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4670 : ulong fd_partitioned_stake_rewards_size_global( fd_partitioned_stake_rewards_global_t const * self );
4671 :
4672 : void fd_stake_reward_calculation_partitioned_new( fd_stake_reward_calculation_partitioned_t * self );
4673 : int fd_stake_reward_calculation_partitioned_encode( fd_stake_reward_calculation_partitioned_t const * self, fd_bincode_encode_ctx_t * ctx );
4674 : void fd_stake_reward_calculation_partitioned_walk( void * w, fd_stake_reward_calculation_partitioned_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4675 : ulong fd_stake_reward_calculation_partitioned_size( fd_stake_reward_calculation_partitioned_t const * self );
4676 0 : static inline ulong fd_stake_reward_calculation_partitioned_align( void ) { return FD_STAKE_REWARD_CALCULATION_PARTITIONED_ALIGN; }
4677 : int fd_stake_reward_calculation_partitioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4678 : void * fd_stake_reward_calculation_partitioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4679 :
4680 : void fd_stake_reward_calculation_new( fd_stake_reward_calculation_t * self );
4681 : int fd_stake_reward_calculation_encode( fd_stake_reward_calculation_t const * self, fd_bincode_encode_ctx_t * ctx );
4682 : void fd_stake_reward_calculation_walk( void * w, fd_stake_reward_calculation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4683 : ulong fd_stake_reward_calculation_size( fd_stake_reward_calculation_t const * self );
4684 0 : static inline ulong fd_stake_reward_calculation_align( void ) { return FD_STAKE_REWARD_CALCULATION_ALIGN; }
4685 : int fd_stake_reward_calculation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4686 : void * fd_stake_reward_calculation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4687 :
4688 : void fd_calculate_stake_vote_rewards_result_new( fd_calculate_stake_vote_rewards_result_t * self );
4689 : int fd_calculate_stake_vote_rewards_result_encode( fd_calculate_stake_vote_rewards_result_t const * self, fd_bincode_encode_ctx_t * ctx );
4690 : void fd_calculate_stake_vote_rewards_result_walk( void * w, fd_calculate_stake_vote_rewards_result_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4691 : ulong fd_calculate_stake_vote_rewards_result_size( fd_calculate_stake_vote_rewards_result_t const * self );
4692 0 : static inline ulong fd_calculate_stake_vote_rewards_result_align( void ) { return FD_CALCULATE_STAKE_VOTE_REWARDS_RESULT_ALIGN; }
4693 : int fd_calculate_stake_vote_rewards_result_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4694 : void * fd_calculate_stake_vote_rewards_result_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4695 :
4696 : void fd_calculate_validator_rewards_result_new( fd_calculate_validator_rewards_result_t * self );
4697 : int fd_calculate_validator_rewards_result_encode( fd_calculate_validator_rewards_result_t const * self, fd_bincode_encode_ctx_t * ctx );
4698 : void fd_calculate_validator_rewards_result_walk( void * w, fd_calculate_validator_rewards_result_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4699 : ulong fd_calculate_validator_rewards_result_size( fd_calculate_validator_rewards_result_t const * self );
4700 0 : static inline ulong fd_calculate_validator_rewards_result_align( void ) { return FD_CALCULATE_VALIDATOR_REWARDS_RESULT_ALIGN; }
4701 : int fd_calculate_validator_rewards_result_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4702 : void * fd_calculate_validator_rewards_result_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4703 :
4704 : void fd_partitioned_rewards_calculation_new( fd_partitioned_rewards_calculation_t * self );
4705 : int fd_partitioned_rewards_calculation_encode( fd_partitioned_rewards_calculation_t const * self, fd_bincode_encode_ctx_t * ctx );
4706 : void fd_partitioned_rewards_calculation_walk( void * w, fd_partitioned_rewards_calculation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4707 : ulong fd_partitioned_rewards_calculation_size( fd_partitioned_rewards_calculation_t const * self );
4708 0 : static inline ulong fd_partitioned_rewards_calculation_align( void ) { return FD_PARTITIONED_REWARDS_CALCULATION_ALIGN; }
4709 : int fd_partitioned_rewards_calculation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4710 : void * fd_partitioned_rewards_calculation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4711 :
4712 : void fd_start_block_height_and_rewards_new( fd_start_block_height_and_rewards_t * self );
4713 : int fd_start_block_height_and_rewards_encode( fd_start_block_height_and_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
4714 : void fd_start_block_height_and_rewards_walk( void * w, fd_start_block_height_and_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4715 : ulong fd_start_block_height_and_rewards_size( fd_start_block_height_and_rewards_t const * self );
4716 0 : static inline ulong fd_start_block_height_and_rewards_align( void ) { return FD_START_BLOCK_HEIGHT_AND_REWARDS_ALIGN; }
4717 : int fd_start_block_height_and_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4718 : void * fd_start_block_height_and_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4719 : void * fd_start_block_height_and_rewards_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4720 : int fd_start_block_height_and_rewards_encode_global( fd_start_block_height_and_rewards_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4721 : ulong fd_start_block_height_and_rewards_size_global( fd_start_block_height_and_rewards_global_t const * self );
4722 :
4723 : void fd_fd_epoch_reward_status_inner_new( fd_fd_epoch_reward_status_inner_t * self );
4724 : int fd_fd_epoch_reward_status_inner_encode( fd_fd_epoch_reward_status_inner_t const * self, fd_bincode_encode_ctx_t * ctx );
4725 : void fd_fd_epoch_reward_status_inner_walk( void * w, fd_fd_epoch_reward_status_inner_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4726 : ulong fd_fd_epoch_reward_status_inner_size( fd_fd_epoch_reward_status_inner_t const * self );
4727 0 : static inline ulong fd_fd_epoch_reward_status_inner_align( void ) { return FD_FD_EPOCH_REWARD_STATUS_INNER_ALIGN; }
4728 : int fd_fd_epoch_reward_status_inner_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4729 : void * fd_fd_epoch_reward_status_inner_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4730 :
4731 : void fd_epoch_reward_status_new_disc( fd_epoch_reward_status_t * self, uint discriminant );
4732 : void fd_epoch_reward_status_new( fd_epoch_reward_status_t * self );
4733 : int fd_epoch_reward_status_encode( fd_epoch_reward_status_t const * self, fd_bincode_encode_ctx_t * ctx );
4734 : void fd_epoch_reward_status_walk( void * w, fd_epoch_reward_status_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4735 : ulong fd_epoch_reward_status_size( fd_epoch_reward_status_t const * self );
4736 0 : static inline ulong fd_epoch_reward_status_align( void ) { return FD_EPOCH_REWARD_STATUS_ALIGN; }
4737 : int fd_epoch_reward_status_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4738 : void * fd_epoch_reward_status_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4739 : void * fd_epoch_reward_status_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
4740 : int fd_epoch_reward_status_encode_global( fd_epoch_reward_status_global_t const * self, fd_bincode_encode_ctx_t * ctx );
4741 : ulong fd_epoch_reward_status_size_global( fd_epoch_reward_status_global_t const * self );
4742 :
4743 : FD_FN_PURE uchar fd_epoch_reward_status_is_Active( fd_epoch_reward_status_t const * self );
4744 : FD_FN_PURE uchar fd_epoch_reward_status_is_Inactive( fd_epoch_reward_status_t const * self );
4745 : enum {
4746 : fd_epoch_reward_status_enum_Active = 0,
4747 : fd_epoch_reward_status_enum_Inactive = 1,
4748 : };
4749 0 : static inline void fd_prev_epoch_inflation_rewards_new( fd_prev_epoch_inflation_rewards_t * self ) { fd_memset( self, 0, sizeof(fd_prev_epoch_inflation_rewards_t) ); }
4750 : int fd_prev_epoch_inflation_rewards_encode( fd_prev_epoch_inflation_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
4751 : void fd_prev_epoch_inflation_rewards_walk( void * w, fd_prev_epoch_inflation_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4752 0 : static inline ulong fd_prev_epoch_inflation_rewards_size( fd_prev_epoch_inflation_rewards_t const * self ) { (void)self; return 32UL; }
4753 0 : static inline ulong fd_prev_epoch_inflation_rewards_align( void ) { return FD_PREV_EPOCH_INFLATION_REWARDS_ALIGN; }
4754 0 : static inline int fd_prev_epoch_inflation_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4755 0 : *total_sz += sizeof(fd_prev_epoch_inflation_rewards_t);
4756 0 : if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4757 0 : return 0;
4758 0 : }
4759 : void * fd_prev_epoch_inflation_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4760 :
4761 : void fd_vote_new( fd_vote_t * self );
4762 : int fd_vote_encode( fd_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
4763 : void fd_vote_walk( void * w, fd_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4764 : ulong fd_vote_size( fd_vote_t const * self );
4765 0 : static inline ulong fd_vote_align( void ) { return FD_VOTE_ALIGN; }
4766 : int fd_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4767 : void * fd_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4768 :
4769 0 : static inline void fd_vote_init_new( fd_vote_init_t * self ) { fd_memset( self, 0, sizeof(fd_vote_init_t) ); }
4770 : int fd_vote_init_encode( fd_vote_init_t const * self, fd_bincode_encode_ctx_t * ctx );
4771 : void fd_vote_init_walk( void * w, fd_vote_init_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4772 0 : static inline ulong fd_vote_init_size( fd_vote_init_t const * self ) { (void)self; return 97UL; }
4773 0 : static inline ulong fd_vote_init_align( void ) { return FD_VOTE_INIT_ALIGN; }
4774 0 : static inline int fd_vote_init_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4775 0 : *total_sz += sizeof(fd_vote_init_t);
4776 0 : if( (ulong)ctx->data + 97UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4777 0 : return 0;
4778 0 : }
4779 : void * fd_vote_init_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4780 :
4781 0 : static inline void fd_vote_authorize_new_disc( fd_vote_authorize_t * self, uint discriminant ) { self->discriminant = discriminant; }
4782 0 : static inline void fd_vote_authorize_new( fd_vote_authorize_t * self ) { self->discriminant = (uint)ULONG_MAX; }
4783 : int fd_vote_authorize_encode( fd_vote_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
4784 : void fd_vote_authorize_walk( void * w, fd_vote_authorize_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4785 : ulong fd_vote_authorize_size( fd_vote_authorize_t const * self );
4786 0 : static inline ulong fd_vote_authorize_align( void ) { return FD_VOTE_AUTHORIZE_ALIGN; }
4787 : int fd_vote_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4788 : void * fd_vote_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4789 :
4790 : FD_FN_PURE uchar fd_vote_authorize_is_voter( fd_vote_authorize_t const * self );
4791 : FD_FN_PURE uchar fd_vote_authorize_is_withdrawer( fd_vote_authorize_t const * self );
4792 : enum {
4793 : fd_vote_authorize_enum_voter = 0,
4794 : fd_vote_authorize_enum_withdrawer = 1,
4795 : };
4796 : void fd_vote_authorize_pubkey_new( fd_vote_authorize_pubkey_t * self );
4797 : int fd_vote_authorize_pubkey_encode( fd_vote_authorize_pubkey_t const * self, fd_bincode_encode_ctx_t * ctx );
4798 : void fd_vote_authorize_pubkey_walk( void * w, fd_vote_authorize_pubkey_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4799 0 : static inline ulong fd_vote_authorize_pubkey_size( fd_vote_authorize_pubkey_t const * self ) { (void)self; return 36UL; }
4800 0 : static inline ulong fd_vote_authorize_pubkey_align( void ) { return FD_VOTE_AUTHORIZE_PUBKEY_ALIGN; }
4801 : int fd_vote_authorize_pubkey_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4802 : void * fd_vote_authorize_pubkey_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4803 :
4804 : void fd_vote_switch_new( fd_vote_switch_t * self );
4805 : int fd_vote_switch_encode( fd_vote_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
4806 : void fd_vote_switch_walk( void * w, fd_vote_switch_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4807 : ulong fd_vote_switch_size( fd_vote_switch_t const * self );
4808 0 : static inline ulong fd_vote_switch_align( void ) { return FD_VOTE_SWITCH_ALIGN; }
4809 : int fd_vote_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4810 : void * fd_vote_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4811 :
4812 : void fd_update_vote_state_switch_new( fd_update_vote_state_switch_t * self );
4813 : int fd_update_vote_state_switch_encode( fd_update_vote_state_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
4814 : void fd_update_vote_state_switch_walk( void * w, fd_update_vote_state_switch_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4815 : ulong fd_update_vote_state_switch_size( fd_update_vote_state_switch_t const * self );
4816 0 : static inline ulong fd_update_vote_state_switch_align( void ) { return FD_UPDATE_VOTE_STATE_SWITCH_ALIGN; }
4817 : int fd_update_vote_state_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4818 : void * fd_update_vote_state_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4819 :
4820 : void fd_vote_authorize_with_seed_args_new( fd_vote_authorize_with_seed_args_t * self );
4821 : int fd_vote_authorize_with_seed_args_encode( fd_vote_authorize_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
4822 : void fd_vote_authorize_with_seed_args_walk( void * w, fd_vote_authorize_with_seed_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4823 : ulong fd_vote_authorize_with_seed_args_size( fd_vote_authorize_with_seed_args_t const * self );
4824 0 : static inline ulong fd_vote_authorize_with_seed_args_align( void ) { return FD_VOTE_AUTHORIZE_WITH_SEED_ARGS_ALIGN; }
4825 : int fd_vote_authorize_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4826 : void * fd_vote_authorize_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4827 :
4828 : void fd_vote_authorize_checked_with_seed_args_new( fd_vote_authorize_checked_with_seed_args_t * self );
4829 : int fd_vote_authorize_checked_with_seed_args_encode( fd_vote_authorize_checked_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
4830 : void fd_vote_authorize_checked_with_seed_args_walk( void * w, fd_vote_authorize_checked_with_seed_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4831 : ulong fd_vote_authorize_checked_with_seed_args_size( fd_vote_authorize_checked_with_seed_args_t const * self );
4832 0 : static inline ulong fd_vote_authorize_checked_with_seed_args_align( void ) { return FD_VOTE_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN; }
4833 : int fd_vote_authorize_checked_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4834 : void * fd_vote_authorize_checked_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4835 :
4836 : void fd_vote_instruction_new_disc( fd_vote_instruction_t * self, uint discriminant );
4837 : void fd_vote_instruction_new( fd_vote_instruction_t * self );
4838 : int fd_vote_instruction_encode( fd_vote_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
4839 : void fd_vote_instruction_walk( void * w, fd_vote_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4840 : ulong fd_vote_instruction_size( fd_vote_instruction_t const * self );
4841 0 : static inline ulong fd_vote_instruction_align( void ) { return FD_VOTE_INSTRUCTION_ALIGN; }
4842 : int fd_vote_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4843 : void * fd_vote_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4844 :
4845 : FD_FN_PURE uchar fd_vote_instruction_is_initialize_account( fd_vote_instruction_t const * self );
4846 : FD_FN_PURE uchar fd_vote_instruction_is_authorize( fd_vote_instruction_t const * self );
4847 : FD_FN_PURE uchar fd_vote_instruction_is_vote( fd_vote_instruction_t const * self );
4848 : FD_FN_PURE uchar fd_vote_instruction_is_withdraw( fd_vote_instruction_t const * self );
4849 : FD_FN_PURE uchar fd_vote_instruction_is_update_validator_identity( fd_vote_instruction_t const * self );
4850 : FD_FN_PURE uchar fd_vote_instruction_is_update_commission( fd_vote_instruction_t const * self );
4851 : FD_FN_PURE uchar fd_vote_instruction_is_vote_switch( fd_vote_instruction_t const * self );
4852 : FD_FN_PURE uchar fd_vote_instruction_is_authorize_checked( fd_vote_instruction_t const * self );
4853 : FD_FN_PURE uchar fd_vote_instruction_is_update_vote_state( fd_vote_instruction_t const * self );
4854 : FD_FN_PURE uchar fd_vote_instruction_is_update_vote_state_switch( fd_vote_instruction_t const * self );
4855 : FD_FN_PURE uchar fd_vote_instruction_is_authorize_with_seed( fd_vote_instruction_t const * self );
4856 : FD_FN_PURE uchar fd_vote_instruction_is_authorize_checked_with_seed( fd_vote_instruction_t const * self );
4857 : FD_FN_PURE uchar fd_vote_instruction_is_compact_update_vote_state( fd_vote_instruction_t const * self );
4858 : FD_FN_PURE uchar fd_vote_instruction_is_compact_update_vote_state_switch( fd_vote_instruction_t const * self );
4859 : FD_FN_PURE uchar fd_vote_instruction_is_tower_sync( fd_vote_instruction_t const * self );
4860 : FD_FN_PURE uchar fd_vote_instruction_is_tower_sync_switch( fd_vote_instruction_t const * self );
4861 : enum {
4862 : fd_vote_instruction_enum_initialize_account = 0,
4863 : fd_vote_instruction_enum_authorize = 1,
4864 : fd_vote_instruction_enum_vote = 2,
4865 : fd_vote_instruction_enum_withdraw = 3,
4866 : fd_vote_instruction_enum_update_validator_identity = 4,
4867 : fd_vote_instruction_enum_update_commission = 5,
4868 : fd_vote_instruction_enum_vote_switch = 6,
4869 : fd_vote_instruction_enum_authorize_checked = 7,
4870 : fd_vote_instruction_enum_update_vote_state = 8,
4871 : fd_vote_instruction_enum_update_vote_state_switch = 9,
4872 : fd_vote_instruction_enum_authorize_with_seed = 10,
4873 : fd_vote_instruction_enum_authorize_checked_with_seed = 11,
4874 : fd_vote_instruction_enum_compact_update_vote_state = 12,
4875 : fd_vote_instruction_enum_compact_update_vote_state_switch = 13,
4876 : fd_vote_instruction_enum_tower_sync = 14,
4877 : fd_vote_instruction_enum_tower_sync_switch = 15,
4878 : };
4879 0 : static inline void fd_system_program_instruction_create_account_new( fd_system_program_instruction_create_account_t * self ) { fd_memset( self, 0, sizeof(fd_system_program_instruction_create_account_t) ); }
4880 : int fd_system_program_instruction_create_account_encode( fd_system_program_instruction_create_account_t const * self, fd_bincode_encode_ctx_t * ctx );
4881 : void fd_system_program_instruction_create_account_walk( void * w, fd_system_program_instruction_create_account_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4882 0 : static inline ulong fd_system_program_instruction_create_account_size( fd_system_program_instruction_create_account_t const * self ) { (void)self; return 48UL; }
4883 0 : static inline ulong fd_system_program_instruction_create_account_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_ALIGN; }
4884 0 : static inline int fd_system_program_instruction_create_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4885 0 : *total_sz += sizeof(fd_system_program_instruction_create_account_t);
4886 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4887 0 : return 0;
4888 0 : }
4889 : void * fd_system_program_instruction_create_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4890 :
4891 : void fd_system_program_instruction_create_account_with_seed_new( fd_system_program_instruction_create_account_with_seed_t * self );
4892 : int fd_system_program_instruction_create_account_with_seed_encode( fd_system_program_instruction_create_account_with_seed_t const * self, fd_bincode_encode_ctx_t * ctx );
4893 : void fd_system_program_instruction_create_account_with_seed_walk( void * w, fd_system_program_instruction_create_account_with_seed_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4894 : ulong fd_system_program_instruction_create_account_with_seed_size( fd_system_program_instruction_create_account_with_seed_t const * self );
4895 0 : static inline ulong fd_system_program_instruction_create_account_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_WITH_SEED_ALIGN; }
4896 : int fd_system_program_instruction_create_account_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4897 : void * fd_system_program_instruction_create_account_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4898 :
4899 : void fd_system_program_instruction_allocate_with_seed_new( fd_system_program_instruction_allocate_with_seed_t * self );
4900 : int fd_system_program_instruction_allocate_with_seed_encode( fd_system_program_instruction_allocate_with_seed_t const * self, fd_bincode_encode_ctx_t * ctx );
4901 : void fd_system_program_instruction_allocate_with_seed_walk( void * w, fd_system_program_instruction_allocate_with_seed_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4902 : ulong fd_system_program_instruction_allocate_with_seed_size( fd_system_program_instruction_allocate_with_seed_t const * self );
4903 0 : static inline ulong fd_system_program_instruction_allocate_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ALLOCATE_WITH_SEED_ALIGN; }
4904 : int fd_system_program_instruction_allocate_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4905 : void * fd_system_program_instruction_allocate_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4906 :
4907 : void fd_system_program_instruction_assign_with_seed_new( fd_system_program_instruction_assign_with_seed_t * self );
4908 : int fd_system_program_instruction_assign_with_seed_encode( fd_system_program_instruction_assign_with_seed_t const * self, fd_bincode_encode_ctx_t * ctx );
4909 : void fd_system_program_instruction_assign_with_seed_walk( void * w, fd_system_program_instruction_assign_with_seed_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4910 : ulong fd_system_program_instruction_assign_with_seed_size( fd_system_program_instruction_assign_with_seed_t const * self );
4911 0 : static inline ulong fd_system_program_instruction_assign_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ASSIGN_WITH_SEED_ALIGN; }
4912 : int fd_system_program_instruction_assign_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4913 : void * fd_system_program_instruction_assign_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4914 :
4915 : void fd_system_program_instruction_transfer_with_seed_new( fd_system_program_instruction_transfer_with_seed_t * self );
4916 : int fd_system_program_instruction_transfer_with_seed_encode( fd_system_program_instruction_transfer_with_seed_t const * self, fd_bincode_encode_ctx_t * ctx );
4917 : void fd_system_program_instruction_transfer_with_seed_walk( void * w, fd_system_program_instruction_transfer_with_seed_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4918 : ulong fd_system_program_instruction_transfer_with_seed_size( fd_system_program_instruction_transfer_with_seed_t const * self );
4919 0 : static inline ulong fd_system_program_instruction_transfer_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_TRANSFER_WITH_SEED_ALIGN; }
4920 : int fd_system_program_instruction_transfer_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4921 : void * fd_system_program_instruction_transfer_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4922 :
4923 : void fd_system_program_instruction_new_disc( fd_system_program_instruction_t * self, uint discriminant );
4924 : void fd_system_program_instruction_new( fd_system_program_instruction_t * self );
4925 : int fd_system_program_instruction_encode( fd_system_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
4926 : void fd_system_program_instruction_walk( void * w, fd_system_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4927 : ulong fd_system_program_instruction_size( fd_system_program_instruction_t const * self );
4928 0 : static inline ulong fd_system_program_instruction_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ALIGN; }
4929 : int fd_system_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4930 : void * fd_system_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4931 :
4932 : FD_FN_PURE uchar fd_system_program_instruction_is_create_account( fd_system_program_instruction_t const * self );
4933 : FD_FN_PURE uchar fd_system_program_instruction_is_assign( fd_system_program_instruction_t const * self );
4934 : FD_FN_PURE uchar fd_system_program_instruction_is_transfer( fd_system_program_instruction_t const * self );
4935 : FD_FN_PURE uchar fd_system_program_instruction_is_create_account_with_seed( fd_system_program_instruction_t const * self );
4936 : FD_FN_PURE uchar fd_system_program_instruction_is_advance_nonce_account( fd_system_program_instruction_t const * self );
4937 : FD_FN_PURE uchar fd_system_program_instruction_is_withdraw_nonce_account( fd_system_program_instruction_t const * self );
4938 : FD_FN_PURE uchar fd_system_program_instruction_is_initialize_nonce_account( fd_system_program_instruction_t const * self );
4939 : FD_FN_PURE uchar fd_system_program_instruction_is_authorize_nonce_account( fd_system_program_instruction_t const * self );
4940 : FD_FN_PURE uchar fd_system_program_instruction_is_allocate( fd_system_program_instruction_t const * self );
4941 : FD_FN_PURE uchar fd_system_program_instruction_is_allocate_with_seed( fd_system_program_instruction_t const * self );
4942 : FD_FN_PURE uchar fd_system_program_instruction_is_assign_with_seed( fd_system_program_instruction_t const * self );
4943 : FD_FN_PURE uchar fd_system_program_instruction_is_transfer_with_seed( fd_system_program_instruction_t const * self );
4944 : FD_FN_PURE uchar fd_system_program_instruction_is_upgrade_nonce_account( fd_system_program_instruction_t const * self );
4945 : enum {
4946 : fd_system_program_instruction_enum_create_account = 0,
4947 : fd_system_program_instruction_enum_assign = 1,
4948 : fd_system_program_instruction_enum_transfer = 2,
4949 : fd_system_program_instruction_enum_create_account_with_seed = 3,
4950 : fd_system_program_instruction_enum_advance_nonce_account = 4,
4951 : fd_system_program_instruction_enum_withdraw_nonce_account = 5,
4952 : fd_system_program_instruction_enum_initialize_nonce_account = 6,
4953 : fd_system_program_instruction_enum_authorize_nonce_account = 7,
4954 : fd_system_program_instruction_enum_allocate = 8,
4955 : fd_system_program_instruction_enum_allocate_with_seed = 9,
4956 : fd_system_program_instruction_enum_assign_with_seed = 10,
4957 : fd_system_program_instruction_enum_transfer_with_seed = 11,
4958 : fd_system_program_instruction_enum_upgrade_nonce_account = 12,
4959 : };
4960 0 : static inline void fd_system_error_new_disc( fd_system_error_t * self, uint discriminant ) { self->discriminant = discriminant; }
4961 0 : static inline void fd_system_error_new( fd_system_error_t * self ) { self->discriminant = (uint)ULONG_MAX; }
4962 : int fd_system_error_encode( fd_system_error_t const * self, fd_bincode_encode_ctx_t * ctx );
4963 : void fd_system_error_walk( void * w, fd_system_error_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4964 : ulong fd_system_error_size( fd_system_error_t const * self );
4965 0 : static inline ulong fd_system_error_align( void ) { return FD_SYSTEM_ERROR_ALIGN; }
4966 : int fd_system_error_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
4967 : void * fd_system_error_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
4968 :
4969 : FD_FN_PURE uchar fd_system_error_is_account_already_in_use( fd_system_error_t const * self );
4970 : FD_FN_PURE uchar fd_system_error_is_result_with_negative_lamports( fd_system_error_t const * self );
4971 : FD_FN_PURE uchar fd_system_error_is_invalid_program_id( fd_system_error_t const * self );
4972 : FD_FN_PURE uchar fd_system_error_is_invalid_account_data_length( fd_system_error_t const * self );
4973 : FD_FN_PURE uchar fd_system_error_is_max_seed_length_exceeded( fd_system_error_t const * self );
4974 : FD_FN_PURE uchar fd_system_error_is_address_with_seed_mismatch( fd_system_error_t const * self );
4975 : FD_FN_PURE uchar fd_system_error_is_nonce_no_recent_blockhashes( fd_system_error_t const * self );
4976 : FD_FN_PURE uchar fd_system_error_is_nonce_blockhash_not_expired( fd_system_error_t const * self );
4977 : FD_FN_PURE uchar fd_system_error_is_nonce_unexpected_blockhash_value( fd_system_error_t const * self );
4978 : enum {
4979 : fd_system_error_enum_account_already_in_use = 0,
4980 : fd_system_error_enum_result_with_negative_lamports = 1,
4981 : fd_system_error_enum_invalid_program_id = 2,
4982 : fd_system_error_enum_invalid_account_data_length = 3,
4983 : fd_system_error_enum_max_seed_length_exceeded = 4,
4984 : fd_system_error_enum_address_with_seed_mismatch = 5,
4985 : fd_system_error_enum_nonce_no_recent_blockhashes = 6,
4986 : fd_system_error_enum_nonce_blockhash_not_expired = 7,
4987 : fd_system_error_enum_nonce_unexpected_blockhash_value = 8,
4988 : };
4989 0 : static inline void fd_stake_authorized_new( fd_stake_authorized_t * self ) { fd_memset( self, 0, sizeof(fd_stake_authorized_t) ); }
4990 : int fd_stake_authorized_encode( fd_stake_authorized_t const * self, fd_bincode_encode_ctx_t * ctx );
4991 : void fd_stake_authorized_walk( void * w, fd_stake_authorized_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
4992 0 : static inline ulong fd_stake_authorized_size( fd_stake_authorized_t const * self ) { (void)self; return 64UL; }
4993 0 : static inline ulong fd_stake_authorized_align( void ) { return FD_STAKE_AUTHORIZED_ALIGN; }
4994 0 : static inline int fd_stake_authorized_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
4995 0 : *total_sz += sizeof(fd_stake_authorized_t);
4996 0 : if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
4997 0 : return 0;
4998 0 : }
4999 : void * fd_stake_authorized_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5000 :
5001 0 : static inline void fd_stake_lockup_new( fd_stake_lockup_t * self ) { fd_memset( self, 0, sizeof(fd_stake_lockup_t) ); }
5002 : int fd_stake_lockup_encode( fd_stake_lockup_t const * self, fd_bincode_encode_ctx_t * ctx );
5003 : void fd_stake_lockup_walk( void * w, fd_stake_lockup_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5004 0 : static inline ulong fd_stake_lockup_size( fd_stake_lockup_t const * self ) { (void)self; return 48UL; }
5005 0 : static inline ulong fd_stake_lockup_align( void ) { return FD_STAKE_LOCKUP_ALIGN; }
5006 0 : static inline int fd_stake_lockup_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5007 0 : *total_sz += sizeof(fd_stake_lockup_t);
5008 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5009 0 : return 0;
5010 0 : }
5011 : void * fd_stake_lockup_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5012 :
5013 0 : static inline void fd_stake_instruction_initialize_new( fd_stake_instruction_initialize_t * self ) { fd_memset( self, 0, sizeof(fd_stake_instruction_initialize_t) ); }
5014 : int fd_stake_instruction_initialize_encode( fd_stake_instruction_initialize_t const * self, fd_bincode_encode_ctx_t * ctx );
5015 : void fd_stake_instruction_initialize_walk( void * w, fd_stake_instruction_initialize_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5016 0 : static inline ulong fd_stake_instruction_initialize_size( fd_stake_instruction_initialize_t const * self ) { (void)self; return 112UL; }
5017 0 : static inline ulong fd_stake_instruction_initialize_align( void ) { return FD_STAKE_INSTRUCTION_INITIALIZE_ALIGN; }
5018 0 : static inline int fd_stake_instruction_initialize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5019 0 : *total_sz += sizeof(fd_stake_instruction_initialize_t);
5020 0 : if( (ulong)ctx->data + 112UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5021 0 : return 0;
5022 0 : }
5023 : void * fd_stake_instruction_initialize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5024 :
5025 : void fd_stake_lockup_custodian_args_new( fd_stake_lockup_custodian_args_t * self );
5026 : int fd_stake_lockup_custodian_args_encode( fd_stake_lockup_custodian_args_t const * self, fd_bincode_encode_ctx_t * ctx );
5027 : void fd_stake_lockup_custodian_args_walk( void * w, fd_stake_lockup_custodian_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5028 : ulong fd_stake_lockup_custodian_args_size( fd_stake_lockup_custodian_args_t const * self );
5029 0 : static inline ulong fd_stake_lockup_custodian_args_align( void ) { return FD_STAKE_LOCKUP_CUSTODIAN_ARGS_ALIGN; }
5030 : int fd_stake_lockup_custodian_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5031 : void * fd_stake_lockup_custodian_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5032 :
5033 0 : static inline void fd_stake_authorize_new_disc( fd_stake_authorize_t * self, uint discriminant ) { self->discriminant = discriminant; }
5034 0 : static inline void fd_stake_authorize_new( fd_stake_authorize_t * self ) { self->discriminant = (uint)ULONG_MAX; }
5035 : int fd_stake_authorize_encode( fd_stake_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
5036 : void fd_stake_authorize_walk( void * w, fd_stake_authorize_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5037 : ulong fd_stake_authorize_size( fd_stake_authorize_t const * self );
5038 0 : static inline ulong fd_stake_authorize_align( void ) { return FD_STAKE_AUTHORIZE_ALIGN; }
5039 : int fd_stake_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5040 : void * fd_stake_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5041 :
5042 : FD_FN_PURE uchar fd_stake_authorize_is_staker( fd_stake_authorize_t const * self );
5043 : FD_FN_PURE uchar fd_stake_authorize_is_withdrawer( fd_stake_authorize_t const * self );
5044 : enum {
5045 : fd_stake_authorize_enum_staker = 0,
5046 : fd_stake_authorize_enum_withdrawer = 1,
5047 : };
5048 : void fd_stake_instruction_authorize_new( fd_stake_instruction_authorize_t * self );
5049 : int fd_stake_instruction_authorize_encode( fd_stake_instruction_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
5050 : void fd_stake_instruction_authorize_walk( void * w, fd_stake_instruction_authorize_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5051 0 : static inline ulong fd_stake_instruction_authorize_size( fd_stake_instruction_authorize_t const * self ) { (void)self; return 36UL; }
5052 0 : static inline ulong fd_stake_instruction_authorize_align( void ) { return FD_STAKE_INSTRUCTION_AUTHORIZE_ALIGN; }
5053 : int fd_stake_instruction_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5054 : void * fd_stake_instruction_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5055 :
5056 : void fd_authorize_with_seed_args_new( fd_authorize_with_seed_args_t * self );
5057 : int fd_authorize_with_seed_args_encode( fd_authorize_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
5058 : void fd_authorize_with_seed_args_walk( void * w, fd_authorize_with_seed_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5059 : ulong fd_authorize_with_seed_args_size( fd_authorize_with_seed_args_t const * self );
5060 0 : static inline ulong fd_authorize_with_seed_args_align( void ) { return FD_AUTHORIZE_WITH_SEED_ARGS_ALIGN; }
5061 : int fd_authorize_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5062 : void * fd_authorize_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5063 :
5064 : void fd_authorize_checked_with_seed_args_new( fd_authorize_checked_with_seed_args_t * self );
5065 : int fd_authorize_checked_with_seed_args_encode( fd_authorize_checked_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
5066 : void fd_authorize_checked_with_seed_args_walk( void * w, fd_authorize_checked_with_seed_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5067 : ulong fd_authorize_checked_with_seed_args_size( fd_authorize_checked_with_seed_args_t const * self );
5068 0 : static inline ulong fd_authorize_checked_with_seed_args_align( void ) { return FD_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN; }
5069 : int fd_authorize_checked_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5070 : void * fd_authorize_checked_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5071 :
5072 : void fd_lockup_checked_args_new( fd_lockup_checked_args_t * self );
5073 : int fd_lockup_checked_args_encode( fd_lockup_checked_args_t const * self, fd_bincode_encode_ctx_t * ctx );
5074 : void fd_lockup_checked_args_walk( void * w, fd_lockup_checked_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5075 : ulong fd_lockup_checked_args_size( fd_lockup_checked_args_t const * self );
5076 0 : static inline ulong fd_lockup_checked_args_align( void ) { return FD_LOCKUP_CHECKED_ARGS_ALIGN; }
5077 : int fd_lockup_checked_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5078 : void * fd_lockup_checked_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5079 :
5080 : void fd_lockup_args_new( fd_lockup_args_t * self );
5081 : int fd_lockup_args_encode( fd_lockup_args_t const * self, fd_bincode_encode_ctx_t * ctx );
5082 : void fd_lockup_args_walk( void * w, fd_lockup_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5083 : ulong fd_lockup_args_size( fd_lockup_args_t const * self );
5084 0 : static inline ulong fd_lockup_args_align( void ) { return FD_LOCKUP_ARGS_ALIGN; }
5085 : int fd_lockup_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5086 : void * fd_lockup_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5087 :
5088 : void fd_stake_instruction_new_disc( fd_stake_instruction_t * self, uint discriminant );
5089 : void fd_stake_instruction_new( fd_stake_instruction_t * self );
5090 : int fd_stake_instruction_encode( fd_stake_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
5091 : void fd_stake_instruction_walk( void * w, fd_stake_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5092 : ulong fd_stake_instruction_size( fd_stake_instruction_t const * self );
5093 0 : static inline ulong fd_stake_instruction_align( void ) { return FD_STAKE_INSTRUCTION_ALIGN; }
5094 : int fd_stake_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5095 : void * fd_stake_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5096 :
5097 : FD_FN_PURE uchar fd_stake_instruction_is_initialize( fd_stake_instruction_t const * self );
5098 : FD_FN_PURE uchar fd_stake_instruction_is_authorize( fd_stake_instruction_t const * self );
5099 : FD_FN_PURE uchar fd_stake_instruction_is_delegate_stake( fd_stake_instruction_t const * self );
5100 : FD_FN_PURE uchar fd_stake_instruction_is_split( fd_stake_instruction_t const * self );
5101 : FD_FN_PURE uchar fd_stake_instruction_is_withdraw( fd_stake_instruction_t const * self );
5102 : FD_FN_PURE uchar fd_stake_instruction_is_deactivate( fd_stake_instruction_t const * self );
5103 : FD_FN_PURE uchar fd_stake_instruction_is_set_lockup( fd_stake_instruction_t const * self );
5104 : FD_FN_PURE uchar fd_stake_instruction_is_merge( fd_stake_instruction_t const * self );
5105 : FD_FN_PURE uchar fd_stake_instruction_is_authorize_with_seed( fd_stake_instruction_t const * self );
5106 : FD_FN_PURE uchar fd_stake_instruction_is_initialize_checked( fd_stake_instruction_t const * self );
5107 : FD_FN_PURE uchar fd_stake_instruction_is_authorize_checked( fd_stake_instruction_t const * self );
5108 : FD_FN_PURE uchar fd_stake_instruction_is_authorize_checked_with_seed( fd_stake_instruction_t const * self );
5109 : FD_FN_PURE uchar fd_stake_instruction_is_set_lockup_checked( fd_stake_instruction_t const * self );
5110 : FD_FN_PURE uchar fd_stake_instruction_is_get_minimum_delegation( fd_stake_instruction_t const * self );
5111 : FD_FN_PURE uchar fd_stake_instruction_is_deactivate_delinquent( fd_stake_instruction_t const * self );
5112 : FD_FN_PURE uchar fd_stake_instruction_is_redelegate( fd_stake_instruction_t const * self );
5113 : FD_FN_PURE uchar fd_stake_instruction_is_move_stake( fd_stake_instruction_t const * self );
5114 : FD_FN_PURE uchar fd_stake_instruction_is_move_lamports( fd_stake_instruction_t const * self );
5115 : enum {
5116 : fd_stake_instruction_enum_initialize = 0,
5117 : fd_stake_instruction_enum_authorize = 1,
5118 : fd_stake_instruction_enum_delegate_stake = 2,
5119 : fd_stake_instruction_enum_split = 3,
5120 : fd_stake_instruction_enum_withdraw = 4,
5121 : fd_stake_instruction_enum_deactivate = 5,
5122 : fd_stake_instruction_enum_set_lockup = 6,
5123 : fd_stake_instruction_enum_merge = 7,
5124 : fd_stake_instruction_enum_authorize_with_seed = 8,
5125 : fd_stake_instruction_enum_initialize_checked = 9,
5126 : fd_stake_instruction_enum_authorize_checked = 10,
5127 : fd_stake_instruction_enum_authorize_checked_with_seed = 11,
5128 : fd_stake_instruction_enum_set_lockup_checked = 12,
5129 : fd_stake_instruction_enum_get_minimum_delegation = 13,
5130 : fd_stake_instruction_enum_deactivate_delinquent = 14,
5131 : fd_stake_instruction_enum_redelegate = 15,
5132 : fd_stake_instruction_enum_move_stake = 16,
5133 : fd_stake_instruction_enum_move_lamports = 17,
5134 : };
5135 0 : static inline void fd_stake_meta_new( fd_stake_meta_t * self ) { fd_memset( self, 0, sizeof(fd_stake_meta_t) ); }
5136 : int fd_stake_meta_encode( fd_stake_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
5137 : void fd_stake_meta_walk( void * w, fd_stake_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5138 0 : static inline ulong fd_stake_meta_size( fd_stake_meta_t const * self ) { (void)self; return 120UL; }
5139 0 : static inline ulong fd_stake_meta_align( void ) { return FD_STAKE_META_ALIGN; }
5140 0 : static inline int fd_stake_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5141 0 : *total_sz += sizeof(fd_stake_meta_t);
5142 0 : if( (ulong)ctx->data + 120UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5143 0 : return 0;
5144 0 : }
5145 : void * fd_stake_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5146 :
5147 0 : static inline void fd_stake_flags_new( fd_stake_flags_t * self ) { fd_memset( self, 0, sizeof(fd_stake_flags_t) ); }
5148 : int fd_stake_flags_encode( fd_stake_flags_t const * self, fd_bincode_encode_ctx_t * ctx );
5149 : void fd_stake_flags_walk( void * w, fd_stake_flags_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5150 0 : static inline ulong fd_stake_flags_size( fd_stake_flags_t const * self ) { (void)self; return 1UL; }
5151 0 : static inline ulong fd_stake_flags_align( void ) { return FD_STAKE_FLAGS_ALIGN; }
5152 0 : static inline int fd_stake_flags_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5153 0 : *total_sz += sizeof(fd_stake_flags_t);
5154 0 : if( (ulong)ctx->data + 1UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5155 0 : return 0;
5156 0 : }
5157 : void * fd_stake_flags_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5158 :
5159 0 : static inline void fd_stake_state_v2_initialized_new( fd_stake_state_v2_initialized_t * self ) { fd_memset( self, 0, sizeof(fd_stake_state_v2_initialized_t) ); }
5160 : int fd_stake_state_v2_initialized_encode( fd_stake_state_v2_initialized_t const * self, fd_bincode_encode_ctx_t * ctx );
5161 : void fd_stake_state_v2_initialized_walk( void * w, fd_stake_state_v2_initialized_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5162 0 : static inline ulong fd_stake_state_v2_initialized_size( fd_stake_state_v2_initialized_t const * self ) { (void)self; return 120UL; }
5163 0 : static inline ulong fd_stake_state_v2_initialized_align( void ) { return FD_STAKE_STATE_V2_INITIALIZED_ALIGN; }
5164 0 : static inline int fd_stake_state_v2_initialized_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5165 0 : *total_sz += sizeof(fd_stake_state_v2_initialized_t);
5166 0 : if( (ulong)ctx->data + 120UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5167 0 : return 0;
5168 0 : }
5169 : void * fd_stake_state_v2_initialized_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5170 :
5171 12 : static inline void fd_stake_state_v2_stake_new( fd_stake_state_v2_stake_t * self ) { fd_memset( self, 0, sizeof(fd_stake_state_v2_stake_t) ); }
5172 : int fd_stake_state_v2_stake_encode( fd_stake_state_v2_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
5173 : void fd_stake_state_v2_stake_walk( void * w, fd_stake_state_v2_stake_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5174 0 : static inline ulong fd_stake_state_v2_stake_size( fd_stake_state_v2_stake_t const * self ) { (void)self; return 193UL; }
5175 0 : static inline ulong fd_stake_state_v2_stake_align( void ) { return FD_STAKE_STATE_V2_STAKE_ALIGN; }
5176 0 : static inline int fd_stake_state_v2_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5177 0 : *total_sz += sizeof(fd_stake_state_v2_stake_t);
5178 0 : if( (ulong)ctx->data + 193UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5179 0 : return 0;
5180 0 : }
5181 : void * fd_stake_state_v2_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5182 :
5183 : void fd_stake_state_v2_new_disc( fd_stake_state_v2_t * self, uint discriminant );
5184 : void fd_stake_state_v2_new( fd_stake_state_v2_t * self );
5185 : int fd_stake_state_v2_encode( fd_stake_state_v2_t const * self, fd_bincode_encode_ctx_t * ctx );
5186 : void fd_stake_state_v2_walk( void * w, fd_stake_state_v2_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5187 : ulong fd_stake_state_v2_size( fd_stake_state_v2_t const * self );
5188 0 : static inline ulong fd_stake_state_v2_align( void ) { return FD_STAKE_STATE_V2_ALIGN; }
5189 : int fd_stake_state_v2_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5190 : void * fd_stake_state_v2_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5191 :
5192 : FD_FN_PURE uchar fd_stake_state_v2_is_uninitialized( fd_stake_state_v2_t const * self );
5193 : FD_FN_PURE uchar fd_stake_state_v2_is_initialized( fd_stake_state_v2_t const * self );
5194 : FD_FN_PURE uchar fd_stake_state_v2_is_stake( fd_stake_state_v2_t const * self );
5195 : FD_FN_PURE uchar fd_stake_state_v2_is_rewards_pool( fd_stake_state_v2_t const * self );
5196 : enum {
5197 : fd_stake_state_v2_enum_uninitialized = 0,
5198 : fd_stake_state_v2_enum_initialized = 1,
5199 : fd_stake_state_v2_enum_stake = 2,
5200 : fd_stake_state_v2_enum_rewards_pool = 3,
5201 : };
5202 0 : static inline void fd_nonce_data_new( fd_nonce_data_t * self ) { fd_memset( self, 0, sizeof(fd_nonce_data_t) ); }
5203 : int fd_nonce_data_encode( fd_nonce_data_t const * self, fd_bincode_encode_ctx_t * ctx );
5204 : void fd_nonce_data_walk( void * w, fd_nonce_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5205 0 : static inline ulong fd_nonce_data_size( fd_nonce_data_t const * self ) { (void)self; return 72UL; }
5206 0 : static inline ulong fd_nonce_data_align( void ) { return FD_NONCE_DATA_ALIGN; }
5207 0 : static inline int fd_nonce_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5208 0 : *total_sz += sizeof(fd_nonce_data_t);
5209 0 : if( (ulong)ctx->data + 72UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5210 0 : return 0;
5211 0 : }
5212 : void * fd_nonce_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5213 :
5214 : void fd_nonce_state_new_disc( fd_nonce_state_t * self, uint discriminant );
5215 : void fd_nonce_state_new( fd_nonce_state_t * self );
5216 : int fd_nonce_state_encode( fd_nonce_state_t const * self, fd_bincode_encode_ctx_t * ctx );
5217 : void fd_nonce_state_walk( void * w, fd_nonce_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5218 : ulong fd_nonce_state_size( fd_nonce_state_t const * self );
5219 0 : static inline ulong fd_nonce_state_align( void ) { return FD_NONCE_STATE_ALIGN; }
5220 : int fd_nonce_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5221 : void * fd_nonce_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5222 :
5223 : FD_FN_PURE uchar fd_nonce_state_is_uninitialized( fd_nonce_state_t const * self );
5224 : FD_FN_PURE uchar fd_nonce_state_is_initialized( fd_nonce_state_t const * self );
5225 : enum {
5226 : fd_nonce_state_enum_uninitialized = 0,
5227 : fd_nonce_state_enum_initialized = 1,
5228 : };
5229 : void fd_nonce_state_versions_new_disc( fd_nonce_state_versions_t * self, uint discriminant );
5230 : void fd_nonce_state_versions_new( fd_nonce_state_versions_t * self );
5231 : int fd_nonce_state_versions_encode( fd_nonce_state_versions_t const * self, fd_bincode_encode_ctx_t * ctx );
5232 : void fd_nonce_state_versions_walk( void * w, fd_nonce_state_versions_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5233 : ulong fd_nonce_state_versions_size( fd_nonce_state_versions_t const * self );
5234 0 : static inline ulong fd_nonce_state_versions_align( void ) { return FD_NONCE_STATE_VERSIONS_ALIGN; }
5235 : int fd_nonce_state_versions_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5236 : void * fd_nonce_state_versions_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5237 :
5238 : FD_FN_PURE uchar fd_nonce_state_versions_is_legacy( fd_nonce_state_versions_t const * self );
5239 : FD_FN_PURE uchar fd_nonce_state_versions_is_current( fd_nonce_state_versions_t const * self );
5240 : enum {
5241 : fd_nonce_state_versions_enum_legacy = 0,
5242 : fd_nonce_state_versions_enum_current = 1,
5243 : };
5244 0 : static inline void fd_compute_budget_program_instruction_request_units_deprecated_new( fd_compute_budget_program_instruction_request_units_deprecated_t * self ) { fd_memset( self, 0, sizeof(fd_compute_budget_program_instruction_request_units_deprecated_t) ); }
5245 : int fd_compute_budget_program_instruction_request_units_deprecated_encode( fd_compute_budget_program_instruction_request_units_deprecated_t const * self, fd_bincode_encode_ctx_t * ctx );
5246 : void fd_compute_budget_program_instruction_request_units_deprecated_walk( void * w, fd_compute_budget_program_instruction_request_units_deprecated_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5247 0 : static inline ulong fd_compute_budget_program_instruction_request_units_deprecated_size( fd_compute_budget_program_instruction_request_units_deprecated_t const * self ) { (void)self; return 8UL; }
5248 0 : static inline ulong fd_compute_budget_program_instruction_request_units_deprecated_align( void ) { return FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_REQUEST_UNITS_DEPRECATED_ALIGN; }
5249 0 : static inline int fd_compute_budget_program_instruction_request_units_deprecated_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5250 0 : *total_sz += sizeof(fd_compute_budget_program_instruction_request_units_deprecated_t);
5251 0 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5252 0 : return 0;
5253 0 : }
5254 : void * fd_compute_budget_program_instruction_request_units_deprecated_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5255 :
5256 : void fd_compute_budget_program_instruction_new_disc( fd_compute_budget_program_instruction_t * self, uint discriminant );
5257 : void fd_compute_budget_program_instruction_new( fd_compute_budget_program_instruction_t * self );
5258 : int fd_compute_budget_program_instruction_encode( fd_compute_budget_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
5259 : void fd_compute_budget_program_instruction_walk( void * w, fd_compute_budget_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5260 : ulong fd_compute_budget_program_instruction_size( fd_compute_budget_program_instruction_t const * self );
5261 0 : static inline ulong fd_compute_budget_program_instruction_align( void ) { return FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_ALIGN; }
5262 : int fd_compute_budget_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5263 : void * fd_compute_budget_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5264 :
5265 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_request_units_deprecated( fd_compute_budget_program_instruction_t const * self );
5266 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_request_heap_frame( fd_compute_budget_program_instruction_t const * self );
5267 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_compute_unit_limit( fd_compute_budget_program_instruction_t const * self );
5268 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_compute_unit_price( fd_compute_budget_program_instruction_t const * self );
5269 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_loaded_accounts_data_size_limit( fd_compute_budget_program_instruction_t const * self );
5270 : enum {
5271 : fd_compute_budget_program_instruction_enum_request_units_deprecated = 0,
5272 : fd_compute_budget_program_instruction_enum_request_heap_frame = 1,
5273 : fd_compute_budget_program_instruction_enum_set_compute_unit_limit = 2,
5274 : fd_compute_budget_program_instruction_enum_set_compute_unit_price = 3,
5275 : fd_compute_budget_program_instruction_enum_set_loaded_accounts_data_size_limit = 4,
5276 : };
5277 : void fd_config_keys_new( fd_config_keys_t * self );
5278 : int fd_config_keys_encode( fd_config_keys_t const * self, fd_bincode_encode_ctx_t * ctx );
5279 : void fd_config_keys_walk( void * w, fd_config_keys_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5280 : ulong fd_config_keys_size( fd_config_keys_t const * self );
5281 0 : static inline ulong fd_config_keys_align( void ) { return FD_CONFIG_KEYS_ALIGN; }
5282 : int fd_config_keys_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5283 : void * fd_config_keys_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5284 :
5285 : void fd_bpf_loader_program_instruction_write_new( fd_bpf_loader_program_instruction_write_t * self );
5286 : int fd_bpf_loader_program_instruction_write_encode( fd_bpf_loader_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
5287 : void fd_bpf_loader_program_instruction_write_walk( void * w, fd_bpf_loader_program_instruction_write_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5288 : ulong fd_bpf_loader_program_instruction_write_size( fd_bpf_loader_program_instruction_write_t const * self );
5289 0 : static inline ulong fd_bpf_loader_program_instruction_write_align( void ) { return FD_BPF_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
5290 : int fd_bpf_loader_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5291 : void * fd_bpf_loader_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5292 :
5293 : void fd_bpf_loader_program_instruction_new_disc( fd_bpf_loader_program_instruction_t * self, uint discriminant );
5294 : void fd_bpf_loader_program_instruction_new( fd_bpf_loader_program_instruction_t * self );
5295 : int fd_bpf_loader_program_instruction_encode( fd_bpf_loader_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
5296 : void fd_bpf_loader_program_instruction_walk( void * w, fd_bpf_loader_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5297 : ulong fd_bpf_loader_program_instruction_size( fd_bpf_loader_program_instruction_t const * self );
5298 0 : static inline ulong fd_bpf_loader_program_instruction_align( void ) { return FD_BPF_LOADER_PROGRAM_INSTRUCTION_ALIGN; }
5299 : int fd_bpf_loader_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5300 : void * fd_bpf_loader_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5301 :
5302 : FD_FN_PURE uchar fd_bpf_loader_program_instruction_is_write( fd_bpf_loader_program_instruction_t const * self );
5303 : FD_FN_PURE uchar fd_bpf_loader_program_instruction_is_finalize( fd_bpf_loader_program_instruction_t const * self );
5304 : enum {
5305 : fd_bpf_loader_program_instruction_enum_write = 0,
5306 : fd_bpf_loader_program_instruction_enum_finalize = 1,
5307 : };
5308 : void fd_loader_v4_program_instruction_write_new( fd_loader_v4_program_instruction_write_t * self );
5309 : int fd_loader_v4_program_instruction_write_encode( fd_loader_v4_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
5310 : void fd_loader_v4_program_instruction_write_walk( void * w, fd_loader_v4_program_instruction_write_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5311 : ulong fd_loader_v4_program_instruction_write_size( fd_loader_v4_program_instruction_write_t const * self );
5312 0 : static inline ulong fd_loader_v4_program_instruction_write_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
5313 : int fd_loader_v4_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5314 : void * fd_loader_v4_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5315 :
5316 0 : static inline void fd_loader_v4_program_instruction_copy_new( fd_loader_v4_program_instruction_copy_t * self ) { fd_memset( self, 0, sizeof(fd_loader_v4_program_instruction_copy_t) ); }
5317 : int fd_loader_v4_program_instruction_copy_encode( fd_loader_v4_program_instruction_copy_t const * self, fd_bincode_encode_ctx_t * ctx );
5318 : void fd_loader_v4_program_instruction_copy_walk( void * w, fd_loader_v4_program_instruction_copy_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5319 0 : static inline ulong fd_loader_v4_program_instruction_copy_size( fd_loader_v4_program_instruction_copy_t const * self ) { (void)self; return 12UL; }
5320 0 : static inline ulong fd_loader_v4_program_instruction_copy_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_COPY_ALIGN; }
5321 0 : static inline int fd_loader_v4_program_instruction_copy_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5322 0 : *total_sz += sizeof(fd_loader_v4_program_instruction_copy_t);
5323 0 : if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5324 0 : return 0;
5325 0 : }
5326 : void * fd_loader_v4_program_instruction_copy_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5327 :
5328 0 : static inline void fd_loader_v4_program_instruction_set_program_length_new( fd_loader_v4_program_instruction_set_program_length_t * self ) { fd_memset( self, 0, sizeof(fd_loader_v4_program_instruction_set_program_length_t) ); }
5329 : int fd_loader_v4_program_instruction_set_program_length_encode( fd_loader_v4_program_instruction_set_program_length_t const * self, fd_bincode_encode_ctx_t * ctx );
5330 : void fd_loader_v4_program_instruction_set_program_length_walk( void * w, fd_loader_v4_program_instruction_set_program_length_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5331 0 : static inline ulong fd_loader_v4_program_instruction_set_program_length_size( fd_loader_v4_program_instruction_set_program_length_t const * self ) { (void)self; return 4UL; }
5332 0 : static inline ulong fd_loader_v4_program_instruction_set_program_length_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_SET_PROGRAM_LENGTH_ALIGN; }
5333 0 : static inline int fd_loader_v4_program_instruction_set_program_length_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5334 0 : *total_sz += sizeof(fd_loader_v4_program_instruction_set_program_length_t);
5335 0 : if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5336 0 : return 0;
5337 0 : }
5338 : void * fd_loader_v4_program_instruction_set_program_length_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5339 :
5340 : void fd_loader_v4_program_instruction_new_disc( fd_loader_v4_program_instruction_t * self, uint discriminant );
5341 : void fd_loader_v4_program_instruction_new( fd_loader_v4_program_instruction_t * self );
5342 : int fd_loader_v4_program_instruction_encode( fd_loader_v4_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
5343 : void fd_loader_v4_program_instruction_walk( void * w, fd_loader_v4_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5344 : ulong fd_loader_v4_program_instruction_size( fd_loader_v4_program_instruction_t const * self );
5345 0 : static inline ulong fd_loader_v4_program_instruction_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_ALIGN; }
5346 : int fd_loader_v4_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5347 : void * fd_loader_v4_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5348 :
5349 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_write( fd_loader_v4_program_instruction_t const * self );
5350 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_copy( fd_loader_v4_program_instruction_t const * self );
5351 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_set_program_length( fd_loader_v4_program_instruction_t const * self );
5352 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_deploy( fd_loader_v4_program_instruction_t const * self );
5353 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_retract( fd_loader_v4_program_instruction_t const * self );
5354 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_transfer_authority( fd_loader_v4_program_instruction_t const * self );
5355 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_finalize( fd_loader_v4_program_instruction_t const * self );
5356 : enum {
5357 : fd_loader_v4_program_instruction_enum_write = 0,
5358 : fd_loader_v4_program_instruction_enum_copy = 1,
5359 : fd_loader_v4_program_instruction_enum_set_program_length = 2,
5360 : fd_loader_v4_program_instruction_enum_deploy = 3,
5361 : fd_loader_v4_program_instruction_enum_retract = 4,
5362 : fd_loader_v4_program_instruction_enum_transfer_authority = 5,
5363 : fd_loader_v4_program_instruction_enum_finalize = 6,
5364 : };
5365 : void fd_bpf_upgradeable_loader_program_instruction_write_new( fd_bpf_upgradeable_loader_program_instruction_write_t * self );
5366 : int fd_bpf_upgradeable_loader_program_instruction_write_encode( fd_bpf_upgradeable_loader_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
5367 : void fd_bpf_upgradeable_loader_program_instruction_write_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_write_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5368 : ulong fd_bpf_upgradeable_loader_program_instruction_write_size( fd_bpf_upgradeable_loader_program_instruction_write_t const * self );
5369 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_write_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
5370 : int fd_bpf_upgradeable_loader_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5371 : void * fd_bpf_upgradeable_loader_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5372 :
5373 0 : static inline void fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_new( fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t * self ) { fd_memset( self, 0, sizeof(fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t) ); }
5374 : int fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_encode( fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t const * self, fd_bincode_encode_ctx_t * ctx );
5375 : void fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5376 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_size( fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t const * self ) { (void)self; return 8UL; }
5377 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_DEPLOY_WITH_MAX_DATA_LEN_ALIGN; }
5378 0 : static inline int fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5379 0 : *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t);
5380 0 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5381 0 : return 0;
5382 0 : }
5383 : void * fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5384 :
5385 0 : static inline void fd_bpf_upgradeable_loader_program_instruction_extend_program_new( fd_bpf_upgradeable_loader_program_instruction_extend_program_t * self ) { fd_memset( self, 0, sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t) ); }
5386 : int fd_bpf_upgradeable_loader_program_instruction_extend_program_encode( fd_bpf_upgradeable_loader_program_instruction_extend_program_t const * self, fd_bincode_encode_ctx_t * ctx );
5387 : void fd_bpf_upgradeable_loader_program_instruction_extend_program_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_extend_program_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5388 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_size( fd_bpf_upgradeable_loader_program_instruction_extend_program_t const * self ) { (void)self; return 4UL; }
5389 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_ALIGN; }
5390 0 : static inline int fd_bpf_upgradeable_loader_program_instruction_extend_program_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5391 0 : *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t);
5392 0 : if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5393 0 : return 0;
5394 0 : }
5395 : void * fd_bpf_upgradeable_loader_program_instruction_extend_program_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5396 :
5397 0 : static inline void fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_new( fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t * self ) { fd_memset( self, 0, sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t) ); }
5398 : int fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_encode( fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t const * self, fd_bincode_encode_ctx_t * ctx );
5399 : void fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5400 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_size( fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t const * self ) { (void)self; return 4UL; }
5401 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_CHECKED_ALIGN; }
5402 0 : static inline int fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5403 0 : *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t);
5404 0 : if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5405 0 : return 0;
5406 0 : }
5407 : void * fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5408 :
5409 : void fd_bpf_upgradeable_loader_program_instruction_new_disc( fd_bpf_upgradeable_loader_program_instruction_t * self, uint discriminant );
5410 : void fd_bpf_upgradeable_loader_program_instruction_new( fd_bpf_upgradeable_loader_program_instruction_t * self );
5411 : int fd_bpf_upgradeable_loader_program_instruction_encode( fd_bpf_upgradeable_loader_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
5412 : void fd_bpf_upgradeable_loader_program_instruction_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5413 : ulong fd_bpf_upgradeable_loader_program_instruction_size( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5414 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_ALIGN; }
5415 : int fd_bpf_upgradeable_loader_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5416 : void * fd_bpf_upgradeable_loader_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5417 :
5418 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_initialize_buffer( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5419 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_write( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5420 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_deploy_with_max_data_len( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5421 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_upgrade( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5422 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_set_authority( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5423 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_close( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5424 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_extend_program( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5425 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_set_authority_checked( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5426 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_migrate( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5427 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_extend_program_checked( fd_bpf_upgradeable_loader_program_instruction_t const * self );
5428 : enum {
5429 : fd_bpf_upgradeable_loader_program_instruction_enum_initialize_buffer = 0,
5430 : fd_bpf_upgradeable_loader_program_instruction_enum_write = 1,
5431 : fd_bpf_upgradeable_loader_program_instruction_enum_deploy_with_max_data_len = 2,
5432 : fd_bpf_upgradeable_loader_program_instruction_enum_upgrade = 3,
5433 : fd_bpf_upgradeable_loader_program_instruction_enum_set_authority = 4,
5434 : fd_bpf_upgradeable_loader_program_instruction_enum_close = 5,
5435 : fd_bpf_upgradeable_loader_program_instruction_enum_extend_program = 6,
5436 : fd_bpf_upgradeable_loader_program_instruction_enum_set_authority_checked = 7,
5437 : fd_bpf_upgradeable_loader_program_instruction_enum_migrate = 8,
5438 : fd_bpf_upgradeable_loader_program_instruction_enum_extend_program_checked = 9,
5439 : };
5440 : void fd_bpf_upgradeable_loader_state_buffer_new( fd_bpf_upgradeable_loader_state_buffer_t * self );
5441 : int fd_bpf_upgradeable_loader_state_buffer_encode( fd_bpf_upgradeable_loader_state_buffer_t const * self, fd_bincode_encode_ctx_t * ctx );
5442 : void fd_bpf_upgradeable_loader_state_buffer_walk( void * w, fd_bpf_upgradeable_loader_state_buffer_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5443 : ulong fd_bpf_upgradeable_loader_state_buffer_size( fd_bpf_upgradeable_loader_state_buffer_t const * self );
5444 0 : static inline ulong fd_bpf_upgradeable_loader_state_buffer_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_BUFFER_ALIGN; }
5445 : int fd_bpf_upgradeable_loader_state_buffer_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5446 : void * fd_bpf_upgradeable_loader_state_buffer_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5447 :
5448 0 : static inline void fd_bpf_upgradeable_loader_state_program_new( fd_bpf_upgradeable_loader_state_program_t * self ) { fd_memset( self, 0, sizeof(fd_bpf_upgradeable_loader_state_program_t) ); }
5449 : int fd_bpf_upgradeable_loader_state_program_encode( fd_bpf_upgradeable_loader_state_program_t const * self, fd_bincode_encode_ctx_t * ctx );
5450 : void fd_bpf_upgradeable_loader_state_program_walk( void * w, fd_bpf_upgradeable_loader_state_program_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5451 0 : static inline ulong fd_bpf_upgradeable_loader_state_program_size( fd_bpf_upgradeable_loader_state_program_t const * self ) { (void)self; return 32UL; }
5452 0 : static inline ulong fd_bpf_upgradeable_loader_state_program_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_ALIGN; }
5453 0 : static inline int fd_bpf_upgradeable_loader_state_program_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5454 0 : *total_sz += sizeof(fd_bpf_upgradeable_loader_state_program_t);
5455 0 : if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5456 0 : return 0;
5457 0 : }
5458 : void * fd_bpf_upgradeable_loader_state_program_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5459 :
5460 : void fd_bpf_upgradeable_loader_state_program_data_new( fd_bpf_upgradeable_loader_state_program_data_t * self );
5461 : int fd_bpf_upgradeable_loader_state_program_data_encode( fd_bpf_upgradeable_loader_state_program_data_t const * self, fd_bincode_encode_ctx_t * ctx );
5462 : void fd_bpf_upgradeable_loader_state_program_data_walk( void * w, fd_bpf_upgradeable_loader_state_program_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5463 : ulong fd_bpf_upgradeable_loader_state_program_data_size( fd_bpf_upgradeable_loader_state_program_data_t const * self );
5464 0 : static inline ulong fd_bpf_upgradeable_loader_state_program_data_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_DATA_ALIGN; }
5465 : int fd_bpf_upgradeable_loader_state_program_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5466 : void * fd_bpf_upgradeable_loader_state_program_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5467 :
5468 : void fd_bpf_upgradeable_loader_state_new_disc( fd_bpf_upgradeable_loader_state_t * self, uint discriminant );
5469 : void fd_bpf_upgradeable_loader_state_new( fd_bpf_upgradeable_loader_state_t * self );
5470 : int fd_bpf_upgradeable_loader_state_encode( fd_bpf_upgradeable_loader_state_t const * self, fd_bincode_encode_ctx_t * ctx );
5471 : void fd_bpf_upgradeable_loader_state_walk( void * w, fd_bpf_upgradeable_loader_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5472 : ulong fd_bpf_upgradeable_loader_state_size( fd_bpf_upgradeable_loader_state_t const * self );
5473 0 : static inline ulong fd_bpf_upgradeable_loader_state_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_ALIGN; }
5474 : int fd_bpf_upgradeable_loader_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5475 : void * fd_bpf_upgradeable_loader_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5476 :
5477 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_uninitialized( fd_bpf_upgradeable_loader_state_t const * self );
5478 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_buffer( fd_bpf_upgradeable_loader_state_t const * self );
5479 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_program( fd_bpf_upgradeable_loader_state_t const * self );
5480 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_program_data( fd_bpf_upgradeable_loader_state_t const * self );
5481 : enum {
5482 : fd_bpf_upgradeable_loader_state_enum_uninitialized = 0,
5483 : fd_bpf_upgradeable_loader_state_enum_buffer = 1,
5484 : fd_bpf_upgradeable_loader_state_enum_program = 2,
5485 : fd_bpf_upgradeable_loader_state_enum_program_data = 3,
5486 : };
5487 0 : static inline void fd_loader_v4_state_new( fd_loader_v4_state_t * self ) { fd_memset( self, 0, sizeof(fd_loader_v4_state_t) ); }
5488 : int fd_loader_v4_state_encode( fd_loader_v4_state_t const * self, fd_bincode_encode_ctx_t * ctx );
5489 : void fd_loader_v4_state_walk( void * w, fd_loader_v4_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5490 0 : static inline ulong fd_loader_v4_state_size( fd_loader_v4_state_t const * self ) { (void)self; return 48UL; }
5491 0 : static inline ulong fd_loader_v4_state_align( void ) { return FD_LOADER_V4_STATE_ALIGN; }
5492 0 : static inline int fd_loader_v4_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5493 0 : *total_sz += sizeof(fd_loader_v4_state_t);
5494 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5495 0 : return 0;
5496 0 : }
5497 : void * fd_loader_v4_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5498 :
5499 : void fd_frozen_hash_status_new( fd_frozen_hash_status_t * self );
5500 : int fd_frozen_hash_status_encode( fd_frozen_hash_status_t const * self, fd_bincode_encode_ctx_t * ctx );
5501 : void fd_frozen_hash_status_walk( void * w, fd_frozen_hash_status_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5502 0 : static inline ulong fd_frozen_hash_status_size( fd_frozen_hash_status_t const * self ) { (void)self; return 33UL; }
5503 0 : static inline ulong fd_frozen_hash_status_align( void ) { return FD_FROZEN_HASH_STATUS_ALIGN; }
5504 : int fd_frozen_hash_status_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5505 : void * fd_frozen_hash_status_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5506 :
5507 : void fd_frozen_hash_versioned_new_disc( fd_frozen_hash_versioned_t * self, uint discriminant );
5508 : void fd_frozen_hash_versioned_new( fd_frozen_hash_versioned_t * self );
5509 : int fd_frozen_hash_versioned_encode( fd_frozen_hash_versioned_t const * self, fd_bincode_encode_ctx_t * ctx );
5510 : void fd_frozen_hash_versioned_walk( void * w, fd_frozen_hash_versioned_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5511 : ulong fd_frozen_hash_versioned_size( fd_frozen_hash_versioned_t const * self );
5512 0 : static inline ulong fd_frozen_hash_versioned_align( void ) { return FD_FROZEN_HASH_VERSIONED_ALIGN; }
5513 : int fd_frozen_hash_versioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5514 : void * fd_frozen_hash_versioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5515 :
5516 : FD_FN_PURE uchar fd_frozen_hash_versioned_is_current( fd_frozen_hash_versioned_t const * self );
5517 : enum {
5518 : fd_frozen_hash_versioned_enum_current = 0,
5519 : };
5520 : void fd_lookup_table_meta_new( fd_lookup_table_meta_t * self );
5521 : int fd_lookup_table_meta_encode( fd_lookup_table_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
5522 : void fd_lookup_table_meta_walk( void * w, fd_lookup_table_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5523 : ulong fd_lookup_table_meta_size( fd_lookup_table_meta_t const * self );
5524 0 : static inline ulong fd_lookup_table_meta_align( void ) { return FD_LOOKUP_TABLE_META_ALIGN; }
5525 : int fd_lookup_table_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5526 : void * fd_lookup_table_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5527 :
5528 : void fd_address_lookup_table_new( fd_address_lookup_table_t * self );
5529 : int fd_address_lookup_table_encode( fd_address_lookup_table_t const * self, fd_bincode_encode_ctx_t * ctx );
5530 : void fd_address_lookup_table_walk( void * w, fd_address_lookup_table_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5531 : ulong fd_address_lookup_table_size( fd_address_lookup_table_t const * self );
5532 0 : static inline ulong fd_address_lookup_table_align( void ) { return FD_ADDRESS_LOOKUP_TABLE_ALIGN; }
5533 : int fd_address_lookup_table_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5534 : void * fd_address_lookup_table_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5535 :
5536 : void fd_address_lookup_table_state_new_disc( fd_address_lookup_table_state_t * self, uint discriminant );
5537 : void fd_address_lookup_table_state_new( fd_address_lookup_table_state_t * self );
5538 : int fd_address_lookup_table_state_encode( fd_address_lookup_table_state_t const * self, fd_bincode_encode_ctx_t * ctx );
5539 : void fd_address_lookup_table_state_walk( void * w, fd_address_lookup_table_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5540 : ulong fd_address_lookup_table_state_size( fd_address_lookup_table_state_t const * self );
5541 0 : static inline ulong fd_address_lookup_table_state_align( void ) { return FD_ADDRESS_LOOKUP_TABLE_STATE_ALIGN; }
5542 : int fd_address_lookup_table_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5543 : void * fd_address_lookup_table_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5544 :
5545 : FD_FN_PURE uchar fd_address_lookup_table_state_is_uninitialized( fd_address_lookup_table_state_t const * self );
5546 : FD_FN_PURE uchar fd_address_lookup_table_state_is_lookup_table( fd_address_lookup_table_state_t const * self );
5547 : enum {
5548 : fd_address_lookup_table_state_enum_uninitialized = 0,
5549 : fd_address_lookup_table_state_enum_lookup_table = 1,
5550 : };
5551 0 : static inline void fd_gossip_ping_new( fd_gossip_ping_t * self ) { fd_memset( self, 0, sizeof(fd_gossip_ping_t) ); }
5552 : int fd_gossip_ping_encode( fd_gossip_ping_t const * self, fd_bincode_encode_ctx_t * ctx );
5553 : void fd_gossip_ping_walk( void * w, fd_gossip_ping_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5554 0 : static inline ulong fd_gossip_ping_size( fd_gossip_ping_t const * self ) { (void)self; return 128UL; }
5555 0 : static inline ulong fd_gossip_ping_align( void ) { return FD_GOSSIP_PING_ALIGN; }
5556 0 : static inline int fd_gossip_ping_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5557 0 : *total_sz += sizeof(fd_gossip_ping_t);
5558 0 : if( (ulong)ctx->data + 128UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5559 0 : return 0;
5560 0 : }
5561 : void * fd_gossip_ping_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5562 :
5563 : void fd_gossip_ip_addr_new_disc( fd_gossip_ip_addr_t * self, uint discriminant );
5564 : void fd_gossip_ip_addr_new( fd_gossip_ip_addr_t * self );
5565 : int fd_gossip_ip_addr_encode( fd_gossip_ip_addr_t const * self, fd_bincode_encode_ctx_t * ctx );
5566 : void fd_gossip_ip_addr_walk( void * w, fd_gossip_ip_addr_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5567 : ulong fd_gossip_ip_addr_size( fd_gossip_ip_addr_t const * self );
5568 0 : static inline ulong fd_gossip_ip_addr_align( void ) { return FD_GOSSIP_IP_ADDR_ALIGN; }
5569 : int fd_gossip_ip_addr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5570 : void * fd_gossip_ip_addr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5571 :
5572 : FD_FN_PURE uchar fd_gossip_ip_addr_is_ip4( fd_gossip_ip_addr_t const * self );
5573 : FD_FN_PURE uchar fd_gossip_ip_addr_is_ip6( fd_gossip_ip_addr_t const * self );
5574 : enum {
5575 : fd_gossip_ip_addr_enum_ip4 = 0,
5576 : fd_gossip_ip_addr_enum_ip6 = 1,
5577 : };
5578 : void fd_gossip_prune_data_new( fd_gossip_prune_data_t * self );
5579 : int fd_gossip_prune_data_encode( fd_gossip_prune_data_t const * self, fd_bincode_encode_ctx_t * ctx );
5580 : void fd_gossip_prune_data_walk( void * w, fd_gossip_prune_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5581 : ulong fd_gossip_prune_data_size( fd_gossip_prune_data_t const * self );
5582 0 : static inline ulong fd_gossip_prune_data_align( void ) { return FD_GOSSIP_PRUNE_DATA_ALIGN; }
5583 : int fd_gossip_prune_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5584 : void * fd_gossip_prune_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5585 :
5586 : void fd_gossip_prune_sign_data_new( fd_gossip_prune_sign_data_t * self );
5587 : int fd_gossip_prune_sign_data_encode( fd_gossip_prune_sign_data_t const * self, fd_bincode_encode_ctx_t * ctx );
5588 : void fd_gossip_prune_sign_data_walk( void * w, fd_gossip_prune_sign_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5589 : ulong fd_gossip_prune_sign_data_size( fd_gossip_prune_sign_data_t const * self );
5590 0 : static inline ulong fd_gossip_prune_sign_data_align( void ) { return FD_GOSSIP_PRUNE_SIGN_DATA_ALIGN; }
5591 : int fd_gossip_prune_sign_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5592 : void * fd_gossip_prune_sign_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5593 :
5594 : void fd_gossip_prune_sign_data_with_prefix_new( fd_gossip_prune_sign_data_with_prefix_t * self );
5595 : int fd_gossip_prune_sign_data_with_prefix_encode( fd_gossip_prune_sign_data_with_prefix_t const * self, fd_bincode_encode_ctx_t * ctx );
5596 : void fd_gossip_prune_sign_data_with_prefix_walk( void * w, fd_gossip_prune_sign_data_with_prefix_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5597 : ulong fd_gossip_prune_sign_data_with_prefix_size( fd_gossip_prune_sign_data_with_prefix_t const * self );
5598 0 : static inline ulong fd_gossip_prune_sign_data_with_prefix_align( void ) { return FD_GOSSIP_PRUNE_SIGN_DATA_WITH_PREFIX_ALIGN; }
5599 : int fd_gossip_prune_sign_data_with_prefix_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5600 : void * fd_gossip_prune_sign_data_with_prefix_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5601 :
5602 : void fd_gossip_socket_addr_old_new( fd_gossip_socket_addr_old_t * self );
5603 : int fd_gossip_socket_addr_old_encode( fd_gossip_socket_addr_old_t const * self, fd_bincode_encode_ctx_t * ctx );
5604 : void fd_gossip_socket_addr_old_walk( void * w, fd_gossip_socket_addr_old_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5605 : ulong fd_gossip_socket_addr_old_size( fd_gossip_socket_addr_old_t const * self );
5606 0 : static inline ulong fd_gossip_socket_addr_old_align( void ) { return FD_GOSSIP_SOCKET_ADDR_OLD_ALIGN; }
5607 : int fd_gossip_socket_addr_old_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5608 : void * fd_gossip_socket_addr_old_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5609 :
5610 : void fd_gossip_socket_addr_ip4_new( fd_gossip_socket_addr_ip4_t * self );
5611 : int fd_gossip_socket_addr_ip4_encode( fd_gossip_socket_addr_ip4_t const * self, fd_bincode_encode_ctx_t * ctx );
5612 : void fd_gossip_socket_addr_ip4_walk( void * w, fd_gossip_socket_addr_ip4_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5613 : ulong fd_gossip_socket_addr_ip4_size( fd_gossip_socket_addr_ip4_t const * self );
5614 0 : static inline ulong fd_gossip_socket_addr_ip4_align( void ) { return FD_GOSSIP_SOCKET_ADDR_IP4_ALIGN; }
5615 : int fd_gossip_socket_addr_ip4_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5616 : void * fd_gossip_socket_addr_ip4_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5617 :
5618 : void fd_gossip_socket_addr_ip6_new( fd_gossip_socket_addr_ip6_t * self );
5619 : int fd_gossip_socket_addr_ip6_encode( fd_gossip_socket_addr_ip6_t const * self, fd_bincode_encode_ctx_t * ctx );
5620 : void fd_gossip_socket_addr_ip6_walk( void * w, fd_gossip_socket_addr_ip6_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5621 0 : static inline ulong fd_gossip_socket_addr_ip6_size( fd_gossip_socket_addr_ip6_t const * self ) { (void)self; return 18UL; }
5622 0 : static inline ulong fd_gossip_socket_addr_ip6_align( void ) { return FD_GOSSIP_SOCKET_ADDR_IP6_ALIGN; }
5623 : int fd_gossip_socket_addr_ip6_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5624 : void * fd_gossip_socket_addr_ip6_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5625 :
5626 : void fd_gossip_socket_addr_new_disc( fd_gossip_socket_addr_t * self, uint discriminant );
5627 : void fd_gossip_socket_addr_new( fd_gossip_socket_addr_t * self );
5628 : int fd_gossip_socket_addr_encode( fd_gossip_socket_addr_t const * self, fd_bincode_encode_ctx_t * ctx );
5629 : void fd_gossip_socket_addr_walk( void * w, fd_gossip_socket_addr_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5630 : ulong fd_gossip_socket_addr_size( fd_gossip_socket_addr_t const * self );
5631 0 : static inline ulong fd_gossip_socket_addr_align( void ) { return FD_GOSSIP_SOCKET_ADDR_ALIGN; }
5632 : int fd_gossip_socket_addr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5633 : void * fd_gossip_socket_addr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5634 :
5635 : FD_FN_PURE uchar fd_gossip_socket_addr_is_ip4( fd_gossip_socket_addr_t const * self );
5636 : FD_FN_PURE uchar fd_gossip_socket_addr_is_ip6( fd_gossip_socket_addr_t const * self );
5637 : enum {
5638 : fd_gossip_socket_addr_enum_ip4 = 0,
5639 : fd_gossip_socket_addr_enum_ip6 = 1,
5640 : };
5641 : void fd_gossip_contact_info_v1_new( fd_gossip_contact_info_v1_t * self );
5642 : int fd_gossip_contact_info_v1_encode( fd_gossip_contact_info_v1_t const * self, fd_bincode_encode_ctx_t * ctx );
5643 : void fd_gossip_contact_info_v1_walk( void * w, fd_gossip_contact_info_v1_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5644 : ulong fd_gossip_contact_info_v1_size( fd_gossip_contact_info_v1_t const * self );
5645 0 : static inline ulong fd_gossip_contact_info_v1_align( void ) { return FD_GOSSIP_CONTACT_INFO_V1_ALIGN; }
5646 : int fd_gossip_contact_info_v1_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5647 : void * fd_gossip_contact_info_v1_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5648 :
5649 : void fd_gossip_vote_new( fd_gossip_vote_t * self );
5650 : int fd_gossip_vote_encode( fd_gossip_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
5651 : void fd_gossip_vote_walk( void * w, fd_gossip_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5652 : ulong fd_gossip_vote_size( fd_gossip_vote_t const * self );
5653 0 : static inline ulong fd_gossip_vote_align( void ) { return FD_GOSSIP_VOTE_ALIGN; }
5654 : int fd_gossip_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5655 : void * fd_gossip_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5656 :
5657 0 : static inline void fd_gossip_deprecated_compression_type_new_disc( fd_gossip_deprecated_compression_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
5658 0 : static inline void fd_gossip_deprecated_compression_type_new( fd_gossip_deprecated_compression_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
5659 : int fd_gossip_deprecated_compression_type_encode( fd_gossip_deprecated_compression_type_t const * self, fd_bincode_encode_ctx_t * ctx );
5660 : void fd_gossip_deprecated_compression_type_walk( void * w, fd_gossip_deprecated_compression_type_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5661 : ulong fd_gossip_deprecated_compression_type_size( fd_gossip_deprecated_compression_type_t const * self );
5662 0 : static inline ulong fd_gossip_deprecated_compression_type_align( void ) { return FD_GOSSIP_DEPRECATED_COMPRESSION_TYPE_ALIGN; }
5663 : int fd_gossip_deprecated_compression_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5664 : void * fd_gossip_deprecated_compression_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5665 :
5666 : FD_FN_PURE uchar fd_gossip_deprecated_compression_type_is_Uncompressed( fd_gossip_deprecated_compression_type_t const * self );
5667 : FD_FN_PURE uchar fd_gossip_deprecated_compression_type_is_GZip( fd_gossip_deprecated_compression_type_t const * self );
5668 : FD_FN_PURE uchar fd_gossip_deprecated_compression_type_is_BZip2( fd_gossip_deprecated_compression_type_t const * self );
5669 : enum {
5670 : fd_gossip_deprecated_compression_type_enum_Uncompressed = 0,
5671 : fd_gossip_deprecated_compression_type_enum_GZip = 1,
5672 : fd_gossip_deprecated_compression_type_enum_BZip2 = 2,
5673 : };
5674 : void fd_gossip_deprecated_epoch_incomplete_slots_new( fd_gossip_deprecated_epoch_incomplete_slots_t * self );
5675 : int fd_gossip_deprecated_epoch_incomplete_slots_encode( fd_gossip_deprecated_epoch_incomplete_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
5676 : void fd_gossip_deprecated_epoch_incomplete_slots_walk( void * w, fd_gossip_deprecated_epoch_incomplete_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5677 : ulong fd_gossip_deprecated_epoch_incomplete_slots_size( fd_gossip_deprecated_epoch_incomplete_slots_t const * self );
5678 0 : static inline ulong fd_gossip_deprecated_epoch_incomplete_slots_align( void ) { return FD_GOSSIP_DEPRECATED_EPOCH_INCOMPLETE_SLOTS_ALIGN; }
5679 : int fd_gossip_deprecated_epoch_incomplete_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5680 : void * fd_gossip_deprecated_epoch_incomplete_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5681 :
5682 : void fd_gossip_lowest_slot_new( fd_gossip_lowest_slot_t * self );
5683 : int fd_gossip_lowest_slot_encode( fd_gossip_lowest_slot_t const * self, fd_bincode_encode_ctx_t * ctx );
5684 : void fd_gossip_lowest_slot_walk( void * w, fd_gossip_lowest_slot_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5685 : ulong fd_gossip_lowest_slot_size( fd_gossip_lowest_slot_t const * self );
5686 0 : static inline ulong fd_gossip_lowest_slot_align( void ) { return FD_GOSSIP_LOWEST_SLOT_ALIGN; }
5687 : int fd_gossip_lowest_slot_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5688 : void * fd_gossip_lowest_slot_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5689 :
5690 : void fd_gossip_slot_hashes_new( fd_gossip_slot_hashes_t * self );
5691 : int fd_gossip_slot_hashes_encode( fd_gossip_slot_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
5692 : void fd_gossip_slot_hashes_walk( void * w, fd_gossip_slot_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5693 : ulong fd_gossip_slot_hashes_size( fd_gossip_slot_hashes_t const * self );
5694 0 : static inline ulong fd_gossip_slot_hashes_align( void ) { return FD_GOSSIP_SLOT_HASHES_ALIGN; }
5695 : int fd_gossip_slot_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5696 : void * fd_gossip_slot_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5697 :
5698 : void fd_gossip_slots_new( fd_gossip_slots_t * self );
5699 : int fd_gossip_slots_encode( fd_gossip_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
5700 : void fd_gossip_slots_walk( void * w, fd_gossip_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5701 : ulong fd_gossip_slots_size( fd_gossip_slots_t const * self );
5702 0 : static inline ulong fd_gossip_slots_align( void ) { return FD_GOSSIP_SLOTS_ALIGN; }
5703 : int fd_gossip_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5704 : void * fd_gossip_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5705 :
5706 : void fd_gossip_flate2_slots_new( fd_gossip_flate2_slots_t * self );
5707 : int fd_gossip_flate2_slots_encode( fd_gossip_flate2_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
5708 : void fd_gossip_flate2_slots_walk( void * w, fd_gossip_flate2_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5709 : ulong fd_gossip_flate2_slots_size( fd_gossip_flate2_slots_t const * self );
5710 0 : static inline ulong fd_gossip_flate2_slots_align( void ) { return FD_GOSSIP_FLATE2_SLOTS_ALIGN; }
5711 : int fd_gossip_flate2_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5712 : void * fd_gossip_flate2_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5713 :
5714 : void fd_gossip_slots_enum_new_disc( fd_gossip_slots_enum_t * self, uint discriminant );
5715 : void fd_gossip_slots_enum_new( fd_gossip_slots_enum_t * self );
5716 : int fd_gossip_slots_enum_encode( fd_gossip_slots_enum_t const * self, fd_bincode_encode_ctx_t * ctx );
5717 : void fd_gossip_slots_enum_walk( void * w, fd_gossip_slots_enum_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5718 : ulong fd_gossip_slots_enum_size( fd_gossip_slots_enum_t const * self );
5719 0 : static inline ulong fd_gossip_slots_enum_align( void ) { return FD_GOSSIP_SLOTS_ENUM_ALIGN; }
5720 : int fd_gossip_slots_enum_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5721 : void * fd_gossip_slots_enum_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5722 :
5723 : FD_FN_PURE uchar fd_gossip_slots_enum_is_flate2( fd_gossip_slots_enum_t const * self );
5724 : FD_FN_PURE uchar fd_gossip_slots_enum_is_uncompressed( fd_gossip_slots_enum_t const * self );
5725 : enum {
5726 : fd_gossip_slots_enum_enum_flate2 = 0,
5727 : fd_gossip_slots_enum_enum_uncompressed = 1,
5728 : };
5729 : void fd_gossip_epoch_slots_new( fd_gossip_epoch_slots_t * self );
5730 : int fd_gossip_epoch_slots_encode( fd_gossip_epoch_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
5731 : void fd_gossip_epoch_slots_walk( void * w, fd_gossip_epoch_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5732 : ulong fd_gossip_epoch_slots_size( fd_gossip_epoch_slots_t const * self );
5733 0 : static inline ulong fd_gossip_epoch_slots_align( void ) { return FD_GOSSIP_EPOCH_SLOTS_ALIGN; }
5734 : int fd_gossip_epoch_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5735 : void * fd_gossip_epoch_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5736 :
5737 : void fd_gossip_version_v1_new( fd_gossip_version_v1_t * self );
5738 : int fd_gossip_version_v1_encode( fd_gossip_version_v1_t const * self, fd_bincode_encode_ctx_t * ctx );
5739 : void fd_gossip_version_v1_walk( void * w, fd_gossip_version_v1_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5740 : ulong fd_gossip_version_v1_size( fd_gossip_version_v1_t const * self );
5741 0 : static inline ulong fd_gossip_version_v1_align( void ) { return FD_GOSSIP_VERSION_V1_ALIGN; }
5742 : int fd_gossip_version_v1_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5743 : void * fd_gossip_version_v1_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5744 :
5745 : void fd_gossip_version_v2_new( fd_gossip_version_v2_t * self );
5746 : int fd_gossip_version_v2_encode( fd_gossip_version_v2_t const * self, fd_bincode_encode_ctx_t * ctx );
5747 : void fd_gossip_version_v2_walk( void * w, fd_gossip_version_v2_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5748 : ulong fd_gossip_version_v2_size( fd_gossip_version_v2_t const * self );
5749 0 : static inline ulong fd_gossip_version_v2_align( void ) { return FD_GOSSIP_VERSION_V2_ALIGN; }
5750 : int fd_gossip_version_v2_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5751 : void * fd_gossip_version_v2_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5752 :
5753 : void fd_gossip_version_v3_new( fd_gossip_version_v3_t * self );
5754 : int fd_gossip_version_v3_encode( fd_gossip_version_v3_t const * self, fd_bincode_encode_ctx_t * ctx );
5755 : void fd_gossip_version_v3_walk( void * w, fd_gossip_version_v3_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5756 : ulong fd_gossip_version_v3_size( fd_gossip_version_v3_t const * self );
5757 0 : static inline ulong fd_gossip_version_v3_align( void ) { return FD_GOSSIP_VERSION_V3_ALIGN; }
5758 : int fd_gossip_version_v3_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5759 : void * fd_gossip_version_v3_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5760 :
5761 0 : static inline void fd_gossip_node_instance_new( fd_gossip_node_instance_t * self ) { fd_memset( self, 0, sizeof(fd_gossip_node_instance_t) ); }
5762 : int fd_gossip_node_instance_encode( fd_gossip_node_instance_t const * self, fd_bincode_encode_ctx_t * ctx );
5763 : void fd_gossip_node_instance_walk( void * w, fd_gossip_node_instance_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5764 0 : static inline ulong fd_gossip_node_instance_size( fd_gossip_node_instance_t const * self ) { (void)self; return 56UL; }
5765 0 : static inline ulong fd_gossip_node_instance_align( void ) { return FD_GOSSIP_NODE_INSTANCE_ALIGN; }
5766 0 : static inline int fd_gossip_node_instance_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5767 0 : *total_sz += sizeof(fd_gossip_node_instance_t);
5768 0 : if( (ulong)ctx->data + 56UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5769 0 : return 0;
5770 0 : }
5771 : void * fd_gossip_node_instance_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5772 :
5773 : void fd_gossip_duplicate_shred_new( fd_gossip_duplicate_shred_t * self );
5774 : int fd_gossip_duplicate_shred_encode( fd_gossip_duplicate_shred_t const * self, fd_bincode_encode_ctx_t * ctx );
5775 : void fd_gossip_duplicate_shred_walk( void * w, fd_gossip_duplicate_shred_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5776 : ulong fd_gossip_duplicate_shred_size( fd_gossip_duplicate_shred_t const * self );
5777 0 : static inline ulong fd_gossip_duplicate_shred_align( void ) { return FD_GOSSIP_DUPLICATE_SHRED_ALIGN; }
5778 : int fd_gossip_duplicate_shred_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5779 : void * fd_gossip_duplicate_shred_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5780 :
5781 : void fd_gossip_incremental_snapshot_hashes_new( fd_gossip_incremental_snapshot_hashes_t * self );
5782 : int fd_gossip_incremental_snapshot_hashes_encode( fd_gossip_incremental_snapshot_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
5783 : void fd_gossip_incremental_snapshot_hashes_walk( void * w, fd_gossip_incremental_snapshot_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5784 : ulong fd_gossip_incremental_snapshot_hashes_size( fd_gossip_incremental_snapshot_hashes_t const * self );
5785 0 : static inline ulong fd_gossip_incremental_snapshot_hashes_align( void ) { return FD_GOSSIP_INCREMENTAL_SNAPSHOT_HASHES_ALIGN; }
5786 : int fd_gossip_incremental_snapshot_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5787 : void * fd_gossip_incremental_snapshot_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5788 :
5789 : void fd_gossip_socket_entry_new( fd_gossip_socket_entry_t * self );
5790 : int fd_gossip_socket_entry_encode( fd_gossip_socket_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
5791 : void fd_gossip_socket_entry_walk( void * w, fd_gossip_socket_entry_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5792 : ulong fd_gossip_socket_entry_size( fd_gossip_socket_entry_t const * self );
5793 0 : static inline ulong fd_gossip_socket_entry_align( void ) { return FD_GOSSIP_SOCKET_ENTRY_ALIGN; }
5794 : int fd_gossip_socket_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5795 : void * fd_gossip_socket_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5796 :
5797 : void fd_gossip_contact_info_v2_new( fd_gossip_contact_info_v2_t * self );
5798 : int fd_gossip_contact_info_v2_encode( fd_gossip_contact_info_v2_t const * self, fd_bincode_encode_ctx_t * ctx );
5799 : void fd_gossip_contact_info_v2_walk( void * w, fd_gossip_contact_info_v2_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5800 : ulong fd_gossip_contact_info_v2_size( fd_gossip_contact_info_v2_t const * self );
5801 0 : static inline ulong fd_gossip_contact_info_v2_align( void ) { return FD_GOSSIP_CONTACT_INFO_V2_ALIGN; }
5802 : int fd_gossip_contact_info_v2_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5803 : void * fd_gossip_contact_info_v2_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5804 :
5805 : void fd_restart_run_length_encoding_inner_new( fd_restart_run_length_encoding_inner_t * self );
5806 : int fd_restart_run_length_encoding_inner_encode( fd_restart_run_length_encoding_inner_t const * self, fd_bincode_encode_ctx_t * ctx );
5807 : void fd_restart_run_length_encoding_inner_walk( void * w, fd_restart_run_length_encoding_inner_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5808 : ulong fd_restart_run_length_encoding_inner_size( fd_restart_run_length_encoding_inner_t const * self );
5809 0 : static inline ulong fd_restart_run_length_encoding_inner_align( void ) { return FD_RESTART_RUN_LENGTH_ENCODING_INNER_ALIGN; }
5810 : int fd_restart_run_length_encoding_inner_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5811 : void * fd_restart_run_length_encoding_inner_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5812 :
5813 : void fd_restart_run_length_encoding_new( fd_restart_run_length_encoding_t * self );
5814 : int fd_restart_run_length_encoding_encode( fd_restart_run_length_encoding_t const * self, fd_bincode_encode_ctx_t * ctx );
5815 : void fd_restart_run_length_encoding_walk( void * w, fd_restart_run_length_encoding_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5816 : ulong fd_restart_run_length_encoding_size( fd_restart_run_length_encoding_t const * self );
5817 0 : static inline ulong fd_restart_run_length_encoding_align( void ) { return FD_RESTART_RUN_LENGTH_ENCODING_ALIGN; }
5818 : int fd_restart_run_length_encoding_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5819 : void * fd_restart_run_length_encoding_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5820 :
5821 : void fd_restart_raw_offsets_new( fd_restart_raw_offsets_t * self );
5822 : int fd_restart_raw_offsets_encode( fd_restart_raw_offsets_t const * self, fd_bincode_encode_ctx_t * ctx );
5823 : void fd_restart_raw_offsets_walk( void * w, fd_restart_raw_offsets_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5824 : ulong fd_restart_raw_offsets_size( fd_restart_raw_offsets_t const * self );
5825 0 : static inline ulong fd_restart_raw_offsets_align( void ) { return FD_RESTART_RAW_OFFSETS_ALIGN; }
5826 : int fd_restart_raw_offsets_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5827 : void * fd_restart_raw_offsets_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5828 :
5829 : void fd_restart_slots_offsets_new_disc( fd_restart_slots_offsets_t * self, uint discriminant );
5830 : void fd_restart_slots_offsets_new( fd_restart_slots_offsets_t * self );
5831 : int fd_restart_slots_offsets_encode( fd_restart_slots_offsets_t const * self, fd_bincode_encode_ctx_t * ctx );
5832 : void fd_restart_slots_offsets_walk( void * w, fd_restart_slots_offsets_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5833 : ulong fd_restart_slots_offsets_size( fd_restart_slots_offsets_t const * self );
5834 0 : static inline ulong fd_restart_slots_offsets_align( void ) { return FD_RESTART_SLOTS_OFFSETS_ALIGN; }
5835 : int fd_restart_slots_offsets_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5836 : void * fd_restart_slots_offsets_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5837 :
5838 : FD_FN_PURE uchar fd_restart_slots_offsets_is_run_length_encoding( fd_restart_slots_offsets_t const * self );
5839 : FD_FN_PURE uchar fd_restart_slots_offsets_is_raw_offsets( fd_restart_slots_offsets_t const * self );
5840 : enum {
5841 : fd_restart_slots_offsets_enum_run_length_encoding = 0,
5842 : fd_restart_slots_offsets_enum_raw_offsets = 1,
5843 : };
5844 : void fd_gossip_restart_last_voted_fork_slots_new( fd_gossip_restart_last_voted_fork_slots_t * self );
5845 : int fd_gossip_restart_last_voted_fork_slots_encode( fd_gossip_restart_last_voted_fork_slots_t const * self, fd_bincode_encode_ctx_t * ctx );
5846 : void fd_gossip_restart_last_voted_fork_slots_walk( void * w, fd_gossip_restart_last_voted_fork_slots_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5847 : ulong fd_gossip_restart_last_voted_fork_slots_size( fd_gossip_restart_last_voted_fork_slots_t const * self );
5848 0 : static inline ulong fd_gossip_restart_last_voted_fork_slots_align( void ) { return FD_GOSSIP_RESTART_LAST_VOTED_FORK_SLOTS_ALIGN; }
5849 : int fd_gossip_restart_last_voted_fork_slots_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5850 : void * fd_gossip_restart_last_voted_fork_slots_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5851 :
5852 0 : static inline void fd_gossip_restart_heaviest_fork_new( fd_gossip_restart_heaviest_fork_t * self ) { fd_memset( self, 0, sizeof(fd_gossip_restart_heaviest_fork_t) ); }
5853 : int fd_gossip_restart_heaviest_fork_encode( fd_gossip_restart_heaviest_fork_t const * self, fd_bincode_encode_ctx_t * ctx );
5854 : void fd_gossip_restart_heaviest_fork_walk( void * w, fd_gossip_restart_heaviest_fork_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5855 0 : static inline ulong fd_gossip_restart_heaviest_fork_size( fd_gossip_restart_heaviest_fork_t const * self ) { (void)self; return 90UL; }
5856 0 : static inline ulong fd_gossip_restart_heaviest_fork_align( void ) { return FD_GOSSIP_RESTART_HEAVIEST_FORK_ALIGN; }
5857 0 : static inline int fd_gossip_restart_heaviest_fork_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5858 0 : *total_sz += sizeof(fd_gossip_restart_heaviest_fork_t);
5859 0 : if( (ulong)ctx->data + 90UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5860 0 : return 0;
5861 0 : }
5862 : void * fd_gossip_restart_heaviest_fork_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5863 :
5864 : void fd_crds_data_new_disc( fd_crds_data_t * self, uint discriminant );
5865 : void fd_crds_data_new( fd_crds_data_t * self );
5866 : int fd_crds_data_encode( fd_crds_data_t const * self, fd_bincode_encode_ctx_t * ctx );
5867 : void fd_crds_data_walk( void * w, fd_crds_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5868 : ulong fd_crds_data_size( fd_crds_data_t const * self );
5869 0 : static inline ulong fd_crds_data_align( void ) { return FD_CRDS_DATA_ALIGN; }
5870 : int fd_crds_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5871 : void * fd_crds_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5872 :
5873 : FD_FN_PURE uchar fd_crds_data_is_contact_info_v1( fd_crds_data_t const * self );
5874 : FD_FN_PURE uchar fd_crds_data_is_vote( fd_crds_data_t const * self );
5875 : FD_FN_PURE uchar fd_crds_data_is_lowest_slot( fd_crds_data_t const * self );
5876 : FD_FN_PURE uchar fd_crds_data_is_snapshot_hashes( fd_crds_data_t const * self );
5877 : FD_FN_PURE uchar fd_crds_data_is_accounts_hashes( fd_crds_data_t const * self );
5878 : FD_FN_PURE uchar fd_crds_data_is_epoch_slots( fd_crds_data_t const * self );
5879 : FD_FN_PURE uchar fd_crds_data_is_version_v1( fd_crds_data_t const * self );
5880 : FD_FN_PURE uchar fd_crds_data_is_version_v2( fd_crds_data_t const * self );
5881 : FD_FN_PURE uchar fd_crds_data_is_node_instance( fd_crds_data_t const * self );
5882 : FD_FN_PURE uchar fd_crds_data_is_duplicate_shred( fd_crds_data_t const * self );
5883 : FD_FN_PURE uchar fd_crds_data_is_incremental_snapshot_hashes( fd_crds_data_t const * self );
5884 : FD_FN_PURE uchar fd_crds_data_is_contact_info_v2( fd_crds_data_t const * self );
5885 : FD_FN_PURE uchar fd_crds_data_is_restart_last_voted_fork_slots( fd_crds_data_t const * self );
5886 : FD_FN_PURE uchar fd_crds_data_is_restart_heaviest_fork( fd_crds_data_t const * self );
5887 : enum {
5888 : fd_crds_data_enum_contact_info_v1 = 0,
5889 : fd_crds_data_enum_vote = 1,
5890 : fd_crds_data_enum_lowest_slot = 2,
5891 : fd_crds_data_enum_snapshot_hashes = 3,
5892 : fd_crds_data_enum_accounts_hashes = 4,
5893 : fd_crds_data_enum_epoch_slots = 5,
5894 : fd_crds_data_enum_version_v1 = 6,
5895 : fd_crds_data_enum_version_v2 = 7,
5896 : fd_crds_data_enum_node_instance = 8,
5897 : fd_crds_data_enum_duplicate_shred = 9,
5898 : fd_crds_data_enum_incremental_snapshot_hashes = 10,
5899 : fd_crds_data_enum_contact_info_v2 = 11,
5900 : fd_crds_data_enum_restart_last_voted_fork_slots = 12,
5901 : fd_crds_data_enum_restart_heaviest_fork = 13,
5902 : };
5903 : void fd_crds_bloom_new( fd_crds_bloom_t * self );
5904 : int fd_crds_bloom_encode( fd_crds_bloom_t const * self, fd_bincode_encode_ctx_t * ctx );
5905 : void fd_crds_bloom_walk( void * w, fd_crds_bloom_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5906 : ulong fd_crds_bloom_size( fd_crds_bloom_t const * self );
5907 0 : static inline ulong fd_crds_bloom_align( void ) { return FD_CRDS_BLOOM_ALIGN; }
5908 : int fd_crds_bloom_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5909 : void * fd_crds_bloom_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5910 :
5911 : void fd_crds_filter_new( fd_crds_filter_t * self );
5912 : int fd_crds_filter_encode( fd_crds_filter_t const * self, fd_bincode_encode_ctx_t * ctx );
5913 : void fd_crds_filter_walk( void * w, fd_crds_filter_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5914 : ulong fd_crds_filter_size( fd_crds_filter_t const * self );
5915 0 : static inline ulong fd_crds_filter_align( void ) { return FD_CRDS_FILTER_ALIGN; }
5916 : int fd_crds_filter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5917 : void * fd_crds_filter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5918 :
5919 : void fd_crds_value_new( fd_crds_value_t * self );
5920 : int fd_crds_value_encode( fd_crds_value_t const * self, fd_bincode_encode_ctx_t * ctx );
5921 : void fd_crds_value_walk( void * w, fd_crds_value_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5922 : ulong fd_crds_value_size( fd_crds_value_t const * self );
5923 0 : static inline ulong fd_crds_value_align( void ) { return FD_CRDS_VALUE_ALIGN; }
5924 : int fd_crds_value_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5925 : void * fd_crds_value_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5926 :
5927 : void fd_gossip_pull_req_new( fd_gossip_pull_req_t * self );
5928 : int fd_gossip_pull_req_encode( fd_gossip_pull_req_t const * self, fd_bincode_encode_ctx_t * ctx );
5929 : void fd_gossip_pull_req_walk( void * w, fd_gossip_pull_req_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5930 : ulong fd_gossip_pull_req_size( fd_gossip_pull_req_t const * self );
5931 0 : static inline ulong fd_gossip_pull_req_align( void ) { return FD_GOSSIP_PULL_REQ_ALIGN; }
5932 : int fd_gossip_pull_req_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5933 : void * fd_gossip_pull_req_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5934 :
5935 : void fd_gossip_pull_resp_new( fd_gossip_pull_resp_t * self );
5936 : int fd_gossip_pull_resp_encode( fd_gossip_pull_resp_t const * self, fd_bincode_encode_ctx_t * ctx );
5937 : void fd_gossip_pull_resp_walk( void * w, fd_gossip_pull_resp_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5938 : ulong fd_gossip_pull_resp_size( fd_gossip_pull_resp_t const * self );
5939 0 : static inline ulong fd_gossip_pull_resp_align( void ) { return FD_GOSSIP_PULL_RESP_ALIGN; }
5940 : int fd_gossip_pull_resp_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5941 : void * fd_gossip_pull_resp_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5942 :
5943 : void fd_gossip_push_msg_new( fd_gossip_push_msg_t * self );
5944 : int fd_gossip_push_msg_encode( fd_gossip_push_msg_t const * self, fd_bincode_encode_ctx_t * ctx );
5945 : void fd_gossip_push_msg_walk( void * w, fd_gossip_push_msg_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5946 : ulong fd_gossip_push_msg_size( fd_gossip_push_msg_t const * self );
5947 0 : static inline ulong fd_gossip_push_msg_align( void ) { return FD_GOSSIP_PUSH_MSG_ALIGN; }
5948 : int fd_gossip_push_msg_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5949 : void * fd_gossip_push_msg_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5950 :
5951 : void fd_gossip_prune_msg_new( fd_gossip_prune_msg_t * self );
5952 : int fd_gossip_prune_msg_encode( fd_gossip_prune_msg_t const * self, fd_bincode_encode_ctx_t * ctx );
5953 : void fd_gossip_prune_msg_walk( void * w, fd_gossip_prune_msg_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5954 : ulong fd_gossip_prune_msg_size( fd_gossip_prune_msg_t const * self );
5955 0 : static inline ulong fd_gossip_prune_msg_align( void ) { return FD_GOSSIP_PRUNE_MSG_ALIGN; }
5956 : int fd_gossip_prune_msg_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5957 : void * fd_gossip_prune_msg_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5958 :
5959 : void fd_gossip_msg_new_disc( fd_gossip_msg_t * self, uint discriminant );
5960 : void fd_gossip_msg_new( fd_gossip_msg_t * self );
5961 : int fd_gossip_msg_encode( fd_gossip_msg_t const * self, fd_bincode_encode_ctx_t * ctx );
5962 : void fd_gossip_msg_walk( void * w, fd_gossip_msg_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5963 : ulong fd_gossip_msg_size( fd_gossip_msg_t const * self );
5964 42 : static inline ulong fd_gossip_msg_align( void ) { return FD_GOSSIP_MSG_ALIGN; }
5965 : int fd_gossip_msg_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
5966 : void * fd_gossip_msg_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5967 :
5968 : FD_FN_PURE uchar fd_gossip_msg_is_pull_req( fd_gossip_msg_t const * self );
5969 : FD_FN_PURE uchar fd_gossip_msg_is_pull_resp( fd_gossip_msg_t const * self );
5970 : FD_FN_PURE uchar fd_gossip_msg_is_push_msg( fd_gossip_msg_t const * self );
5971 : FD_FN_PURE uchar fd_gossip_msg_is_prune_msg( fd_gossip_msg_t const * self );
5972 : FD_FN_PURE uchar fd_gossip_msg_is_ping( fd_gossip_msg_t const * self );
5973 : FD_FN_PURE uchar fd_gossip_msg_is_pong( fd_gossip_msg_t const * self );
5974 : enum {
5975 : fd_gossip_msg_enum_pull_req = 0,
5976 : fd_gossip_msg_enum_pull_resp = 1,
5977 : fd_gossip_msg_enum_push_msg = 2,
5978 : fd_gossip_msg_enum_prune_msg = 3,
5979 : fd_gossip_msg_enum_ping = 4,
5980 : fd_gossip_msg_enum_pong = 5,
5981 : };
5982 0 : static inline void fd_addrlut_create_new( fd_addrlut_create_t * self ) { fd_memset( self, 0, sizeof(fd_addrlut_create_t) ); }
5983 : int fd_addrlut_create_encode( fd_addrlut_create_t const * self, fd_bincode_encode_ctx_t * ctx );
5984 : void fd_addrlut_create_walk( void * w, fd_addrlut_create_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5985 0 : static inline ulong fd_addrlut_create_size( fd_addrlut_create_t const * self ) { (void)self; return 9UL; }
5986 0 : static inline ulong fd_addrlut_create_align( void ) { return FD_ADDRLUT_CREATE_ALIGN; }
5987 0 : static inline int fd_addrlut_create_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
5988 0 : *total_sz += sizeof(fd_addrlut_create_t);
5989 0 : if( (ulong)ctx->data + 9UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
5990 0 : return 0;
5991 0 : }
5992 : void * fd_addrlut_create_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
5993 :
5994 : void fd_addrlut_extend_new( fd_addrlut_extend_t * self );
5995 : int fd_addrlut_extend_encode( fd_addrlut_extend_t const * self, fd_bincode_encode_ctx_t * ctx );
5996 : void fd_addrlut_extend_walk( void * w, fd_addrlut_extend_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
5997 : ulong fd_addrlut_extend_size( fd_addrlut_extend_t const * self );
5998 0 : static inline ulong fd_addrlut_extend_align( void ) { return FD_ADDRLUT_EXTEND_ALIGN; }
5999 : int fd_addrlut_extend_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6000 : void * fd_addrlut_extend_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6001 :
6002 : void fd_addrlut_instruction_new_disc( fd_addrlut_instruction_t * self, uint discriminant );
6003 : void fd_addrlut_instruction_new( fd_addrlut_instruction_t * self );
6004 : int fd_addrlut_instruction_encode( fd_addrlut_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
6005 : void fd_addrlut_instruction_walk( void * w, fd_addrlut_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6006 : ulong fd_addrlut_instruction_size( fd_addrlut_instruction_t const * self );
6007 0 : static inline ulong fd_addrlut_instruction_align( void ) { return FD_ADDRLUT_INSTRUCTION_ALIGN; }
6008 : int fd_addrlut_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6009 : void * fd_addrlut_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6010 :
6011 : FD_FN_PURE uchar fd_addrlut_instruction_is_create_lut( fd_addrlut_instruction_t const * self );
6012 : FD_FN_PURE uchar fd_addrlut_instruction_is_freeze_lut( fd_addrlut_instruction_t const * self );
6013 : FD_FN_PURE uchar fd_addrlut_instruction_is_extend_lut( fd_addrlut_instruction_t const * self );
6014 : FD_FN_PURE uchar fd_addrlut_instruction_is_deactivate_lut( fd_addrlut_instruction_t const * self );
6015 : FD_FN_PURE uchar fd_addrlut_instruction_is_close_lut( fd_addrlut_instruction_t const * self );
6016 : enum {
6017 : fd_addrlut_instruction_enum_create_lut = 0,
6018 : fd_addrlut_instruction_enum_freeze_lut = 1,
6019 : fd_addrlut_instruction_enum_extend_lut = 2,
6020 : fd_addrlut_instruction_enum_deactivate_lut = 3,
6021 : fd_addrlut_instruction_enum_close_lut = 4,
6022 : };
6023 0 : static inline void fd_repair_request_header_new( fd_repair_request_header_t * self ) { fd_memset( self, 0, sizeof(fd_repair_request_header_t) ); }
6024 : int fd_repair_request_header_encode( fd_repair_request_header_t const * self, fd_bincode_encode_ctx_t * ctx );
6025 : void fd_repair_request_header_walk( void * w, fd_repair_request_header_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6026 0 : static inline ulong fd_repair_request_header_size( fd_repair_request_header_t const * self ) { (void)self; return 140UL; }
6027 0 : static inline ulong fd_repair_request_header_align( void ) { return FD_REPAIR_REQUEST_HEADER_ALIGN; }
6028 0 : static inline int fd_repair_request_header_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6029 0 : *total_sz += sizeof(fd_repair_request_header_t);
6030 0 : if( (ulong)ctx->data + 140UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6031 0 : return 0;
6032 0 : }
6033 : void * fd_repair_request_header_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6034 :
6035 0 : static inline void fd_repair_window_index_new( fd_repair_window_index_t * self ) { fd_memset( self, 0, sizeof(fd_repair_window_index_t) ); }
6036 : int fd_repair_window_index_encode( fd_repair_window_index_t const * self, fd_bincode_encode_ctx_t * ctx );
6037 : void fd_repair_window_index_walk( void * w, fd_repair_window_index_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6038 0 : static inline ulong fd_repair_window_index_size( fd_repair_window_index_t const * self ) { (void)self; return 156UL; }
6039 0 : static inline ulong fd_repair_window_index_align( void ) { return FD_REPAIR_WINDOW_INDEX_ALIGN; }
6040 0 : static inline int fd_repair_window_index_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6041 0 : *total_sz += sizeof(fd_repair_window_index_t);
6042 0 : if( (ulong)ctx->data + 156UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6043 0 : return 0;
6044 0 : }
6045 : void * fd_repair_window_index_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6046 :
6047 0 : static inline void fd_repair_highest_window_index_new( fd_repair_highest_window_index_t * self ) { fd_memset( self, 0, sizeof(fd_repair_highest_window_index_t) ); }
6048 : int fd_repair_highest_window_index_encode( fd_repair_highest_window_index_t const * self, fd_bincode_encode_ctx_t * ctx );
6049 : void fd_repair_highest_window_index_walk( void * w, fd_repair_highest_window_index_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6050 0 : static inline ulong fd_repair_highest_window_index_size( fd_repair_highest_window_index_t const * self ) { (void)self; return 156UL; }
6051 0 : static inline ulong fd_repair_highest_window_index_align( void ) { return FD_REPAIR_HIGHEST_WINDOW_INDEX_ALIGN; }
6052 0 : static inline int fd_repair_highest_window_index_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6053 0 : *total_sz += sizeof(fd_repair_highest_window_index_t);
6054 0 : if( (ulong)ctx->data + 156UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6055 0 : return 0;
6056 0 : }
6057 : void * fd_repair_highest_window_index_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6058 :
6059 0 : static inline void fd_repair_orphan_new( fd_repair_orphan_t * self ) { fd_memset( self, 0, sizeof(fd_repair_orphan_t) ); }
6060 : int fd_repair_orphan_encode( fd_repair_orphan_t const * self, fd_bincode_encode_ctx_t * ctx );
6061 : void fd_repair_orphan_walk( void * w, fd_repair_orphan_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6062 0 : static inline ulong fd_repair_orphan_size( fd_repair_orphan_t const * self ) { (void)self; return 148UL; }
6063 0 : static inline ulong fd_repair_orphan_align( void ) { return FD_REPAIR_ORPHAN_ALIGN; }
6064 0 : static inline int fd_repair_orphan_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6065 0 : *total_sz += sizeof(fd_repair_orphan_t);
6066 0 : if( (ulong)ctx->data + 148UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6067 0 : return 0;
6068 0 : }
6069 : void * fd_repair_orphan_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6070 :
6071 0 : static inline void fd_repair_ancestor_hashes_new( fd_repair_ancestor_hashes_t * self ) { fd_memset( self, 0, sizeof(fd_repair_ancestor_hashes_t) ); }
6072 : int fd_repair_ancestor_hashes_encode( fd_repair_ancestor_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
6073 : void fd_repair_ancestor_hashes_walk( void * w, fd_repair_ancestor_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6074 0 : static inline ulong fd_repair_ancestor_hashes_size( fd_repair_ancestor_hashes_t const * self ) { (void)self; return 148UL; }
6075 0 : static inline ulong fd_repair_ancestor_hashes_align( void ) { return FD_REPAIR_ANCESTOR_HASHES_ALIGN; }
6076 0 : static inline int fd_repair_ancestor_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6077 0 : *total_sz += sizeof(fd_repair_ancestor_hashes_t);
6078 0 : if( (ulong)ctx->data + 148UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6079 0 : return 0;
6080 0 : }
6081 : void * fd_repair_ancestor_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6082 :
6083 : void fd_repair_protocol_new_disc( fd_repair_protocol_t * self, uint discriminant );
6084 : void fd_repair_protocol_new( fd_repair_protocol_t * self );
6085 : int fd_repair_protocol_encode( fd_repair_protocol_t const * self, fd_bincode_encode_ctx_t * ctx );
6086 : void fd_repair_protocol_walk( void * w, fd_repair_protocol_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6087 : ulong fd_repair_protocol_size( fd_repair_protocol_t const * self );
6088 18 : static inline ulong fd_repair_protocol_align( void ) { return FD_REPAIR_PROTOCOL_ALIGN; }
6089 : int fd_repair_protocol_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6090 : void * fd_repair_protocol_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6091 :
6092 : FD_FN_PURE uchar fd_repair_protocol_is_LegacyWindowIndex( fd_repair_protocol_t const * self );
6093 : FD_FN_PURE uchar fd_repair_protocol_is_LegacyHighestWindowIndex( fd_repair_protocol_t const * self );
6094 : FD_FN_PURE uchar fd_repair_protocol_is_LegacyOrphan( fd_repair_protocol_t const * self );
6095 : FD_FN_PURE uchar fd_repair_protocol_is_LegacyWindowIndexWithNonce( fd_repair_protocol_t const * self );
6096 : FD_FN_PURE uchar fd_repair_protocol_is_LegacyHighestWindowIndexWithNonce( fd_repair_protocol_t const * self );
6097 : FD_FN_PURE uchar fd_repair_protocol_is_LegacyOrphanWithNonce( fd_repair_protocol_t const * self );
6098 : FD_FN_PURE uchar fd_repair_protocol_is_LegacyAncestorHashes( fd_repair_protocol_t const * self );
6099 : FD_FN_PURE uchar fd_repair_protocol_is_pong( fd_repair_protocol_t const * self );
6100 : FD_FN_PURE uchar fd_repair_protocol_is_window_index( fd_repair_protocol_t const * self );
6101 : FD_FN_PURE uchar fd_repair_protocol_is_highest_window_index( fd_repair_protocol_t const * self );
6102 : FD_FN_PURE uchar fd_repair_protocol_is_orphan( fd_repair_protocol_t const * self );
6103 : FD_FN_PURE uchar fd_repair_protocol_is_ancestor_hashes( fd_repair_protocol_t const * self );
6104 : enum {
6105 : fd_repair_protocol_enum_LegacyWindowIndex = 0,
6106 : fd_repair_protocol_enum_LegacyHighestWindowIndex = 1,
6107 : fd_repair_protocol_enum_LegacyOrphan = 2,
6108 : fd_repair_protocol_enum_LegacyWindowIndexWithNonce = 3,
6109 : fd_repair_protocol_enum_LegacyHighestWindowIndexWithNonce = 4,
6110 : fd_repair_protocol_enum_LegacyOrphanWithNonce = 5,
6111 : fd_repair_protocol_enum_LegacyAncestorHashes = 6,
6112 : fd_repair_protocol_enum_pong = 7,
6113 : fd_repair_protocol_enum_window_index = 8,
6114 : fd_repair_protocol_enum_highest_window_index = 9,
6115 : fd_repair_protocol_enum_orphan = 10,
6116 : fd_repair_protocol_enum_ancestor_hashes = 11,
6117 : };
6118 : void fd_repair_response_new_disc( fd_repair_response_t * self, uint discriminant );
6119 : void fd_repair_response_new( fd_repair_response_t * self );
6120 : int fd_repair_response_encode( fd_repair_response_t const * self, fd_bincode_encode_ctx_t * ctx );
6121 : void fd_repair_response_walk( void * w, fd_repair_response_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6122 : ulong fd_repair_response_size( fd_repair_response_t const * self );
6123 0 : static inline ulong fd_repair_response_align( void ) { return FD_REPAIR_RESPONSE_ALIGN; }
6124 : int fd_repair_response_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6125 : void * fd_repair_response_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6126 :
6127 : FD_FN_PURE uchar fd_repair_response_is_ping( fd_repair_response_t const * self );
6128 : enum {
6129 : fd_repair_response_enum_ping = 0,
6130 : };
6131 : void fd_instr_error_enum_new_disc( fd_instr_error_enum_t * self, uint discriminant );
6132 : void fd_instr_error_enum_new( fd_instr_error_enum_t * self );
6133 : int fd_instr_error_enum_encode( fd_instr_error_enum_t const * self, fd_bincode_encode_ctx_t * ctx );
6134 : void fd_instr_error_enum_walk( void * w, fd_instr_error_enum_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6135 : ulong fd_instr_error_enum_size( fd_instr_error_enum_t const * self );
6136 0 : static inline ulong fd_instr_error_enum_align( void ) { return FD_INSTR_ERROR_ENUM_ALIGN; }
6137 : int fd_instr_error_enum_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6138 : void * fd_instr_error_enum_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6139 :
6140 : FD_FN_PURE uchar fd_instr_error_enum_is_generic_error( fd_instr_error_enum_t const * self );
6141 : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_argument( fd_instr_error_enum_t const * self );
6142 : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_instruction_data( fd_instr_error_enum_t const * self );
6143 : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_account_data( fd_instr_error_enum_t const * self );
6144 : FD_FN_PURE uchar fd_instr_error_enum_is_account_data_too_small( fd_instr_error_enum_t const * self );
6145 : FD_FN_PURE uchar fd_instr_error_enum_is_insufficient_funds( fd_instr_error_enum_t const * self );
6146 : FD_FN_PURE uchar fd_instr_error_enum_is_incorrect_program_id( fd_instr_error_enum_t const * self );
6147 : FD_FN_PURE uchar fd_instr_error_enum_is_missing_required_signature( fd_instr_error_enum_t const * self );
6148 : FD_FN_PURE uchar fd_instr_error_enum_is_account_already_initialized( fd_instr_error_enum_t const * self );
6149 : FD_FN_PURE uchar fd_instr_error_enum_is_uninitialized_account( fd_instr_error_enum_t const * self );
6150 : FD_FN_PURE uchar fd_instr_error_enum_is_unbalanced_instruction( fd_instr_error_enum_t const * self );
6151 : FD_FN_PURE uchar fd_instr_error_enum_is_modified_program_id( fd_instr_error_enum_t const * self );
6152 : FD_FN_PURE uchar fd_instr_error_enum_is_external_account_lamport_spend( fd_instr_error_enum_t const * self );
6153 : FD_FN_PURE uchar fd_instr_error_enum_is_external_account_data_modified( fd_instr_error_enum_t const * self );
6154 : FD_FN_PURE uchar fd_instr_error_enum_is_readonly_lamport_change( fd_instr_error_enum_t const * self );
6155 : FD_FN_PURE uchar fd_instr_error_enum_is_readonly_data_modified( fd_instr_error_enum_t const * self );
6156 : FD_FN_PURE uchar fd_instr_error_enum_is_duplicate_account_index( fd_instr_error_enum_t const * self );
6157 : FD_FN_PURE uchar fd_instr_error_enum_is_executable_modified( fd_instr_error_enum_t const * self );
6158 : FD_FN_PURE uchar fd_instr_error_enum_is_rent_epoch_modified( fd_instr_error_enum_t const * self );
6159 : FD_FN_PURE uchar fd_instr_error_enum_is_not_enough_account_keys( fd_instr_error_enum_t const * self );
6160 : FD_FN_PURE uchar fd_instr_error_enum_is_account_data_size_changed( fd_instr_error_enum_t const * self );
6161 : FD_FN_PURE uchar fd_instr_error_enum_is_account_not_executable( fd_instr_error_enum_t const * self );
6162 : FD_FN_PURE uchar fd_instr_error_enum_is_account_borrow_failed( fd_instr_error_enum_t const * self );
6163 : FD_FN_PURE uchar fd_instr_error_enum_is_account_borrow_outstanding( fd_instr_error_enum_t const * self );
6164 : FD_FN_PURE uchar fd_instr_error_enum_is_duplicate_account_out_of_sync( fd_instr_error_enum_t const * self );
6165 : FD_FN_PURE uchar fd_instr_error_enum_is_custom( fd_instr_error_enum_t const * self );
6166 : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_error( fd_instr_error_enum_t const * self );
6167 : FD_FN_PURE uchar fd_instr_error_enum_is_executable_data_modified( fd_instr_error_enum_t const * self );
6168 : FD_FN_PURE uchar fd_instr_error_enum_is_executable_lamport_change( fd_instr_error_enum_t const * self );
6169 : FD_FN_PURE uchar fd_instr_error_enum_is_executable_account_not_rent_exempt( fd_instr_error_enum_t const * self );
6170 : FD_FN_PURE uchar fd_instr_error_enum_is_unsupported_program_id( fd_instr_error_enum_t const * self );
6171 : FD_FN_PURE uchar fd_instr_error_enum_is_call_depth( fd_instr_error_enum_t const * self );
6172 : FD_FN_PURE uchar fd_instr_error_enum_is_missing_account( fd_instr_error_enum_t const * self );
6173 : FD_FN_PURE uchar fd_instr_error_enum_is_reentrancy_not_allowed( fd_instr_error_enum_t const * self );
6174 : FD_FN_PURE uchar fd_instr_error_enum_is_max_seed_length_exceeded( fd_instr_error_enum_t const * self );
6175 : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_seeds( fd_instr_error_enum_t const * self );
6176 : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_realloc( fd_instr_error_enum_t const * self );
6177 : FD_FN_PURE uchar fd_instr_error_enum_is_computational_budget_exceeded( fd_instr_error_enum_t const * self );
6178 : FD_FN_PURE uchar fd_instr_error_enum_is_privilege_escalation( fd_instr_error_enum_t const * self );
6179 : FD_FN_PURE uchar fd_instr_error_enum_is_program_environment_setup_failure( fd_instr_error_enum_t const * self );
6180 : FD_FN_PURE uchar fd_instr_error_enum_is_program_failed_to_complete( fd_instr_error_enum_t const * self );
6181 : FD_FN_PURE uchar fd_instr_error_enum_is_program_failed_to_compile( fd_instr_error_enum_t const * self );
6182 : FD_FN_PURE uchar fd_instr_error_enum_is_immutable( fd_instr_error_enum_t const * self );
6183 : FD_FN_PURE uchar fd_instr_error_enum_is_incorrect_authority( fd_instr_error_enum_t const * self );
6184 : FD_FN_PURE uchar fd_instr_error_enum_is_borsh_io_error( fd_instr_error_enum_t const * self );
6185 : FD_FN_PURE uchar fd_instr_error_enum_is_account_not_rent_exempt( fd_instr_error_enum_t const * self );
6186 : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_account_owner( fd_instr_error_enum_t const * self );
6187 : FD_FN_PURE uchar fd_instr_error_enum_is_arithmetic_overflow( fd_instr_error_enum_t const * self );
6188 : FD_FN_PURE uchar fd_instr_error_enum_is_unsupported_sysvar( fd_instr_error_enum_t const * self );
6189 : FD_FN_PURE uchar fd_instr_error_enum_is_illegal_owner( fd_instr_error_enum_t const * self );
6190 : FD_FN_PURE uchar fd_instr_error_enum_is_max_accounts_data_allocations_exceeded( fd_instr_error_enum_t const * self );
6191 : FD_FN_PURE uchar fd_instr_error_enum_is_max_accounts_exceeded( fd_instr_error_enum_t const * self );
6192 : FD_FN_PURE uchar fd_instr_error_enum_is_max_instruction_trace_length_exceeded( fd_instr_error_enum_t const * self );
6193 : FD_FN_PURE uchar fd_instr_error_enum_is_builtin_programs_must_consume_compute_units( fd_instr_error_enum_t const * self );
6194 : enum {
6195 : fd_instr_error_enum_enum_generic_error = 0,
6196 : fd_instr_error_enum_enum_invalid_argument = 1,
6197 : fd_instr_error_enum_enum_invalid_instruction_data = 2,
6198 : fd_instr_error_enum_enum_invalid_account_data = 3,
6199 : fd_instr_error_enum_enum_account_data_too_small = 4,
6200 : fd_instr_error_enum_enum_insufficient_funds = 5,
6201 : fd_instr_error_enum_enum_incorrect_program_id = 6,
6202 : fd_instr_error_enum_enum_missing_required_signature = 7,
6203 : fd_instr_error_enum_enum_account_already_initialized = 8,
6204 : fd_instr_error_enum_enum_uninitialized_account = 9,
6205 : fd_instr_error_enum_enum_unbalanced_instruction = 10,
6206 : fd_instr_error_enum_enum_modified_program_id = 11,
6207 : fd_instr_error_enum_enum_external_account_lamport_spend = 12,
6208 : fd_instr_error_enum_enum_external_account_data_modified = 13,
6209 : fd_instr_error_enum_enum_readonly_lamport_change = 14,
6210 : fd_instr_error_enum_enum_readonly_data_modified = 15,
6211 : fd_instr_error_enum_enum_duplicate_account_index = 16,
6212 : fd_instr_error_enum_enum_executable_modified = 17,
6213 : fd_instr_error_enum_enum_rent_epoch_modified = 18,
6214 : fd_instr_error_enum_enum_not_enough_account_keys = 19,
6215 : fd_instr_error_enum_enum_account_data_size_changed = 20,
6216 : fd_instr_error_enum_enum_account_not_executable = 21,
6217 : fd_instr_error_enum_enum_account_borrow_failed = 22,
6218 : fd_instr_error_enum_enum_account_borrow_outstanding = 23,
6219 : fd_instr_error_enum_enum_duplicate_account_out_of_sync = 24,
6220 : fd_instr_error_enum_enum_custom = 25,
6221 : fd_instr_error_enum_enum_invalid_error = 26,
6222 : fd_instr_error_enum_enum_executable_data_modified = 27,
6223 : fd_instr_error_enum_enum_executable_lamport_change = 28,
6224 : fd_instr_error_enum_enum_executable_account_not_rent_exempt = 29,
6225 : fd_instr_error_enum_enum_unsupported_program_id = 30,
6226 : fd_instr_error_enum_enum_call_depth = 31,
6227 : fd_instr_error_enum_enum_missing_account = 32,
6228 : fd_instr_error_enum_enum_reentrancy_not_allowed = 33,
6229 : fd_instr_error_enum_enum_max_seed_length_exceeded = 34,
6230 : fd_instr_error_enum_enum_invalid_seeds = 35,
6231 : fd_instr_error_enum_enum_invalid_realloc = 36,
6232 : fd_instr_error_enum_enum_computational_budget_exceeded = 37,
6233 : fd_instr_error_enum_enum_privilege_escalation = 38,
6234 : fd_instr_error_enum_enum_program_environment_setup_failure = 39,
6235 : fd_instr_error_enum_enum_program_failed_to_complete = 40,
6236 : fd_instr_error_enum_enum_program_failed_to_compile = 41,
6237 : fd_instr_error_enum_enum_immutable = 42,
6238 : fd_instr_error_enum_enum_incorrect_authority = 43,
6239 : fd_instr_error_enum_enum_borsh_io_error = 44,
6240 : fd_instr_error_enum_enum_account_not_rent_exempt = 45,
6241 : fd_instr_error_enum_enum_invalid_account_owner = 46,
6242 : fd_instr_error_enum_enum_arithmetic_overflow = 47,
6243 : fd_instr_error_enum_enum_unsupported_sysvar = 48,
6244 : fd_instr_error_enum_enum_illegal_owner = 49,
6245 : fd_instr_error_enum_enum_max_accounts_data_allocations_exceeded = 50,
6246 : fd_instr_error_enum_enum_max_accounts_exceeded = 51,
6247 : fd_instr_error_enum_enum_max_instruction_trace_length_exceeded = 52,
6248 : fd_instr_error_enum_enum_builtin_programs_must_consume_compute_units = 53,
6249 : };
6250 : void fd_txn_instr_error_new( fd_txn_instr_error_t * self );
6251 : int fd_txn_instr_error_encode( fd_txn_instr_error_t const * self, fd_bincode_encode_ctx_t * ctx );
6252 : void fd_txn_instr_error_walk( void * w, fd_txn_instr_error_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6253 : ulong fd_txn_instr_error_size( fd_txn_instr_error_t const * self );
6254 0 : static inline ulong fd_txn_instr_error_align( void ) { return FD_TXN_INSTR_ERROR_ALIGN; }
6255 : int fd_txn_instr_error_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6256 : void * fd_txn_instr_error_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6257 :
6258 : void fd_txn_error_enum_new_disc( fd_txn_error_enum_t * self, uint discriminant );
6259 : void fd_txn_error_enum_new( fd_txn_error_enum_t * self );
6260 : int fd_txn_error_enum_encode( fd_txn_error_enum_t const * self, fd_bincode_encode_ctx_t * ctx );
6261 : void fd_txn_error_enum_walk( void * w, fd_txn_error_enum_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6262 : ulong fd_txn_error_enum_size( fd_txn_error_enum_t const * self );
6263 0 : static inline ulong fd_txn_error_enum_align( void ) { return FD_TXN_ERROR_ENUM_ALIGN; }
6264 : int fd_txn_error_enum_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6265 : void * fd_txn_error_enum_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6266 :
6267 : FD_FN_PURE uchar fd_txn_error_enum_is_account_in_use( fd_txn_error_enum_t const * self );
6268 : FD_FN_PURE uchar fd_txn_error_enum_is_account_loaded_twice( fd_txn_error_enum_t const * self );
6269 : FD_FN_PURE uchar fd_txn_error_enum_is_account_not_found( fd_txn_error_enum_t const * self );
6270 : FD_FN_PURE uchar fd_txn_error_enum_is_program_account_not_found( fd_txn_error_enum_t const * self );
6271 : FD_FN_PURE uchar fd_txn_error_enum_is_insufficient_funds_for_fee( fd_txn_error_enum_t const * self );
6272 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_account_for_fee( fd_txn_error_enum_t const * self );
6273 : FD_FN_PURE uchar fd_txn_error_enum_is_already_processed( fd_txn_error_enum_t const * self );
6274 : FD_FN_PURE uchar fd_txn_error_enum_is_blockhash_not_found( fd_txn_error_enum_t const * self );
6275 : FD_FN_PURE uchar fd_txn_error_enum_is_instruction_error( fd_txn_error_enum_t const * self );
6276 : FD_FN_PURE uchar fd_txn_error_enum_is_call_chain_too_deep( fd_txn_error_enum_t const * self );
6277 : FD_FN_PURE uchar fd_txn_error_enum_is_missing_signature_for_fee( fd_txn_error_enum_t const * self );
6278 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_account_index( fd_txn_error_enum_t const * self );
6279 : FD_FN_PURE uchar fd_txn_error_enum_is_signature_failure( fd_txn_error_enum_t const * self );
6280 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_program_for_execution( fd_txn_error_enum_t const * self );
6281 : FD_FN_PURE uchar fd_txn_error_enum_is_sanitize_failure( fd_txn_error_enum_t const * self );
6282 : FD_FN_PURE uchar fd_txn_error_enum_is_cluster_maintenance( fd_txn_error_enum_t const * self );
6283 : FD_FN_PURE uchar fd_txn_error_enum_is_account_borrow_outstanding( fd_txn_error_enum_t const * self );
6284 : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_block_cost_limit( fd_txn_error_enum_t const * self );
6285 : FD_FN_PURE uchar fd_txn_error_enum_is_unsupported_version( fd_txn_error_enum_t const * self );
6286 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_writable_account( fd_txn_error_enum_t const * self );
6287 : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_account_cost_limit( fd_txn_error_enum_t const * self );
6288 : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_account_data_block_limit( fd_txn_error_enum_t const * self );
6289 : FD_FN_PURE uchar fd_txn_error_enum_is_too_many_account_locks( fd_txn_error_enum_t const * self );
6290 : FD_FN_PURE uchar fd_txn_error_enum_is_address_lookup_table_not_found( fd_txn_error_enum_t const * self );
6291 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_owner( fd_txn_error_enum_t const * self );
6292 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_data( fd_txn_error_enum_t const * self );
6293 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_index( fd_txn_error_enum_t const * self );
6294 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_rent_paying_account( fd_txn_error_enum_t const * self );
6295 : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_vote_cost_limit( fd_txn_error_enum_t const * self );
6296 : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_account_data_total_limit( fd_txn_error_enum_t const * self );
6297 : FD_FN_PURE uchar fd_txn_error_enum_is_duplicate_instruction( fd_txn_error_enum_t const * self );
6298 : FD_FN_PURE uchar fd_txn_error_enum_is_insufficient_funds_for_rent( fd_txn_error_enum_t const * self );
6299 : FD_FN_PURE uchar fd_txn_error_enum_is_max_loaded_accounts_data_size_exceeded( fd_txn_error_enum_t const * self );
6300 : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_loaded_accounts_data_size_limit( fd_txn_error_enum_t const * self );
6301 : FD_FN_PURE uchar fd_txn_error_enum_is_resanitization_needed( fd_txn_error_enum_t const * self );
6302 : FD_FN_PURE uchar fd_txn_error_enum_is_program_execution_temporarily_restricted( fd_txn_error_enum_t const * self );
6303 : FD_FN_PURE uchar fd_txn_error_enum_is_unbalanced_transaction( fd_txn_error_enum_t const * self );
6304 : enum {
6305 : fd_txn_error_enum_enum_account_in_use = 0,
6306 : fd_txn_error_enum_enum_account_loaded_twice = 1,
6307 : fd_txn_error_enum_enum_account_not_found = 2,
6308 : fd_txn_error_enum_enum_program_account_not_found = 3,
6309 : fd_txn_error_enum_enum_insufficient_funds_for_fee = 4,
6310 : fd_txn_error_enum_enum_invalid_account_for_fee = 5,
6311 : fd_txn_error_enum_enum_already_processed = 6,
6312 : fd_txn_error_enum_enum_blockhash_not_found = 7,
6313 : fd_txn_error_enum_enum_instruction_error = 8,
6314 : fd_txn_error_enum_enum_call_chain_too_deep = 9,
6315 : fd_txn_error_enum_enum_missing_signature_for_fee = 10,
6316 : fd_txn_error_enum_enum_invalid_account_index = 11,
6317 : fd_txn_error_enum_enum_signature_failure = 12,
6318 : fd_txn_error_enum_enum_invalid_program_for_execution = 13,
6319 : fd_txn_error_enum_enum_sanitize_failure = 14,
6320 : fd_txn_error_enum_enum_cluster_maintenance = 15,
6321 : fd_txn_error_enum_enum_account_borrow_outstanding = 16,
6322 : fd_txn_error_enum_enum_would_exceed_max_block_cost_limit = 17,
6323 : fd_txn_error_enum_enum_unsupported_version = 18,
6324 : fd_txn_error_enum_enum_invalid_writable_account = 19,
6325 : fd_txn_error_enum_enum_would_exceed_max_account_cost_limit = 20,
6326 : fd_txn_error_enum_enum_would_exceed_account_data_block_limit = 21,
6327 : fd_txn_error_enum_enum_too_many_account_locks = 22,
6328 : fd_txn_error_enum_enum_address_lookup_table_not_found = 23,
6329 : fd_txn_error_enum_enum_invalid_address_lookup_table_owner = 24,
6330 : fd_txn_error_enum_enum_invalid_address_lookup_table_data = 25,
6331 : fd_txn_error_enum_enum_invalid_address_lookup_table_index = 26,
6332 : fd_txn_error_enum_enum_invalid_rent_paying_account = 27,
6333 : fd_txn_error_enum_enum_would_exceed_max_vote_cost_limit = 28,
6334 : fd_txn_error_enum_enum_would_exceed_account_data_total_limit = 29,
6335 : fd_txn_error_enum_enum_duplicate_instruction = 30,
6336 : fd_txn_error_enum_enum_insufficient_funds_for_rent = 31,
6337 : fd_txn_error_enum_enum_max_loaded_accounts_data_size_exceeded = 32,
6338 : fd_txn_error_enum_enum_invalid_loaded_accounts_data_size_limit = 33,
6339 : fd_txn_error_enum_enum_resanitization_needed = 34,
6340 : fd_txn_error_enum_enum_program_execution_temporarily_restricted = 35,
6341 : fd_txn_error_enum_enum_unbalanced_transaction = 36,
6342 : };
6343 : void fd_txn_result_new_disc( fd_txn_result_t * self, uint discriminant );
6344 : void fd_txn_result_new( fd_txn_result_t * self );
6345 : int fd_txn_result_encode( fd_txn_result_t const * self, fd_bincode_encode_ctx_t * ctx );
6346 : void fd_txn_result_walk( void * w, fd_txn_result_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6347 : ulong fd_txn_result_size( fd_txn_result_t const * self );
6348 0 : static inline ulong fd_txn_result_align( void ) { return FD_TXN_RESULT_ALIGN; }
6349 : int fd_txn_result_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6350 : void * fd_txn_result_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6351 :
6352 : FD_FN_PURE uchar fd_txn_result_is_ok( fd_txn_result_t const * self );
6353 : FD_FN_PURE uchar fd_txn_result_is_error( fd_txn_result_t const * self );
6354 : enum {
6355 : fd_txn_result_enum_ok = 0,
6356 : fd_txn_result_enum_error = 1,
6357 : };
6358 : void fd_cache_status_new( fd_cache_status_t * self );
6359 : int fd_cache_status_encode( fd_cache_status_t const * self, fd_bincode_encode_ctx_t * ctx );
6360 : void fd_cache_status_walk( void * w, fd_cache_status_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6361 : ulong fd_cache_status_size( fd_cache_status_t const * self );
6362 0 : static inline ulong fd_cache_status_align( void ) { return FD_CACHE_STATUS_ALIGN; }
6363 : int fd_cache_status_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6364 : void * fd_cache_status_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6365 :
6366 : void fd_status_value_new( fd_status_value_t * self );
6367 : int fd_status_value_encode( fd_status_value_t const * self, fd_bincode_encode_ctx_t * ctx );
6368 : void fd_status_value_walk( void * w, fd_status_value_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6369 : ulong fd_status_value_size( fd_status_value_t const * self );
6370 0 : static inline ulong fd_status_value_align( void ) { return FD_STATUS_VALUE_ALIGN; }
6371 : int fd_status_value_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6372 : void * fd_status_value_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6373 :
6374 : void fd_status_pair_new( fd_status_pair_t * self );
6375 : int fd_status_pair_encode( fd_status_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
6376 : void fd_status_pair_walk( void * w, fd_status_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6377 : ulong fd_status_pair_size( fd_status_pair_t const * self );
6378 0 : static inline ulong fd_status_pair_align( void ) { return FD_STATUS_PAIR_ALIGN; }
6379 : int fd_status_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6380 : void * fd_status_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6381 :
6382 : void fd_slot_delta_new( fd_slot_delta_t * self );
6383 : int fd_slot_delta_encode( fd_slot_delta_t const * self, fd_bincode_encode_ctx_t * ctx );
6384 : void fd_slot_delta_walk( void * w, fd_slot_delta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6385 : ulong fd_slot_delta_size( fd_slot_delta_t const * self );
6386 0 : static inline ulong fd_slot_delta_align( void ) { return FD_SLOT_DELTA_ALIGN; }
6387 : int fd_slot_delta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6388 : void * fd_slot_delta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6389 :
6390 : void fd_bank_slot_deltas_new( fd_bank_slot_deltas_t * self );
6391 : int fd_bank_slot_deltas_encode( fd_bank_slot_deltas_t const * self, fd_bincode_encode_ctx_t * ctx );
6392 : void fd_bank_slot_deltas_walk( void * w, fd_bank_slot_deltas_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6393 : ulong fd_bank_slot_deltas_size( fd_bank_slot_deltas_t const * self );
6394 0 : static inline ulong fd_bank_slot_deltas_align( void ) { return FD_BANK_SLOT_DELTAS_ALIGN; }
6395 : int fd_bank_slot_deltas_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6396 : void * fd_bank_slot_deltas_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6397 :
6398 : void fd_pubkey_rewardinfo_pair_new( fd_pubkey_rewardinfo_pair_t * self );
6399 : int fd_pubkey_rewardinfo_pair_encode( fd_pubkey_rewardinfo_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
6400 : void fd_pubkey_rewardinfo_pair_walk( void * w, fd_pubkey_rewardinfo_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6401 0 : static inline ulong fd_pubkey_rewardinfo_pair_size( fd_pubkey_rewardinfo_pair_t const * self ) { (void)self; return 60UL; }
6402 0 : static inline ulong fd_pubkey_rewardinfo_pair_align( void ) { return FD_PUBKEY_REWARDINFO_PAIR_ALIGN; }
6403 : int fd_pubkey_rewardinfo_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6404 : void * fd_pubkey_rewardinfo_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6405 :
6406 : void fd_optional_account_new( fd_optional_account_t * self );
6407 : int fd_optional_account_encode( fd_optional_account_t const * self, fd_bincode_encode_ctx_t * ctx );
6408 : void fd_optional_account_walk( void * w, fd_optional_account_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6409 : ulong fd_optional_account_size( fd_optional_account_t const * self );
6410 0 : static inline ulong fd_optional_account_align( void ) { return FD_OPTIONAL_ACCOUNT_ALIGN; }
6411 : int fd_optional_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6412 : void * fd_optional_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6413 :
6414 0 : static inline void fd_calculated_stake_points_new( fd_calculated_stake_points_t * self ) { fd_memset( self, 0, sizeof(fd_calculated_stake_points_t) ); }
6415 : int fd_calculated_stake_points_encode( fd_calculated_stake_points_t const * self, fd_bincode_encode_ctx_t * ctx );
6416 : void fd_calculated_stake_points_walk( void * w, fd_calculated_stake_points_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6417 0 : static inline ulong fd_calculated_stake_points_size( fd_calculated_stake_points_t const * self ) { (void)self; return 25UL; }
6418 0 : static inline ulong fd_calculated_stake_points_align( void ) { return FD_CALCULATED_STAKE_POINTS_ALIGN; }
6419 0 : static inline int fd_calculated_stake_points_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6420 0 : *total_sz += sizeof(fd_calculated_stake_points_t);
6421 0 : if( (ulong)ctx->data + 25UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6422 0 : return 0;
6423 0 : }
6424 : void * fd_calculated_stake_points_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6425 :
6426 0 : static inline void fd_calculated_stake_rewards_new( fd_calculated_stake_rewards_t * self ) { fd_memset( self, 0, sizeof(fd_calculated_stake_rewards_t) ); }
6427 : int fd_calculated_stake_rewards_encode( fd_calculated_stake_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
6428 : void fd_calculated_stake_rewards_walk( void * w, fd_calculated_stake_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6429 0 : static inline ulong fd_calculated_stake_rewards_size( fd_calculated_stake_rewards_t const * self ) { (void)self; return 24UL; }
6430 0 : static inline ulong fd_calculated_stake_rewards_align( void ) { return FD_CALCULATED_STAKE_REWARDS_ALIGN; }
6431 0 : static inline int fd_calculated_stake_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6432 0 : *total_sz += sizeof(fd_calculated_stake_rewards_t);
6433 0 : if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6434 0 : return 0;
6435 0 : }
6436 : void * fd_calculated_stake_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6437 :
6438 : void fd_duplicate_slot_proof_new( fd_duplicate_slot_proof_t * self );
6439 : int fd_duplicate_slot_proof_encode( fd_duplicate_slot_proof_t const * self, fd_bincode_encode_ctx_t * ctx );
6440 : void fd_duplicate_slot_proof_walk( void * w, fd_duplicate_slot_proof_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6441 : ulong fd_duplicate_slot_proof_size( fd_duplicate_slot_proof_t const * self );
6442 0 : static inline ulong fd_duplicate_slot_proof_align( void ) { return FD_DUPLICATE_SLOT_PROOF_ALIGN; }
6443 : int fd_duplicate_slot_proof_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6444 : void * fd_duplicate_slot_proof_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6445 :
6446 0 : static inline void fd_epoch_info_pair_new( fd_epoch_info_pair_t * self ) { fd_memset( self, 0, sizeof(fd_epoch_info_pair_t) ); }
6447 : int fd_epoch_info_pair_encode( fd_epoch_info_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
6448 : void fd_epoch_info_pair_walk( void * w, fd_epoch_info_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6449 0 : static inline ulong fd_epoch_info_pair_size( fd_epoch_info_pair_t const * self ) { (void)self; return 104UL; }
6450 0 : static inline ulong fd_epoch_info_pair_align( void ) { return FD_EPOCH_INFO_PAIR_ALIGN; }
6451 0 : static inline int fd_epoch_info_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6452 0 : *total_sz += sizeof(fd_epoch_info_pair_t);
6453 0 : if( (ulong)ctx->data + 104UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6454 0 : return 0;
6455 0 : }
6456 : void * fd_epoch_info_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6457 :
6458 : void fd_vote_info_pair_new( fd_vote_info_pair_t * self );
6459 : int fd_vote_info_pair_encode( fd_vote_info_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
6460 : void fd_vote_info_pair_walk( void * w, fd_vote_info_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6461 : ulong fd_vote_info_pair_size( fd_vote_info_pair_t const * self );
6462 0 : static inline ulong fd_vote_info_pair_align( void ) { return FD_VOTE_INFO_PAIR_ALIGN; }
6463 : int fd_vote_info_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6464 : void * fd_vote_info_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6465 :
6466 : void fd_epoch_info_new( fd_epoch_info_t * self );
6467 : int fd_epoch_info_encode( fd_epoch_info_t const * self, fd_bincode_encode_ctx_t * ctx );
6468 : void fd_epoch_info_walk( void * w, fd_epoch_info_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6469 : ulong fd_epoch_info_size( fd_epoch_info_t const * self );
6470 0 : static inline ulong fd_epoch_info_align( void ) { return FD_EPOCH_INFO_ALIGN; }
6471 : int fd_epoch_info_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6472 : void * fd_epoch_info_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6473 :
6474 0 : static inline void fd_usage_cost_details_new( fd_usage_cost_details_t * self ) { fd_memset( self, 0, sizeof(fd_usage_cost_details_t) ); }
6475 : int fd_usage_cost_details_encode( fd_usage_cost_details_t const * self, fd_bincode_encode_ctx_t * ctx );
6476 : void fd_usage_cost_details_walk( void * w, fd_usage_cost_details_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6477 0 : static inline ulong fd_usage_cost_details_size( fd_usage_cost_details_t const * self ) { (void)self; return 48UL; }
6478 0 : static inline ulong fd_usage_cost_details_align( void ) { return FD_USAGE_COST_DETAILS_ALIGN; }
6479 0 : static inline int fd_usage_cost_details_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6480 0 : *total_sz += sizeof(fd_usage_cost_details_t);
6481 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6482 0 : return 0;
6483 0 : }
6484 : void * fd_usage_cost_details_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6485 :
6486 : void fd_transaction_cost_new_disc( fd_transaction_cost_t * self, uint discriminant );
6487 : void fd_transaction_cost_new( fd_transaction_cost_t * self );
6488 : int fd_transaction_cost_encode( fd_transaction_cost_t const * self, fd_bincode_encode_ctx_t * ctx );
6489 : void fd_transaction_cost_walk( void * w, fd_transaction_cost_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6490 : ulong fd_transaction_cost_size( fd_transaction_cost_t const * self );
6491 0 : static inline ulong fd_transaction_cost_align( void ) { return FD_TRANSACTION_COST_ALIGN; }
6492 : int fd_transaction_cost_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6493 : void * fd_transaction_cost_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6494 :
6495 : FD_FN_PURE uchar fd_transaction_cost_is_simple_vote( fd_transaction_cost_t const * self );
6496 : FD_FN_PURE uchar fd_transaction_cost_is_transaction( fd_transaction_cost_t const * self );
6497 : enum {
6498 : fd_transaction_cost_enum_simple_vote = 0,
6499 : fd_transaction_cost_enum_transaction = 1,
6500 : };
6501 0 : static inline void fd_account_costs_pair_new( fd_account_costs_pair_t * self ) { fd_memset( self, 0, sizeof(fd_account_costs_pair_t) ); }
6502 : int fd_account_costs_pair_encode( fd_account_costs_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
6503 : void fd_account_costs_pair_walk( void * w, fd_account_costs_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6504 0 : static inline ulong fd_account_costs_pair_size( fd_account_costs_pair_t const * self ) { (void)self; return 40UL; }
6505 0 : static inline ulong fd_account_costs_pair_align( void ) { return FD_ACCOUNT_COSTS_PAIR_ALIGN; }
6506 0 : static inline int fd_account_costs_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6507 0 : *total_sz += sizeof(fd_account_costs_pair_t);
6508 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6509 0 : return 0;
6510 0 : }
6511 : void * fd_account_costs_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6512 :
6513 : void fd_account_costs_new( fd_account_costs_t * self );
6514 : int fd_account_costs_encode( fd_account_costs_t const * self, fd_bincode_encode_ctx_t * ctx );
6515 : void fd_account_costs_walk( void * w, fd_account_costs_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6516 : ulong fd_account_costs_size( fd_account_costs_t const * self );
6517 0 : static inline ulong fd_account_costs_align( void ) { return FD_ACCOUNT_COSTS_ALIGN; }
6518 : int fd_account_costs_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6519 : void * fd_account_costs_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6520 :
6521 : void fd_cost_tracker_new( fd_cost_tracker_t * self );
6522 : int fd_cost_tracker_encode( fd_cost_tracker_t const * self, fd_bincode_encode_ctx_t * ctx );
6523 : void fd_cost_tracker_walk( void * w, fd_cost_tracker_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6524 : ulong fd_cost_tracker_size( fd_cost_tracker_t const * self );
6525 0 : static inline ulong fd_cost_tracker_align( void ) { return FD_COST_TRACKER_ALIGN; }
6526 : int fd_cost_tracker_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6527 : void * fd_cost_tracker_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6528 :
6529 0 : static inline void fd_rent_paying_new( fd_rent_paying_t * self ) { fd_memset( self, 0, sizeof(fd_rent_paying_t) ); }
6530 : int fd_rent_paying_encode( fd_rent_paying_t const * self, fd_bincode_encode_ctx_t * ctx );
6531 : void fd_rent_paying_walk( void * w, fd_rent_paying_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6532 0 : static inline ulong fd_rent_paying_size( fd_rent_paying_t const * self ) { (void)self; return 16UL; }
6533 0 : static inline ulong fd_rent_paying_align( void ) { return FD_RENT_PAYING_ALIGN; }
6534 0 : static inline int fd_rent_paying_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
6535 0 : *total_sz += sizeof(fd_rent_paying_t);
6536 0 : if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
6537 0 : return 0;
6538 0 : }
6539 : void * fd_rent_paying_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6540 :
6541 : void fd_rent_state_new_disc( fd_rent_state_t * self, uint discriminant );
6542 : void fd_rent_state_new( fd_rent_state_t * self );
6543 : int fd_rent_state_encode( fd_rent_state_t const * self, fd_bincode_encode_ctx_t * ctx );
6544 : void fd_rent_state_walk( void * w, fd_rent_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
6545 : ulong fd_rent_state_size( fd_rent_state_t const * self );
6546 0 : static inline ulong fd_rent_state_align( void ) { return FD_RENT_STATE_ALIGN; }
6547 : int fd_rent_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
6548 : void * fd_rent_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
6549 :
6550 : FD_FN_PURE uchar fd_rent_state_is_uninitialized( fd_rent_state_t const * self );
6551 : FD_FN_PURE uchar fd_rent_state_is_rent_paying( fd_rent_state_t const * self );
6552 : FD_FN_PURE uchar fd_rent_state_is_rent_exempt( fd_rent_state_t const * self );
6553 : enum {
6554 : fd_rent_state_enum_uninitialized = 0,
6555 : fd_rent_state_enum_rent_paying = 1,
6556 : fd_rent_state_enum_rent_exempt = 2,
6557 : };
6558 : FD_PROTOTYPES_END
6559 :
6560 : #endif // HEADER_FD_RUNTIME_TYPES
|