LCOV - code coverage report
Current view: top level - flamenco/types - fd_types.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 53 565 9.4 %
Date: 2025-12-20 04:58:29 Functions: 23 51704 0.1 %

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

Generated by: LCOV version 1.14