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

Generated by: LCOV version 1.14