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