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

Generated by: LCOV version 1.14