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 :
9 : /* sdk/program/src/feature.rs#L22 */
10 : /* Encoded Size: Dynamic */
11 : struct fd_feature {
12 : ulong activated_at;
13 : uchar has_activated_at;
14 : };
15 : typedef struct fd_feature fd_feature_t;
16 : #define FD_FEATURE_ALIGN alignof(fd_feature_t)
17 :
18 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/fee_calculator.rs#L9 */
19 : /* Encoded Size: Fixed (8 bytes) */
20 : struct fd_fee_calculator {
21 : ulong lamports_per_signature;
22 : };
23 : typedef struct fd_fee_calculator fd_fee_calculator_t;
24 : #define FD_FEE_CALCULATOR_ALIGN alignof(fd_fee_calculator_t)
25 :
26 : /* Encoded Size: Fixed (33 bytes) */
27 : struct fd_fee_rate_governor {
28 : ulong target_lamports_per_signature;
29 : ulong target_signatures_per_slot;
30 : ulong min_lamports_per_signature;
31 : ulong max_lamports_per_signature;
32 : uchar burn_percent;
33 : };
34 : typedef struct fd_fee_rate_governor fd_fee_rate_governor_t;
35 : #define FD_FEE_RATE_GOVERNOR_ALIGN alignof(fd_fee_rate_governor_t)
36 :
37 : /* Encoded Size: Fixed (16 bytes) */
38 : struct fd_slot_pair {
39 : ulong slot;
40 : ulong val;
41 : };
42 : typedef struct fd_slot_pair fd_slot_pair_t;
43 0 : #define FD_SLOT_PAIR_ALIGN alignof(fd_slot_pair_t)
44 :
45 : /* Encoded Size: Dynamic */
46 : struct fd_hard_forks {
47 : ulong hard_forks_len;
48 : fd_slot_pair_t * hard_forks;
49 : };
50 : typedef struct fd_hard_forks fd_hard_forks_t;
51 : #define FD_HARD_FORKS_ALIGN alignof(fd_hard_forks_t)
52 :
53 : struct fd_hard_forks_global {
54 : ulong hard_forks_len;
55 : ulong hard_forks_offset;
56 : };
57 : typedef struct fd_hard_forks_global fd_hard_forks_global_t;
58 : #define FD_HARD_FORKS_GLOBAL_ALIGN alignof(fd_hard_forks_global_t)
59 :
60 0 : FD_FN_UNUSED static fd_slot_pair_t * fd_hard_forks_hard_forks_join( fd_hard_forks_global_t const * struct_mem ) { // vector
61 0 : return struct_mem->hard_forks_offset ? (fd_slot_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->hard_forks_offset ) : NULL;
62 0 : }
63 0 : FD_FN_UNUSED static void fd_hard_forks_hard_forks_update( fd_hard_forks_global_t * struct_mem, fd_slot_pair_t * vec ) {
64 0 : struct_mem->hard_forks_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
65 0 : }
66 : /* Encoded Size: Fixed (48 bytes) */
67 : struct fd_inflation {
68 : double initial;
69 : double terminal;
70 : double taper;
71 : double foundation;
72 : double foundation_term;
73 : double unused;
74 : };
75 : typedef struct fd_inflation fd_inflation_t;
76 : #define FD_INFLATION_ALIGN alignof(fd_inflation_t)
77 :
78 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/rent.rs#L11 */
79 : /* Encoded Size: Fixed (17 bytes) */
80 : struct fd_rent {
81 : ulong lamports_per_uint8_year;
82 : double exemption_threshold;
83 : uchar burn_percent;
84 : };
85 : typedef struct fd_rent fd_rent_t;
86 3 : #define FD_RENT_ALIGN alignof(fd_rent_t)
87 :
88 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/epoch_schedule.rs#L26 */
89 : /* Encoded Size: Fixed (33 bytes) */
90 : struct fd_epoch_schedule {
91 : ulong slots_per_epoch;
92 : ulong leader_schedule_slot_offset;
93 : uchar warmup;
94 : ulong first_normal_epoch;
95 : ulong first_normal_slot;
96 : };
97 : typedef struct fd_epoch_schedule fd_epoch_schedule_t;
98 3 : #define FD_EPOCH_SCHEDULE_ALIGN alignof(fd_epoch_schedule_t)
99 :
100 : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L17 */
101 : /* Encoded Size: Fixed (24 bytes) */
102 : struct fd_stake_history_entry {
103 : ulong effective;
104 : ulong activating;
105 : ulong deactivating;
106 : };
107 : typedef struct fd_stake_history_entry fd_stake_history_entry_t;
108 : #define FD_STAKE_HISTORY_ENTRY_ALIGN alignof(fd_stake_history_entry_t)
109 :
110 : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L66 */
111 : /* Encoded Size: Fixed (32 bytes) */
112 : struct fd_epoch_stake_history_entry_pair {
113 : ulong epoch;
114 : fd_stake_history_entry_t entry;
115 : };
116 : typedef struct fd_epoch_stake_history_entry_pair fd_epoch_stake_history_entry_pair_t;
117 : #define FD_EPOCH_STAKE_HISTORY_ENTRY_PAIR_ALIGN alignof(fd_epoch_stake_history_entry_pair_t)
118 :
119 : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L66 */
120 : /* Encoded Size: Fixed (16392 bytes) */
121 : struct fd_stake_history {
122 : ulong fd_stake_history_len;
123 : ulong fd_stake_history_size;
124 : ulong fd_stake_history_offset;
125 : fd_epoch_stake_history_entry_pair_t fd_stake_history[512];
126 : };
127 : typedef struct fd_stake_history fd_stake_history_t;
128 3 : #define FD_STAKE_HISTORY_ALIGN alignof(fd_stake_history_t)
129 :
130 : /* https://github.com/anza-xyz/agave/blob/6ac4fe32e28d8ceb4085072b61fa0c6cb09baac1/sdk/src/account.rs#L37 */
131 : /* Encoded Size: Dynamic */
132 : struct fd_solana_account {
133 : ulong lamports;
134 : ulong data_len;
135 : uchar* data;
136 : fd_pubkey_t owner;
137 : uchar executable;
138 : ulong rent_epoch;
139 : };
140 : typedef struct fd_solana_account fd_solana_account_t;
141 : #define FD_SOLANA_ACCOUNT_ALIGN alignof(fd_solana_account_t)
142 :
143 : struct fd_solana_account_global {
144 : ulong lamports;
145 : ulong data_len;
146 : ulong data_offset;
147 : fd_pubkey_t owner;
148 : uchar executable;
149 : ulong rent_epoch;
150 : };
151 : typedef struct fd_solana_account_global fd_solana_account_global_t;
152 : #define FD_SOLANA_ACCOUNT_GLOBAL_ALIGN alignof(fd_solana_account_global_t)
153 :
154 0 : FD_FN_UNUSED static uchar * fd_solana_account_data_join( fd_solana_account_global_t const * struct_mem ) { // vector
155 0 : return struct_mem->data_offset ? (uchar *)fd_type_pun( (uchar *)struct_mem + struct_mem->data_offset ) : NULL;
156 0 : }
157 0 : FD_FN_UNUSED static void fd_solana_account_data_update( fd_solana_account_global_t * struct_mem, uchar * vec ) {
158 0 : struct_mem->data_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
159 0 : }
160 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L303 */
161 : /* Encoded Size: Fixed (64 bytes) */
162 : struct fd_delegation {
163 : fd_pubkey_t voter_pubkey;
164 : ulong stake;
165 : ulong activation_epoch;
166 : ulong deactivation_epoch;
167 : double warmup_cooldown_rate;
168 : };
169 : typedef struct fd_delegation fd_delegation_t;
170 : #define FD_DELEGATION_ALIGN alignof(fd_delegation_t)
171 :
172 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L539 */
173 : /* Encoded Size: Fixed (72 bytes) */
174 : struct fd_stake {
175 : fd_delegation_t delegation;
176 : ulong credits_observed;
177 : };
178 : typedef struct fd_stake fd_stake_t;
179 : #define FD_STAKE_ALIGN alignof(fd_stake_t)
180 :
181 : /* Encoded Size: Fixed (12 bytes) */
182 : struct fd_rust_duration {
183 : ulong seconds;
184 : uint nanoseconds;
185 : };
186 : typedef struct fd_rust_duration fd_rust_duration_t;
187 : #define FD_RUST_DURATION_ALIGN alignof(fd_rust_duration_t)
188 :
189 : /* Encoded Size: Dynamic */
190 : struct fd_poh_config {
191 : fd_rust_duration_t target_tick_duration;
192 : ulong target_tick_count;
193 : uchar has_target_tick_count;
194 : ulong hashes_per_tick;
195 : uchar has_hashes_per_tick;
196 : };
197 : typedef struct fd_poh_config fd_poh_config_t;
198 : #define FD_POH_CONFIG_ALIGN alignof(fd_poh_config_t)
199 :
200 : struct fd_poh_config_global {
201 : fd_rust_duration_t target_tick_duration;
202 : ulong target_tick_count;
203 : uchar has_target_tick_count;
204 : ulong hashes_per_tick;
205 : uchar has_hashes_per_tick;
206 : };
207 : typedef struct fd_poh_config_global fd_poh_config_global_t;
208 : #define FD_POH_CONFIG_GLOBAL_ALIGN alignof(fd_poh_config_global_t)
209 :
210 : /* Encoded Size: Dynamic */
211 : struct fd_string_pubkey_pair {
212 : ulong string_len;
213 : uchar* string;
214 : fd_pubkey_t pubkey;
215 : };
216 : typedef struct fd_string_pubkey_pair fd_string_pubkey_pair_t;
217 0 : #define FD_STRING_PUBKEY_PAIR_ALIGN alignof(fd_string_pubkey_pair_t)
218 :
219 : struct fd_string_pubkey_pair_global {
220 : ulong string_len;
221 : ulong string_offset;
222 : fd_pubkey_t pubkey;
223 : };
224 : typedef struct fd_string_pubkey_pair_global fd_string_pubkey_pair_global_t;
225 : #define FD_STRING_PUBKEY_PAIR_GLOBAL_ALIGN alignof(fd_string_pubkey_pair_global_t)
226 :
227 0 : FD_FN_UNUSED static uchar * fd_string_pubkey_pair_string_join( fd_string_pubkey_pair_global_t const * struct_mem ) { // vector
228 0 : return struct_mem->string_offset ? (uchar *)fd_type_pun( (uchar *)struct_mem + struct_mem->string_offset ) : NULL;
229 0 : }
230 0 : FD_FN_UNUSED static void fd_string_pubkey_pair_string_update( fd_string_pubkey_pair_global_t * struct_mem, uchar * vec ) {
231 0 : struct_mem->string_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
232 0 : }
233 : /* Encoded Size: Dynamic */
234 : struct fd_pubkey_account_pair {
235 : fd_pubkey_t key;
236 : fd_solana_account_t account;
237 : };
238 : typedef struct fd_pubkey_account_pair fd_pubkey_account_pair_t;
239 0 : #define FD_PUBKEY_ACCOUNT_PAIR_ALIGN alignof(fd_pubkey_account_pair_t)
240 :
241 : struct fd_pubkey_account_pair_global {
242 : fd_pubkey_t key;
243 : fd_solana_account_global_t account;
244 : };
245 : typedef struct fd_pubkey_account_pair_global fd_pubkey_account_pair_global_t;
246 : #define FD_PUBKEY_ACCOUNT_PAIR_GLOBAL_ALIGN alignof(fd_pubkey_account_pair_global_t)
247 :
248 : /* Encoded Size: Dynamic */
249 : struct fd_genesis_solana {
250 : ulong creation_time;
251 : ulong accounts_len;
252 : fd_pubkey_account_pair_t * accounts;
253 : ulong native_instruction_processors_len;
254 : fd_string_pubkey_pair_t * native_instruction_processors;
255 : ulong rewards_pools_len;
256 : fd_pubkey_account_pair_t * rewards_pools;
257 : ulong ticks_per_slot;
258 : ulong unused;
259 : fd_poh_config_t poh_config;
260 : ulong __backwards_compat_with_v0_23;
261 : fd_fee_rate_governor_t fee_rate_governor;
262 : fd_rent_t rent;
263 : fd_inflation_t inflation;
264 : fd_epoch_schedule_t epoch_schedule;
265 : uint cluster_type;
266 : };
267 : typedef struct fd_genesis_solana fd_genesis_solana_t;
268 : #define FD_GENESIS_SOLANA_ALIGN alignof(fd_genesis_solana_t)
269 :
270 : struct fd_genesis_solana_global {
271 : ulong creation_time;
272 : ulong accounts_len;
273 : ulong accounts_offset;
274 : ulong native_instruction_processors_len;
275 : ulong native_instruction_processors_offset;
276 : ulong rewards_pools_len;
277 : ulong rewards_pools_offset;
278 : ulong ticks_per_slot;
279 : ulong unused;
280 : fd_poh_config_global_t poh_config;
281 : ulong __backwards_compat_with_v0_23;
282 : fd_fee_rate_governor_t fee_rate_governor;
283 : fd_rent_t rent;
284 : fd_inflation_t inflation;
285 : fd_epoch_schedule_t epoch_schedule;
286 : uint cluster_type;
287 : };
288 : typedef struct fd_genesis_solana_global fd_genesis_solana_global_t;
289 : #define FD_GENESIS_SOLANA_GLOBAL_ALIGN alignof(fd_genesis_solana_global_t)
290 :
291 0 : FD_FN_UNUSED static fd_pubkey_account_pair_global_t * fd_genesis_solana_accounts_join( fd_genesis_solana_global_t const * struct_mem ) { // vector
292 0 : return struct_mem->accounts_offset ? (fd_pubkey_account_pair_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->accounts_offset ) : NULL;
293 0 : }
294 0 : FD_FN_UNUSED static void fd_genesis_solana_accounts_update( fd_genesis_solana_global_t * struct_mem, fd_pubkey_account_pair_global_t * vec ) {
295 0 : struct_mem->accounts_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
296 0 : }
297 0 : FD_FN_UNUSED static fd_string_pubkey_pair_global_t * fd_genesis_solana_native_instruction_processors_join( fd_genesis_solana_global_t const * struct_mem ) { // vector
298 0 : return struct_mem->native_instruction_processors_offset ? (fd_string_pubkey_pair_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->native_instruction_processors_offset ) : NULL;
299 0 : }
300 0 : FD_FN_UNUSED static void fd_genesis_solana_native_instruction_processors_update( fd_genesis_solana_global_t * struct_mem, fd_string_pubkey_pair_global_t * vec ) {
301 0 : struct_mem->native_instruction_processors_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
302 0 : }
303 0 : FD_FN_UNUSED static fd_pubkey_account_pair_global_t * fd_genesis_solana_rewards_pools_join( fd_genesis_solana_global_t const * struct_mem ) { // vector
304 0 : return struct_mem->rewards_pools_offset ? (fd_pubkey_account_pair_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->rewards_pools_offset ) : NULL;
305 0 : }
306 0 : FD_FN_UNUSED static void fd_genesis_solana_rewards_pools_update( fd_genesis_solana_global_t * struct_mem, fd_pubkey_account_pair_global_t * vec ) {
307 0 : struct_mem->rewards_pools_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
308 0 : }
309 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/clock.rs#L114 */
310 : /* Encoded Size: Fixed (40 bytes) */
311 : struct fd_sol_sysvar_clock {
312 : ulong slot;
313 : long epoch_start_timestamp;
314 : ulong epoch;
315 : ulong leader_schedule_epoch;
316 : long unix_timestamp;
317 : };
318 : typedef struct fd_sol_sysvar_clock fd_sol_sysvar_clock_t;
319 3 : #define FD_SOL_SYSVAR_CLOCK_ALIGN alignof(fd_sol_sysvar_clock_t)
320 :
321 : /* https://github.com/solana-labs/solana/blob/30531d7a5b74f914dde53bfbb0bc2144f2ac92bb/sdk/program/src/last_restart_slot.rs#L7 */
322 : /* Encoded Size: Fixed (8 bytes) */
323 : struct fd_sol_sysvar_last_restart_slot {
324 : ulong slot;
325 : };
326 : typedef struct fd_sol_sysvar_last_restart_slot fd_sol_sysvar_last_restart_slot_t;
327 3 : #define FD_SOL_SYSVAR_LAST_RESTART_SLOT_ALIGN alignof(fd_sol_sysvar_last_restart_slot_t)
328 :
329 : /* Encoded Size: Fixed (12 bytes) */
330 : struct fd_vote_lockout {
331 : ulong slot;
332 : uint confirmation_count;
333 : };
334 : typedef struct fd_vote_lockout fd_vote_lockout_t;
335 : #define FD_VOTE_LOCKOUT_ALIGN alignof(fd_vote_lockout_t)
336 :
337 : /* Encoded Size: Dynamic */
338 : struct fd_lockout_offset {
339 : ulong offset;
340 : uchar confirmation_count;
341 : };
342 : typedef struct fd_lockout_offset fd_lockout_offset_t;
343 0 : #define FD_LOCKOUT_OFFSET_ALIGN alignof(fd_lockout_offset_t)
344 :
345 : /* https://github.com/firedancer-io/solana/blob/da470eef4652b3b22598a1f379cacfe82bd5928d/sdk/program/src/vote/authorized_voters.rs#L9 */
346 : /* Encoded Size: Fixed (40 bytes) */
347 : struct fd_vote_authorized_voter {
348 : ulong epoch;
349 : fd_pubkey_t pubkey;
350 : ulong parent;
351 : ulong left;
352 : ulong right;
353 : ulong prio;
354 : };
355 : typedef struct fd_vote_authorized_voter fd_vote_authorized_voter_t;
356 : #define FD_VOTE_AUTHORIZED_VOTER_ALIGN alignof(fd_vote_authorized_voter_t)
357 :
358 : /* Encoded Size: Fixed (48 bytes) */
359 : struct fd_vote_prior_voter {
360 : fd_pubkey_t pubkey;
361 : ulong epoch_start;
362 : ulong epoch_end;
363 : };
364 : typedef struct fd_vote_prior_voter fd_vote_prior_voter_t;
365 : #define FD_VOTE_PRIOR_VOTER_ALIGN alignof(fd_vote_prior_voter_t)
366 :
367 : /* Encoded Size: Fixed (56 bytes) */
368 : struct fd_vote_prior_voter_0_23_5 {
369 : fd_pubkey_t pubkey;
370 : ulong epoch_start;
371 : ulong epoch_end;
372 : ulong slot;
373 : };
374 : typedef struct fd_vote_prior_voter_0_23_5 fd_vote_prior_voter_0_23_5_t;
375 : #define FD_VOTE_PRIOR_VOTER_0_23_5_ALIGN alignof(fd_vote_prior_voter_0_23_5_t)
376 :
377 : /* Encoded Size: Fixed (24 bytes) */
378 : struct fd_vote_epoch_credits {
379 : ulong epoch;
380 : ulong credits;
381 : ulong prev_credits;
382 : };
383 : typedef struct fd_vote_epoch_credits fd_vote_epoch_credits_t;
384 : #define FD_VOTE_EPOCH_CREDITS_ALIGN alignof(fd_vote_epoch_credits_t)
385 :
386 : /* Encoded Size: Fixed (16 bytes) */
387 : struct fd_vote_block_timestamp {
388 : ulong slot;
389 : long timestamp;
390 : };
391 : typedef struct fd_vote_block_timestamp fd_vote_block_timestamp_t;
392 : #define FD_VOTE_BLOCK_TIMESTAMP_ALIGN alignof(fd_vote_block_timestamp_t)
393 :
394 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
395 : /* Encoded Size: Fixed (1545 bytes) */
396 : struct fd_vote_prior_voters {
397 : fd_vote_prior_voter_t buf[32];
398 : ulong idx;
399 : uchar is_empty;
400 : };
401 : typedef struct fd_vote_prior_voters fd_vote_prior_voters_t;
402 : #define FD_VOTE_PRIOR_VOTERS_ALIGN alignof(fd_vote_prior_voters_t)
403 :
404 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
405 : /* Encoded Size: Fixed (1800 bytes) */
406 : struct fd_vote_prior_voters_0_23_5 {
407 : fd_vote_prior_voter_0_23_5_t buf[32];
408 : ulong idx;
409 : };
410 : typedef struct fd_vote_prior_voters_0_23_5 fd_vote_prior_voters_0_23_5_t;
411 : #define FD_VOTE_PRIOR_VOTERS_0_23_5_ALIGN alignof(fd_vote_prior_voters_0_23_5_t)
412 :
413 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
414 : /* Encoded Size: Fixed (13 bytes) */
415 : struct fd_landed_vote {
416 : uchar latency;
417 : fd_vote_lockout_t lockout;
418 : };
419 : typedef struct fd_landed_vote fd_landed_vote_t;
420 : #define FD_LANDED_VOTE_ALIGN alignof(fd_landed_vote_t)
421 :
422 : /* https://github.com/anza-xyz/solana-sdk/blob/vote-interface%40v4.0.4/vote-interface/src/state/vote_state_v4.rs#L52-L56 */
423 : /* Encoded Size: Fixed (48 bytes) */
424 : struct fd_bls_pubkey_compressed {
425 : uchar buf[48];
426 : };
427 : typedef struct fd_bls_pubkey_compressed fd_bls_pubkey_compressed_t;
428 : #define FD_BLS_PUBKEY_COMPRESSED_ALIGN alignof(fd_bls_pubkey_compressed_t)
429 :
430 : #define DEQUE_NAME deq_fd_vote_lockout_t
431 0 : #define DEQUE_T fd_vote_lockout_t
432 : #include "../../util/tmpl/fd_deque_dynamic.c"
433 : #undef DEQUE_NAME
434 : #undef DEQUE_T
435 : #undef DEQUE_MAX
436 : static inline fd_vote_lockout_t *
437 0 : deq_fd_vote_lockout_t_join_new( void * * alloc_mem, ulong max ) {
438 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
439 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_vote_lockout_t_align() );
440 0 : void * deque_mem = *alloc_mem;
441 0 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_vote_lockout_t_footprint( max );
442 0 : return deq_fd_vote_lockout_t_join( deq_fd_vote_lockout_t_new( deque_mem, max ) );
443 0 : }
444 :
445 : #define DEQUE_NAME deq_fd_vote_epoch_credits_t
446 0 : #define DEQUE_T fd_vote_epoch_credits_t
447 : #include "../../util/tmpl/fd_deque_dynamic.c"
448 : #undef DEQUE_NAME
449 : #undef DEQUE_T
450 : #undef DEQUE_MAX
451 : static inline fd_vote_epoch_credits_t *
452 0 : deq_fd_vote_epoch_credits_t_join_new( void * * alloc_mem, ulong max ) {
453 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
454 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_vote_epoch_credits_t_align() );
455 0 : void * deque_mem = *alloc_mem;
456 0 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_vote_epoch_credits_t_footprint( max );
457 0 : return deq_fd_vote_epoch_credits_t_join( deq_fd_vote_epoch_credits_t_new( deque_mem, max ) );
458 0 : }
459 :
460 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/vote_state_0_23_5.rs#L6 */
461 : /* Encoded Size: Dynamic */
462 : struct fd_vote_state_0_23_5 {
463 : fd_pubkey_t node_pubkey;
464 : fd_pubkey_t authorized_voter;
465 : ulong authorized_voter_epoch;
466 : fd_vote_prior_voters_0_23_5_t prior_voters;
467 : fd_pubkey_t authorized_withdrawer;
468 : uchar commission;
469 : fd_vote_lockout_t * votes; /* fd_deque_dynamic (min cnt 32) */
470 : ulong root_slot;
471 : uchar has_root_slot;
472 : fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
473 : fd_vote_block_timestamp_t last_timestamp;
474 : };
475 : typedef struct fd_vote_state_0_23_5 fd_vote_state_0_23_5_t;
476 : #define FD_VOTE_STATE_0_23_5_ALIGN alignof(fd_vote_state_0_23_5_t)
477 :
478 0 : #define FD_VOTE_AUTHORIZED_VOTERS_MIN 64
479 : #define POOL_NAME fd_vote_authorized_voters_pool
480 24 : #define POOL_T fd_vote_authorized_voter_t
481 24 : #define POOL_NEXT parent
482 : #include "../../util/tmpl/fd_pool.c"
483 : static inline fd_vote_authorized_voter_t *
484 0 : fd_vote_authorized_voters_pool_join_new( void * * alloc_mem, ulong num ) {
485 0 : if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
486 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_authorized_voters_pool_align() );
487 0 : void * pool_mem = *alloc_mem;
488 0 : *alloc_mem = (uchar *)*alloc_mem + fd_vote_authorized_voters_pool_footprint( num );
489 0 : return fd_vote_authorized_voters_pool_join( fd_vote_authorized_voters_pool_new( pool_mem, num ) );
490 0 : }
491 : #define TREAP_NAME fd_vote_authorized_voters_treap
492 : #define TREAP_T fd_vote_authorized_voter_t
493 : #define TREAP_QUERY_T ulong
494 0 : #define TREAP_CMP(q,e) ( (q == (e)->epoch) ? 0 : ( (q < (e)->epoch) ? -1 : 1 ) )
495 0 : #define TREAP_LT(e0,e1) ((e0)->epoch<(e1)->epoch)
496 : #include "../../util/tmpl/fd_treap.c"
497 : static inline fd_vote_authorized_voters_treap_t *
498 0 : fd_vote_authorized_voters_treap_join_new( void * * alloc_mem, ulong num ) {
499 0 : if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
500 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_authorized_voters_treap_align() );
501 0 : void * treap_mem = *alloc_mem;
502 0 : *alloc_mem = (uchar *)*alloc_mem + fd_vote_authorized_voters_treap_footprint( num );
503 0 : return fd_vote_authorized_voters_treap_join( fd_vote_authorized_voters_treap_new( treap_mem, num ) );
504 0 : }
505 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
506 : /* Encoded Size: Dynamic */
507 : struct fd_vote_authorized_voters {
508 : fd_vote_authorized_voter_t * pool;
509 : fd_vote_authorized_voters_treap_t * treap;
510 : };
511 : typedef struct fd_vote_authorized_voters fd_vote_authorized_voters_t;
512 0 : #define FD_VOTE_AUTHORIZED_VOTERS_ALIGN alignof(fd_vote_authorized_voters_t)
513 :
514 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
515 : /* Encoded Size: Dynamic */
516 : struct fd_vote_state_1_14_11 {
517 : fd_pubkey_t node_pubkey;
518 : fd_pubkey_t authorized_withdrawer;
519 : uchar commission;
520 : fd_vote_lockout_t * votes; /* fd_deque_dynamic (min cnt 32) */
521 : ulong root_slot;
522 : uchar has_root_slot;
523 : fd_vote_authorized_voters_t authorized_voters;
524 : fd_vote_prior_voters_t prior_voters;
525 : fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
526 : fd_vote_block_timestamp_t last_timestamp;
527 : };
528 : typedef struct fd_vote_state_1_14_11 fd_vote_state_1_14_11_t;
529 : #define FD_VOTE_STATE_1_14_11_ALIGN alignof(fd_vote_state_1_14_11_t)
530 :
531 : #define DEQUE_NAME deq_fd_landed_vote_t
532 0 : #define DEQUE_T fd_landed_vote_t
533 : #include "../../util/tmpl/fd_deque_dynamic.c"
534 : #undef DEQUE_NAME
535 : #undef DEQUE_T
536 : #undef DEQUE_MAX
537 : static inline fd_landed_vote_t *
538 0 : deq_fd_landed_vote_t_join_new( void * * alloc_mem, ulong max ) {
539 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
540 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_landed_vote_t_align() );
541 0 : void * deque_mem = *alloc_mem;
542 0 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_landed_vote_t_footprint( max );
543 0 : return deq_fd_landed_vote_t_join( deq_fd_landed_vote_t_new( deque_mem, max ) );
544 0 : }
545 :
546 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
547 : /* Encoded Size: Dynamic */
548 : struct fd_vote_state_v3 {
549 : fd_pubkey_t node_pubkey;
550 : fd_pubkey_t authorized_withdrawer;
551 : uchar commission;
552 : fd_landed_vote_t * votes; /* fd_deque_dynamic (min cnt 32) */
553 : ulong root_slot;
554 : uchar has_root_slot;
555 : fd_vote_authorized_voters_t authorized_voters;
556 : fd_vote_prior_voters_t prior_voters;
557 : fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
558 : fd_vote_block_timestamp_t last_timestamp;
559 : };
560 : typedef struct fd_vote_state_v3 fd_vote_state_v3_t;
561 : #define FD_VOTE_STATE_V3_ALIGN alignof(fd_vote_state_v3_t)
562 :
563 : /* https://github.com/anza-xyz/solana-sdk/blob/vote-interface%40v4.0.4/vote-interface/src/state/vote_state_v4.rs#L30-L71 */
564 : /* Encoded Size: Dynamic */
565 : struct fd_vote_state_v4 {
566 : fd_pubkey_t node_pubkey;
567 : fd_pubkey_t authorized_withdrawer;
568 : fd_pubkey_t inflation_rewards_collector;
569 : fd_pubkey_t block_revenue_collector;
570 : ushort inflation_rewards_commission_bps;
571 : ushort block_revenue_commission_bps;
572 : ulong pending_delegator_rewards;
573 : fd_bls_pubkey_compressed_t bls_pubkey_compressed;
574 : uchar has_bls_pubkey_compressed;
575 : fd_landed_vote_t * votes; /* fd_deque_dynamic (min cnt 32) */
576 : ulong root_slot;
577 : uchar has_root_slot;
578 : fd_vote_authorized_voters_t authorized_voters;
579 : fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
580 : fd_vote_block_timestamp_t last_timestamp;
581 : };
582 : typedef struct fd_vote_state_v4 fd_vote_state_v4_t;
583 : #define FD_VOTE_STATE_V4_ALIGN alignof(fd_vote_state_v4_t)
584 :
585 : union fd_vote_state_versioned_inner {
586 : fd_vote_state_0_23_5_t v0_23_5;
587 : fd_vote_state_1_14_11_t v1_14_11;
588 : fd_vote_state_v3_t v3;
589 : fd_vote_state_v4_t v4;
590 : };
591 : typedef union fd_vote_state_versioned_inner fd_vote_state_versioned_inner_t;
592 :
593 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/vote_state_versions.rs#L4 */
594 : struct fd_vote_state_versioned {
595 : uint discriminant;
596 : fd_vote_state_versioned_inner_t inner;
597 : };
598 : typedef struct fd_vote_state_versioned fd_vote_state_versioned_t;
599 0 : #define FD_VOTE_STATE_VERSIONED_ALIGN alignof(fd_vote_state_versioned_t)
600 :
601 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L185 */
602 : /* Encoded Size: Dynamic */
603 : struct fd_vote_state_update {
604 : fd_vote_lockout_t * lockouts; /* fd_deque_dynamic (min cnt 32) */
605 : ulong root;
606 : uchar has_root;
607 : fd_hash_t hash;
608 : long timestamp;
609 : uchar has_timestamp;
610 : };
611 : typedef struct fd_vote_state_update fd_vote_state_update_t;
612 : #define FD_VOTE_STATE_UPDATE_ALIGN alignof(fd_vote_state_update_t)
613 :
614 : /* Encoded Size: Dynamic */
615 : struct fd_compact_vote_state_update {
616 : ulong root;
617 : ushort lockouts_len;
618 : fd_lockout_offset_t * lockouts;
619 : fd_hash_t hash;
620 : long timestamp;
621 : uchar has_timestamp;
622 : };
623 : typedef struct fd_compact_vote_state_update fd_compact_vote_state_update_t;
624 : #define FD_COMPACT_VOTE_STATE_UPDATE_ALIGN alignof(fd_compact_vote_state_update_t)
625 :
626 : /* https://github.com/solana-labs/solana/blob/252438e28fbfb2c695fe1215171b83456e4b761c/programs/vote/src/vote_instruction.rs#L143 */
627 : /* Encoded Size: Dynamic */
628 : struct fd_compact_vote_state_update_switch {
629 : fd_compact_vote_state_update_t compact_vote_state_update;
630 : fd_hash_t hash;
631 : };
632 : typedef struct fd_compact_vote_state_update_switch fd_compact_vote_state_update_switch_t;
633 : #define FD_COMPACT_VOTE_STATE_UPDATE_SWITCH_ALIGN alignof(fd_compact_vote_state_update_switch_t)
634 :
635 : #define DEQUE_NAME deq_fd_lockout_offset_t
636 0 : #define DEQUE_T fd_lockout_offset_t
637 : #include "../../util/tmpl/fd_deque_dynamic.c"
638 : #undef DEQUE_NAME
639 : #undef DEQUE_T
640 : #undef DEQUE_MAX
641 : static inline fd_lockout_offset_t *
642 0 : deq_fd_lockout_offset_t_join_new( void * * alloc_mem, ulong max ) {
643 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
644 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_lockout_offset_t_align() );
645 0 : void * deque_mem = *alloc_mem;
646 0 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_lockout_offset_t_footprint( max );
647 0 : return deq_fd_lockout_offset_t_join( deq_fd_lockout_offset_t_new( deque_mem, max ) );
648 0 : }
649 :
650 : /* https://github.com/anza-xyz/agave/blob/20ee70cd1829cd414d09040460defecf9792a370/sdk/program/src/vote/state/mod.rs#L990 */
651 : /* Encoded Size: Dynamic */
652 : struct fd_compact_tower_sync {
653 : ulong root;
654 : fd_lockout_offset_t * lockout_offsets; /* fd_deque_dynamic (min cnt 32) */
655 : fd_hash_t hash;
656 : long timestamp;
657 : uchar has_timestamp;
658 : fd_hash_t block_id;
659 : };
660 : typedef struct fd_compact_tower_sync fd_compact_tower_sync_t;
661 : #define FD_COMPACT_TOWER_SYNC_ALIGN alignof(fd_compact_tower_sync_t)
662 :
663 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L185 */
664 : /* Encoded Size: Dynamic */
665 : struct fd_tower_sync {
666 : fd_vote_lockout_t * lockouts; /* fd_deque_dynamic */
667 : ulong lockouts_cnt;
668 : ulong root;
669 : uchar has_root;
670 : fd_hash_t hash;
671 : long timestamp;
672 : uchar has_timestamp;
673 : fd_hash_t block_id;
674 : };
675 : typedef struct fd_tower_sync fd_tower_sync_t;
676 : #define FD_TOWER_SYNC_ALIGN alignof(fd_tower_sync_t)
677 :
678 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L104 */
679 : /* Encoded Size: Dynamic */
680 : struct fd_tower_sync_switch {
681 : fd_tower_sync_t tower_sync;
682 : fd_hash_t hash;
683 : };
684 : typedef struct fd_tower_sync_switch fd_tower_sync_switch_t;
685 : #define FD_TOWER_SYNC_SWITCH_ALIGN alignof(fd_tower_sync_switch_t)
686 :
687 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/slot_history.rs#L11 */
688 : /* Encoded Size: Dynamic */
689 : struct fd_slot_history {
690 : uchar has_bits;
691 : ulong bits_bitvec_len;
692 : ulong* bits_bitvec;
693 : ulong bits_len;
694 : ulong next_slot;
695 : };
696 : typedef struct fd_slot_history fd_slot_history_t;
697 3 : #define FD_SLOT_HISTORY_ALIGN alignof(fd_slot_history_t)
698 :
699 : struct fd_slot_history_global {
700 : uchar has_bits;
701 : ulong bits_bitvec_len;
702 : ulong bits_bitvec_offset;
703 : ulong bits_len;
704 : ulong next_slot;
705 : };
706 : typedef struct fd_slot_history_global fd_slot_history_global_t;
707 : #define FD_SLOT_HISTORY_GLOBAL_ALIGN alignof(fd_slot_history_global_t)
708 :
709 : /* Encoded Size: Fixed (40 bytes) */
710 : struct fd_slot_hash {
711 : ulong slot;
712 : fd_hash_t hash;
713 : };
714 : typedef struct fd_slot_hash fd_slot_hash_t;
715 : #define FD_SLOT_HASH_ALIGN alignof(fd_slot_hash_t)
716 :
717 : #define DEQUE_NAME deq_fd_slot_hash_t
718 243 : #define DEQUE_T fd_slot_hash_t
719 : #include "../../util/tmpl/fd_deque_dynamic.c"
720 : #undef DEQUE_NAME
721 : #undef DEQUE_T
722 : #undef DEQUE_MAX
723 : static inline fd_slot_hash_t *
724 51 : deq_fd_slot_hash_t_join_new( void * * alloc_mem, ulong max ) {
725 51 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
726 51 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_slot_hash_t_align() );
727 51 : void * deque_mem = *alloc_mem;
728 51 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_slot_hash_t_footprint( max );
729 51 : return deq_fd_slot_hash_t_join( deq_fd_slot_hash_t_new( deque_mem, max ) );
730 51 : }
731 :
732 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/slot_hashes.rs#L31 */
733 : /* Encoded Size: Dynamic */
734 : struct fd_slot_hashes {
735 : fd_slot_hash_t * hashes; /* fd_deque_dynamic (min cnt 512) */
736 : };
737 : typedef struct fd_slot_hashes fd_slot_hashes_t;
738 3 : #define FD_SLOT_HASHES_ALIGN alignof(fd_slot_hashes_t)
739 :
740 : struct fd_slot_hashes_global {
741 : ulong hashes_offset; /* fd_deque_dynamic (min cnt 512) */
742 : };
743 : typedef struct fd_slot_hashes_global fd_slot_hashes_global_t;
744 : #define FD_SLOT_HASHES_GLOBAL_ALIGN alignof(fd_slot_hashes_global_t)
745 :
746 0 : static FD_FN_UNUSED fd_slot_hash_t * fd_slot_hashes_hashes_join( fd_slot_hashes_global_t * type ) { // deque
747 0 : return type->hashes_offset ? (fd_slot_hash_t *)deq_fd_slot_hash_t_join( fd_type_pun( (uchar *)type + type->hashes_offset ) ) : NULL;
748 0 : }
749 : /* Encoded Size: Fixed (40 bytes) */
750 : struct fd_block_block_hash_entry {
751 : fd_hash_t blockhash;
752 : fd_fee_calculator_t fee_calculator;
753 : };
754 : typedef struct fd_block_block_hash_entry fd_block_block_hash_entry_t;
755 : #define FD_BLOCK_BLOCK_HASH_ENTRY_ALIGN alignof(fd_block_block_hash_entry_t)
756 :
757 : #define DEQUE_NAME deq_fd_block_block_hash_entry_t
758 33975 : #define DEQUE_T fd_block_block_hash_entry_t
759 : #include "../../util/tmpl/fd_deque_dynamic.c"
760 : #undef DEQUE_NAME
761 : #undef DEQUE_T
762 : #undef DEQUE_MAX
763 : static inline fd_block_block_hash_entry_t *
764 453 : deq_fd_block_block_hash_entry_t_join_new( void * * alloc_mem, ulong max ) {
765 453 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
766 453 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_block_block_hash_entry_t_align() );
767 453 : void * deque_mem = *alloc_mem;
768 453 : *alloc_mem = (uchar *)*alloc_mem + deq_fd_block_block_hash_entry_t_footprint( max );
769 453 : return deq_fd_block_block_hash_entry_t_join( deq_fd_block_block_hash_entry_t_new( deque_mem, max ) );
770 453 : }
771 :
772 : /* Encoded Size: Dynamic */
773 : struct fd_recent_block_hashes {
774 : fd_block_block_hash_entry_t * hashes; /* fd_deque_dynamic (min cnt 151) */
775 : };
776 : typedef struct fd_recent_block_hashes fd_recent_block_hashes_t;
777 3 : #define FD_RECENT_BLOCK_HASHES_ALIGN alignof(fd_recent_block_hashes_t)
778 :
779 : struct fd_recent_block_hashes_global {
780 : ulong hashes_offset; /* fd_deque_dynamic (min cnt 151) */
781 : };
782 : typedef struct fd_recent_block_hashes_global fd_recent_block_hashes_global_t;
783 : #define FD_RECENT_BLOCK_HASHES_GLOBAL_ALIGN alignof(fd_recent_block_hashes_global_t)
784 :
785 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
786 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;
787 0 : }
788 : /* Encoded Size: Dynamic */
789 : struct fd_slot_meta {
790 : ulong slot;
791 : ulong consumed;
792 : ulong received;
793 : long first_shred_timestamp;
794 : ulong last_index;
795 : ulong parent_slot;
796 : ulong next_slot_len;
797 : ulong* next_slot;
798 : uchar is_connected;
799 : };
800 : typedef struct fd_slot_meta fd_slot_meta_t;
801 0 : #define FD_SLOT_META_ALIGN alignof(fd_slot_meta_t)
802 :
803 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/sysvar/fees.rs#L21 */
804 : /* Encoded Size: Fixed (8 bytes) */
805 : struct fd_sysvar_fees {
806 : fd_fee_calculator_t fee_calculator;
807 : };
808 : typedef struct fd_sysvar_fees fd_sysvar_fees_t;
809 : #define FD_SYSVAR_FEES_ALIGN alignof(fd_sysvar_fees_t)
810 :
811 : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/sdk/program/src/epoch_rewards.rs#L14 */
812 : /* Encoded Size: Fixed (81 bytes) */
813 : struct fd_sysvar_epoch_rewards {
814 : ulong distribution_starting_block_height;
815 : ulong num_partitions;
816 : fd_hash_t parent_blockhash;
817 : fd_w_u128_t total_points;
818 : ulong total_rewards;
819 : ulong distributed_rewards;
820 : uchar active;
821 : };
822 : typedef struct fd_sysvar_epoch_rewards fd_sysvar_epoch_rewards_t;
823 3 : #define FD_SYSVAR_EPOCH_REWARDS_ALIGN alignof(fd_sysvar_epoch_rewards_t)
824 :
825 : /* Encoded Size: Fixed (33 bytes) */
826 : struct fd_config_keys_pair {
827 : fd_pubkey_t key;
828 : uchar signer;
829 : };
830 : typedef struct fd_config_keys_pair fd_config_keys_pair_t;
831 0 : #define FD_CONFIG_KEYS_PAIR_ALIGN alignof(fd_config_keys_pair_t)
832 :
833 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/config.rs#L14 */
834 : /* Encoded Size: Dynamic */
835 : struct fd_stake_config {
836 : ushort config_keys_len;
837 : fd_config_keys_pair_t * config_keys;
838 : double warmup_cooldown_rate;
839 : uchar slash_penalty;
840 : };
841 : typedef struct fd_stake_config fd_stake_config_t;
842 : #define FD_STAKE_CONFIG_ALIGN alignof(fd_stake_config_t)
843 :
844 : struct fd_cluster_type {
845 : uint discriminant;
846 : };
847 : typedef struct fd_cluster_type fd_cluster_type_t;
848 : #define FD_CLUSTER_TYPE_ALIGN alignof(fd_cluster_type_t)
849 :
850 : /* Encoded Size: Fixed (12 bytes) */
851 : struct fd_cluster_version {
852 : uint major;
853 : uint minor;
854 : uint patch;
855 : };
856 : typedef struct fd_cluster_version fd_cluster_version_t;
857 : #define FD_CLUSTER_VERSION_ALIGN alignof(fd_cluster_version_t)
858 :
859 : #define DEQUE_NAME deq_ulong
860 0 : #define DEQUE_T ulong
861 : #include "../../util/tmpl/fd_deque_dynamic.c"
862 : #undef DEQUE_NAME
863 : #undef DEQUE_T
864 : #undef DEQUE_MAX
865 : static inline ulong *
866 0 : deq_ulong_join_new( void * * alloc_mem, ulong max ) {
867 0 : if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
868 0 : *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_ulong_align() );
869 0 : void * deque_mem = *alloc_mem;
870 0 : *alloc_mem = (uchar *)*alloc_mem + deq_ulong_footprint( max );
871 0 : return deq_ulong_join( deq_ulong_new( deque_mem, max ) );
872 0 : }
873 :
874 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L133 */
875 : /* Encoded Size: Dynamic */
876 : struct fd_vote {
877 : ulong * slots; /* fd_deque_dynamic */
878 : fd_hash_t hash;
879 : long timestamp;
880 : uchar has_timestamp;
881 : };
882 : typedef struct fd_vote fd_vote_t;
883 : #define FD_VOTE_ALIGN alignof(fd_vote_t)
884 :
885 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L230 */
886 : /* Encoded Size: Fixed (97 bytes) */
887 : struct fd_vote_init {
888 : fd_pubkey_t node_pubkey;
889 : fd_pubkey_t authorized_voter;
890 : fd_pubkey_t authorized_withdrawer;
891 : uchar commission;
892 : };
893 : typedef struct fd_vote_init fd_vote_init_t;
894 : #define FD_VOTE_INIT_ALIGN alignof(fd_vote_init_t)
895 :
896 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L238 */
897 : struct fd_vote_authorize {
898 : uint discriminant;
899 : };
900 : typedef struct fd_vote_authorize fd_vote_authorize_t;
901 : #define FD_VOTE_AUTHORIZE_ALIGN alignof(fd_vote_authorize_t)
902 :
903 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L37 */
904 : /* Encoded Size: Fixed (36 bytes) */
905 : struct fd_vote_authorize_pubkey {
906 : fd_pubkey_t pubkey;
907 : fd_vote_authorize_t vote_authorize;
908 : };
909 : typedef struct fd_vote_authorize_pubkey fd_vote_authorize_pubkey_t;
910 : #define FD_VOTE_AUTHORIZE_PUBKEY_ALIGN alignof(fd_vote_authorize_pubkey_t)
911 :
912 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L78 */
913 : /* Encoded Size: Dynamic */
914 : struct fd_vote_switch {
915 : fd_vote_t vote;
916 : fd_hash_t hash;
917 : };
918 : typedef struct fd_vote_switch fd_vote_switch_t;
919 : #define FD_VOTE_SWITCH_ALIGN alignof(fd_vote_switch_t)
920 :
921 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L104 */
922 : /* Encoded Size: Dynamic */
923 : struct fd_update_vote_state_switch {
924 : fd_vote_state_update_t vote_state_update;
925 : fd_hash_t hash;
926 : };
927 : typedef struct fd_update_vote_state_switch fd_update_vote_state_switch_t;
928 : #define FD_UPDATE_VOTE_STATE_SWITCH_ALIGN alignof(fd_update_vote_state_switch_t)
929 :
930 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L244 */
931 : /* Encoded Size: Dynamic */
932 : struct fd_vote_authorize_with_seed_args {
933 : fd_vote_authorize_t authorization_type;
934 : fd_pubkey_t current_authority_derived_key_owner;
935 : ulong current_authority_derived_key_seed_len;
936 : uchar* current_authority_derived_key_seed;
937 : fd_pubkey_t new_authority;
938 : };
939 : typedef struct fd_vote_authorize_with_seed_args fd_vote_authorize_with_seed_args_t;
940 : #define FD_VOTE_AUTHORIZE_WITH_SEED_ARGS_ALIGN alignof(fd_vote_authorize_with_seed_args_t)
941 :
942 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L252 */
943 : /* Encoded Size: Dynamic */
944 : struct fd_vote_authorize_checked_with_seed_args {
945 : fd_vote_authorize_t authorization_type;
946 : fd_pubkey_t current_authority_derived_key_owner;
947 : ulong current_authority_derived_key_seed_len;
948 : uchar* current_authority_derived_key_seed;
949 : };
950 : typedef struct fd_vote_authorize_checked_with_seed_args fd_vote_authorize_checked_with_seed_args_t;
951 : #define FD_VOTE_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN alignof(fd_vote_authorize_checked_with_seed_args_t)
952 :
953 : union fd_vote_instruction_inner {
954 : fd_vote_init_t initialize_account;
955 : fd_vote_authorize_pubkey_t authorize;
956 : fd_vote_t vote;
957 : ulong withdraw;
958 : uchar update_commission;
959 : fd_vote_switch_t vote_switch;
960 : fd_vote_authorize_t authorize_checked;
961 : fd_vote_state_update_t update_vote_state;
962 : fd_update_vote_state_switch_t update_vote_state_switch;
963 : fd_vote_authorize_with_seed_args_t authorize_with_seed;
964 : fd_vote_authorize_checked_with_seed_args_t authorize_checked_with_seed;
965 : fd_compact_vote_state_update_t compact_update_vote_state;
966 : fd_compact_vote_state_update_switch_t compact_update_vote_state_switch;
967 : fd_tower_sync_t tower_sync;
968 : fd_tower_sync_switch_t tower_sync_switch;
969 : };
970 : typedef union fd_vote_instruction_inner fd_vote_instruction_inner_t;
971 :
972 : /* https://github.com/firedancer-io/solana/blob/53a4e5d6c58b2ffe89b09304e4437f8ca198dadd/programs/vote/src/vote_instruction.rs#L21 */
973 : struct fd_vote_instruction {
974 : uint discriminant;
975 : fd_vote_instruction_inner_t inner;
976 : };
977 : typedef struct fd_vote_instruction fd_vote_instruction_t;
978 : #define FD_VOTE_INSTRUCTION_ALIGN alignof(fd_vote_instruction_t)
979 :
980 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L158 */
981 : /* Encoded Size: Fixed (48 bytes) */
982 : struct fd_system_program_instruction_create_account {
983 : ulong lamports;
984 : ulong space;
985 : fd_pubkey_t owner;
986 : };
987 : typedef struct fd_system_program_instruction_create_account fd_system_program_instruction_create_account_t;
988 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_ALIGN alignof(fd_system_program_instruction_create_account_t)
989 :
990 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L193 */
991 : /* Encoded Size: Dynamic */
992 : struct fd_system_program_instruction_create_account_with_seed {
993 : fd_pubkey_t base;
994 : ulong seed_len;
995 : uchar* seed;
996 : ulong lamports;
997 : ulong space;
998 : fd_pubkey_t owner;
999 : };
1000 : typedef struct fd_system_program_instruction_create_account_with_seed fd_system_program_instruction_create_account_with_seed_t;
1001 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_WITH_SEED_ALIGN alignof(fd_system_program_instruction_create_account_with_seed_t)
1002 :
1003 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L269 */
1004 : /* Encoded Size: Dynamic */
1005 : struct fd_system_program_instruction_allocate_with_seed {
1006 : fd_pubkey_t base;
1007 : ulong seed_len;
1008 : uchar* seed;
1009 : ulong space;
1010 : fd_pubkey_t owner;
1011 : };
1012 : typedef struct fd_system_program_instruction_allocate_with_seed fd_system_program_instruction_allocate_with_seed_t;
1013 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ALLOCATE_WITH_SEED_ALIGN alignof(fd_system_program_instruction_allocate_with_seed_t)
1014 :
1015 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L288 */
1016 : /* Encoded Size: Dynamic */
1017 : struct fd_system_program_instruction_assign_with_seed {
1018 : fd_pubkey_t base;
1019 : ulong seed_len;
1020 : uchar* seed;
1021 : fd_pubkey_t owner;
1022 : };
1023 : typedef struct fd_system_program_instruction_assign_with_seed fd_system_program_instruction_assign_with_seed_t;
1024 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ASSIGN_WITH_SEED_ALIGN alignof(fd_system_program_instruction_assign_with_seed_t)
1025 :
1026 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L288 */
1027 : /* Encoded Size: Dynamic */
1028 : struct fd_system_program_instruction_transfer_with_seed {
1029 : ulong lamports;
1030 : ulong from_seed_len;
1031 : uchar* from_seed;
1032 : fd_pubkey_t from_owner;
1033 : };
1034 : typedef struct fd_system_program_instruction_transfer_with_seed fd_system_program_instruction_transfer_with_seed_t;
1035 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_TRANSFER_WITH_SEED_ALIGN alignof(fd_system_program_instruction_transfer_with_seed_t)
1036 :
1037 : union fd_system_program_instruction_inner {
1038 : fd_system_program_instruction_create_account_t create_account;
1039 : fd_pubkey_t assign;
1040 : ulong transfer;
1041 : fd_system_program_instruction_create_account_with_seed_t create_account_with_seed;
1042 : ulong withdraw_nonce_account;
1043 : fd_pubkey_t initialize_nonce_account;
1044 : fd_pubkey_t authorize_nonce_account;
1045 : ulong allocate;
1046 : fd_system_program_instruction_allocate_with_seed_t allocate_with_seed;
1047 : fd_system_program_instruction_assign_with_seed_t assign_with_seed;
1048 : fd_system_program_instruction_transfer_with_seed_t transfer_with_seed;
1049 : };
1050 : typedef union fd_system_program_instruction_inner fd_system_program_instruction_inner_t;
1051 :
1052 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L152 */
1053 : struct fd_system_program_instruction {
1054 : uint discriminant;
1055 : fd_system_program_instruction_inner_t inner;
1056 : };
1057 : typedef struct fd_system_program_instruction fd_system_program_instruction_t;
1058 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ALIGN alignof(fd_system_program_instruction_t)
1059 :
1060 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L169 */
1061 : /* Encoded Size: Fixed (64 bytes) */
1062 : struct fd_stake_authorized {
1063 : fd_pubkey_t staker;
1064 : fd_pubkey_t withdrawer;
1065 : };
1066 : typedef struct fd_stake_authorized fd_stake_authorized_t;
1067 : #define FD_STAKE_AUTHORIZED_ALIGN alignof(fd_stake_authorized_t)
1068 :
1069 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L135 */
1070 : /* Encoded Size: Fixed (48 bytes) */
1071 : struct fd_stake_lockup {
1072 : long unix_timestamp;
1073 : ulong epoch;
1074 : fd_pubkey_t custodian;
1075 : };
1076 : typedef struct fd_stake_lockup fd_stake_lockup_t;
1077 : #define FD_STAKE_LOCKUP_ALIGN alignof(fd_stake_lockup_t)
1078 :
1079 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L68 */
1080 : /* Encoded Size: Fixed (112 bytes) */
1081 : struct fd_stake_instruction_initialize {
1082 : fd_stake_authorized_t authorized;
1083 : fd_stake_lockup_t lockup;
1084 : };
1085 : typedef struct fd_stake_instruction_initialize fd_stake_instruction_initialize_t;
1086 : #define FD_STAKE_INSTRUCTION_INITIALIZE_ALIGN alignof(fd_stake_instruction_initialize_t)
1087 :
1088 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L78 */
1089 : /* Encoded Size: Dynamic */
1090 : struct fd_stake_lockup_custodian_args {
1091 : fd_stake_lockup_t lockup;
1092 : fd_sol_sysvar_clock_t clock;
1093 : fd_pubkey_t * custodian;
1094 : };
1095 : typedef struct fd_stake_lockup_custodian_args fd_stake_lockup_custodian_args_t;
1096 : #define FD_STAKE_LOCKUP_CUSTODIAN_ARGS_ALIGN alignof(fd_stake_lockup_custodian_args_t)
1097 :
1098 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L117 */
1099 : struct fd_stake_authorize {
1100 : uint discriminant;
1101 : };
1102 : typedef struct fd_stake_authorize fd_stake_authorize_t;
1103 : #define FD_STAKE_AUTHORIZE_ALIGN alignof(fd_stake_authorize_t)
1104 :
1105 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L78 */
1106 : /* Encoded Size: Fixed (36 bytes) */
1107 : struct fd_stake_instruction_authorize {
1108 : fd_pubkey_t pubkey;
1109 : fd_stake_authorize_t stake_authorize;
1110 : };
1111 : typedef struct fd_stake_instruction_authorize fd_stake_instruction_authorize_t;
1112 : #define FD_STAKE_INSTRUCTION_AUTHORIZE_ALIGN alignof(fd_stake_instruction_authorize_t)
1113 :
1114 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L241 */
1115 : /* Encoded Size: Dynamic */
1116 : struct fd_authorize_with_seed_args {
1117 : fd_pubkey_t new_authorized_pubkey;
1118 : fd_stake_authorize_t stake_authorize;
1119 : ulong authority_seed_len;
1120 : uchar* authority_seed;
1121 : fd_pubkey_t authority_owner;
1122 : };
1123 : typedef struct fd_authorize_with_seed_args fd_authorize_with_seed_args_t;
1124 : #define FD_AUTHORIZE_WITH_SEED_ARGS_ALIGN alignof(fd_authorize_with_seed_args_t)
1125 :
1126 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L249 */
1127 : /* Encoded Size: Dynamic */
1128 : struct fd_authorize_checked_with_seed_args {
1129 : fd_stake_authorize_t stake_authorize;
1130 : ulong authority_seed_len;
1131 : uchar* authority_seed;
1132 : fd_pubkey_t authority_owner;
1133 : };
1134 : typedef struct fd_authorize_checked_with_seed_args fd_authorize_checked_with_seed_args_t;
1135 : #define FD_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN alignof(fd_authorize_checked_with_seed_args_t)
1136 :
1137 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L235 */
1138 : /* Encoded Size: Dynamic */
1139 : struct fd_lockup_checked_args {
1140 : long* unix_timestamp;
1141 : ulong* epoch;
1142 : };
1143 : typedef struct fd_lockup_checked_args fd_lockup_checked_args_t;
1144 : #define FD_LOCKUP_CHECKED_ARGS_ALIGN alignof(fd_lockup_checked_args_t)
1145 :
1146 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L228 */
1147 : /* Encoded Size: Dynamic */
1148 : struct fd_lockup_args {
1149 : long* unix_timestamp;
1150 : ulong* epoch;
1151 : fd_pubkey_t * custodian;
1152 : };
1153 : typedef struct fd_lockup_args fd_lockup_args_t;
1154 : #define FD_LOCKUP_ARGS_ALIGN alignof(fd_lockup_args_t)
1155 :
1156 : union fd_stake_instruction_inner {
1157 : fd_stake_instruction_initialize_t initialize;
1158 : fd_stake_instruction_authorize_t authorize;
1159 : ulong split;
1160 : ulong withdraw;
1161 : fd_lockup_args_t set_lockup;
1162 : fd_authorize_with_seed_args_t authorize_with_seed;
1163 : fd_stake_authorize_t authorize_checked;
1164 : fd_authorize_checked_with_seed_args_t authorize_checked_with_seed;
1165 : fd_lockup_checked_args_t set_lockup_checked;
1166 : ulong move_stake;
1167 : ulong move_lamports;
1168 : };
1169 : typedef union fd_stake_instruction_inner fd_stake_instruction_inner_t;
1170 :
1171 : /* https://github.com/anza-xyz/agave/blob/cdff19c7807b006dd63429114fb1d9573bf74172/sdk/program/src/stake/instruction.rs#L96 */
1172 : struct fd_stake_instruction {
1173 : uint discriminant;
1174 : fd_stake_instruction_inner_t inner;
1175 : };
1176 : typedef struct fd_stake_instruction fd_stake_instruction_t;
1177 : #define FD_STAKE_INSTRUCTION_ALIGN alignof(fd_stake_instruction_t)
1178 :
1179 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L248 */
1180 : /* Encoded Size: Fixed (120 bytes) */
1181 : struct fd_stake_meta {
1182 : ulong rent_exempt_reserve;
1183 : fd_stake_authorized_t authorized;
1184 : fd_stake_lockup_t lockup;
1185 : };
1186 : typedef struct fd_stake_meta fd_stake_meta_t;
1187 : #define FD_STAKE_META_ALIGN alignof(fd_stake_meta_t)
1188 :
1189 : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/stake_flags.rs#L21 */
1190 : /* Encoded Size: Fixed (1 bytes) */
1191 : struct fd_stake_flags {
1192 : uchar bits;
1193 : };
1194 : typedef struct fd_stake_flags fd_stake_flags_t;
1195 : #define FD_STAKE_FLAGS_ALIGN alignof(fd_stake_flags_t)
1196 :
1197 : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L135 */
1198 : /* Encoded Size: Fixed (120 bytes) */
1199 : struct fd_stake_state_v2_initialized {
1200 : fd_stake_meta_t meta;
1201 : };
1202 : typedef struct fd_stake_state_v2_initialized fd_stake_state_v2_initialized_t;
1203 : #define FD_STAKE_STATE_V2_INITIALIZED_ALIGN alignof(fd_stake_state_v2_initialized_t)
1204 :
1205 : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L136 */
1206 : /* Encoded Size: Fixed (193 bytes) */
1207 : struct fd_stake_state_v2_stake {
1208 : fd_stake_meta_t meta;
1209 : fd_stake_t stake;
1210 : fd_stake_flags_t stake_flags;
1211 : };
1212 : typedef struct fd_stake_state_v2_stake fd_stake_state_v2_stake_t;
1213 : #define FD_STAKE_STATE_V2_STAKE_ALIGN alignof(fd_stake_state_v2_stake_t)
1214 :
1215 : union fd_stake_state_v2_inner {
1216 : fd_stake_state_v2_initialized_t initialized;
1217 : fd_stake_state_v2_stake_t stake;
1218 : };
1219 : typedef union fd_stake_state_v2_inner fd_stake_state_v2_inner_t;
1220 :
1221 : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L132 */
1222 : struct fd_stake_state_v2 {
1223 : uint discriminant;
1224 : fd_stake_state_v2_inner_t inner;
1225 : };
1226 : typedef struct fd_stake_state_v2 fd_stake_state_v2_t;
1227 : #define FD_STAKE_STATE_V2_ALIGN alignof(fd_stake_state_v2_t)
1228 :
1229 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/current.rs#L17 */
1230 : /* Encoded Size: Fixed (72 bytes) */
1231 : struct fd_nonce_data {
1232 : fd_pubkey_t authority;
1233 : fd_hash_t durable_nonce;
1234 : fd_fee_calculator_t fee_calculator;
1235 : };
1236 : typedef struct fd_nonce_data fd_nonce_data_t;
1237 : #define FD_NONCE_DATA_ALIGN alignof(fd_nonce_data_t)
1238 :
1239 : union fd_nonce_state_inner {
1240 : fd_nonce_data_t initialized;
1241 : };
1242 : typedef union fd_nonce_state_inner fd_nonce_state_inner_t;
1243 :
1244 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/current.rs#L65 */
1245 : struct fd_nonce_state {
1246 : uint discriminant;
1247 : fd_nonce_state_inner_t inner;
1248 : };
1249 : typedef struct fd_nonce_state fd_nonce_state_t;
1250 : #define FD_NONCE_STATE_ALIGN alignof(fd_nonce_state_t)
1251 :
1252 : union fd_nonce_state_versions_inner {
1253 : fd_nonce_state_t legacy;
1254 : fd_nonce_state_t current;
1255 : };
1256 : typedef union fd_nonce_state_versions_inner fd_nonce_state_versions_inner_t;
1257 :
1258 : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/mod.rs#L9 */
1259 : struct fd_nonce_state_versions {
1260 : uint discriminant;
1261 : fd_nonce_state_versions_inner_t inner;
1262 : };
1263 : typedef struct fd_nonce_state_versions fd_nonce_state_versions_t;
1264 : #define FD_NONCE_STATE_VERSIONS_ALIGN alignof(fd_nonce_state_versions_t)
1265 :
1266 : /* https://github.com/solana-labs/solana/blob/6c520396cd76807f6227a7973f7373b37894251c/sdk/src/compute_budget.rs#L28 */
1267 : /* Encoded Size: Fixed (8 bytes) */
1268 : struct fd_compute_budget_program_instruction_request_units_deprecated {
1269 : uint units;
1270 : uint additional_fee;
1271 : };
1272 : typedef struct fd_compute_budget_program_instruction_request_units_deprecated fd_compute_budget_program_instruction_request_units_deprecated_t;
1273 : #define FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_REQUEST_UNITS_DEPRECATED_ALIGN alignof(fd_compute_budget_program_instruction_request_units_deprecated_t)
1274 :
1275 : union fd_compute_budget_program_instruction_inner {
1276 : fd_compute_budget_program_instruction_request_units_deprecated_t request_units_deprecated;
1277 : uint request_heap_frame;
1278 : uint set_compute_unit_limit;
1279 : ulong set_compute_unit_price;
1280 : uint set_loaded_accounts_data_size_limit;
1281 : };
1282 : typedef union fd_compute_budget_program_instruction_inner fd_compute_budget_program_instruction_inner_t;
1283 :
1284 : /* https://github.com/solana-labs/solana/blob/6c520396cd76807f6227a7973f7373b37894251c/sdk/src/compute_budget.rs#L25 */
1285 : struct fd_compute_budget_program_instruction {
1286 : uint discriminant;
1287 : fd_compute_budget_program_instruction_inner_t inner;
1288 : };
1289 : typedef struct fd_compute_budget_program_instruction fd_compute_budget_program_instruction_t;
1290 : #define FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_ALIGN alignof(fd_compute_budget_program_instruction_t)
1291 :
1292 : /* https://github.com/solana-labs/solana/blob/a03ae63daff987912c48ee286eb8ee7e8a84bf01/programs/config/src/lib.rs#L32 */
1293 : /* Encoded Size: Dynamic */
1294 : struct fd_config_keys {
1295 : ushort keys_len;
1296 : fd_config_keys_pair_t * keys;
1297 : };
1298 : typedef struct fd_config_keys fd_config_keys_t;
1299 : #define FD_CONFIG_KEYS_ALIGN alignof(fd_config_keys_t)
1300 :
1301 : /* Encoded Size: Dynamic */
1302 : struct fd_bpf_loader_program_instruction_write {
1303 : uint offset;
1304 : ulong bytes_len;
1305 : uchar* bytes;
1306 : };
1307 : typedef struct fd_bpf_loader_program_instruction_write fd_bpf_loader_program_instruction_write_t;
1308 : #define FD_BPF_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_bpf_loader_program_instruction_write_t)
1309 :
1310 : union fd_bpf_loader_program_instruction_inner {
1311 : fd_bpf_loader_program_instruction_write_t write;
1312 : };
1313 : typedef union fd_bpf_loader_program_instruction_inner fd_bpf_loader_program_instruction_inner_t;
1314 :
1315 : struct fd_bpf_loader_program_instruction {
1316 : uint discriminant;
1317 : fd_bpf_loader_program_instruction_inner_t inner;
1318 : };
1319 : typedef struct fd_bpf_loader_program_instruction fd_bpf_loader_program_instruction_t;
1320 : #define FD_BPF_LOADER_PROGRAM_INSTRUCTION_ALIGN alignof(fd_bpf_loader_program_instruction_t)
1321 :
1322 : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L21-L27 */
1323 : /* Encoded Size: Dynamic */
1324 : struct fd_loader_v4_program_instruction_write {
1325 : uint offset;
1326 : ulong bytes_len;
1327 : uchar* bytes;
1328 : };
1329 : typedef struct fd_loader_v4_program_instruction_write fd_loader_v4_program_instruction_write_t;
1330 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_loader_v4_program_instruction_write_t)
1331 :
1332 : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L35-L42 */
1333 : /* Encoded Size: Fixed (12 bytes) */
1334 : struct fd_loader_v4_program_instruction_copy {
1335 : uint destination_offset;
1336 : uint source_offset;
1337 : uint length;
1338 : };
1339 : typedef struct fd_loader_v4_program_instruction_copy fd_loader_v4_program_instruction_copy_t;
1340 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_COPY_ALIGN alignof(fd_loader_v4_program_instruction_copy_t)
1341 :
1342 : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L57-L60 */
1343 : /* Encoded Size: Fixed (4 bytes) */
1344 : struct fd_loader_v4_program_instruction_set_program_length {
1345 : uint new_size;
1346 : };
1347 : typedef struct fd_loader_v4_program_instruction_set_program_length fd_loader_v4_program_instruction_set_program_length_t;
1348 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_SET_PROGRAM_LENGTH_ALIGN alignof(fd_loader_v4_program_instruction_set_program_length_t)
1349 :
1350 : union fd_loader_v4_program_instruction_inner {
1351 : fd_loader_v4_program_instruction_write_t write;
1352 : fd_loader_v4_program_instruction_copy_t copy;
1353 : fd_loader_v4_program_instruction_set_program_length_t set_program_length;
1354 : };
1355 : typedef union fd_loader_v4_program_instruction_inner fd_loader_v4_program_instruction_inner_t;
1356 :
1357 : /* https://github.com/anza-xyz/agave/blob/007194391ca8313b2854d523769d0bedf040ef92/sdk/program/src/loader_v4_instruction.rs#L5 */
1358 : struct fd_loader_v4_program_instruction {
1359 : uint discriminant;
1360 : fd_loader_v4_program_instruction_inner_t inner;
1361 : };
1362 : typedef struct fd_loader_v4_program_instruction fd_loader_v4_program_instruction_t;
1363 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_ALIGN alignof(fd_loader_v4_program_instruction_t)
1364 :
1365 : /* Encoded Size: Dynamic */
1366 : struct fd_bpf_upgradeable_loader_program_instruction_write {
1367 : uint offset;
1368 : ulong bytes_len;
1369 : uchar* bytes;
1370 : };
1371 : typedef struct fd_bpf_upgradeable_loader_program_instruction_write fd_bpf_upgradeable_loader_program_instruction_write_t;
1372 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_write_t)
1373 :
1374 : /* Encoded Size: Fixed (8 bytes) */
1375 : struct fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len {
1376 : ulong max_data_len;
1377 : };
1378 : 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;
1379 : #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)
1380 :
1381 : /* Encoded Size: Fixed (4 bytes) */
1382 : struct fd_bpf_upgradeable_loader_program_instruction_extend_program {
1383 : uint additional_bytes;
1384 : };
1385 : typedef struct fd_bpf_upgradeable_loader_program_instruction_extend_program fd_bpf_upgradeable_loader_program_instruction_extend_program_t;
1386 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t)
1387 :
1388 : /* Encoded Size: Fixed (4 bytes) */
1389 : struct fd_bpf_upgradeable_loader_program_instruction_extend_program_checked {
1390 : uint additional_bytes;
1391 : };
1392 : typedef struct fd_bpf_upgradeable_loader_program_instruction_extend_program_checked fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t;
1393 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_CHECKED_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t)
1394 :
1395 : union fd_bpf_upgradeable_loader_program_instruction_inner {
1396 : fd_bpf_upgradeable_loader_program_instruction_write_t write;
1397 : fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t deploy_with_max_data_len;
1398 : fd_bpf_upgradeable_loader_program_instruction_extend_program_t extend_program;
1399 : fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t extend_program_checked;
1400 : };
1401 : typedef union fd_bpf_upgradeable_loader_program_instruction_inner fd_bpf_upgradeable_loader_program_instruction_inner_t;
1402 :
1403 : struct fd_bpf_upgradeable_loader_program_instruction {
1404 : uint discriminant;
1405 : fd_bpf_upgradeable_loader_program_instruction_inner_t inner;
1406 : };
1407 : typedef struct fd_bpf_upgradeable_loader_program_instruction fd_bpf_upgradeable_loader_program_instruction_t;
1408 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_t)
1409 :
1410 : /* Encoded Size: Dynamic */
1411 : struct fd_bpf_upgradeable_loader_state_buffer {
1412 : fd_pubkey_t authority_address;
1413 : uchar has_authority_address;
1414 : };
1415 : typedef struct fd_bpf_upgradeable_loader_state_buffer fd_bpf_upgradeable_loader_state_buffer_t;
1416 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_BUFFER_ALIGN alignof(fd_bpf_upgradeable_loader_state_buffer_t)
1417 :
1418 : /* Encoded Size: Fixed (32 bytes) */
1419 : struct fd_bpf_upgradeable_loader_state_program {
1420 : fd_pubkey_t programdata_address;
1421 : };
1422 : typedef struct fd_bpf_upgradeable_loader_state_program fd_bpf_upgradeable_loader_state_program_t;
1423 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_ALIGN alignof(fd_bpf_upgradeable_loader_state_program_t)
1424 :
1425 : /* Encoded Size: Dynamic */
1426 : struct fd_bpf_upgradeable_loader_state_program_data {
1427 : ulong slot;
1428 : fd_pubkey_t upgrade_authority_address;
1429 : uchar has_upgrade_authority_address;
1430 : };
1431 : typedef struct fd_bpf_upgradeable_loader_state_program_data fd_bpf_upgradeable_loader_state_program_data_t;
1432 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_DATA_ALIGN alignof(fd_bpf_upgradeable_loader_state_program_data_t)
1433 :
1434 : union fd_bpf_upgradeable_loader_state_inner {
1435 : fd_bpf_upgradeable_loader_state_buffer_t buffer;
1436 : fd_bpf_upgradeable_loader_state_program_t program;
1437 : fd_bpf_upgradeable_loader_state_program_data_t program_data;
1438 : };
1439 : typedef union fd_bpf_upgradeable_loader_state_inner fd_bpf_upgradeable_loader_state_inner_t;
1440 :
1441 : struct fd_bpf_upgradeable_loader_state {
1442 : uint discriminant;
1443 : fd_bpf_upgradeable_loader_state_inner_t inner;
1444 : };
1445 : typedef struct fd_bpf_upgradeable_loader_state fd_bpf_upgradeable_loader_state_t;
1446 0 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_ALIGN alignof(fd_bpf_upgradeable_loader_state_t)
1447 :
1448 : /* https://github.com/anza-xyz/agave/blob/v2.1.4/sdk/program/src/loader_v4.rs#L33-L43 */
1449 : /* Encoded Size: Fixed (48 bytes) */
1450 : struct fd_loader_v4_state {
1451 : ulong slot;
1452 : fd_pubkey_t authority_address_or_next_version;
1453 : ulong status;
1454 : };
1455 : typedef struct fd_loader_v4_state fd_loader_v4_state_t;
1456 : #define FD_LOADER_V4_STATE_ALIGN alignof(fd_loader_v4_state_t)
1457 :
1458 : /* https://github.com/firedancer-io/solana/blob/f4b7c54f9e021b40cfc7cbd32dc12b19dedbe791/ledger/src/blockstore_meta.rs#L178 */
1459 : /* Encoded Size: Fixed (33 bytes) */
1460 : struct fd_frozen_hash_status {
1461 : fd_hash_t frozen_hash;
1462 : uchar is_duplicate_confirmed;
1463 : };
1464 : typedef struct fd_frozen_hash_status fd_frozen_hash_status_t;
1465 : #define FD_FROZEN_HASH_STATUS_ALIGN alignof(fd_frozen_hash_status_t)
1466 :
1467 : union fd_frozen_hash_versioned_inner {
1468 : fd_frozen_hash_status_t current;
1469 : };
1470 : typedef union fd_frozen_hash_versioned_inner fd_frozen_hash_versioned_inner_t;
1471 :
1472 : /* https://github.com/firedancer-io/solana/blob/f4b7c54f9e021b40cfc7cbd32dc12b19dedbe791/ledger/src/blockstore_meta.rs#L157 */
1473 : struct fd_frozen_hash_versioned {
1474 : uint discriminant;
1475 : fd_frozen_hash_versioned_inner_t inner;
1476 : };
1477 : typedef struct fd_frozen_hash_versioned fd_frozen_hash_versioned_t;
1478 : #define FD_FROZEN_HASH_VERSIONED_ALIGN alignof(fd_frozen_hash_versioned_t)
1479 :
1480 : /* Encoded Size: Dynamic */
1481 : struct fd_lookup_table_meta {
1482 : ulong deactivation_slot;
1483 : ulong last_extended_slot;
1484 : uchar last_extended_slot_start_index;
1485 : fd_pubkey_t authority;
1486 : uchar has_authority;
1487 : ushort _padding;
1488 : };
1489 : typedef struct fd_lookup_table_meta fd_lookup_table_meta_t;
1490 : #define FD_LOOKUP_TABLE_META_ALIGN alignof(fd_lookup_table_meta_t)
1491 :
1492 : /* Encoded Size: Dynamic */
1493 : struct fd_address_lookup_table {
1494 : fd_lookup_table_meta_t meta;
1495 : };
1496 : typedef struct fd_address_lookup_table fd_address_lookup_table_t;
1497 : #define FD_ADDRESS_LOOKUP_TABLE_ALIGN alignof(fd_address_lookup_table_t)
1498 :
1499 : union fd_address_lookup_table_state_inner {
1500 : fd_address_lookup_table_t lookup_table;
1501 : };
1502 : typedef union fd_address_lookup_table_state_inner fd_address_lookup_table_state_inner_t;
1503 :
1504 : struct fd_address_lookup_table_state {
1505 : uint discriminant;
1506 : fd_address_lookup_table_state_inner_t inner;
1507 : };
1508 : typedef struct fd_address_lookup_table_state fd_address_lookup_table_state_t;
1509 : #define FD_ADDRESS_LOOKUP_TABLE_STATE_ALIGN alignof(fd_address_lookup_table_state_t)
1510 :
1511 : /* Encoded Size: Fixed (9 bytes) */
1512 : struct fd_addrlut_create {
1513 : ulong recent_slot;
1514 : uchar bump_seed;
1515 : };
1516 : typedef struct fd_addrlut_create fd_addrlut_create_t;
1517 : #define FD_ADDRLUT_CREATE_ALIGN alignof(fd_addrlut_create_t)
1518 :
1519 : /* Encoded Size: Dynamic */
1520 : struct fd_addrlut_extend {
1521 : ulong new_addrs_len;
1522 : fd_pubkey_t * new_addrs;
1523 : };
1524 : typedef struct fd_addrlut_extend fd_addrlut_extend_t;
1525 : #define FD_ADDRLUT_EXTEND_ALIGN alignof(fd_addrlut_extend_t)
1526 :
1527 : union fd_addrlut_instruction_inner {
1528 : fd_addrlut_create_t create_lut;
1529 : fd_addrlut_extend_t extend_lut;
1530 : };
1531 : typedef union fd_addrlut_instruction_inner fd_addrlut_instruction_inner_t;
1532 :
1533 : /* https://github.com/solana-labs/solana/blob/fb80288f885a62bcd923f4c9579fd0edeafaff9b/sdk/program/src/address_lookup_table/instruction.rs#L13 */
1534 : struct fd_addrlut_instruction {
1535 : uint discriminant;
1536 : fd_addrlut_instruction_inner_t inner;
1537 : };
1538 : typedef struct fd_addrlut_instruction fd_addrlut_instruction_t;
1539 : #define FD_ADDRLUT_INSTRUCTION_ALIGN alignof(fd_addrlut_instruction_t)
1540 :
1541 :
1542 : FD_PROTOTYPES_BEGIN
1543 :
1544 : void fd_feature_new( fd_feature_t * self );
1545 : int fd_feature_encode( fd_feature_t const * self, fd_bincode_encode_ctx_t * ctx );
1546 : ulong fd_feature_size( fd_feature_t const * self );
1547 0 : static inline ulong fd_feature_align( void ) { return FD_FEATURE_ALIGN; }
1548 : int fd_feature_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1549 : void * fd_feature_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1550 :
1551 0 : static inline void fd_fee_calculator_new( fd_fee_calculator_t * self ) { fd_memset( self, 0, sizeof(fd_fee_calculator_t) ); }
1552 : int fd_fee_calculator_encode( fd_fee_calculator_t const * self, fd_bincode_encode_ctx_t * ctx );
1553 0 : static inline ulong fd_fee_calculator_size( fd_fee_calculator_t const * self ) { (void)self; return 8UL; }
1554 0 : static inline ulong fd_fee_calculator_align( void ) { return FD_FEE_CALCULATOR_ALIGN; }
1555 0 : static inline int fd_fee_calculator_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1556 0 : *total_sz += sizeof(fd_fee_calculator_t);
1557 0 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1558 0 : return 0;
1559 0 : }
1560 : void * fd_fee_calculator_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1561 :
1562 12 : static inline void fd_fee_rate_governor_new( fd_fee_rate_governor_t * self ) { fd_memset( self, 0, sizeof(fd_fee_rate_governor_t) ); }
1563 : int fd_fee_rate_governor_encode( fd_fee_rate_governor_t const * self, fd_bincode_encode_ctx_t * ctx );
1564 0 : static inline ulong fd_fee_rate_governor_size( fd_fee_rate_governor_t const * self ) { (void)self; return 33UL; }
1565 0 : static inline ulong fd_fee_rate_governor_align( void ) { return FD_FEE_RATE_GOVERNOR_ALIGN; }
1566 0 : static inline int fd_fee_rate_governor_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1567 0 : *total_sz += sizeof(fd_fee_rate_governor_t);
1568 0 : if( (ulong)ctx->data + 33UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1569 0 : return 0;
1570 0 : }
1571 : void * fd_fee_rate_governor_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1572 :
1573 0 : static inline void fd_slot_pair_new( fd_slot_pair_t * self ) { fd_memset( self, 0, sizeof(fd_slot_pair_t) ); }
1574 : int fd_slot_pair_encode( fd_slot_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
1575 0 : static inline ulong fd_slot_pair_size( fd_slot_pair_t const * self ) { (void)self; return 16UL; }
1576 0 : static inline ulong fd_slot_pair_align( void ) { return FD_SLOT_PAIR_ALIGN; }
1577 0 : static inline int fd_slot_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1578 0 : *total_sz += sizeof(fd_slot_pair_t);
1579 0 : if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1580 0 : return 0;
1581 0 : }
1582 : void * fd_slot_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1583 :
1584 : void fd_hard_forks_new( fd_hard_forks_t * self );
1585 : int fd_hard_forks_encode( fd_hard_forks_t const * self, fd_bincode_encode_ctx_t * ctx );
1586 : ulong fd_hard_forks_size( fd_hard_forks_t const * self );
1587 0 : static inline ulong fd_hard_forks_align( void ) { return FD_HARD_FORKS_ALIGN; }
1588 : int fd_hard_forks_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1589 : void * fd_hard_forks_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1590 : void * fd_hard_forks_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
1591 : int fd_hard_forks_encode_global( fd_hard_forks_global_t const * self, fd_bincode_encode_ctx_t * ctx );
1592 : ulong fd_hard_forks_size_global( fd_hard_forks_global_t const * self );
1593 :
1594 12 : static inline void fd_inflation_new( fd_inflation_t * self ) { fd_memset( self, 0, sizeof(fd_inflation_t) ); }
1595 : int fd_inflation_encode( fd_inflation_t const * self, fd_bincode_encode_ctx_t * ctx );
1596 0 : static inline ulong fd_inflation_size( fd_inflation_t const * self ) { (void)self; return 48UL; }
1597 0 : static inline ulong fd_inflation_align( void ) { return FD_INFLATION_ALIGN; }
1598 0 : static inline int fd_inflation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1599 0 : *total_sz += sizeof(fd_inflation_t);
1600 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1601 0 : return 0;
1602 0 : }
1603 : void * fd_inflation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1604 :
1605 51 : static inline void fd_rent_new( fd_rent_t * self ) { fd_memset( self, 0, sizeof(fd_rent_t) ); }
1606 : int fd_rent_encode( fd_rent_t const * self, fd_bincode_encode_ctx_t * ctx );
1607 0 : static inline ulong fd_rent_size( fd_rent_t const * self ) { (void)self; return 17UL; }
1608 3 : static inline ulong fd_rent_align( void ) { return FD_RENT_ALIGN; }
1609 42 : static inline int fd_rent_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1610 42 : *total_sz += sizeof(fd_rent_t);
1611 42 : if( (ulong)ctx->data + 17UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1612 42 : return 0;
1613 42 : }
1614 : void * fd_rent_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1615 :
1616 : void fd_epoch_schedule_new( fd_epoch_schedule_t * self );
1617 : int fd_epoch_schedule_encode( fd_epoch_schedule_t const * self, fd_bincode_encode_ctx_t * ctx );
1618 9 : static inline ulong fd_epoch_schedule_size( fd_epoch_schedule_t const * self ) { (void)self; return 33UL; }
1619 3 : static inline ulong fd_epoch_schedule_align( void ) { return FD_EPOCH_SCHEDULE_ALIGN; }
1620 : int fd_epoch_schedule_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1621 : void * fd_epoch_schedule_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1622 :
1623 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) ); }
1624 : int fd_stake_history_entry_encode( fd_stake_history_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
1625 0 : static inline ulong fd_stake_history_entry_size( fd_stake_history_entry_t const * self ) { (void)self; return 24UL; }
1626 0 : static inline ulong fd_stake_history_entry_align( void ) { return FD_STAKE_HISTORY_ENTRY_ALIGN; }
1627 0 : static inline int fd_stake_history_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1628 0 : *total_sz += sizeof(fd_stake_history_entry_t);
1629 0 : if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1630 0 : return 0;
1631 0 : }
1632 : void * fd_stake_history_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1633 :
1634 44544 : 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) ); }
1635 : int fd_epoch_stake_history_entry_pair_encode( fd_epoch_stake_history_entry_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
1636 0 : static inline ulong fd_epoch_stake_history_entry_pair_size( fd_epoch_stake_history_entry_pair_t const * self ) { (void)self; return 32UL; }
1637 0 : static inline ulong fd_epoch_stake_history_entry_pair_align( void ) { return FD_EPOCH_STAKE_HISTORY_ENTRY_PAIR_ALIGN; }
1638 0 : static inline int fd_epoch_stake_history_entry_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1639 0 : *total_sz += sizeof(fd_epoch_stake_history_entry_pair_t);
1640 0 : if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1641 0 : return 0;
1642 0 : }
1643 : void * fd_epoch_stake_history_entry_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1644 :
1645 : void fd_stake_history_new( fd_stake_history_t * self );
1646 : int fd_stake_history_encode( fd_stake_history_t const * self, fd_bincode_encode_ctx_t * ctx );
1647 0 : static inline ulong fd_stake_history_size( fd_stake_history_t const * self ) { (void)self; return 16392UL; }
1648 3 : static inline ulong fd_stake_history_align( void ) { return FD_STAKE_HISTORY_ALIGN; }
1649 : int fd_stake_history_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1650 : void * fd_stake_history_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1651 :
1652 : void fd_solana_account_new( fd_solana_account_t * self );
1653 : int fd_solana_account_encode( fd_solana_account_t const * self, fd_bincode_encode_ctx_t * ctx );
1654 : ulong fd_solana_account_size( fd_solana_account_t const * self );
1655 0 : static inline ulong fd_solana_account_align( void ) { return FD_SOLANA_ACCOUNT_ALIGN; }
1656 : int fd_solana_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1657 : void * fd_solana_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1658 : void * fd_solana_account_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
1659 : int fd_solana_account_encode_global( fd_solana_account_global_t const * self, fd_bincode_encode_ctx_t * ctx );
1660 : ulong fd_solana_account_size_global( fd_solana_account_global_t const * self );
1661 :
1662 0 : static inline void fd_delegation_new( fd_delegation_t * self ) { fd_memset( self, 0, sizeof(fd_delegation_t) ); }
1663 : int fd_delegation_encode( fd_delegation_t const * self, fd_bincode_encode_ctx_t * ctx );
1664 0 : static inline ulong fd_delegation_size( fd_delegation_t const * self ) { (void)self; return 64UL; }
1665 0 : static inline ulong fd_delegation_align( void ) { return FD_DELEGATION_ALIGN; }
1666 0 : static inline int fd_delegation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1667 0 : *total_sz += sizeof(fd_delegation_t);
1668 0 : if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1669 0 : return 0;
1670 0 : }
1671 : void * fd_delegation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1672 :
1673 0 : static inline void fd_stake_new( fd_stake_t * self ) { fd_memset( self, 0, sizeof(fd_stake_t) ); }
1674 : int fd_stake_encode( fd_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
1675 0 : static inline ulong fd_stake_size( fd_stake_t const * self ) { (void)self; return 72UL; }
1676 0 : static inline ulong fd_stake_align( void ) { return FD_STAKE_ALIGN; }
1677 0 : static inline int fd_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1678 0 : *total_sz += sizeof(fd_stake_t);
1679 0 : if( (ulong)ctx->data + 72UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1680 0 : return 0;
1681 0 : }
1682 : void * fd_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1683 :
1684 12 : static inline void fd_rust_duration_new( fd_rust_duration_t * self ) { fd_memset( self, 0, sizeof(fd_rust_duration_t) ); }
1685 : int fd_rust_duration_encode( fd_rust_duration_t const * self, fd_bincode_encode_ctx_t * ctx );
1686 0 : static inline ulong fd_rust_duration_size( fd_rust_duration_t const * self ) { (void)self; return 12UL; }
1687 0 : static inline ulong fd_rust_duration_align( void ) { return FD_RUST_DURATION_ALIGN; }
1688 0 : static inline int fd_rust_duration_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1689 0 : *total_sz += sizeof(fd_rust_duration_t);
1690 0 : if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1691 0 : return 0;
1692 0 : }
1693 : void * fd_rust_duration_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1694 :
1695 : void fd_poh_config_new( fd_poh_config_t * self );
1696 : int fd_poh_config_encode( fd_poh_config_t const * self, fd_bincode_encode_ctx_t * ctx );
1697 : ulong fd_poh_config_size( fd_poh_config_t const * self );
1698 0 : static inline ulong fd_poh_config_align( void ) { return FD_POH_CONFIG_ALIGN; }
1699 : int fd_poh_config_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1700 : void * fd_poh_config_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1701 : void * fd_poh_config_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
1702 : int fd_poh_config_encode_global( fd_poh_config_global_t const * self, fd_bincode_encode_ctx_t * ctx );
1703 : ulong fd_poh_config_size_global( fd_poh_config_global_t const * self );
1704 :
1705 : void fd_string_pubkey_pair_new( fd_string_pubkey_pair_t * self );
1706 : int fd_string_pubkey_pair_encode( fd_string_pubkey_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
1707 : ulong fd_string_pubkey_pair_size( fd_string_pubkey_pair_t const * self );
1708 0 : static inline ulong fd_string_pubkey_pair_align( void ) { return FD_STRING_PUBKEY_PAIR_ALIGN; }
1709 : int fd_string_pubkey_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1710 : void * fd_string_pubkey_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1711 : void * fd_string_pubkey_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
1712 : int fd_string_pubkey_pair_encode_global( fd_string_pubkey_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
1713 : ulong fd_string_pubkey_pair_size_global( fd_string_pubkey_pair_global_t const * self );
1714 :
1715 : void fd_pubkey_account_pair_new( fd_pubkey_account_pair_t * self );
1716 : int fd_pubkey_account_pair_encode( fd_pubkey_account_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
1717 : ulong fd_pubkey_account_pair_size( fd_pubkey_account_pair_t const * self );
1718 0 : static inline ulong fd_pubkey_account_pair_align( void ) { return FD_PUBKEY_ACCOUNT_PAIR_ALIGN; }
1719 : int fd_pubkey_account_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1720 : void * fd_pubkey_account_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1721 : void * fd_pubkey_account_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
1722 : int fd_pubkey_account_pair_encode_global( fd_pubkey_account_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
1723 : ulong fd_pubkey_account_pair_size_global( fd_pubkey_account_pair_global_t const * self );
1724 :
1725 : void fd_genesis_solana_new( fd_genesis_solana_t * self );
1726 : int fd_genesis_solana_encode( fd_genesis_solana_t const * self, fd_bincode_encode_ctx_t * ctx );
1727 : ulong fd_genesis_solana_size( fd_genesis_solana_t const * self );
1728 0 : static inline ulong fd_genesis_solana_align( void ) { return FD_GENESIS_SOLANA_ALIGN; }
1729 : int fd_genesis_solana_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1730 : void * fd_genesis_solana_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1731 : void * fd_genesis_solana_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
1732 : int fd_genesis_solana_encode_global( fd_genesis_solana_global_t const * self, fd_bincode_encode_ctx_t * ctx );
1733 : ulong fd_genesis_solana_size_global( fd_genesis_solana_global_t const * self );
1734 :
1735 57 : static inline void fd_sol_sysvar_clock_new( fd_sol_sysvar_clock_t * self ) { fd_memset( self, 0, sizeof(fd_sol_sysvar_clock_t) ); }
1736 : int fd_sol_sysvar_clock_encode( fd_sol_sysvar_clock_t const * self, fd_bincode_encode_ctx_t * ctx );
1737 0 : static inline ulong fd_sol_sysvar_clock_size( fd_sol_sysvar_clock_t const * self ) { (void)self; return 40UL; }
1738 3 : static inline ulong fd_sol_sysvar_clock_align( void ) { return FD_SOL_SYSVAR_CLOCK_ALIGN; }
1739 63 : static inline int fd_sol_sysvar_clock_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1740 63 : *total_sz += sizeof(fd_sol_sysvar_clock_t);
1741 63 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1742 60 : return 0;
1743 63 : }
1744 : void * fd_sol_sysvar_clock_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1745 :
1746 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) ); }
1747 : int fd_sol_sysvar_last_restart_slot_encode( fd_sol_sysvar_last_restart_slot_t const * self, fd_bincode_encode_ctx_t * ctx );
1748 0 : static inline ulong fd_sol_sysvar_last_restart_slot_size( fd_sol_sysvar_last_restart_slot_t const * self ) { (void)self; return 8UL; }
1749 3 : static inline ulong fd_sol_sysvar_last_restart_slot_align( void ) { return FD_SOL_SYSVAR_LAST_RESTART_SLOT_ALIGN; }
1750 3 : static inline int fd_sol_sysvar_last_restart_slot_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1751 3 : *total_sz += sizeof(fd_sol_sysvar_last_restart_slot_t);
1752 3 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1753 3 : return 0;
1754 3 : }
1755 : void * fd_sol_sysvar_last_restart_slot_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1756 :
1757 0 : static inline void fd_vote_lockout_new( fd_vote_lockout_t * self ) { fd_memset( self, 0, sizeof(fd_vote_lockout_t) ); }
1758 : int fd_vote_lockout_encode( fd_vote_lockout_t const * self, fd_bincode_encode_ctx_t * ctx );
1759 0 : static inline ulong fd_vote_lockout_size( fd_vote_lockout_t const * self ) { (void)self; return 12UL; }
1760 0 : static inline ulong fd_vote_lockout_align( void ) { return FD_VOTE_LOCKOUT_ALIGN; }
1761 0 : static inline int fd_vote_lockout_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1762 0 : *total_sz += sizeof(fd_vote_lockout_t);
1763 0 : if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1764 0 : return 0;
1765 0 : }
1766 : void * fd_vote_lockout_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1767 :
1768 : void fd_lockout_offset_new( fd_lockout_offset_t * self );
1769 : int fd_lockout_offset_encode( fd_lockout_offset_t const * self, fd_bincode_encode_ctx_t * ctx );
1770 : ulong fd_lockout_offset_size( fd_lockout_offset_t const * self );
1771 0 : static inline ulong fd_lockout_offset_align( void ) { return FD_LOCKOUT_OFFSET_ALIGN; }
1772 : int fd_lockout_offset_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1773 : void * fd_lockout_offset_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1774 :
1775 0 : static inline void fd_vote_authorized_voter_new( fd_vote_authorized_voter_t * self ) { fd_memset( self, 0, sizeof(fd_vote_authorized_voter_t) ); }
1776 : int fd_vote_authorized_voter_encode( fd_vote_authorized_voter_t const * self, fd_bincode_encode_ctx_t * ctx );
1777 0 : static inline ulong fd_vote_authorized_voter_size( fd_vote_authorized_voter_t const * self ) { (void)self; return 40UL; }
1778 0 : static inline ulong fd_vote_authorized_voter_align( void ) { return FD_VOTE_AUTHORIZED_VOTER_ALIGN; }
1779 0 : static inline int fd_vote_authorized_voter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1780 0 : *total_sz += sizeof(fd_vote_authorized_voter_t);
1781 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1782 0 : return 0;
1783 0 : }
1784 : void * fd_vote_authorized_voter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1785 :
1786 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) ); }
1787 : int fd_vote_prior_voter_encode( fd_vote_prior_voter_t const * self, fd_bincode_encode_ctx_t * ctx );
1788 0 : static inline ulong fd_vote_prior_voter_size( fd_vote_prior_voter_t const * self ) { (void)self; return 48UL; }
1789 0 : static inline ulong fd_vote_prior_voter_align( void ) { return FD_VOTE_PRIOR_VOTER_ALIGN; }
1790 0 : static inline int fd_vote_prior_voter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1791 0 : *total_sz += sizeof(fd_vote_prior_voter_t);
1792 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1793 0 : return 0;
1794 0 : }
1795 : void * fd_vote_prior_voter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1796 :
1797 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) ); }
1798 : 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 );
1799 0 : static inline ulong fd_vote_prior_voter_0_23_5_size( fd_vote_prior_voter_0_23_5_t const * self ) { (void)self; return 56UL; }
1800 0 : static inline ulong fd_vote_prior_voter_0_23_5_align( void ) { return FD_VOTE_PRIOR_VOTER_0_23_5_ALIGN; }
1801 0 : static inline int fd_vote_prior_voter_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1802 0 : *total_sz += sizeof(fd_vote_prior_voter_0_23_5_t);
1803 0 : if( (ulong)ctx->data + 56UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1804 0 : return 0;
1805 0 : }
1806 : void * fd_vote_prior_voter_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1807 :
1808 0 : static inline void fd_vote_epoch_credits_new( fd_vote_epoch_credits_t * self ) { fd_memset( self, 0, sizeof(fd_vote_epoch_credits_t) ); }
1809 : int fd_vote_epoch_credits_encode( fd_vote_epoch_credits_t const * self, fd_bincode_encode_ctx_t * ctx );
1810 0 : static inline ulong fd_vote_epoch_credits_size( fd_vote_epoch_credits_t const * self ) { (void)self; return 24UL; }
1811 0 : static inline ulong fd_vote_epoch_credits_align( void ) { return FD_VOTE_EPOCH_CREDITS_ALIGN; }
1812 0 : static inline int fd_vote_epoch_credits_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1813 0 : *total_sz += sizeof(fd_vote_epoch_credits_t);
1814 0 : if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1815 0 : return 0;
1816 0 : }
1817 : void * fd_vote_epoch_credits_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1818 :
1819 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) ); }
1820 : int fd_vote_block_timestamp_encode( fd_vote_block_timestamp_t const * self, fd_bincode_encode_ctx_t * ctx );
1821 0 : static inline ulong fd_vote_block_timestamp_size( fd_vote_block_timestamp_t const * self ) { (void)self; return 16UL; }
1822 0 : static inline ulong fd_vote_block_timestamp_align( void ) { return FD_VOTE_BLOCK_TIMESTAMP_ALIGN; }
1823 0 : static inline int fd_vote_block_timestamp_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1824 0 : *total_sz += sizeof(fd_vote_block_timestamp_t);
1825 0 : if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1826 0 : return 0;
1827 0 : }
1828 : void * fd_vote_block_timestamp_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1829 :
1830 : void fd_vote_prior_voters_new( fd_vote_prior_voters_t * self );
1831 : int fd_vote_prior_voters_encode( fd_vote_prior_voters_t const * self, fd_bincode_encode_ctx_t * ctx );
1832 0 : static inline ulong fd_vote_prior_voters_size( fd_vote_prior_voters_t const * self ) { (void)self; return 1545UL; }
1833 0 : static inline ulong fd_vote_prior_voters_align( void ) { return FD_VOTE_PRIOR_VOTERS_ALIGN; }
1834 : int fd_vote_prior_voters_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1835 : void * fd_vote_prior_voters_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1836 :
1837 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) ); }
1838 : 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 );
1839 0 : static inline ulong fd_vote_prior_voters_0_23_5_size( fd_vote_prior_voters_0_23_5_t const * self ) { (void)self; return 1800UL; }
1840 0 : static inline ulong fd_vote_prior_voters_0_23_5_align( void ) { return FD_VOTE_PRIOR_VOTERS_0_23_5_ALIGN; }
1841 0 : static inline int fd_vote_prior_voters_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1842 0 : *total_sz += sizeof(fd_vote_prior_voters_0_23_5_t);
1843 0 : if( (ulong)ctx->data + 1800UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1844 0 : return 0;
1845 0 : }
1846 : void * fd_vote_prior_voters_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1847 :
1848 0 : static inline void fd_landed_vote_new( fd_landed_vote_t * self ) { fd_memset( self, 0, sizeof(fd_landed_vote_t) ); }
1849 : int fd_landed_vote_encode( fd_landed_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
1850 0 : static inline ulong fd_landed_vote_size( fd_landed_vote_t const * self ) { (void)self; return 13UL; }
1851 0 : static inline ulong fd_landed_vote_align( void ) { return FD_LANDED_VOTE_ALIGN; }
1852 0 : static inline int fd_landed_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1853 0 : *total_sz += sizeof(fd_landed_vote_t);
1854 0 : if( (ulong)ctx->data + 13UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1855 0 : return 0;
1856 0 : }
1857 : void * fd_landed_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1858 :
1859 0 : static inline void fd_bls_pubkey_compressed_new( fd_bls_pubkey_compressed_t * self ) { fd_memset( self, 0, sizeof(fd_bls_pubkey_compressed_t) ); }
1860 : int fd_bls_pubkey_compressed_encode( fd_bls_pubkey_compressed_t const * self, fd_bincode_encode_ctx_t * ctx );
1861 0 : static inline ulong fd_bls_pubkey_compressed_size( fd_bls_pubkey_compressed_t const * self ) { (void)self; return 48UL; }
1862 0 : static inline ulong fd_bls_pubkey_compressed_align( void ) { return FD_BLS_PUBKEY_COMPRESSED_ALIGN; }
1863 0 : static inline int fd_bls_pubkey_compressed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1864 0 : *total_sz += sizeof(fd_bls_pubkey_compressed_t);
1865 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1866 0 : return 0;
1867 0 : }
1868 : void * fd_bls_pubkey_compressed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1869 :
1870 : void fd_vote_state_0_23_5_new( fd_vote_state_0_23_5_t * self );
1871 : int fd_vote_state_0_23_5_encode( fd_vote_state_0_23_5_t const * self, fd_bincode_encode_ctx_t * ctx );
1872 : ulong fd_vote_state_0_23_5_size( fd_vote_state_0_23_5_t const * self );
1873 0 : static inline ulong fd_vote_state_0_23_5_align( void ) { return FD_VOTE_STATE_0_23_5_ALIGN; }
1874 : int fd_vote_state_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1875 : void * fd_vote_state_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1876 :
1877 : void fd_vote_authorized_voters_new( fd_vote_authorized_voters_t * self );
1878 : int fd_vote_authorized_voters_encode( fd_vote_authorized_voters_t const * self, fd_bincode_encode_ctx_t * ctx );
1879 : ulong fd_vote_authorized_voters_size( fd_vote_authorized_voters_t const * self );
1880 0 : static inline ulong fd_vote_authorized_voters_align( void ) { return FD_VOTE_AUTHORIZED_VOTERS_ALIGN; }
1881 : int fd_vote_authorized_voters_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1882 : void * fd_vote_authorized_voters_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1883 :
1884 : void fd_vote_state_1_14_11_new( fd_vote_state_1_14_11_t * self );
1885 : int fd_vote_state_1_14_11_encode( fd_vote_state_1_14_11_t const * self, fd_bincode_encode_ctx_t * ctx );
1886 : ulong fd_vote_state_1_14_11_size( fd_vote_state_1_14_11_t const * self );
1887 0 : static inline ulong fd_vote_state_1_14_11_align( void ) { return FD_VOTE_STATE_1_14_11_ALIGN; }
1888 : int fd_vote_state_1_14_11_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1889 : void * fd_vote_state_1_14_11_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1890 :
1891 : void fd_vote_state_v3_new( fd_vote_state_v3_t * self );
1892 : int fd_vote_state_v3_encode( fd_vote_state_v3_t const * self, fd_bincode_encode_ctx_t * ctx );
1893 : ulong fd_vote_state_v3_size( fd_vote_state_v3_t const * self );
1894 0 : static inline ulong fd_vote_state_v3_align( void ) { return FD_VOTE_STATE_V3_ALIGN; }
1895 : int fd_vote_state_v3_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1896 : void * fd_vote_state_v3_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1897 :
1898 : void fd_vote_state_v4_new( fd_vote_state_v4_t * self );
1899 : int fd_vote_state_v4_encode( fd_vote_state_v4_t const * self, fd_bincode_encode_ctx_t * ctx );
1900 : ulong fd_vote_state_v4_size( fd_vote_state_v4_t const * self );
1901 0 : static inline ulong fd_vote_state_v4_align( void ) { return FD_VOTE_STATE_V4_ALIGN; }
1902 : int fd_vote_state_v4_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1903 : void * fd_vote_state_v4_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1904 :
1905 : void fd_vote_state_versioned_new_disc( fd_vote_state_versioned_t * self, uint discriminant );
1906 : void fd_vote_state_versioned_new( fd_vote_state_versioned_t * self );
1907 : int fd_vote_state_versioned_encode( fd_vote_state_versioned_t const * self, fd_bincode_encode_ctx_t * ctx );
1908 : ulong fd_vote_state_versioned_size( fd_vote_state_versioned_t const * self );
1909 0 : static inline ulong fd_vote_state_versioned_align( void ) { return FD_VOTE_STATE_VERSIONED_ALIGN; }
1910 : int fd_vote_state_versioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1911 : void * fd_vote_state_versioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1912 :
1913 : FD_FN_PURE uchar fd_vote_state_versioned_is_v0_23_5( fd_vote_state_versioned_t const * self );
1914 : FD_FN_PURE uchar fd_vote_state_versioned_is_v1_14_11( fd_vote_state_versioned_t const * self );
1915 : FD_FN_PURE uchar fd_vote_state_versioned_is_v3( fd_vote_state_versioned_t const * self );
1916 : FD_FN_PURE uchar fd_vote_state_versioned_is_v4( fd_vote_state_versioned_t const * self );
1917 : enum {
1918 : fd_vote_state_versioned_enum_v0_23_5 = 0,
1919 : fd_vote_state_versioned_enum_v1_14_11 = 1,
1920 : fd_vote_state_versioned_enum_v3 = 2,
1921 : fd_vote_state_versioned_enum_v4 = 3,
1922 : };
1923 : void fd_vote_state_update_new( fd_vote_state_update_t * self );
1924 : int fd_vote_state_update_encode( fd_vote_state_update_t const * self, fd_bincode_encode_ctx_t * ctx );
1925 : ulong fd_vote_state_update_size( fd_vote_state_update_t const * self );
1926 0 : static inline ulong fd_vote_state_update_align( void ) { return FD_VOTE_STATE_UPDATE_ALIGN; }
1927 : int fd_vote_state_update_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1928 : void * fd_vote_state_update_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1929 :
1930 : void fd_compact_vote_state_update_new( fd_compact_vote_state_update_t * self );
1931 : int fd_compact_vote_state_update_encode( fd_compact_vote_state_update_t const * self, fd_bincode_encode_ctx_t * ctx );
1932 : ulong fd_compact_vote_state_update_size( fd_compact_vote_state_update_t const * self );
1933 0 : static inline ulong fd_compact_vote_state_update_align( void ) { return FD_COMPACT_VOTE_STATE_UPDATE_ALIGN; }
1934 : int fd_compact_vote_state_update_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1935 : void * fd_compact_vote_state_update_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1936 :
1937 : void fd_compact_vote_state_update_switch_new( fd_compact_vote_state_update_switch_t * self );
1938 : int fd_compact_vote_state_update_switch_encode( fd_compact_vote_state_update_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
1939 : ulong fd_compact_vote_state_update_switch_size( fd_compact_vote_state_update_switch_t const * self );
1940 0 : static inline ulong fd_compact_vote_state_update_switch_align( void ) { return FD_COMPACT_VOTE_STATE_UPDATE_SWITCH_ALIGN; }
1941 : int fd_compact_vote_state_update_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1942 : void * fd_compact_vote_state_update_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1943 :
1944 : void fd_compact_tower_sync_new( fd_compact_tower_sync_t * self );
1945 : int fd_compact_tower_sync_encode( fd_compact_tower_sync_t const * self, fd_bincode_encode_ctx_t * ctx );
1946 : ulong fd_compact_tower_sync_size( fd_compact_tower_sync_t const * self );
1947 0 : static inline ulong fd_compact_tower_sync_align( void ) { return FD_COMPACT_TOWER_SYNC_ALIGN; }
1948 : int fd_compact_tower_sync_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1949 : void * fd_compact_tower_sync_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1950 :
1951 : void fd_tower_sync_new( fd_tower_sync_t * self );
1952 : int fd_tower_sync_encode( fd_tower_sync_t const * self, fd_bincode_encode_ctx_t * ctx );
1953 : ulong fd_tower_sync_size( fd_tower_sync_t const * self );
1954 0 : static inline ulong fd_tower_sync_align( void ) { return FD_TOWER_SYNC_ALIGN; }
1955 : int fd_tower_sync_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1956 : void * fd_tower_sync_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1957 :
1958 : void fd_tower_sync_switch_new( fd_tower_sync_switch_t * self );
1959 : int fd_tower_sync_switch_encode( fd_tower_sync_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
1960 : ulong fd_tower_sync_switch_size( fd_tower_sync_switch_t const * self );
1961 0 : static inline ulong fd_tower_sync_switch_align( void ) { return FD_TOWER_SYNC_SWITCH_ALIGN; }
1962 : int fd_tower_sync_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1963 : void * fd_tower_sync_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1964 :
1965 : void fd_slot_history_new( fd_slot_history_t * self );
1966 : int fd_slot_history_encode( fd_slot_history_t const * self, fd_bincode_encode_ctx_t * ctx );
1967 : ulong fd_slot_history_size( fd_slot_history_t const * self );
1968 3 : static inline ulong fd_slot_history_align( void ) { return FD_SLOT_HISTORY_ALIGN; }
1969 : int fd_slot_history_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1970 : void * fd_slot_history_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1971 : void * fd_slot_history_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
1972 : int fd_slot_history_encode_global( fd_slot_history_global_t const * self, fd_bincode_encode_ctx_t * ctx );
1973 : ulong fd_slot_history_size_global( fd_slot_history_global_t const * self );
1974 :
1975 243 : static inline void fd_slot_hash_new( fd_slot_hash_t * self ) { fd_memset( self, 0, sizeof(fd_slot_hash_t) ); }
1976 : int fd_slot_hash_encode( fd_slot_hash_t const * self, fd_bincode_encode_ctx_t * ctx );
1977 0 : static inline ulong fd_slot_hash_size( fd_slot_hash_t const * self ) { (void)self; return 40UL; }
1978 0 : static inline ulong fd_slot_hash_align( void ) { return FD_SLOT_HASH_ALIGN; }
1979 0 : static inline int fd_slot_hash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
1980 0 : *total_sz += sizeof(fd_slot_hash_t);
1981 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
1982 0 : return 0;
1983 0 : }
1984 : void * fd_slot_hash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1985 :
1986 : void fd_slot_hashes_new( fd_slot_hashes_t * self );
1987 : int fd_slot_hashes_encode( fd_slot_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
1988 : ulong fd_slot_hashes_size( fd_slot_hashes_t const * self );
1989 3 : static inline ulong fd_slot_hashes_align( void ) { return FD_SLOT_HASHES_ALIGN; }
1990 : int fd_slot_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
1991 : void * fd_slot_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
1992 : void * fd_slot_hashes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
1993 : int fd_slot_hashes_encode_global( fd_slot_hashes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
1994 : ulong fd_slot_hashes_size_global( fd_slot_hashes_global_t const * self );
1995 :
1996 33975 : 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) ); }
1997 : int fd_block_block_hash_entry_encode( fd_block_block_hash_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
1998 0 : static inline ulong fd_block_block_hash_entry_size( fd_block_block_hash_entry_t const * self ) { (void)self; return 40UL; }
1999 0 : static inline ulong fd_block_block_hash_entry_align( void ) { return FD_BLOCK_BLOCK_HASH_ENTRY_ALIGN; }
2000 0 : static inline int fd_block_block_hash_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2001 0 : *total_sz += sizeof(fd_block_block_hash_entry_t);
2002 0 : if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2003 0 : return 0;
2004 0 : }
2005 : void * fd_block_block_hash_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2006 :
2007 : void fd_recent_block_hashes_new( fd_recent_block_hashes_t * self );
2008 : int fd_recent_block_hashes_encode( fd_recent_block_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
2009 : ulong fd_recent_block_hashes_size( fd_recent_block_hashes_t const * self );
2010 3 : static inline ulong fd_recent_block_hashes_align( void ) { return FD_RECENT_BLOCK_HASHES_ALIGN; }
2011 : int fd_recent_block_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2012 : void * fd_recent_block_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2013 : void * fd_recent_block_hashes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
2014 : int fd_recent_block_hashes_encode_global( fd_recent_block_hashes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
2015 : ulong fd_recent_block_hashes_size_global( fd_recent_block_hashes_global_t const * self );
2016 :
2017 : void fd_slot_meta_new( fd_slot_meta_t * self );
2018 : int fd_slot_meta_encode( fd_slot_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
2019 : ulong fd_slot_meta_size( fd_slot_meta_t const * self );
2020 0 : static inline ulong fd_slot_meta_align( void ) { return FD_SLOT_META_ALIGN; }
2021 : int fd_slot_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2022 : void * fd_slot_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2023 :
2024 0 : static inline void fd_sysvar_fees_new( fd_sysvar_fees_t * self ) { fd_memset( self, 0, sizeof(fd_sysvar_fees_t) ); }
2025 : int fd_sysvar_fees_encode( fd_sysvar_fees_t const * self, fd_bincode_encode_ctx_t * ctx );
2026 0 : static inline ulong fd_sysvar_fees_size( fd_sysvar_fees_t const * self ) { (void)self; return 8UL; }
2027 0 : static inline ulong fd_sysvar_fees_align( void ) { return FD_SYSVAR_FEES_ALIGN; }
2028 0 : static inline int fd_sysvar_fees_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2029 0 : *total_sz += sizeof(fd_sysvar_fees_t);
2030 0 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2031 0 : return 0;
2032 0 : }
2033 : void * fd_sysvar_fees_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2034 :
2035 : void fd_sysvar_epoch_rewards_new( fd_sysvar_epoch_rewards_t * self );
2036 : int fd_sysvar_epoch_rewards_encode( fd_sysvar_epoch_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
2037 9 : static inline ulong fd_sysvar_epoch_rewards_size( fd_sysvar_epoch_rewards_t const * self ) { (void)self; return 81UL; }
2038 3 : static inline ulong fd_sysvar_epoch_rewards_align( void ) { return FD_SYSVAR_EPOCH_REWARDS_ALIGN; }
2039 : int fd_sysvar_epoch_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2040 : void * fd_sysvar_epoch_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2041 :
2042 : void fd_config_keys_pair_new( fd_config_keys_pair_t * self );
2043 : int fd_config_keys_pair_encode( fd_config_keys_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
2044 0 : static inline ulong fd_config_keys_pair_size( fd_config_keys_pair_t const * self ) { (void)self; return 33UL; }
2045 0 : static inline ulong fd_config_keys_pair_align( void ) { return FD_CONFIG_KEYS_PAIR_ALIGN; }
2046 : int fd_config_keys_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2047 : void * fd_config_keys_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2048 :
2049 : void fd_stake_config_new( fd_stake_config_t * self );
2050 : int fd_stake_config_encode( fd_stake_config_t const * self, fd_bincode_encode_ctx_t * ctx );
2051 : ulong fd_stake_config_size( fd_stake_config_t const * self );
2052 0 : static inline ulong fd_stake_config_align( void ) { return FD_STAKE_CONFIG_ALIGN; }
2053 : int fd_stake_config_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2054 : void * fd_stake_config_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2055 :
2056 0 : static inline void fd_cluster_type_new_disc( fd_cluster_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
2057 0 : static inline void fd_cluster_type_new( fd_cluster_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
2058 : int fd_cluster_type_encode( fd_cluster_type_t const * self, fd_bincode_encode_ctx_t * ctx );
2059 : ulong fd_cluster_type_size( fd_cluster_type_t const * self );
2060 0 : static inline ulong fd_cluster_type_align( void ) { return FD_CLUSTER_TYPE_ALIGN; }
2061 : int fd_cluster_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2062 : void * fd_cluster_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2063 :
2064 : FD_FN_PURE uchar fd_cluster_type_is_Testnet( fd_cluster_type_t const * self );
2065 : FD_FN_PURE uchar fd_cluster_type_is_MainnetBeta( fd_cluster_type_t const * self );
2066 : FD_FN_PURE uchar fd_cluster_type_is_Devnet( fd_cluster_type_t const * self );
2067 : FD_FN_PURE uchar fd_cluster_type_is_Development( fd_cluster_type_t const * self );
2068 : enum {
2069 : fd_cluster_type_enum_Testnet = 0,
2070 : fd_cluster_type_enum_MainnetBeta = 1,
2071 : fd_cluster_type_enum_Devnet = 2,
2072 : fd_cluster_type_enum_Development = 3,
2073 : };
2074 0 : static inline void fd_cluster_version_new( fd_cluster_version_t * self ) { fd_memset( self, 0, sizeof(fd_cluster_version_t) ); }
2075 : int fd_cluster_version_encode( fd_cluster_version_t const * self, fd_bincode_encode_ctx_t * ctx );
2076 0 : static inline ulong fd_cluster_version_size( fd_cluster_version_t const * self ) { (void)self; return 12UL; }
2077 0 : static inline ulong fd_cluster_version_align( void ) { return FD_CLUSTER_VERSION_ALIGN; }
2078 0 : static inline int fd_cluster_version_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2079 0 : *total_sz += sizeof(fd_cluster_version_t);
2080 0 : if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2081 0 : return 0;
2082 0 : }
2083 : void * fd_cluster_version_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2084 :
2085 : void fd_vote_new( fd_vote_t * self );
2086 : int fd_vote_encode( fd_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
2087 : ulong fd_vote_size( fd_vote_t const * self );
2088 0 : static inline ulong fd_vote_align( void ) { return FD_VOTE_ALIGN; }
2089 : int fd_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2090 : void * fd_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2091 :
2092 0 : static inline void fd_vote_init_new( fd_vote_init_t * self ) { fd_memset( self, 0, sizeof(fd_vote_init_t) ); }
2093 : int fd_vote_init_encode( fd_vote_init_t const * self, fd_bincode_encode_ctx_t * ctx );
2094 0 : static inline ulong fd_vote_init_size( fd_vote_init_t const * self ) { (void)self; return 97UL; }
2095 0 : static inline ulong fd_vote_init_align( void ) { return FD_VOTE_INIT_ALIGN; }
2096 0 : static inline int fd_vote_init_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2097 0 : *total_sz += sizeof(fd_vote_init_t);
2098 0 : if( (ulong)ctx->data + 97UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2099 0 : return 0;
2100 0 : }
2101 : void * fd_vote_init_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2102 :
2103 0 : static inline void fd_vote_authorize_new_disc( fd_vote_authorize_t * self, uint discriminant ) { self->discriminant = discriminant; }
2104 0 : static inline void fd_vote_authorize_new( fd_vote_authorize_t * self ) { self->discriminant = (uint)ULONG_MAX; }
2105 : int fd_vote_authorize_encode( fd_vote_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
2106 : ulong fd_vote_authorize_size( fd_vote_authorize_t const * self );
2107 0 : static inline ulong fd_vote_authorize_align( void ) { return FD_VOTE_AUTHORIZE_ALIGN; }
2108 : int fd_vote_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2109 : void * fd_vote_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2110 :
2111 : FD_FN_PURE uchar fd_vote_authorize_is_voter( fd_vote_authorize_t const * self );
2112 : FD_FN_PURE uchar fd_vote_authorize_is_withdrawer( fd_vote_authorize_t const * self );
2113 : enum {
2114 : fd_vote_authorize_enum_voter = 0,
2115 : fd_vote_authorize_enum_withdrawer = 1,
2116 : };
2117 : void fd_vote_authorize_pubkey_new( fd_vote_authorize_pubkey_t * self );
2118 : int fd_vote_authorize_pubkey_encode( fd_vote_authorize_pubkey_t const * self, fd_bincode_encode_ctx_t * ctx );
2119 0 : static inline ulong fd_vote_authorize_pubkey_size( fd_vote_authorize_pubkey_t const * self ) { (void)self; return 36UL; }
2120 0 : static inline ulong fd_vote_authorize_pubkey_align( void ) { return FD_VOTE_AUTHORIZE_PUBKEY_ALIGN; }
2121 : int fd_vote_authorize_pubkey_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2122 : void * fd_vote_authorize_pubkey_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2123 :
2124 : void fd_vote_switch_new( fd_vote_switch_t * self );
2125 : int fd_vote_switch_encode( fd_vote_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
2126 : ulong fd_vote_switch_size( fd_vote_switch_t const * self );
2127 0 : static inline ulong fd_vote_switch_align( void ) { return FD_VOTE_SWITCH_ALIGN; }
2128 : int fd_vote_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2129 : void * fd_vote_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2130 :
2131 : void fd_update_vote_state_switch_new( fd_update_vote_state_switch_t * self );
2132 : int fd_update_vote_state_switch_encode( fd_update_vote_state_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
2133 : ulong fd_update_vote_state_switch_size( fd_update_vote_state_switch_t const * self );
2134 0 : static inline ulong fd_update_vote_state_switch_align( void ) { return FD_UPDATE_VOTE_STATE_SWITCH_ALIGN; }
2135 : int fd_update_vote_state_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2136 : void * fd_update_vote_state_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2137 :
2138 : void fd_vote_authorize_with_seed_args_new( fd_vote_authorize_with_seed_args_t * self );
2139 : int fd_vote_authorize_with_seed_args_encode( fd_vote_authorize_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
2140 : ulong fd_vote_authorize_with_seed_args_size( fd_vote_authorize_with_seed_args_t const * self );
2141 0 : static inline ulong fd_vote_authorize_with_seed_args_align( void ) { return FD_VOTE_AUTHORIZE_WITH_SEED_ARGS_ALIGN; }
2142 : int fd_vote_authorize_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2143 : void * fd_vote_authorize_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2144 :
2145 : void fd_vote_authorize_checked_with_seed_args_new( fd_vote_authorize_checked_with_seed_args_t * self );
2146 : 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 );
2147 : ulong fd_vote_authorize_checked_with_seed_args_size( fd_vote_authorize_checked_with_seed_args_t const * self );
2148 0 : static inline ulong fd_vote_authorize_checked_with_seed_args_align( void ) { return FD_VOTE_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN; }
2149 : int fd_vote_authorize_checked_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2150 : void * fd_vote_authorize_checked_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2151 :
2152 : void fd_vote_instruction_new_disc( fd_vote_instruction_t * self, uint discriminant );
2153 : void fd_vote_instruction_new( fd_vote_instruction_t * self );
2154 : int fd_vote_instruction_encode( fd_vote_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
2155 : ulong fd_vote_instruction_size( fd_vote_instruction_t const * self );
2156 0 : static inline ulong fd_vote_instruction_align( void ) { return FD_VOTE_INSTRUCTION_ALIGN; }
2157 : int fd_vote_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2158 : void * fd_vote_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2159 :
2160 : FD_FN_PURE uchar fd_vote_instruction_is_initialize_account( fd_vote_instruction_t const * self );
2161 : FD_FN_PURE uchar fd_vote_instruction_is_authorize( fd_vote_instruction_t const * self );
2162 : FD_FN_PURE uchar fd_vote_instruction_is_vote( fd_vote_instruction_t const * self );
2163 : FD_FN_PURE uchar fd_vote_instruction_is_withdraw( fd_vote_instruction_t const * self );
2164 : FD_FN_PURE uchar fd_vote_instruction_is_update_validator_identity( fd_vote_instruction_t const * self );
2165 : FD_FN_PURE uchar fd_vote_instruction_is_update_commission( fd_vote_instruction_t const * self );
2166 : FD_FN_PURE uchar fd_vote_instruction_is_vote_switch( fd_vote_instruction_t const * self );
2167 : FD_FN_PURE uchar fd_vote_instruction_is_authorize_checked( fd_vote_instruction_t const * self );
2168 : FD_FN_PURE uchar fd_vote_instruction_is_update_vote_state( fd_vote_instruction_t const * self );
2169 : FD_FN_PURE uchar fd_vote_instruction_is_update_vote_state_switch( fd_vote_instruction_t const * self );
2170 : FD_FN_PURE uchar fd_vote_instruction_is_authorize_with_seed( fd_vote_instruction_t const * self );
2171 : FD_FN_PURE uchar fd_vote_instruction_is_authorize_checked_with_seed( fd_vote_instruction_t const * self );
2172 : FD_FN_PURE uchar fd_vote_instruction_is_compact_update_vote_state( fd_vote_instruction_t const * self );
2173 : FD_FN_PURE uchar fd_vote_instruction_is_compact_update_vote_state_switch( fd_vote_instruction_t const * self );
2174 : FD_FN_PURE uchar fd_vote_instruction_is_tower_sync( fd_vote_instruction_t const * self );
2175 : FD_FN_PURE uchar fd_vote_instruction_is_tower_sync_switch( fd_vote_instruction_t const * self );
2176 : enum {
2177 : fd_vote_instruction_enum_initialize_account = 0,
2178 : fd_vote_instruction_enum_authorize = 1,
2179 : fd_vote_instruction_enum_vote = 2,
2180 : fd_vote_instruction_enum_withdraw = 3,
2181 : fd_vote_instruction_enum_update_validator_identity = 4,
2182 : fd_vote_instruction_enum_update_commission = 5,
2183 : fd_vote_instruction_enum_vote_switch = 6,
2184 : fd_vote_instruction_enum_authorize_checked = 7,
2185 : fd_vote_instruction_enum_update_vote_state = 8,
2186 : fd_vote_instruction_enum_update_vote_state_switch = 9,
2187 : fd_vote_instruction_enum_authorize_with_seed = 10,
2188 : fd_vote_instruction_enum_authorize_checked_with_seed = 11,
2189 : fd_vote_instruction_enum_compact_update_vote_state = 12,
2190 : fd_vote_instruction_enum_compact_update_vote_state_switch = 13,
2191 : fd_vote_instruction_enum_tower_sync = 14,
2192 : fd_vote_instruction_enum_tower_sync_switch = 15,
2193 : };
2194 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) ); }
2195 : int fd_system_program_instruction_create_account_encode( fd_system_program_instruction_create_account_t const * self, fd_bincode_encode_ctx_t * ctx );
2196 0 : static inline ulong fd_system_program_instruction_create_account_size( fd_system_program_instruction_create_account_t const * self ) { (void)self; return 48UL; }
2197 0 : static inline ulong fd_system_program_instruction_create_account_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_ALIGN; }
2198 0 : static inline int fd_system_program_instruction_create_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2199 0 : *total_sz += sizeof(fd_system_program_instruction_create_account_t);
2200 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2201 0 : return 0;
2202 0 : }
2203 : void * fd_system_program_instruction_create_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2204 :
2205 : void fd_system_program_instruction_create_account_with_seed_new( fd_system_program_instruction_create_account_with_seed_t * self );
2206 : 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 );
2207 : ulong fd_system_program_instruction_create_account_with_seed_size( fd_system_program_instruction_create_account_with_seed_t const * self );
2208 0 : static inline ulong fd_system_program_instruction_create_account_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_WITH_SEED_ALIGN; }
2209 : int fd_system_program_instruction_create_account_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2210 : void * fd_system_program_instruction_create_account_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2211 :
2212 : void fd_system_program_instruction_allocate_with_seed_new( fd_system_program_instruction_allocate_with_seed_t * self );
2213 : 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 );
2214 : ulong fd_system_program_instruction_allocate_with_seed_size( fd_system_program_instruction_allocate_with_seed_t const * self );
2215 0 : static inline ulong fd_system_program_instruction_allocate_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ALLOCATE_WITH_SEED_ALIGN; }
2216 : int fd_system_program_instruction_allocate_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2217 : void * fd_system_program_instruction_allocate_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2218 :
2219 : void fd_system_program_instruction_assign_with_seed_new( fd_system_program_instruction_assign_with_seed_t * self );
2220 : 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 );
2221 : ulong fd_system_program_instruction_assign_with_seed_size( fd_system_program_instruction_assign_with_seed_t const * self );
2222 0 : static inline ulong fd_system_program_instruction_assign_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ASSIGN_WITH_SEED_ALIGN; }
2223 : int fd_system_program_instruction_assign_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2224 : void * fd_system_program_instruction_assign_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2225 :
2226 : void fd_system_program_instruction_transfer_with_seed_new( fd_system_program_instruction_transfer_with_seed_t * self );
2227 : 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 );
2228 : ulong fd_system_program_instruction_transfer_with_seed_size( fd_system_program_instruction_transfer_with_seed_t const * self );
2229 0 : static inline ulong fd_system_program_instruction_transfer_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_TRANSFER_WITH_SEED_ALIGN; }
2230 : int fd_system_program_instruction_transfer_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2231 : void * fd_system_program_instruction_transfer_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2232 :
2233 : void fd_system_program_instruction_new_disc( fd_system_program_instruction_t * self, uint discriminant );
2234 : void fd_system_program_instruction_new( fd_system_program_instruction_t * self );
2235 : int fd_system_program_instruction_encode( fd_system_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
2236 : ulong fd_system_program_instruction_size( fd_system_program_instruction_t const * self );
2237 0 : static inline ulong fd_system_program_instruction_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ALIGN; }
2238 : int fd_system_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2239 : void * fd_system_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2240 :
2241 : FD_FN_PURE uchar fd_system_program_instruction_is_create_account( fd_system_program_instruction_t const * self );
2242 : FD_FN_PURE uchar fd_system_program_instruction_is_assign( fd_system_program_instruction_t const * self );
2243 : FD_FN_PURE uchar fd_system_program_instruction_is_transfer( fd_system_program_instruction_t const * self );
2244 : FD_FN_PURE uchar fd_system_program_instruction_is_create_account_with_seed( fd_system_program_instruction_t const * self );
2245 : FD_FN_PURE uchar fd_system_program_instruction_is_advance_nonce_account( fd_system_program_instruction_t const * self );
2246 : FD_FN_PURE uchar fd_system_program_instruction_is_withdraw_nonce_account( fd_system_program_instruction_t const * self );
2247 : FD_FN_PURE uchar fd_system_program_instruction_is_initialize_nonce_account( fd_system_program_instruction_t const * self );
2248 : FD_FN_PURE uchar fd_system_program_instruction_is_authorize_nonce_account( fd_system_program_instruction_t const * self );
2249 : FD_FN_PURE uchar fd_system_program_instruction_is_allocate( fd_system_program_instruction_t const * self );
2250 : FD_FN_PURE uchar fd_system_program_instruction_is_allocate_with_seed( fd_system_program_instruction_t const * self );
2251 : FD_FN_PURE uchar fd_system_program_instruction_is_assign_with_seed( fd_system_program_instruction_t const * self );
2252 : FD_FN_PURE uchar fd_system_program_instruction_is_transfer_with_seed( fd_system_program_instruction_t const * self );
2253 : FD_FN_PURE uchar fd_system_program_instruction_is_upgrade_nonce_account( fd_system_program_instruction_t const * self );
2254 : enum {
2255 : fd_system_program_instruction_enum_create_account = 0,
2256 : fd_system_program_instruction_enum_assign = 1,
2257 : fd_system_program_instruction_enum_transfer = 2,
2258 : fd_system_program_instruction_enum_create_account_with_seed = 3,
2259 : fd_system_program_instruction_enum_advance_nonce_account = 4,
2260 : fd_system_program_instruction_enum_withdraw_nonce_account = 5,
2261 : fd_system_program_instruction_enum_initialize_nonce_account = 6,
2262 : fd_system_program_instruction_enum_authorize_nonce_account = 7,
2263 : fd_system_program_instruction_enum_allocate = 8,
2264 : fd_system_program_instruction_enum_allocate_with_seed = 9,
2265 : fd_system_program_instruction_enum_assign_with_seed = 10,
2266 : fd_system_program_instruction_enum_transfer_with_seed = 11,
2267 : fd_system_program_instruction_enum_upgrade_nonce_account = 12,
2268 : };
2269 0 : static inline void fd_stake_authorized_new( fd_stake_authorized_t * self ) { fd_memset( self, 0, sizeof(fd_stake_authorized_t) ); }
2270 : int fd_stake_authorized_encode( fd_stake_authorized_t const * self, fd_bincode_encode_ctx_t * ctx );
2271 0 : static inline ulong fd_stake_authorized_size( fd_stake_authorized_t const * self ) { (void)self; return 64UL; }
2272 0 : static inline ulong fd_stake_authorized_align( void ) { return FD_STAKE_AUTHORIZED_ALIGN; }
2273 0 : static inline int fd_stake_authorized_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2274 0 : *total_sz += sizeof(fd_stake_authorized_t);
2275 0 : if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2276 0 : return 0;
2277 0 : }
2278 : void * fd_stake_authorized_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2279 :
2280 0 : static inline void fd_stake_lockup_new( fd_stake_lockup_t * self ) { fd_memset( self, 0, sizeof(fd_stake_lockup_t) ); }
2281 : int fd_stake_lockup_encode( fd_stake_lockup_t const * self, fd_bincode_encode_ctx_t * ctx );
2282 0 : static inline ulong fd_stake_lockup_size( fd_stake_lockup_t const * self ) { (void)self; return 48UL; }
2283 0 : static inline ulong fd_stake_lockup_align( void ) { return FD_STAKE_LOCKUP_ALIGN; }
2284 0 : static inline int fd_stake_lockup_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2285 0 : *total_sz += sizeof(fd_stake_lockup_t);
2286 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2287 0 : return 0;
2288 0 : }
2289 : void * fd_stake_lockup_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2290 :
2291 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) ); }
2292 : int fd_stake_instruction_initialize_encode( fd_stake_instruction_initialize_t const * self, fd_bincode_encode_ctx_t * ctx );
2293 0 : static inline ulong fd_stake_instruction_initialize_size( fd_stake_instruction_initialize_t const * self ) { (void)self; return 112UL; }
2294 0 : static inline ulong fd_stake_instruction_initialize_align( void ) { return FD_STAKE_INSTRUCTION_INITIALIZE_ALIGN; }
2295 0 : static inline int fd_stake_instruction_initialize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2296 0 : *total_sz += sizeof(fd_stake_instruction_initialize_t);
2297 0 : if( (ulong)ctx->data + 112UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2298 0 : return 0;
2299 0 : }
2300 : void * fd_stake_instruction_initialize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2301 :
2302 : void fd_stake_lockup_custodian_args_new( fd_stake_lockup_custodian_args_t * self );
2303 : int fd_stake_lockup_custodian_args_encode( fd_stake_lockup_custodian_args_t const * self, fd_bincode_encode_ctx_t * ctx );
2304 : ulong fd_stake_lockup_custodian_args_size( fd_stake_lockup_custodian_args_t const * self );
2305 0 : static inline ulong fd_stake_lockup_custodian_args_align( void ) { return FD_STAKE_LOCKUP_CUSTODIAN_ARGS_ALIGN; }
2306 : int fd_stake_lockup_custodian_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2307 : void * fd_stake_lockup_custodian_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2308 :
2309 0 : static inline void fd_stake_authorize_new_disc( fd_stake_authorize_t * self, uint discriminant ) { self->discriminant = discriminant; }
2310 0 : static inline void fd_stake_authorize_new( fd_stake_authorize_t * self ) { self->discriminant = (uint)ULONG_MAX; }
2311 : int fd_stake_authorize_encode( fd_stake_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
2312 : ulong fd_stake_authorize_size( fd_stake_authorize_t const * self );
2313 0 : static inline ulong fd_stake_authorize_align( void ) { return FD_STAKE_AUTHORIZE_ALIGN; }
2314 : int fd_stake_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2315 : void * fd_stake_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2316 :
2317 : FD_FN_PURE uchar fd_stake_authorize_is_staker( fd_stake_authorize_t const * self );
2318 : FD_FN_PURE uchar fd_stake_authorize_is_withdrawer( fd_stake_authorize_t const * self );
2319 : enum {
2320 : fd_stake_authorize_enum_staker = 0,
2321 : fd_stake_authorize_enum_withdrawer = 1,
2322 : };
2323 : void fd_stake_instruction_authorize_new( fd_stake_instruction_authorize_t * self );
2324 : int fd_stake_instruction_authorize_encode( fd_stake_instruction_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
2325 0 : static inline ulong fd_stake_instruction_authorize_size( fd_stake_instruction_authorize_t const * self ) { (void)self; return 36UL; }
2326 0 : static inline ulong fd_stake_instruction_authorize_align( void ) { return FD_STAKE_INSTRUCTION_AUTHORIZE_ALIGN; }
2327 : int fd_stake_instruction_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2328 : void * fd_stake_instruction_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2329 :
2330 : void fd_authorize_with_seed_args_new( fd_authorize_with_seed_args_t * self );
2331 : int fd_authorize_with_seed_args_encode( fd_authorize_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
2332 : ulong fd_authorize_with_seed_args_size( fd_authorize_with_seed_args_t const * self );
2333 0 : static inline ulong fd_authorize_with_seed_args_align( void ) { return FD_AUTHORIZE_WITH_SEED_ARGS_ALIGN; }
2334 : int fd_authorize_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2335 : void * fd_authorize_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2336 :
2337 : void fd_authorize_checked_with_seed_args_new( fd_authorize_checked_with_seed_args_t * self );
2338 : int fd_authorize_checked_with_seed_args_encode( fd_authorize_checked_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
2339 : ulong fd_authorize_checked_with_seed_args_size( fd_authorize_checked_with_seed_args_t const * self );
2340 0 : static inline ulong fd_authorize_checked_with_seed_args_align( void ) { return FD_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN; }
2341 : int fd_authorize_checked_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2342 : void * fd_authorize_checked_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2343 :
2344 : void fd_lockup_checked_args_new( fd_lockup_checked_args_t * self );
2345 : int fd_lockup_checked_args_encode( fd_lockup_checked_args_t const * self, fd_bincode_encode_ctx_t * ctx );
2346 : ulong fd_lockup_checked_args_size( fd_lockup_checked_args_t const * self );
2347 0 : static inline ulong fd_lockup_checked_args_align( void ) { return FD_LOCKUP_CHECKED_ARGS_ALIGN; }
2348 : int fd_lockup_checked_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2349 : void * fd_lockup_checked_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2350 :
2351 : void fd_lockup_args_new( fd_lockup_args_t * self );
2352 : int fd_lockup_args_encode( fd_lockup_args_t const * self, fd_bincode_encode_ctx_t * ctx );
2353 : ulong fd_lockup_args_size( fd_lockup_args_t const * self );
2354 0 : static inline ulong fd_lockup_args_align( void ) { return FD_LOCKUP_ARGS_ALIGN; }
2355 : int fd_lockup_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2356 : void * fd_lockup_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2357 :
2358 : void fd_stake_instruction_new_disc( fd_stake_instruction_t * self, uint discriminant );
2359 : void fd_stake_instruction_new( fd_stake_instruction_t * self );
2360 : int fd_stake_instruction_encode( fd_stake_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
2361 : ulong fd_stake_instruction_size( fd_stake_instruction_t const * self );
2362 0 : static inline ulong fd_stake_instruction_align( void ) { return FD_STAKE_INSTRUCTION_ALIGN; }
2363 : int fd_stake_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2364 : void * fd_stake_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2365 :
2366 : FD_FN_PURE uchar fd_stake_instruction_is_initialize( fd_stake_instruction_t const * self );
2367 : FD_FN_PURE uchar fd_stake_instruction_is_authorize( fd_stake_instruction_t const * self );
2368 : FD_FN_PURE uchar fd_stake_instruction_is_delegate_stake( fd_stake_instruction_t const * self );
2369 : FD_FN_PURE uchar fd_stake_instruction_is_split( fd_stake_instruction_t const * self );
2370 : FD_FN_PURE uchar fd_stake_instruction_is_withdraw( fd_stake_instruction_t const * self );
2371 : FD_FN_PURE uchar fd_stake_instruction_is_deactivate( fd_stake_instruction_t const * self );
2372 : FD_FN_PURE uchar fd_stake_instruction_is_set_lockup( fd_stake_instruction_t const * self );
2373 : FD_FN_PURE uchar fd_stake_instruction_is_merge( fd_stake_instruction_t const * self );
2374 : FD_FN_PURE uchar fd_stake_instruction_is_authorize_with_seed( fd_stake_instruction_t const * self );
2375 : FD_FN_PURE uchar fd_stake_instruction_is_initialize_checked( fd_stake_instruction_t const * self );
2376 : FD_FN_PURE uchar fd_stake_instruction_is_authorize_checked( fd_stake_instruction_t const * self );
2377 : FD_FN_PURE uchar fd_stake_instruction_is_authorize_checked_with_seed( fd_stake_instruction_t const * self );
2378 : FD_FN_PURE uchar fd_stake_instruction_is_set_lockup_checked( fd_stake_instruction_t const * self );
2379 : FD_FN_PURE uchar fd_stake_instruction_is_get_minimum_delegation( fd_stake_instruction_t const * self );
2380 : FD_FN_PURE uchar fd_stake_instruction_is_deactivate_delinquent( fd_stake_instruction_t const * self );
2381 : FD_FN_PURE uchar fd_stake_instruction_is_redelegate( fd_stake_instruction_t const * self );
2382 : FD_FN_PURE uchar fd_stake_instruction_is_move_stake( fd_stake_instruction_t const * self );
2383 : FD_FN_PURE uchar fd_stake_instruction_is_move_lamports( fd_stake_instruction_t const * self );
2384 : enum {
2385 : fd_stake_instruction_enum_initialize = 0,
2386 : fd_stake_instruction_enum_authorize = 1,
2387 : fd_stake_instruction_enum_delegate_stake = 2,
2388 : fd_stake_instruction_enum_split = 3,
2389 : fd_stake_instruction_enum_withdraw = 4,
2390 : fd_stake_instruction_enum_deactivate = 5,
2391 : fd_stake_instruction_enum_set_lockup = 6,
2392 : fd_stake_instruction_enum_merge = 7,
2393 : fd_stake_instruction_enum_authorize_with_seed = 8,
2394 : fd_stake_instruction_enum_initialize_checked = 9,
2395 : fd_stake_instruction_enum_authorize_checked = 10,
2396 : fd_stake_instruction_enum_authorize_checked_with_seed = 11,
2397 : fd_stake_instruction_enum_set_lockup_checked = 12,
2398 : fd_stake_instruction_enum_get_minimum_delegation = 13,
2399 : fd_stake_instruction_enum_deactivate_delinquent = 14,
2400 : fd_stake_instruction_enum_redelegate = 15,
2401 : fd_stake_instruction_enum_move_stake = 16,
2402 : fd_stake_instruction_enum_move_lamports = 17,
2403 : };
2404 0 : static inline void fd_stake_meta_new( fd_stake_meta_t * self ) { fd_memset( self, 0, sizeof(fd_stake_meta_t) ); }
2405 : int fd_stake_meta_encode( fd_stake_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
2406 0 : static inline ulong fd_stake_meta_size( fd_stake_meta_t const * self ) { (void)self; return 120UL; }
2407 0 : static inline ulong fd_stake_meta_align( void ) { return FD_STAKE_META_ALIGN; }
2408 0 : static inline int fd_stake_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2409 0 : *total_sz += sizeof(fd_stake_meta_t);
2410 0 : if( (ulong)ctx->data + 120UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2411 0 : return 0;
2412 0 : }
2413 : void * fd_stake_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2414 :
2415 0 : static inline void fd_stake_flags_new( fd_stake_flags_t * self ) { fd_memset( self, 0, sizeof(fd_stake_flags_t) ); }
2416 : int fd_stake_flags_encode( fd_stake_flags_t const * self, fd_bincode_encode_ctx_t * ctx );
2417 0 : static inline ulong fd_stake_flags_size( fd_stake_flags_t const * self ) { (void)self; return 1UL; }
2418 0 : static inline ulong fd_stake_flags_align( void ) { return FD_STAKE_FLAGS_ALIGN; }
2419 0 : static inline int fd_stake_flags_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2420 0 : *total_sz += sizeof(fd_stake_flags_t);
2421 0 : if( (ulong)ctx->data + 1UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2422 0 : return 0;
2423 0 : }
2424 : void * fd_stake_flags_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2425 :
2426 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) ); }
2427 : int fd_stake_state_v2_initialized_encode( fd_stake_state_v2_initialized_t const * self, fd_bincode_encode_ctx_t * ctx );
2428 0 : static inline ulong fd_stake_state_v2_initialized_size( fd_stake_state_v2_initialized_t const * self ) { (void)self; return 120UL; }
2429 0 : static inline ulong fd_stake_state_v2_initialized_align( void ) { return FD_STAKE_STATE_V2_INITIALIZED_ALIGN; }
2430 0 : static inline int fd_stake_state_v2_initialized_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2431 0 : *total_sz += sizeof(fd_stake_state_v2_initialized_t);
2432 0 : if( (ulong)ctx->data + 120UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2433 0 : return 0;
2434 0 : }
2435 : void * fd_stake_state_v2_initialized_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2436 :
2437 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) ); }
2438 : int fd_stake_state_v2_stake_encode( fd_stake_state_v2_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
2439 0 : static inline ulong fd_stake_state_v2_stake_size( fd_stake_state_v2_stake_t const * self ) { (void)self; return 193UL; }
2440 0 : static inline ulong fd_stake_state_v2_stake_align( void ) { return FD_STAKE_STATE_V2_STAKE_ALIGN; }
2441 0 : static inline int fd_stake_state_v2_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2442 0 : *total_sz += sizeof(fd_stake_state_v2_stake_t);
2443 0 : if( (ulong)ctx->data + 193UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2444 0 : return 0;
2445 0 : }
2446 : void * fd_stake_state_v2_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2447 :
2448 : void fd_stake_state_v2_new_disc( fd_stake_state_v2_t * self, uint discriminant );
2449 : void fd_stake_state_v2_new( fd_stake_state_v2_t * self );
2450 : int fd_stake_state_v2_encode( fd_stake_state_v2_t const * self, fd_bincode_encode_ctx_t * ctx );
2451 : ulong fd_stake_state_v2_size( fd_stake_state_v2_t const * self );
2452 0 : static inline ulong fd_stake_state_v2_align( void ) { return FD_STAKE_STATE_V2_ALIGN; }
2453 : int fd_stake_state_v2_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2454 : void * fd_stake_state_v2_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2455 :
2456 : FD_FN_PURE uchar fd_stake_state_v2_is_uninitialized( fd_stake_state_v2_t const * self );
2457 : FD_FN_PURE uchar fd_stake_state_v2_is_initialized( fd_stake_state_v2_t const * self );
2458 : FD_FN_PURE uchar fd_stake_state_v2_is_stake( fd_stake_state_v2_t const * self );
2459 : FD_FN_PURE uchar fd_stake_state_v2_is_rewards_pool( fd_stake_state_v2_t const * self );
2460 : enum {
2461 : fd_stake_state_v2_enum_uninitialized = 0,
2462 : fd_stake_state_v2_enum_initialized = 1,
2463 : fd_stake_state_v2_enum_stake = 2,
2464 : fd_stake_state_v2_enum_rewards_pool = 3,
2465 : };
2466 0 : static inline void fd_nonce_data_new( fd_nonce_data_t * self ) { fd_memset( self, 0, sizeof(fd_nonce_data_t) ); }
2467 : int fd_nonce_data_encode( fd_nonce_data_t const * self, fd_bincode_encode_ctx_t * ctx );
2468 0 : static inline ulong fd_nonce_data_size( fd_nonce_data_t const * self ) { (void)self; return 72UL; }
2469 0 : static inline ulong fd_nonce_data_align( void ) { return FD_NONCE_DATA_ALIGN; }
2470 0 : static inline int fd_nonce_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2471 0 : *total_sz += sizeof(fd_nonce_data_t);
2472 0 : if( (ulong)ctx->data + 72UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2473 0 : return 0;
2474 0 : }
2475 : void * fd_nonce_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2476 :
2477 : void fd_nonce_state_new_disc( fd_nonce_state_t * self, uint discriminant );
2478 : void fd_nonce_state_new( fd_nonce_state_t * self );
2479 : int fd_nonce_state_encode( fd_nonce_state_t const * self, fd_bincode_encode_ctx_t * ctx );
2480 : ulong fd_nonce_state_size( fd_nonce_state_t const * self );
2481 0 : static inline ulong fd_nonce_state_align( void ) { return FD_NONCE_STATE_ALIGN; }
2482 : int fd_nonce_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2483 : void * fd_nonce_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2484 :
2485 : FD_FN_PURE uchar fd_nonce_state_is_uninitialized( fd_nonce_state_t const * self );
2486 : FD_FN_PURE uchar fd_nonce_state_is_initialized( fd_nonce_state_t const * self );
2487 : enum {
2488 : fd_nonce_state_enum_uninitialized = 0,
2489 : fd_nonce_state_enum_initialized = 1,
2490 : };
2491 : void fd_nonce_state_versions_new_disc( fd_nonce_state_versions_t * self, uint discriminant );
2492 : void fd_nonce_state_versions_new( fd_nonce_state_versions_t * self );
2493 : int fd_nonce_state_versions_encode( fd_nonce_state_versions_t const * self, fd_bincode_encode_ctx_t * ctx );
2494 : ulong fd_nonce_state_versions_size( fd_nonce_state_versions_t const * self );
2495 0 : static inline ulong fd_nonce_state_versions_align( void ) { return FD_NONCE_STATE_VERSIONS_ALIGN; }
2496 : int fd_nonce_state_versions_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2497 : void * fd_nonce_state_versions_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2498 :
2499 : FD_FN_PURE uchar fd_nonce_state_versions_is_legacy( fd_nonce_state_versions_t const * self );
2500 : FD_FN_PURE uchar fd_nonce_state_versions_is_current( fd_nonce_state_versions_t const * self );
2501 : enum {
2502 : fd_nonce_state_versions_enum_legacy = 0,
2503 : fd_nonce_state_versions_enum_current = 1,
2504 : };
2505 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) ); }
2506 : 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 );
2507 0 : static inline ulong fd_compute_budget_program_instruction_request_units_deprecated_size( fd_compute_budget_program_instruction_request_units_deprecated_t const * self ) { (void)self; return 8UL; }
2508 0 : static inline ulong fd_compute_budget_program_instruction_request_units_deprecated_align( void ) { return FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_REQUEST_UNITS_DEPRECATED_ALIGN; }
2509 0 : static inline int fd_compute_budget_program_instruction_request_units_deprecated_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2510 0 : *total_sz += sizeof(fd_compute_budget_program_instruction_request_units_deprecated_t);
2511 0 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2512 0 : return 0;
2513 0 : }
2514 : void * fd_compute_budget_program_instruction_request_units_deprecated_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2515 :
2516 : void fd_compute_budget_program_instruction_new_disc( fd_compute_budget_program_instruction_t * self, uint discriminant );
2517 : void fd_compute_budget_program_instruction_new( fd_compute_budget_program_instruction_t * self );
2518 : int fd_compute_budget_program_instruction_encode( fd_compute_budget_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
2519 : ulong fd_compute_budget_program_instruction_size( fd_compute_budget_program_instruction_t const * self );
2520 0 : static inline ulong fd_compute_budget_program_instruction_align( void ) { return FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_ALIGN; }
2521 : int fd_compute_budget_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2522 : void * fd_compute_budget_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2523 :
2524 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_request_units_deprecated( fd_compute_budget_program_instruction_t const * self );
2525 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_request_heap_frame( fd_compute_budget_program_instruction_t const * self );
2526 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_compute_unit_limit( fd_compute_budget_program_instruction_t const * self );
2527 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_compute_unit_price( fd_compute_budget_program_instruction_t const * self );
2528 : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_loaded_accounts_data_size_limit( fd_compute_budget_program_instruction_t const * self );
2529 : enum {
2530 : fd_compute_budget_program_instruction_enum_request_units_deprecated = 0,
2531 : fd_compute_budget_program_instruction_enum_request_heap_frame = 1,
2532 : fd_compute_budget_program_instruction_enum_set_compute_unit_limit = 2,
2533 : fd_compute_budget_program_instruction_enum_set_compute_unit_price = 3,
2534 : fd_compute_budget_program_instruction_enum_set_loaded_accounts_data_size_limit = 4,
2535 : };
2536 : void fd_config_keys_new( fd_config_keys_t * self );
2537 : int fd_config_keys_encode( fd_config_keys_t const * self, fd_bincode_encode_ctx_t * ctx );
2538 : ulong fd_config_keys_size( fd_config_keys_t const * self );
2539 0 : static inline ulong fd_config_keys_align( void ) { return FD_CONFIG_KEYS_ALIGN; }
2540 : int fd_config_keys_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2541 : void * fd_config_keys_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2542 :
2543 : void fd_bpf_loader_program_instruction_write_new( fd_bpf_loader_program_instruction_write_t * self );
2544 : int fd_bpf_loader_program_instruction_write_encode( fd_bpf_loader_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
2545 : ulong fd_bpf_loader_program_instruction_write_size( fd_bpf_loader_program_instruction_write_t const * self );
2546 0 : static inline ulong fd_bpf_loader_program_instruction_write_align( void ) { return FD_BPF_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
2547 : int fd_bpf_loader_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2548 : void * fd_bpf_loader_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2549 :
2550 : void fd_bpf_loader_program_instruction_new_disc( fd_bpf_loader_program_instruction_t * self, uint discriminant );
2551 : void fd_bpf_loader_program_instruction_new( fd_bpf_loader_program_instruction_t * self );
2552 : int fd_bpf_loader_program_instruction_encode( fd_bpf_loader_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
2553 : ulong fd_bpf_loader_program_instruction_size( fd_bpf_loader_program_instruction_t const * self );
2554 0 : static inline ulong fd_bpf_loader_program_instruction_align( void ) { return FD_BPF_LOADER_PROGRAM_INSTRUCTION_ALIGN; }
2555 : int fd_bpf_loader_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2556 : void * fd_bpf_loader_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2557 :
2558 : FD_FN_PURE uchar fd_bpf_loader_program_instruction_is_write( fd_bpf_loader_program_instruction_t const * self );
2559 : FD_FN_PURE uchar fd_bpf_loader_program_instruction_is_finalize( fd_bpf_loader_program_instruction_t const * self );
2560 : enum {
2561 : fd_bpf_loader_program_instruction_enum_write = 0,
2562 : fd_bpf_loader_program_instruction_enum_finalize = 1,
2563 : };
2564 : void fd_loader_v4_program_instruction_write_new( fd_loader_v4_program_instruction_write_t * self );
2565 : int fd_loader_v4_program_instruction_write_encode( fd_loader_v4_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
2566 : ulong fd_loader_v4_program_instruction_write_size( fd_loader_v4_program_instruction_write_t const * self );
2567 0 : static inline ulong fd_loader_v4_program_instruction_write_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
2568 : int fd_loader_v4_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2569 : void * fd_loader_v4_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2570 :
2571 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) ); }
2572 : int fd_loader_v4_program_instruction_copy_encode( fd_loader_v4_program_instruction_copy_t const * self, fd_bincode_encode_ctx_t * ctx );
2573 0 : static inline ulong fd_loader_v4_program_instruction_copy_size( fd_loader_v4_program_instruction_copy_t const * self ) { (void)self; return 12UL; }
2574 0 : static inline ulong fd_loader_v4_program_instruction_copy_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_COPY_ALIGN; }
2575 0 : static inline int fd_loader_v4_program_instruction_copy_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2576 0 : *total_sz += sizeof(fd_loader_v4_program_instruction_copy_t);
2577 0 : if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2578 0 : return 0;
2579 0 : }
2580 : void * fd_loader_v4_program_instruction_copy_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2581 :
2582 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) ); }
2583 : 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 );
2584 0 : static inline ulong fd_loader_v4_program_instruction_set_program_length_size( fd_loader_v4_program_instruction_set_program_length_t const * self ) { (void)self; return 4UL; }
2585 0 : static inline ulong fd_loader_v4_program_instruction_set_program_length_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_SET_PROGRAM_LENGTH_ALIGN; }
2586 0 : static inline int fd_loader_v4_program_instruction_set_program_length_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2587 0 : *total_sz += sizeof(fd_loader_v4_program_instruction_set_program_length_t);
2588 0 : if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2589 0 : return 0;
2590 0 : }
2591 : void * fd_loader_v4_program_instruction_set_program_length_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2592 :
2593 : void fd_loader_v4_program_instruction_new_disc( fd_loader_v4_program_instruction_t * self, uint discriminant );
2594 : void fd_loader_v4_program_instruction_new( fd_loader_v4_program_instruction_t * self );
2595 : int fd_loader_v4_program_instruction_encode( fd_loader_v4_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
2596 : ulong fd_loader_v4_program_instruction_size( fd_loader_v4_program_instruction_t const * self );
2597 0 : static inline ulong fd_loader_v4_program_instruction_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_ALIGN; }
2598 : int fd_loader_v4_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2599 : void * fd_loader_v4_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2600 :
2601 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_write( fd_loader_v4_program_instruction_t const * self );
2602 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_copy( fd_loader_v4_program_instruction_t const * self );
2603 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_set_program_length( fd_loader_v4_program_instruction_t const * self );
2604 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_deploy( fd_loader_v4_program_instruction_t const * self );
2605 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_retract( fd_loader_v4_program_instruction_t const * self );
2606 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_transfer_authority( fd_loader_v4_program_instruction_t const * self );
2607 : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_finalize( fd_loader_v4_program_instruction_t const * self );
2608 : enum {
2609 : fd_loader_v4_program_instruction_enum_write = 0,
2610 : fd_loader_v4_program_instruction_enum_copy = 1,
2611 : fd_loader_v4_program_instruction_enum_set_program_length = 2,
2612 : fd_loader_v4_program_instruction_enum_deploy = 3,
2613 : fd_loader_v4_program_instruction_enum_retract = 4,
2614 : fd_loader_v4_program_instruction_enum_transfer_authority = 5,
2615 : fd_loader_v4_program_instruction_enum_finalize = 6,
2616 : };
2617 : void fd_bpf_upgradeable_loader_program_instruction_write_new( fd_bpf_upgradeable_loader_program_instruction_write_t * self );
2618 : 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 );
2619 : ulong fd_bpf_upgradeable_loader_program_instruction_write_size( fd_bpf_upgradeable_loader_program_instruction_write_t const * self );
2620 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_write_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
2621 : int fd_bpf_upgradeable_loader_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2622 : void * fd_bpf_upgradeable_loader_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2623 :
2624 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) ); }
2625 : 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 );
2626 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_size( fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t const * self ) { (void)self; return 8UL; }
2627 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; }
2628 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 ) {
2629 0 : *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t);
2630 0 : if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2631 0 : return 0;
2632 0 : }
2633 : void * fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2634 :
2635 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) ); }
2636 : 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 );
2637 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_size( fd_bpf_upgradeable_loader_program_instruction_extend_program_t const * self ) { (void)self; return 4UL; }
2638 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_ALIGN; }
2639 0 : static inline int fd_bpf_upgradeable_loader_program_instruction_extend_program_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2640 0 : *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t);
2641 0 : if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2642 0 : return 0;
2643 0 : }
2644 : void * fd_bpf_upgradeable_loader_program_instruction_extend_program_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2645 :
2646 0 : static inline void fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_new( fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t * self ) { fd_memset( self, 0, sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t) ); }
2647 : int fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_encode( fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t const * self, fd_bincode_encode_ctx_t * ctx );
2648 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_size( fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t const * self ) { (void)self; return 4UL; }
2649 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_CHECKED_ALIGN; }
2650 0 : static inline int fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2651 0 : *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t);
2652 0 : if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2653 0 : return 0;
2654 0 : }
2655 : void * fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2656 :
2657 : void fd_bpf_upgradeable_loader_program_instruction_new_disc( fd_bpf_upgradeable_loader_program_instruction_t * self, uint discriminant );
2658 : void fd_bpf_upgradeable_loader_program_instruction_new( fd_bpf_upgradeable_loader_program_instruction_t * self );
2659 : int fd_bpf_upgradeable_loader_program_instruction_encode( fd_bpf_upgradeable_loader_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
2660 : ulong fd_bpf_upgradeable_loader_program_instruction_size( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2661 0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_ALIGN; }
2662 : int fd_bpf_upgradeable_loader_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2663 : void * fd_bpf_upgradeable_loader_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2664 :
2665 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_initialize_buffer( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2666 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_write( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2667 : 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 );
2668 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_upgrade( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2669 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_set_authority( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2670 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_close( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2671 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_extend_program( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2672 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_set_authority_checked( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2673 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_migrate( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2674 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_extend_program_checked( fd_bpf_upgradeable_loader_program_instruction_t const * self );
2675 : enum {
2676 : fd_bpf_upgradeable_loader_program_instruction_enum_initialize_buffer = 0,
2677 : fd_bpf_upgradeable_loader_program_instruction_enum_write = 1,
2678 : fd_bpf_upgradeable_loader_program_instruction_enum_deploy_with_max_data_len = 2,
2679 : fd_bpf_upgradeable_loader_program_instruction_enum_upgrade = 3,
2680 : fd_bpf_upgradeable_loader_program_instruction_enum_set_authority = 4,
2681 : fd_bpf_upgradeable_loader_program_instruction_enum_close = 5,
2682 : fd_bpf_upgradeable_loader_program_instruction_enum_extend_program = 6,
2683 : fd_bpf_upgradeable_loader_program_instruction_enum_set_authority_checked = 7,
2684 : fd_bpf_upgradeable_loader_program_instruction_enum_migrate = 8,
2685 : fd_bpf_upgradeable_loader_program_instruction_enum_extend_program_checked = 9,
2686 : };
2687 : void fd_bpf_upgradeable_loader_state_buffer_new( fd_bpf_upgradeable_loader_state_buffer_t * self );
2688 : int fd_bpf_upgradeable_loader_state_buffer_encode( fd_bpf_upgradeable_loader_state_buffer_t const * self, fd_bincode_encode_ctx_t * ctx );
2689 : ulong fd_bpf_upgradeable_loader_state_buffer_size( fd_bpf_upgradeable_loader_state_buffer_t const * self );
2690 0 : static inline ulong fd_bpf_upgradeable_loader_state_buffer_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_BUFFER_ALIGN; }
2691 : int fd_bpf_upgradeable_loader_state_buffer_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2692 : void * fd_bpf_upgradeable_loader_state_buffer_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2693 :
2694 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) ); }
2695 : int fd_bpf_upgradeable_loader_state_program_encode( fd_bpf_upgradeable_loader_state_program_t const * self, fd_bincode_encode_ctx_t * ctx );
2696 0 : static inline ulong fd_bpf_upgradeable_loader_state_program_size( fd_bpf_upgradeable_loader_state_program_t const * self ) { (void)self; return 32UL; }
2697 0 : static inline ulong fd_bpf_upgradeable_loader_state_program_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_ALIGN; }
2698 0 : static inline int fd_bpf_upgradeable_loader_state_program_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2699 0 : *total_sz += sizeof(fd_bpf_upgradeable_loader_state_program_t);
2700 0 : if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2701 0 : return 0;
2702 0 : }
2703 : void * fd_bpf_upgradeable_loader_state_program_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2704 :
2705 : void fd_bpf_upgradeable_loader_state_program_data_new( fd_bpf_upgradeable_loader_state_program_data_t * self );
2706 : 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 );
2707 : ulong fd_bpf_upgradeable_loader_state_program_data_size( fd_bpf_upgradeable_loader_state_program_data_t const * self );
2708 0 : static inline ulong fd_bpf_upgradeable_loader_state_program_data_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_DATA_ALIGN; }
2709 : int fd_bpf_upgradeable_loader_state_program_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2710 : void * fd_bpf_upgradeable_loader_state_program_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2711 :
2712 : void fd_bpf_upgradeable_loader_state_new_disc( fd_bpf_upgradeable_loader_state_t * self, uint discriminant );
2713 : void fd_bpf_upgradeable_loader_state_new( fd_bpf_upgradeable_loader_state_t * self );
2714 : int fd_bpf_upgradeable_loader_state_encode( fd_bpf_upgradeable_loader_state_t const * self, fd_bincode_encode_ctx_t * ctx );
2715 : ulong fd_bpf_upgradeable_loader_state_size( fd_bpf_upgradeable_loader_state_t const * self );
2716 0 : static inline ulong fd_bpf_upgradeable_loader_state_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_ALIGN; }
2717 : int fd_bpf_upgradeable_loader_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2718 : void * fd_bpf_upgradeable_loader_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2719 :
2720 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_uninitialized( fd_bpf_upgradeable_loader_state_t const * self );
2721 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_buffer( fd_bpf_upgradeable_loader_state_t const * self );
2722 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_program( fd_bpf_upgradeable_loader_state_t const * self );
2723 : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_program_data( fd_bpf_upgradeable_loader_state_t const * self );
2724 : enum {
2725 : fd_bpf_upgradeable_loader_state_enum_uninitialized = 0,
2726 : fd_bpf_upgradeable_loader_state_enum_buffer = 1,
2727 : fd_bpf_upgradeable_loader_state_enum_program = 2,
2728 : fd_bpf_upgradeable_loader_state_enum_program_data = 3,
2729 : };
2730 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) ); }
2731 : int fd_loader_v4_state_encode( fd_loader_v4_state_t const * self, fd_bincode_encode_ctx_t * ctx );
2732 0 : static inline ulong fd_loader_v4_state_size( fd_loader_v4_state_t const * self ) { (void)self; return 48UL; }
2733 0 : static inline ulong fd_loader_v4_state_align( void ) { return FD_LOADER_V4_STATE_ALIGN; }
2734 0 : static inline int fd_loader_v4_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2735 0 : *total_sz += sizeof(fd_loader_v4_state_t);
2736 0 : if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2737 0 : return 0;
2738 0 : }
2739 : void * fd_loader_v4_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2740 :
2741 : void fd_frozen_hash_status_new( fd_frozen_hash_status_t * self );
2742 : int fd_frozen_hash_status_encode( fd_frozen_hash_status_t const * self, fd_bincode_encode_ctx_t * ctx );
2743 0 : static inline ulong fd_frozen_hash_status_size( fd_frozen_hash_status_t const * self ) { (void)self; return 33UL; }
2744 0 : static inline ulong fd_frozen_hash_status_align( void ) { return FD_FROZEN_HASH_STATUS_ALIGN; }
2745 : int fd_frozen_hash_status_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2746 : void * fd_frozen_hash_status_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2747 :
2748 : void fd_frozen_hash_versioned_new_disc( fd_frozen_hash_versioned_t * self, uint discriminant );
2749 : void fd_frozen_hash_versioned_new( fd_frozen_hash_versioned_t * self );
2750 : int fd_frozen_hash_versioned_encode( fd_frozen_hash_versioned_t const * self, fd_bincode_encode_ctx_t * ctx );
2751 : ulong fd_frozen_hash_versioned_size( fd_frozen_hash_versioned_t const * self );
2752 0 : static inline ulong fd_frozen_hash_versioned_align( void ) { return FD_FROZEN_HASH_VERSIONED_ALIGN; }
2753 : int fd_frozen_hash_versioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2754 : void * fd_frozen_hash_versioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2755 :
2756 : FD_FN_PURE uchar fd_frozen_hash_versioned_is_current( fd_frozen_hash_versioned_t const * self );
2757 : enum {
2758 : fd_frozen_hash_versioned_enum_current = 0,
2759 : };
2760 : void fd_lookup_table_meta_new( fd_lookup_table_meta_t * self );
2761 : int fd_lookup_table_meta_encode( fd_lookup_table_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
2762 : ulong fd_lookup_table_meta_size( fd_lookup_table_meta_t const * self );
2763 0 : static inline ulong fd_lookup_table_meta_align( void ) { return FD_LOOKUP_TABLE_META_ALIGN; }
2764 : int fd_lookup_table_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2765 : void * fd_lookup_table_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2766 :
2767 : void fd_address_lookup_table_new( fd_address_lookup_table_t * self );
2768 : int fd_address_lookup_table_encode( fd_address_lookup_table_t const * self, fd_bincode_encode_ctx_t * ctx );
2769 : ulong fd_address_lookup_table_size( fd_address_lookup_table_t const * self );
2770 0 : static inline ulong fd_address_lookup_table_align( void ) { return FD_ADDRESS_LOOKUP_TABLE_ALIGN; }
2771 : int fd_address_lookup_table_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2772 : void * fd_address_lookup_table_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2773 :
2774 : void fd_address_lookup_table_state_new_disc( fd_address_lookup_table_state_t * self, uint discriminant );
2775 : void fd_address_lookup_table_state_new( fd_address_lookup_table_state_t * self );
2776 : int fd_address_lookup_table_state_encode( fd_address_lookup_table_state_t const * self, fd_bincode_encode_ctx_t * ctx );
2777 : ulong fd_address_lookup_table_state_size( fd_address_lookup_table_state_t const * self );
2778 0 : static inline ulong fd_address_lookup_table_state_align( void ) { return FD_ADDRESS_LOOKUP_TABLE_STATE_ALIGN; }
2779 : int fd_address_lookup_table_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2780 : void * fd_address_lookup_table_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2781 :
2782 : FD_FN_PURE uchar fd_address_lookup_table_state_is_uninitialized( fd_address_lookup_table_state_t const * self );
2783 : FD_FN_PURE uchar fd_address_lookup_table_state_is_lookup_table( fd_address_lookup_table_state_t const * self );
2784 : enum {
2785 : fd_address_lookup_table_state_enum_uninitialized = 0,
2786 : fd_address_lookup_table_state_enum_lookup_table = 1,
2787 : };
2788 0 : static inline void fd_addrlut_create_new( fd_addrlut_create_t * self ) { fd_memset( self, 0, sizeof(fd_addrlut_create_t) ); }
2789 : int fd_addrlut_create_encode( fd_addrlut_create_t const * self, fd_bincode_encode_ctx_t * ctx );
2790 0 : static inline ulong fd_addrlut_create_size( fd_addrlut_create_t const * self ) { (void)self; return 9UL; }
2791 0 : static inline ulong fd_addrlut_create_align( void ) { return FD_ADDRLUT_CREATE_ALIGN; }
2792 0 : static inline int fd_addrlut_create_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
2793 0 : *total_sz += sizeof(fd_addrlut_create_t);
2794 0 : if( (ulong)ctx->data + 9UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
2795 0 : return 0;
2796 0 : }
2797 : void * fd_addrlut_create_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2798 :
2799 : void fd_addrlut_extend_new( fd_addrlut_extend_t * self );
2800 : int fd_addrlut_extend_encode( fd_addrlut_extend_t const * self, fd_bincode_encode_ctx_t * ctx );
2801 : ulong fd_addrlut_extend_size( fd_addrlut_extend_t const * self );
2802 0 : static inline ulong fd_addrlut_extend_align( void ) { return FD_ADDRLUT_EXTEND_ALIGN; }
2803 : int fd_addrlut_extend_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2804 : void * fd_addrlut_extend_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2805 :
2806 : void fd_addrlut_instruction_new_disc( fd_addrlut_instruction_t * self, uint discriminant );
2807 : void fd_addrlut_instruction_new( fd_addrlut_instruction_t * self );
2808 : int fd_addrlut_instruction_encode( fd_addrlut_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
2809 : ulong fd_addrlut_instruction_size( fd_addrlut_instruction_t const * self );
2810 0 : static inline ulong fd_addrlut_instruction_align( void ) { return FD_ADDRLUT_INSTRUCTION_ALIGN; }
2811 : int fd_addrlut_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
2812 : void * fd_addrlut_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
2813 :
2814 : FD_FN_PURE uchar fd_addrlut_instruction_is_create_lut( fd_addrlut_instruction_t const * self );
2815 : FD_FN_PURE uchar fd_addrlut_instruction_is_freeze_lut( fd_addrlut_instruction_t const * self );
2816 : FD_FN_PURE uchar fd_addrlut_instruction_is_extend_lut( fd_addrlut_instruction_t const * self );
2817 : FD_FN_PURE uchar fd_addrlut_instruction_is_deactivate_lut( fd_addrlut_instruction_t const * self );
2818 : FD_FN_PURE uchar fd_addrlut_instruction_is_close_lut( fd_addrlut_instruction_t const * self );
2819 : enum {
2820 : fd_addrlut_instruction_enum_create_lut = 0,
2821 : fd_addrlut_instruction_enum_freeze_lut = 1,
2822 : fd_addrlut_instruction_enum_extend_lut = 2,
2823 : fd_addrlut_instruction_enum_deactivate_lut = 3,
2824 : fd_addrlut_instruction_enum_close_lut = 4,
2825 : };
2826 : FD_PROTOTYPES_END
2827 :
2828 : #endif // HEADER_FD_RUNTIME_TYPES
|