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