LCOV - code coverage report
Current view: top level - flamenco/types - fd_types.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 92 756 12.2 %
Date: 2025-10-20 04:43:11 Functions: 34 66675 0.1 %

          Line data    Source code
       1             : // This is an auto-generated file. To add entries, edit fd_types.json
       2             : #ifndef HEADER_FD_RUNTIME_TYPES
       3             : #define HEADER_FD_RUNTIME_TYPES
       4             : 
       5             : #include "fd_bincode.h"
       6             : #include "../../ballet/utf8/fd_utf8.h"
       7             : #include "fd_types_custom.h"
       8             : 
       9             : /* sdk/program/src/feature.rs#L22 */
      10             : /* Encoded Size: Dynamic */
      11             : struct fd_feature {
      12             :   ulong activated_at;
      13             :   uchar has_activated_at;
      14             : };
      15             : typedef struct fd_feature fd_feature_t;
      16           0 : #define FD_FEATURE_ALIGN alignof(fd_feature_t)
      17             : 
      18             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/fee_calculator.rs#L9 */
      19             : /* Encoded Size: Fixed (8 bytes) */
      20             : struct fd_fee_calculator {
      21             :   ulong lamports_per_signature;
      22             : };
      23             : typedef struct fd_fee_calculator fd_fee_calculator_t;
      24             : #define FD_FEE_CALCULATOR_ALIGN alignof(fd_fee_calculator_t)
      25             : 
      26             : /* Encoded Size: Fixed (33 bytes) */
      27             : struct fd_fee_rate_governor {
      28             :   ulong target_lamports_per_signature;
      29             :   ulong target_signatures_per_slot;
      30             :   ulong min_lamports_per_signature;
      31             :   ulong max_lamports_per_signature;
      32             :   uchar burn_percent;
      33             : };
      34             : typedef struct fd_fee_rate_governor fd_fee_rate_governor_t;
      35             : #define FD_FEE_RATE_GOVERNOR_ALIGN alignof(fd_fee_rate_governor_t)
      36             : 
      37             : /* Encoded Size: Fixed (16 bytes) */
      38             : struct fd_slot_pair {
      39             :   ulong slot;
      40             :   ulong val;
      41             : };
      42             : typedef struct fd_slot_pair fd_slot_pair_t;
      43           0 : #define FD_SLOT_PAIR_ALIGN alignof(fd_slot_pair_t)
      44             : 
      45             : /* Encoded Size: Dynamic */
      46             : struct fd_hard_forks {
      47             :   ulong hard_forks_len;
      48             :   fd_slot_pair_t * hard_forks;
      49             : };
      50             : typedef struct fd_hard_forks fd_hard_forks_t;
      51             : #define FD_HARD_FORKS_ALIGN alignof(fd_hard_forks_t)
      52             : 
      53             : struct fd_hard_forks_global {
      54             :   ulong hard_forks_len;
      55             :   ulong hard_forks_offset;
      56             : };
      57             : typedef struct fd_hard_forks_global fd_hard_forks_global_t;
      58             : #define FD_HARD_FORKS_GLOBAL_ALIGN alignof(fd_hard_forks_global_t)
      59             : 
      60           0 : FD_FN_UNUSED static fd_slot_pair_t * fd_hard_forks_hard_forks_join( fd_hard_forks_global_t const * struct_mem ) { // vector
      61           0 :   return struct_mem->hard_forks_offset ? (fd_slot_pair_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->hard_forks_offset ) : NULL;
      62           0 : }
      63           0 : FD_FN_UNUSED static void fd_hard_forks_hard_forks_update( fd_hard_forks_global_t * struct_mem, fd_slot_pair_t * vec ) {
      64           0 :   struct_mem->hard_forks_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
      65           0 : }
      66             : /* Encoded Size: Fixed (48 bytes) */
      67             : struct fd_inflation {
      68             :   double initial;
      69             :   double terminal;
      70             :   double taper;
      71             :   double foundation;
      72             :   double foundation_term;
      73             :   double unused;
      74             : };
      75             : typedef struct fd_inflation fd_inflation_t;
      76             : #define FD_INFLATION_ALIGN alignof(fd_inflation_t)
      77             : 
      78             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/rent.rs#L11 */
      79             : /* Encoded Size: Fixed (17 bytes) */
      80             : struct fd_rent {
      81             :   ulong lamports_per_uint8_year;
      82             :   double exemption_threshold;
      83             :   uchar burn_percent;
      84             : };
      85             : typedef struct fd_rent fd_rent_t;
      86           3 : #define FD_RENT_ALIGN alignof(fd_rent_t)
      87             : 
      88             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/epoch_schedule.rs#L26 */
      89             : /* Encoded Size: Fixed (33 bytes) */
      90             : struct fd_epoch_schedule {
      91             :   ulong slots_per_epoch;
      92             :   ulong leader_schedule_slot_offset;
      93             :   uchar warmup;
      94             :   ulong first_normal_epoch;
      95             :   ulong first_normal_slot;
      96             : };
      97             : typedef struct fd_epoch_schedule fd_epoch_schedule_t;
      98           3 : #define FD_EPOCH_SCHEDULE_ALIGN alignof(fd_epoch_schedule_t)
      99             : 
     100             : /* Encoded Size: Fixed (66 bytes) */
     101             : struct fd_rent_collector {
     102             :   ulong epoch;
     103             :   fd_epoch_schedule_t epoch_schedule;
     104             :   double slots_per_year;
     105             :   fd_rent_t rent;
     106             : };
     107             : typedef struct fd_rent_collector fd_rent_collector_t;
     108             : #define FD_RENT_COLLECTOR_ALIGN alignof(fd_rent_collector_t)
     109             : 
     110             : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L17 */
     111             : /* Encoded Size: Fixed (24 bytes) */
     112             : struct fd_stake_history_entry {
     113             :   ulong effective;
     114             :   ulong activating;
     115             :   ulong deactivating;
     116             : };
     117             : typedef struct fd_stake_history_entry fd_stake_history_entry_t;
     118             : #define FD_STAKE_HISTORY_ENTRY_ALIGN alignof(fd_stake_history_entry_t)
     119             : 
     120             : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L66 */
     121             : /* Encoded Size: Fixed (32 bytes) */
     122             : struct fd_epoch_stake_history_entry_pair {
     123             :   ulong epoch;
     124             :   fd_stake_history_entry_t entry;
     125             : };
     126             : typedef struct fd_epoch_stake_history_entry_pair fd_epoch_stake_history_entry_pair_t;
     127             : #define FD_EPOCH_STAKE_HISTORY_ENTRY_PAIR_ALIGN alignof(fd_epoch_stake_history_entry_pair_t)
     128             : 
     129             : /* https://github.com/solana-program/stake/blob/330d89c6246ab3fd35d02803386fa700be0455d6/interface/src/stake_history.rs#L66 */
     130             : /* Encoded Size: Fixed (16392 bytes) */
     131             : struct fd_stake_history {
     132             :   ulong fd_stake_history_len;
     133             :   ulong fd_stake_history_size;
     134             :   ulong fd_stake_history_offset;
     135             :   fd_epoch_stake_history_entry_pair_t fd_stake_history[512];
     136             : };
     137             : typedef struct fd_stake_history fd_stake_history_t;
     138           3 : #define FD_STAKE_HISTORY_ALIGN alignof(fd_stake_history_t)
     139             : 
     140             : /* https://github.com/anza-xyz/agave/blob/6ac4fe32e28d8ceb4085072b61fa0c6cb09baac1/sdk/src/account.rs#L37 */
     141             : /* Encoded Size: Dynamic */
     142             : struct fd_solana_account {
     143             :   ulong lamports;
     144             :   ulong data_len;
     145             :   uchar* data;
     146             :   fd_pubkey_t owner;
     147             :   uchar executable;
     148             :   ulong rent_epoch;
     149             : };
     150             : typedef struct fd_solana_account fd_solana_account_t;
     151             : #define FD_SOLANA_ACCOUNT_ALIGN alignof(fd_solana_account_t)
     152             : 
     153             : struct fd_solana_account_global {
     154             :   ulong lamports;
     155             :   ulong data_len;
     156             :   ulong data_offset;
     157             :   fd_pubkey_t owner;
     158             :   uchar executable;
     159             :   ulong rent_epoch;
     160             : };
     161             : typedef struct fd_solana_account_global fd_solana_account_global_t;
     162             : #define FD_SOLANA_ACCOUNT_GLOBAL_ALIGN alignof(fd_solana_account_global_t)
     163             : 
     164           0 : FD_FN_UNUSED static uchar * fd_solana_account_data_join( fd_solana_account_global_t const * struct_mem ) { // vector
     165           0 :   return struct_mem->data_offset ? (uchar *)fd_type_pun( (uchar *)struct_mem + struct_mem->data_offset ) : NULL;
     166           0 : }
     167           0 : FD_FN_UNUSED static void fd_solana_account_data_update( fd_solana_account_global_t * struct_mem, uchar * vec ) {
     168           0 :   struct_mem->data_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     169           0 : }
     170             : /* Encoded Size: Fixed (48 bytes) */
     171             : struct __attribute__((packed)) fd_solana_account_stored_meta {
     172             :   ulong write_version_obsolete;
     173             :   ulong data_len;
     174             :   uchar pubkey[32];
     175             : };
     176             : typedef struct fd_solana_account_stored_meta fd_solana_account_stored_meta_t;
     177             : #define FD_SOLANA_ACCOUNT_STORED_META_ALIGN (8UL)
     178             : 
     179             : /* Encoded Size: Fixed (52 bytes) */
     180             : struct __attribute__((packed)) fd_solana_account_meta {
     181             :   ulong lamports;
     182             :   ulong rent_epoch;
     183             :   uchar owner[32];
     184             :   uchar executable;
     185             :   uchar padding[3];
     186             : };
     187             : typedef struct fd_solana_account_meta fd_solana_account_meta_t;
     188             : #define FD_SOLANA_ACCOUNT_META_ALIGN (8UL)
     189             : 
     190             : /* Encoded Size: Fixed (136 bytes) */
     191             : struct __attribute__((packed)) fd_solana_account_hdr {
     192             :   fd_solana_account_stored_meta_t meta;
     193             :   fd_solana_account_meta_t info;
     194             :   uchar padding[4];
     195             :   fd_hash_t hash;
     196             : };
     197             : typedef struct fd_solana_account_hdr fd_solana_account_hdr_t;
     198             : #define FD_SOLANA_ACCOUNT_HDR_ALIGN (8UL)
     199             : 
     200             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L303 */
     201             : /* Encoded Size: Fixed (64 bytes) */
     202             : struct fd_delegation {
     203             :   fd_pubkey_t voter_pubkey;
     204             :   ulong stake;
     205             :   ulong activation_epoch;
     206             :   ulong deactivation_epoch;
     207             :   double warmup_cooldown_rate;
     208             : };
     209             : typedef struct fd_delegation fd_delegation_t;
     210             : #define FD_DELEGATION_ALIGN alignof(fd_delegation_t)
     211             : 
     212             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L539 */
     213             : /* Encoded Size: Fixed (72 bytes) */
     214             : struct fd_stake {
     215             :   fd_delegation_t delegation;
     216             :   ulong credits_observed;
     217             : };
     218             : typedef struct fd_stake fd_stake_t;
     219             : #define FD_STAKE_ALIGN alignof(fd_stake_t)
     220             : 
     221             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/sdk/src/reward_type.rs#L7 */
     222             : struct fd_reward_type {
     223             :   uint discriminant;
     224             : };
     225             : typedef struct fd_reward_type fd_reward_type_t;
     226             : #define FD_REWARD_TYPE_ALIGN alignof(fd_reward_type_t)
     227             : 
     228             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/sdk/src/reward_info.rs#L5 */
     229             : /* Encoded Size: Fixed (28 bytes) */
     230             : struct fd_reward_info {
     231             :   fd_reward_type_t reward_type;
     232             :   ulong lamports;
     233             :   ulong post_balance;
     234             :   ulong commission;
     235             : };
     236             : typedef struct fd_reward_info fd_reward_info_t;
     237             : #define FD_REWARD_INFO_ALIGN alignof(fd_reward_info_t)
     238             : 
     239             : /* Encoded Size: Fixed (12 bytes) */
     240             : struct fd_rust_duration {
     241             :   ulong seconds;
     242             :   uint nanoseconds;
     243             : };
     244             : typedef struct fd_rust_duration fd_rust_duration_t;
     245             : #define FD_RUST_DURATION_ALIGN alignof(fd_rust_duration_t)
     246             : 
     247             : /* Encoded Size: Dynamic */
     248             : struct fd_poh_config {
     249             :   fd_rust_duration_t target_tick_duration;
     250             :   ulong target_tick_count;
     251             :   uchar has_target_tick_count;
     252             :   ulong hashes_per_tick;
     253             :   uchar has_hashes_per_tick;
     254             : };
     255             : typedef struct fd_poh_config fd_poh_config_t;
     256             : #define FD_POH_CONFIG_ALIGN alignof(fd_poh_config_t)
     257             : 
     258             : struct fd_poh_config_global {
     259             :   fd_rust_duration_t target_tick_duration;
     260             :   ulong target_tick_count;
     261             :   uchar has_target_tick_count;
     262             :   ulong hashes_per_tick;
     263             :   uchar has_hashes_per_tick;
     264             : };
     265             : typedef struct fd_poh_config_global fd_poh_config_global_t;
     266             : #define FD_POH_CONFIG_GLOBAL_ALIGN alignof(fd_poh_config_global_t)
     267             : 
     268             : /* Encoded Size: Dynamic */
     269             : struct fd_string_pubkey_pair {
     270             :   ulong string_len;
     271             :   uchar* string;
     272             :   fd_pubkey_t pubkey;
     273             : };
     274             : typedef struct fd_string_pubkey_pair fd_string_pubkey_pair_t;
     275           0 : #define FD_STRING_PUBKEY_PAIR_ALIGN alignof(fd_string_pubkey_pair_t)
     276             : 
     277             : struct fd_string_pubkey_pair_global {
     278             :   ulong string_len;
     279             :   ulong string_offset;
     280             :   fd_pubkey_t pubkey;
     281             : };
     282             : typedef struct fd_string_pubkey_pair_global fd_string_pubkey_pair_global_t;
     283             : #define FD_STRING_PUBKEY_PAIR_GLOBAL_ALIGN alignof(fd_string_pubkey_pair_global_t)
     284             : 
     285           0 : FD_FN_UNUSED static uchar * fd_string_pubkey_pair_string_join( fd_string_pubkey_pair_global_t const * struct_mem ) { // vector
     286           0 :   return struct_mem->string_offset ? (uchar *)fd_type_pun( (uchar *)struct_mem + struct_mem->string_offset ) : NULL;
     287           0 : }
     288           0 : FD_FN_UNUSED static void fd_string_pubkey_pair_string_update( fd_string_pubkey_pair_global_t * struct_mem, uchar * vec ) {
     289           0 :   struct_mem->string_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     290           0 : }
     291             : /* Encoded Size: Dynamic */
     292             : struct fd_pubkey_account_pair {
     293             :   fd_pubkey_t key;
     294             :   fd_solana_account_t account;
     295             : };
     296             : typedef struct fd_pubkey_account_pair fd_pubkey_account_pair_t;
     297           0 : #define FD_PUBKEY_ACCOUNT_PAIR_ALIGN alignof(fd_pubkey_account_pair_t)
     298             : 
     299             : struct fd_pubkey_account_pair_global {
     300             :   fd_pubkey_t key;
     301             :   fd_solana_account_global_t account;
     302             : };
     303             : typedef struct fd_pubkey_account_pair_global fd_pubkey_account_pair_global_t;
     304             : #define FD_PUBKEY_ACCOUNT_PAIR_GLOBAL_ALIGN alignof(fd_pubkey_account_pair_global_t)
     305             : 
     306             : /* Encoded Size: Dynamic */
     307             : struct fd_genesis_solana {
     308             :   ulong creation_time;
     309             :   ulong accounts_len;
     310             :   fd_pubkey_account_pair_t * accounts;
     311             :   ulong native_instruction_processors_len;
     312             :   fd_string_pubkey_pair_t * native_instruction_processors;
     313             :   ulong rewards_pools_len;
     314             :   fd_pubkey_account_pair_t * rewards_pools;
     315             :   ulong ticks_per_slot;
     316             :   ulong unused;
     317             :   fd_poh_config_t poh_config;
     318             :   ulong __backwards_compat_with_v0_23;
     319             :   fd_fee_rate_governor_t fee_rate_governor;
     320             :   fd_rent_t rent;
     321             :   fd_inflation_t inflation;
     322             :   fd_epoch_schedule_t epoch_schedule;
     323             :   uint cluster_type;
     324             : };
     325             : typedef struct fd_genesis_solana fd_genesis_solana_t;
     326             : #define FD_GENESIS_SOLANA_ALIGN alignof(fd_genesis_solana_t)
     327             : 
     328             : struct fd_genesis_solana_global {
     329             :   ulong creation_time;
     330             :   ulong accounts_len;
     331             :   ulong accounts_offset;
     332             :   ulong native_instruction_processors_len;
     333             :   ulong native_instruction_processors_offset;
     334             :   ulong rewards_pools_len;
     335             :   ulong rewards_pools_offset;
     336             :   ulong ticks_per_slot;
     337             :   ulong unused;
     338             :   fd_poh_config_global_t poh_config;
     339             :   ulong __backwards_compat_with_v0_23;
     340             :   fd_fee_rate_governor_t fee_rate_governor;
     341             :   fd_rent_t rent;
     342             :   fd_inflation_t inflation;
     343             :   fd_epoch_schedule_t epoch_schedule;
     344             :   uint cluster_type;
     345             : };
     346             : typedef struct fd_genesis_solana_global fd_genesis_solana_global_t;
     347             : #define FD_GENESIS_SOLANA_GLOBAL_ALIGN alignof(fd_genesis_solana_global_t)
     348             : 
     349           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
     350           0 :   return struct_mem->accounts_offset ? (fd_pubkey_account_pair_global_t *)fd_type_pun( (uchar *)struct_mem + struct_mem->accounts_offset ) : NULL;
     351           0 : }
     352           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 ) {
     353           0 :   struct_mem->accounts_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     354           0 : }
     355           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
     356           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;
     357           0 : }
     358           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 ) {
     359           0 :   struct_mem->native_instruction_processors_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     360           0 : }
     361           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
     362           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;
     363           0 : }
     364           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 ) {
     365           0 :   struct_mem->rewards_pools_offset = !!vec ? (ulong)vec - (ulong)struct_mem : 0UL;
     366           0 : }
     367             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/clock.rs#L114 */
     368             : /* Encoded Size: Fixed (40 bytes) */
     369             : struct fd_sol_sysvar_clock {
     370             :   ulong slot;
     371             :   long epoch_start_timestamp;
     372             :   ulong epoch;
     373             :   ulong leader_schedule_epoch;
     374             :   long unix_timestamp;
     375             : };
     376             : typedef struct fd_sol_sysvar_clock fd_sol_sysvar_clock_t;
     377           3 : #define FD_SOL_SYSVAR_CLOCK_ALIGN alignof(fd_sol_sysvar_clock_t)
     378             : 
     379             : /* https://github.com/solana-labs/solana/blob/30531d7a5b74f914dde53bfbb0bc2144f2ac92bb/sdk/program/src/last_restart_slot.rs#L7 */
     380             : /* Encoded Size: Fixed (8 bytes) */
     381             : struct fd_sol_sysvar_last_restart_slot {
     382             :   ulong slot;
     383             : };
     384             : typedef struct fd_sol_sysvar_last_restart_slot fd_sol_sysvar_last_restart_slot_t;
     385           3 : #define FD_SOL_SYSVAR_LAST_RESTART_SLOT_ALIGN alignof(fd_sol_sysvar_last_restart_slot_t)
     386             : 
     387             : /* Encoded Size: Fixed (12 bytes) */
     388             : struct fd_vote_lockout {
     389             :   ulong slot;
     390             :   uint confirmation_count;
     391             : };
     392             : typedef struct fd_vote_lockout fd_vote_lockout_t;
     393             : #define FD_VOTE_LOCKOUT_ALIGN alignof(fd_vote_lockout_t)
     394             : 
     395             : /* Encoded Size: Dynamic */
     396             : struct fd_lockout_offset {
     397             :   ulong offset;
     398             :   uchar confirmation_count;
     399             : };
     400             : typedef struct fd_lockout_offset fd_lockout_offset_t;
     401           0 : #define FD_LOCKOUT_OFFSET_ALIGN alignof(fd_lockout_offset_t)
     402             : 
     403             : /* https://github.com/firedancer-io/solana/blob/da470eef4652b3b22598a1f379cacfe82bd5928d/sdk/program/src/vote/authorized_voters.rs#L9 */
     404             : /* Encoded Size: Fixed (40 bytes) */
     405             : struct fd_vote_authorized_voter {
     406             :   ulong epoch;
     407             :   fd_pubkey_t pubkey;
     408             :   ulong parent;
     409             :   ulong left;
     410             :   ulong right;
     411             :   ulong prio;
     412             : };
     413             : typedef struct fd_vote_authorized_voter fd_vote_authorized_voter_t;
     414             : #define FD_VOTE_AUTHORIZED_VOTER_ALIGN alignof(fd_vote_authorized_voter_t)
     415             : 
     416             : /* Encoded Size: Fixed (48 bytes) */
     417             : struct fd_vote_prior_voter {
     418             :   fd_pubkey_t pubkey;
     419             :   ulong epoch_start;
     420             :   ulong epoch_end;
     421             : };
     422             : typedef struct fd_vote_prior_voter fd_vote_prior_voter_t;
     423             : #define FD_VOTE_PRIOR_VOTER_ALIGN alignof(fd_vote_prior_voter_t)
     424             : 
     425             : /* Encoded Size: Fixed (56 bytes) */
     426             : struct fd_vote_prior_voter_0_23_5 {
     427             :   fd_pubkey_t pubkey;
     428             :   ulong epoch_start;
     429             :   ulong epoch_end;
     430             :   ulong slot;
     431             : };
     432             : typedef struct fd_vote_prior_voter_0_23_5 fd_vote_prior_voter_0_23_5_t;
     433             : #define FD_VOTE_PRIOR_VOTER_0_23_5_ALIGN alignof(fd_vote_prior_voter_0_23_5_t)
     434             : 
     435             : /* Encoded Size: Fixed (24 bytes) */
     436             : struct fd_vote_epoch_credits {
     437             :   ulong epoch;
     438             :   ulong credits;
     439             :   ulong prev_credits;
     440             : };
     441             : typedef struct fd_vote_epoch_credits fd_vote_epoch_credits_t;
     442             : #define FD_VOTE_EPOCH_CREDITS_ALIGN alignof(fd_vote_epoch_credits_t)
     443             : 
     444             : /* Encoded Size: Fixed (16 bytes) */
     445             : struct fd_vote_block_timestamp {
     446             :   ulong slot;
     447             :   long timestamp;
     448             : };
     449             : typedef struct fd_vote_block_timestamp fd_vote_block_timestamp_t;
     450             : #define FD_VOTE_BLOCK_TIMESTAMP_ALIGN alignof(fd_vote_block_timestamp_t)
     451             : 
     452             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
     453             : /* Encoded Size: Fixed (1545 bytes) */
     454             : struct fd_vote_prior_voters {
     455             :   fd_vote_prior_voter_t buf[32];
     456             :   ulong idx;
     457             :   uchar is_empty;
     458             : };
     459             : typedef struct fd_vote_prior_voters fd_vote_prior_voters_t;
     460             : #define FD_VOTE_PRIOR_VOTERS_ALIGN alignof(fd_vote_prior_voters_t)
     461             : 
     462             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
     463             : /* Encoded Size: Fixed (1800 bytes) */
     464             : struct fd_vote_prior_voters_0_23_5 {
     465             :   fd_vote_prior_voter_0_23_5_t buf[32];
     466             :   ulong idx;
     467             : };
     468             : typedef struct fd_vote_prior_voters_0_23_5 fd_vote_prior_voters_0_23_5_t;
     469             : #define FD_VOTE_PRIOR_VOTERS_0_23_5_ALIGN alignof(fd_vote_prior_voters_0_23_5_t)
     470             : 
     471             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L268 */
     472             : /* Encoded Size: Fixed (13 bytes) */
     473             : struct fd_landed_vote {
     474             :   uchar latency;
     475             :   fd_vote_lockout_t lockout;
     476             : };
     477             : typedef struct fd_landed_vote fd_landed_vote_t;
     478             : #define FD_LANDED_VOTE_ALIGN alignof(fd_landed_vote_t)
     479             : 
     480             : #define DEQUE_NAME deq_fd_vote_lockout_t
     481           0 : #define DEQUE_T fd_vote_lockout_t
     482             : #include "../../util/tmpl/fd_deque_dynamic.c"
     483             : #undef DEQUE_NAME
     484             : #undef DEQUE_T
     485             : #undef DEQUE_MAX
     486             : static inline fd_vote_lockout_t *
     487           0 : deq_fd_vote_lockout_t_join_new( void * * alloc_mem, ulong max ) {
     488           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
     489           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_vote_lockout_t_align() );
     490           0 :   void * deque_mem = *alloc_mem;
     491           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_vote_lockout_t_footprint( max );
     492           0 :   return deq_fd_vote_lockout_t_join( deq_fd_vote_lockout_t_new( deque_mem, max ) );
     493           0 : }
     494             : 
     495             : #define DEQUE_NAME deq_fd_vote_epoch_credits_t
     496         393 : #define DEQUE_T fd_vote_epoch_credits_t
     497             : #include "../../util/tmpl/fd_deque_dynamic.c"
     498             : #undef DEQUE_NAME
     499             : #undef DEQUE_T
     500             : #undef DEQUE_MAX
     501             : static inline fd_vote_epoch_credits_t *
     502          15 : deq_fd_vote_epoch_credits_t_join_new( void * * alloc_mem, ulong max ) {
     503          15 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
     504          15 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_vote_epoch_credits_t_align() );
     505          15 :   void * deque_mem = *alloc_mem;
     506          15 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_vote_epoch_credits_t_footprint( max );
     507          15 :   return deq_fd_vote_epoch_credits_t_join( deq_fd_vote_epoch_credits_t_new( deque_mem, max ) );
     508          15 : }
     509             : 
     510             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/vote_state_0_23_5.rs#L6 */
     511             : /* Encoded Size: Dynamic */
     512             : struct fd_vote_state_0_23_5 {
     513             :   fd_pubkey_t node_pubkey;
     514             :   fd_pubkey_t authorized_voter;
     515             :   ulong authorized_voter_epoch;
     516             :   fd_vote_prior_voters_0_23_5_t prior_voters;
     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_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
     523             :   fd_vote_block_timestamp_t last_timestamp;
     524             : };
     525             : typedef struct fd_vote_state_0_23_5 fd_vote_state_0_23_5_t;
     526             : #define FD_VOTE_STATE_0_23_5_ALIGN alignof(fd_vote_state_0_23_5_t)
     527             : 
     528          30 : #define FD_VOTE_AUTHORIZED_VOTERS_MIN 64
     529             : #define POOL_NAME fd_vote_authorized_voters_pool
     530          54 : #define POOL_T fd_vote_authorized_voter_t
     531         999 : #define POOL_NEXT parent
     532             : #include "../../util/tmpl/fd_pool.c"
     533             : static inline fd_vote_authorized_voter_t *
     534          15 : fd_vote_authorized_voters_pool_join_new( void * * alloc_mem, ulong num ) {
     535          15 :   if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
     536          15 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_authorized_voters_pool_align() );
     537          15 :   void * pool_mem = *alloc_mem;
     538          15 :   *alloc_mem = (uchar *)*alloc_mem + fd_vote_authorized_voters_pool_footprint( num );
     539          15 :   return fd_vote_authorized_voters_pool_join( fd_vote_authorized_voters_pool_new( pool_mem, num ) );
     540          15 : }
     541             : #define TREAP_NAME fd_vote_authorized_voters_treap
     542             : #define TREAP_T fd_vote_authorized_voter_t
     543             : #define TREAP_QUERY_T ulong
     544           0 : #define TREAP_CMP(q,e) ( (q == (e)->epoch) ? 0 : ( (q < (e)->epoch) ? -1 : 1 ) )
     545           0 : #define TREAP_LT(e0,e1) ((e0)->epoch<(e1)->epoch)
     546             : #include "../../util/tmpl/fd_treap.c"
     547             : static inline fd_vote_authorized_voters_treap_t *
     548          15 : fd_vote_authorized_voters_treap_join_new( void * * alloc_mem, ulong num ) {
     549          15 :   if( FD_UNLIKELY( 0 == num ) ) num = 1; // prevent underflow
     550          15 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_vote_authorized_voters_treap_align() );
     551          15 :   void * treap_mem = *alloc_mem;
     552          15 :   *alloc_mem = (uchar *)*alloc_mem + fd_vote_authorized_voters_treap_footprint( num );
     553          15 :   return fd_vote_authorized_voters_treap_join( fd_vote_authorized_voters_treap_new( treap_mem, num ) );
     554          15 : }
     555             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
     556             : /* Encoded Size: Dynamic */
     557             : struct fd_vote_authorized_voters {
     558             :   fd_vote_authorized_voter_t * pool;
     559             :   fd_vote_authorized_voters_treap_t * treap;
     560             : };
     561             : typedef struct fd_vote_authorized_voters fd_vote_authorized_voters_t;
     562             : #define FD_VOTE_AUTHORIZED_VOTERS_ALIGN alignof(fd_vote_authorized_voters_t)
     563             : 
     564             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
     565             : /* Encoded Size: Dynamic */
     566             : struct fd_vote_state_1_14_11 {
     567             :   fd_pubkey_t node_pubkey;
     568             :   fd_pubkey_t authorized_withdrawer;
     569             :   uchar commission;
     570             :   fd_vote_lockout_t * votes; /* fd_deque_dynamic (min cnt 32) */
     571             :   ulong root_slot;
     572             :   uchar has_root_slot;
     573             :   fd_vote_authorized_voters_t authorized_voters;
     574             :   fd_vote_prior_voters_t prior_voters;
     575             :   fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
     576             :   fd_vote_block_timestamp_t last_timestamp;
     577             : };
     578             : typedef struct fd_vote_state_1_14_11 fd_vote_state_1_14_11_t;
     579             : #define FD_VOTE_STATE_1_14_11_ALIGN alignof(fd_vote_state_1_14_11_t)
     580             : 
     581             : #define DEQUE_NAME deq_fd_landed_vote_t
     582         195 : #define DEQUE_T fd_landed_vote_t
     583             : #include "../../util/tmpl/fd_deque_dynamic.c"
     584             : #undef DEQUE_NAME
     585             : #undef DEQUE_T
     586             : #undef DEQUE_MAX
     587             : static inline fd_landed_vote_t *
     588          15 : deq_fd_landed_vote_t_join_new( void * * alloc_mem, ulong max ) {
     589          15 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
     590          15 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_landed_vote_t_align() );
     591          15 :   void * deque_mem = *alloc_mem;
     592          15 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_landed_vote_t_footprint( max );
     593          15 :   return deq_fd_landed_vote_t_join( deq_fd_landed_vote_t_new( deque_mem, max ) );
     594          15 : }
     595             : 
     596             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L310 */
     597             : /* Encoded Size: Dynamic */
     598             : struct fd_vote_state {
     599             :   fd_pubkey_t node_pubkey;
     600             :   fd_pubkey_t authorized_withdrawer;
     601             :   uchar commission;
     602             :   fd_landed_vote_t * votes; /* fd_deque_dynamic (min cnt 32) */
     603             :   ulong root_slot;
     604             :   uchar has_root_slot;
     605             :   fd_vote_authorized_voters_t authorized_voters;
     606             :   fd_vote_prior_voters_t prior_voters;
     607             :   fd_vote_epoch_credits_t * epoch_credits; /* fd_deque_dynamic (min cnt 64) */
     608             :   fd_vote_block_timestamp_t last_timestamp;
     609             : };
     610             : typedef struct fd_vote_state fd_vote_state_t;
     611             : #define FD_VOTE_STATE_ALIGN alignof(fd_vote_state_t)
     612             : 
     613             : union fd_vote_state_versioned_inner {
     614             :   fd_vote_state_0_23_5_t v0_23_5;
     615             :   fd_vote_state_1_14_11_t v1_14_11;
     616             :   fd_vote_state_t current;
     617             : };
     618             : typedef union fd_vote_state_versioned_inner fd_vote_state_versioned_inner_t;
     619             : 
     620             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/vote_state_versions.rs#L4 */
     621             : struct fd_vote_state_versioned {
     622             :   uint discriminant;
     623             :   fd_vote_state_versioned_inner_t inner;
     624             : };
     625             : typedef struct fd_vote_state_versioned fd_vote_state_versioned_t;
     626          33 : #define FD_VOTE_STATE_VERSIONED_ALIGN alignof(fd_vote_state_versioned_t)
     627             : 
     628             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L185 */
     629             : /* Encoded Size: Dynamic */
     630             : struct fd_vote_state_update {
     631             :   fd_vote_lockout_t * lockouts; /* fd_deque_dynamic (min cnt 32) */
     632             :   ulong root;
     633             :   uchar has_root;
     634             :   fd_hash_t hash;
     635             :   long timestamp;
     636             :   uchar has_timestamp;
     637             : };
     638             : typedef struct fd_vote_state_update fd_vote_state_update_t;
     639             : #define FD_VOTE_STATE_UPDATE_ALIGN alignof(fd_vote_state_update_t)
     640             : 
     641             : /* Encoded Size: Dynamic */
     642             : struct fd_compact_vote_state_update {
     643             :   ulong root;
     644             :   ushort lockouts_len;
     645             :   fd_lockout_offset_t * lockouts;
     646             :   fd_hash_t hash;
     647             :   long timestamp;
     648             :   uchar has_timestamp;
     649             : };
     650             : typedef struct fd_compact_vote_state_update fd_compact_vote_state_update_t;
     651             : #define FD_COMPACT_VOTE_STATE_UPDATE_ALIGN alignof(fd_compact_vote_state_update_t)
     652             : 
     653             : /* https://github.com/solana-labs/solana/blob/252438e28fbfb2c695fe1215171b83456e4b761c/programs/vote/src/vote_instruction.rs#L143 */
     654             : /* Encoded Size: Dynamic */
     655             : struct fd_compact_vote_state_update_switch {
     656             :   fd_compact_vote_state_update_t compact_vote_state_update;
     657             :   fd_hash_t hash;
     658             : };
     659             : typedef struct fd_compact_vote_state_update_switch fd_compact_vote_state_update_switch_t;
     660             : #define FD_COMPACT_VOTE_STATE_UPDATE_SWITCH_ALIGN alignof(fd_compact_vote_state_update_switch_t)
     661             : 
     662             : #define DEQUE_NAME deq_fd_lockout_offset_t
     663           0 : #define DEQUE_T fd_lockout_offset_t
     664             : #include "../../util/tmpl/fd_deque_dynamic.c"
     665             : #undef DEQUE_NAME
     666             : #undef DEQUE_T
     667             : #undef DEQUE_MAX
     668             : static inline fd_lockout_offset_t *
     669           0 : deq_fd_lockout_offset_t_join_new( void * * alloc_mem, ulong max ) {
     670           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
     671           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_lockout_offset_t_align() );
     672           0 :   void * deque_mem = *alloc_mem;
     673           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_lockout_offset_t_footprint( max );
     674           0 :   return deq_fd_lockout_offset_t_join( deq_fd_lockout_offset_t_new( deque_mem, max ) );
     675           0 : }
     676             : 
     677             : /* https://github.com/anza-xyz/agave/blob/20ee70cd1829cd414d09040460defecf9792a370/sdk/program/src/vote/state/mod.rs#L990 */
     678             : /* Encoded Size: Dynamic */
     679             : struct fd_compact_tower_sync {
     680             :   ulong root;
     681             :   fd_lockout_offset_t * lockout_offsets; /* fd_deque_dynamic (min cnt 32) */
     682             :   fd_hash_t hash;
     683             :   long timestamp;
     684             :   uchar has_timestamp;
     685             :   fd_hash_t block_id;
     686             : };
     687             : typedef struct fd_compact_tower_sync fd_compact_tower_sync_t;
     688             : #define FD_COMPACT_TOWER_SYNC_ALIGN alignof(fd_compact_tower_sync_t)
     689             : 
     690             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L185 */
     691             : /* Encoded Size: Dynamic */
     692             : struct fd_tower_sync {
     693             :   fd_vote_lockout_t * lockouts; /* fd_deque_dynamic */
     694             :   ulong lockouts_cnt;
     695             :   ulong root;
     696             :   uchar has_root;
     697             :   fd_hash_t hash;
     698             :   long timestamp;
     699             :   uchar has_timestamp;
     700             :   fd_hash_t block_id;
     701             : };
     702             : typedef struct fd_tower_sync fd_tower_sync_t;
     703             : #define FD_TOWER_SYNC_ALIGN alignof(fd_tower_sync_t)
     704             : 
     705             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L104 */
     706             : /* Encoded Size: Dynamic */
     707             : struct fd_tower_sync_switch {
     708             :   fd_tower_sync_t tower_sync;
     709             :   fd_hash_t hash;
     710             : };
     711             : typedef struct fd_tower_sync_switch fd_tower_sync_switch_t;
     712             : #define FD_TOWER_SYNC_SWITCH_ALIGN alignof(fd_tower_sync_switch_t)
     713             : 
     714             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/slot_history.rs#L11 */
     715             : /* Encoded Size: Dynamic */
     716             : struct fd_slot_history {
     717             :   uchar has_bits;
     718             :   ulong bits_bitvec_len;
     719             :   ulong* bits_bitvec;
     720             :   ulong bits_len;
     721             :   ulong next_slot;
     722             : };
     723             : typedef struct fd_slot_history fd_slot_history_t;
     724           3 : #define FD_SLOT_HISTORY_ALIGN alignof(fd_slot_history_t)
     725             : 
     726             : struct fd_slot_history_global {
     727             :   uchar has_bits;
     728             :   ulong bits_bitvec_len;
     729             :   ulong bits_bitvec_offset;
     730             :   ulong bits_len;
     731             :   ulong next_slot;
     732             : };
     733             : typedef struct fd_slot_history_global fd_slot_history_global_t;
     734             : #define FD_SLOT_HISTORY_GLOBAL_ALIGN alignof(fd_slot_history_global_t)
     735             : 
     736             : /* Encoded Size: Fixed (40 bytes) */
     737             : struct fd_slot_hash {
     738             :   ulong slot;
     739             :   fd_hash_t hash;
     740             : };
     741             : typedef struct fd_slot_hash fd_slot_hash_t;
     742             : #define FD_SLOT_HASH_ALIGN alignof(fd_slot_hash_t)
     743             : 
     744             : #define DEQUE_NAME deq_fd_slot_hash_t
     745           0 : #define DEQUE_T fd_slot_hash_t
     746             : #include "../../util/tmpl/fd_deque_dynamic.c"
     747             : #undef DEQUE_NAME
     748             : #undef DEQUE_T
     749             : #undef DEQUE_MAX
     750             : static inline fd_slot_hash_t *
     751           0 : deq_fd_slot_hash_t_join_new( void * * alloc_mem, ulong max ) {
     752           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
     753           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_slot_hash_t_align() );
     754           0 :   void * deque_mem = *alloc_mem;
     755           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_slot_hash_t_footprint( max );
     756           0 :   return deq_fd_slot_hash_t_join( deq_fd_slot_hash_t_new( deque_mem, max ) );
     757           0 : }
     758             : 
     759             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/slot_hashes.rs#L31 */
     760             : /* Encoded Size: Dynamic */
     761             : struct fd_slot_hashes {
     762             :   fd_slot_hash_t * hashes; /* fd_deque_dynamic (min cnt 512) */
     763             : };
     764             : typedef struct fd_slot_hashes fd_slot_hashes_t;
     765           3 : #define FD_SLOT_HASHES_ALIGN alignof(fd_slot_hashes_t)
     766             : 
     767             : struct fd_slot_hashes_global {
     768             :   ulong hashes_offset; /* fd_deque_dynamic (min cnt 512) */
     769             : };
     770             : typedef struct fd_slot_hashes_global fd_slot_hashes_global_t;
     771             : #define FD_SLOT_HASHES_GLOBAL_ALIGN alignof(fd_slot_hashes_global_t)
     772             : 
     773           0 : static FD_FN_UNUSED fd_slot_hash_t * fd_slot_hashes_hashes_join( fd_slot_hashes_global_t * type ) { // deque
     774           0 :   return type->hashes_offset ? (fd_slot_hash_t *)deq_fd_slot_hash_t_join( fd_type_pun( (uchar *)type + type->hashes_offset ) ) : NULL;
     775           0 : }
     776             : /* Encoded Size: Fixed (40 bytes) */
     777             : struct fd_block_block_hash_entry {
     778             :   fd_hash_t blockhash;
     779             :   fd_fee_calculator_t fee_calculator;
     780             : };
     781             : typedef struct fd_block_block_hash_entry fd_block_block_hash_entry_t;
     782             : #define FD_BLOCK_BLOCK_HASH_ENTRY_ALIGN alignof(fd_block_block_hash_entry_t)
     783             : 
     784             : #define DEQUE_NAME deq_fd_block_block_hash_entry_t
     785       33975 : #define DEQUE_T fd_block_block_hash_entry_t
     786             : #include "../../util/tmpl/fd_deque_dynamic.c"
     787             : #undef DEQUE_NAME
     788             : #undef DEQUE_T
     789             : #undef DEQUE_MAX
     790             : static inline fd_block_block_hash_entry_t *
     791         453 : deq_fd_block_block_hash_entry_t_join_new( void * * alloc_mem, ulong max ) {
     792         453 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
     793         453 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_fd_block_block_hash_entry_t_align() );
     794         453 :   void * deque_mem = *alloc_mem;
     795         453 :   *alloc_mem = (uchar *)*alloc_mem + deq_fd_block_block_hash_entry_t_footprint( max );
     796         453 :   return deq_fd_block_block_hash_entry_t_join( deq_fd_block_block_hash_entry_t_new( deque_mem, max ) );
     797         453 : }
     798             : 
     799             : /* Encoded Size: Dynamic */
     800             : struct fd_recent_block_hashes {
     801             :   fd_block_block_hash_entry_t * hashes; /* fd_deque_dynamic (min cnt 151) */
     802             : };
     803             : typedef struct fd_recent_block_hashes fd_recent_block_hashes_t;
     804           3 : #define FD_RECENT_BLOCK_HASHES_ALIGN alignof(fd_recent_block_hashes_t)
     805             : 
     806             : struct fd_recent_block_hashes_global {
     807             :   ulong hashes_offset; /* fd_deque_dynamic (min cnt 151) */
     808             : };
     809             : typedef struct fd_recent_block_hashes_global fd_recent_block_hashes_global_t;
     810             : #define FD_RECENT_BLOCK_HASHES_GLOBAL_ALIGN alignof(fd_recent_block_hashes_global_t)
     811             : 
     812           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
     813           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;
     814           0 : }
     815             : /* Encoded Size: Dynamic */
     816             : struct fd_slot_meta {
     817             :   ulong slot;
     818             :   ulong consumed;
     819             :   ulong received;
     820             :   long first_shred_timestamp;
     821             :   ulong last_index;
     822             :   ulong parent_slot;
     823             :   ulong next_slot_len;
     824             :   ulong* next_slot;
     825             :   uchar is_connected;
     826             :   ulong entry_end_indexes_len;
     827             :   uint* entry_end_indexes;
     828             : };
     829             : typedef struct fd_slot_meta fd_slot_meta_t;
     830           0 : #define FD_SLOT_META_ALIGN alignof(fd_slot_meta_t)
     831             : 
     832             : /* A validator timestamp oracle vote received from a voting node */
     833             : /* Encoded Size: Fixed (48 bytes) */
     834             : struct fd_clock_timestamp_vote {
     835             :   fd_pubkey_t pubkey;
     836             :   long timestamp;
     837             :   ulong slot;
     838             : };
     839             : typedef struct fd_clock_timestamp_vote fd_clock_timestamp_vote_t;
     840             : #define FD_CLOCK_TIMESTAMP_VOTE_ALIGN alignof(fd_clock_timestamp_vote_t)
     841             : 
     842             : typedef struct fd_clock_timestamp_vote_t_mapnode fd_clock_timestamp_vote_t_mapnode_t;
     843             : #define REDBLK_T fd_clock_timestamp_vote_t_mapnode_t
     844             : #define REDBLK_NAME fd_clock_timestamp_vote_t_map
     845             : #define REDBLK_IMPL_STYLE 1
     846             : #include "../../util/tmpl/fd_redblack.c"
     847             : struct fd_clock_timestamp_vote_t_mapnode {
     848             :     fd_clock_timestamp_vote_t elem;
     849             :     ulong redblack_parent;
     850             :     ulong redblack_left;
     851             :     ulong redblack_right;
     852             :     int redblack_color;
     853             : };
     854             : static inline fd_clock_timestamp_vote_t_mapnode_t *
     855           0 : fd_clock_timestamp_vote_t_map_join_new( void * * alloc_mem, ulong len ) {
     856           0 :   if( FD_UNLIKELY( 0 == len ) ) len = 1; // prevent underflow
     857           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, fd_clock_timestamp_vote_t_map_align() );
     858           0 :   void * map_mem = *alloc_mem;
     859           0 :   *alloc_mem = (uchar *)*alloc_mem + fd_clock_timestamp_vote_t_map_footprint( len );
     860           0 :   return fd_clock_timestamp_vote_t_map_join( fd_clock_timestamp_vote_t_map_new( map_mem, len ) );
     861           0 : }
     862             : /* Validator timestamp oracle votes received from voting nodes. TODO: make this a map */
     863             : /* Encoded Size: Dynamic */
     864             : struct fd_clock_timestamp_votes {
     865             :   fd_clock_timestamp_vote_t_mapnode_t * votes_pool;
     866             :   fd_clock_timestamp_vote_t_mapnode_t * votes_root;
     867             : };
     868             : typedef struct fd_clock_timestamp_votes fd_clock_timestamp_votes_t;
     869             : #define FD_CLOCK_TIMESTAMP_VOTES_ALIGN alignof(fd_clock_timestamp_votes_t)
     870             : 
     871             : struct fd_clock_timestamp_votes_global {
     872             :   ulong votes_pool_offset;
     873             :   ulong votes_root_offset;
     874             : };
     875             : typedef struct fd_clock_timestamp_votes_global fd_clock_timestamp_votes_global_t;
     876             : #define FD_CLOCK_TIMESTAMP_VOTES_GLOBAL_ALIGN alignof(fd_clock_timestamp_votes_global_t)
     877             : 
     878           0 : static FD_FN_UNUSED fd_clock_timestamp_vote_t_mapnode_t * fd_clock_timestamp_votes_votes_pool_join( fd_clock_timestamp_votes_global_t const * type ) {
     879           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     880           0 :   return !!type->votes_pool_offset ? (fd_clock_timestamp_vote_t_mapnode_t *)fd_clock_timestamp_vote_t_map_join( fd_type_pun( (uchar *)type + type->votes_pool_offset ) ) : NULL;
     881           0 : }
     882           0 : static FD_FN_UNUSED fd_clock_timestamp_vote_t_mapnode_t * fd_clock_timestamp_votes_votes_root_join( fd_clock_timestamp_votes_global_t const * type ) {
     883           0 :   if( FD_UNLIKELY( !type ) ) return NULL;
     884           0 :   return !!type->votes_root_offset ? (fd_clock_timestamp_vote_t_mapnode_t *)fd_type_pun( (uchar *)type + type->votes_root_offset ) : NULL;
     885           0 : }
     886           0 : static FD_FN_UNUSED void fd_clock_timestamp_votes_votes_pool_update( fd_clock_timestamp_votes_global_t * type, fd_clock_timestamp_vote_t_mapnode_t * pool ) {
     887           0 :   type->votes_pool_offset = !!pool ? (ulong)fd_clock_timestamp_vote_t_map_leave( pool ) - (ulong)type : 0UL;
     888           0 : }
     889           0 : static FD_FN_UNUSED void fd_clock_timestamp_votes_votes_root_update( fd_clock_timestamp_votes_global_t * type, fd_clock_timestamp_vote_t_mapnode_t * root ) {
     890           0 :   type->votes_root_offset = !!root ? (ulong)root - (ulong)type : 0UL;
     891           0 : }
     892             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/sysvar/fees.rs#L21 */
     893             : /* Encoded Size: Fixed (8 bytes) */
     894             : struct fd_sysvar_fees {
     895             :   fd_fee_calculator_t fee_calculator;
     896             : };
     897             : typedef struct fd_sysvar_fees fd_sysvar_fees_t;
     898             : #define FD_SYSVAR_FEES_ALIGN alignof(fd_sysvar_fees_t)
     899             : 
     900             : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/sdk/program/src/epoch_rewards.rs#L14 */
     901             : /* Encoded Size: Fixed (81 bytes) */
     902             : struct fd_sysvar_epoch_rewards {
     903             :   ulong distribution_starting_block_height;
     904             :   ulong num_partitions;
     905             :   fd_hash_t parent_blockhash;
     906             :   uint128 total_points;
     907             :   ulong total_rewards;
     908             :   ulong distributed_rewards;
     909             :   uchar active;
     910             : };
     911             : typedef struct fd_sysvar_epoch_rewards fd_sysvar_epoch_rewards_t;
     912           3 : #define FD_SYSVAR_EPOCH_REWARDS_ALIGN alignof(fd_sysvar_epoch_rewards_t)
     913             : 
     914             : /* Encoded Size: Fixed (33 bytes) */
     915             : struct fd_config_keys_pair {
     916             :   fd_pubkey_t key;
     917             :   uchar signer;
     918             : };
     919             : typedef struct fd_config_keys_pair fd_config_keys_pair_t;
     920           0 : #define FD_CONFIG_KEYS_PAIR_ALIGN alignof(fd_config_keys_pair_t)
     921             : 
     922             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/config.rs#L14 */
     923             : /* Encoded Size: Dynamic */
     924             : struct fd_stake_config {
     925             :   ushort config_keys_len;
     926             :   fd_config_keys_pair_t * config_keys;
     927             :   double warmup_cooldown_rate;
     928             :   uchar slash_penalty;
     929             : };
     930             : typedef struct fd_stake_config fd_stake_config_t;
     931             : #define FD_STAKE_CONFIG_ALIGN alignof(fd_stake_config_t)
     932             : 
     933             : /* Encoded Size: Dynamic */
     934             : struct fd_feature_entry {
     935             :   fd_pubkey_t pubkey;
     936             :   ulong description_len;
     937             :   uchar* description;
     938             :   ulong since_slot;
     939             : };
     940             : typedef struct fd_feature_entry fd_feature_entry_t;
     941             : #define FD_FEATURE_ENTRY_ALIGN alignof(fd_feature_entry_t)
     942             : 
     943             : struct fd_cluster_type {
     944             :   uint discriminant;
     945             : };
     946             : typedef struct fd_cluster_type fd_cluster_type_t;
     947             : #define FD_CLUSTER_TYPE_ALIGN alignof(fd_cluster_type_t)
     948             : 
     949             : /* Encoded Size: Fixed (12 bytes) */
     950             : struct fd_cluster_version {
     951             :   uint major;
     952             :   uint minor;
     953             :   uint patch;
     954             : };
     955             : typedef struct fd_cluster_version fd_cluster_version_t;
     956             : #define FD_CLUSTER_VERSION_ALIGN alignof(fd_cluster_version_t)
     957             : 
     958             : /* Encoded Size: Fixed (49 bytes) */
     959             : struct fd_stake_reward {
     960             :   ulong prev;
     961             :   ulong next;
     962             :   ulong parent;
     963             :   fd_pubkey_t stake_pubkey;
     964             :   ulong credits_observed;
     965             :   ulong lamports;
     966             :   uchar valid;
     967             : };
     968             : typedef struct fd_stake_reward fd_stake_reward_t;
     969             : #define FD_STAKE_REWARD_ALIGN alignof(fd_stake_reward_t)
     970             : 
     971             : /* https://github.com/anza-xyz/agave/blob/7117ed9653ce19e8b2dea108eff1f3eb6a3378a7/runtime/src/bank/partitioned_epoch_rewards/mod.rs#L118 */
     972             : /* Encoded Size: Fixed (64 bytes) */
     973             : struct fd_partitioned_rewards_calculation {
     974             :   uint128 validator_points;
     975             :   ulong old_vote_balance_and_staked;
     976             :   ulong validator_rewards;
     977             :   double validator_rate;
     978             :   double foundation_rate;
     979             :   double prev_epoch_duration_in_years;
     980             :   ulong capitalization;
     981             : };
     982             : typedef struct fd_partitioned_rewards_calculation fd_partitioned_rewards_calculation_t;
     983             : #define FD_PARTITIONED_REWARDS_CALCULATION_ALIGN alignof(fd_partitioned_rewards_calculation_t)
     984             : 
     985             : /* Encoded Size: Fixed (32 bytes) */
     986             : struct fd_prev_epoch_inflation_rewards {
     987             :   ulong validator_rewards;
     988             :   double prev_epoch_duration_in_years;
     989             :   double validator_rate;
     990             :   double foundation_rate;
     991             : };
     992             : typedef struct fd_prev_epoch_inflation_rewards fd_prev_epoch_inflation_rewards_t;
     993             : #define FD_PREV_EPOCH_INFLATION_REWARDS_ALIGN alignof(fd_prev_epoch_inflation_rewards_t)
     994             : 
     995             : #define DEQUE_NAME deq_ulong
     996           0 : #define DEQUE_T ulong
     997             : #include "../../util/tmpl/fd_deque_dynamic.c"
     998             : #undef DEQUE_NAME
     999             : #undef DEQUE_T
    1000             : #undef DEQUE_MAX
    1001             : static inline ulong *
    1002           0 : deq_ulong_join_new( void * * alloc_mem, ulong max ) {
    1003           0 :   if( FD_UNLIKELY( 0 == max ) ) max = 1; // prevent underflow
    1004           0 :   *alloc_mem = (void*)fd_ulong_align_up( (ulong)*alloc_mem, deq_ulong_align() );
    1005           0 :   void * deque_mem = *alloc_mem;
    1006           0 :   *alloc_mem = (uchar *)*alloc_mem + deq_ulong_footprint( max );
    1007           0 :   return deq_ulong_join( deq_ulong_new( deque_mem, max ) );
    1008           0 : }
    1009             : 
    1010             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L133 */
    1011             : /* Encoded Size: Dynamic */
    1012             : struct fd_vote {
    1013             :   ulong * slots; /* fd_deque_dynamic */
    1014             :   fd_hash_t hash;
    1015             :   long timestamp;
    1016             :   uchar has_timestamp;
    1017             : };
    1018             : typedef struct fd_vote fd_vote_t;
    1019             : #define FD_VOTE_ALIGN alignof(fd_vote_t)
    1020             : 
    1021             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L230 */
    1022             : /* Encoded Size: Fixed (97 bytes) */
    1023             : struct fd_vote_init {
    1024             :   fd_pubkey_t node_pubkey;
    1025             :   fd_pubkey_t authorized_voter;
    1026             :   fd_pubkey_t authorized_withdrawer;
    1027             :   uchar commission;
    1028             : };
    1029             : typedef struct fd_vote_init fd_vote_init_t;
    1030             : #define FD_VOTE_INIT_ALIGN alignof(fd_vote_init_t)
    1031             : 
    1032             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L238 */
    1033             : struct fd_vote_authorize {
    1034             :   uint discriminant;
    1035             : };
    1036             : typedef struct fd_vote_authorize fd_vote_authorize_t;
    1037             : #define FD_VOTE_AUTHORIZE_ALIGN alignof(fd_vote_authorize_t)
    1038             : 
    1039             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L37 */
    1040             : /* Encoded Size: Fixed (36 bytes) */
    1041             : struct fd_vote_authorize_pubkey {
    1042             :   fd_pubkey_t pubkey;
    1043             :   fd_vote_authorize_t vote_authorize;
    1044             : };
    1045             : typedef struct fd_vote_authorize_pubkey fd_vote_authorize_pubkey_t;
    1046             : #define FD_VOTE_AUTHORIZE_PUBKEY_ALIGN alignof(fd_vote_authorize_pubkey_t)
    1047             : 
    1048             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L78 */
    1049             : /* Encoded Size: Dynamic */
    1050             : struct fd_vote_switch {
    1051             :   fd_vote_t vote;
    1052             :   fd_hash_t hash;
    1053             : };
    1054             : typedef struct fd_vote_switch fd_vote_switch_t;
    1055             : #define FD_VOTE_SWITCH_ALIGN alignof(fd_vote_switch_t)
    1056             : 
    1057             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_instruction.rs#L104 */
    1058             : /* Encoded Size: Dynamic */
    1059             : struct fd_update_vote_state_switch {
    1060             :   fd_vote_state_update_t vote_state_update;
    1061             :   fd_hash_t hash;
    1062             : };
    1063             : typedef struct fd_update_vote_state_switch fd_update_vote_state_switch_t;
    1064             : #define FD_UPDATE_VOTE_STATE_SWITCH_ALIGN alignof(fd_update_vote_state_switch_t)
    1065             : 
    1066             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L244 */
    1067             : /* Encoded Size: Dynamic */
    1068             : struct fd_vote_authorize_with_seed_args {
    1069             :   fd_vote_authorize_t authorization_type;
    1070             :   fd_pubkey_t current_authority_derived_key_owner;
    1071             :   ulong current_authority_derived_key_seed_len;
    1072             :   uchar* current_authority_derived_key_seed;
    1073             :   fd_pubkey_t new_authority;
    1074             : };
    1075             : typedef struct fd_vote_authorize_with_seed_args fd_vote_authorize_with_seed_args_t;
    1076             : #define FD_VOTE_AUTHORIZE_WITH_SEED_ARGS_ALIGN alignof(fd_vote_authorize_with_seed_args_t)
    1077             : 
    1078             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/programs/vote/src/vote_state/mod.rs#L252 */
    1079             : /* Encoded Size: Dynamic */
    1080             : struct fd_vote_authorize_checked_with_seed_args {
    1081             :   fd_vote_authorize_t authorization_type;
    1082             :   fd_pubkey_t current_authority_derived_key_owner;
    1083             :   ulong current_authority_derived_key_seed_len;
    1084             :   uchar* current_authority_derived_key_seed;
    1085             : };
    1086             : typedef struct fd_vote_authorize_checked_with_seed_args fd_vote_authorize_checked_with_seed_args_t;
    1087             : #define FD_VOTE_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN alignof(fd_vote_authorize_checked_with_seed_args_t)
    1088             : 
    1089             : union fd_vote_instruction_inner {
    1090             :   fd_vote_init_t initialize_account;
    1091             :   fd_vote_authorize_pubkey_t authorize;
    1092             :   fd_vote_t vote;
    1093             :   ulong withdraw;
    1094             :   uchar update_commission;
    1095             :   fd_vote_switch_t vote_switch;
    1096             :   fd_vote_authorize_t authorize_checked;
    1097             :   fd_vote_state_update_t update_vote_state;
    1098             :   fd_update_vote_state_switch_t update_vote_state_switch;
    1099             :   fd_vote_authorize_with_seed_args_t authorize_with_seed;
    1100             :   fd_vote_authorize_checked_with_seed_args_t authorize_checked_with_seed;
    1101             :   fd_compact_vote_state_update_t compact_update_vote_state;
    1102             :   fd_compact_vote_state_update_switch_t compact_update_vote_state_switch;
    1103             :   fd_tower_sync_t tower_sync;
    1104             :   fd_tower_sync_switch_t tower_sync_switch;
    1105             : };
    1106             : typedef union fd_vote_instruction_inner fd_vote_instruction_inner_t;
    1107             : 
    1108             : /* https://github.com/firedancer-io/solana/blob/53a4e5d6c58b2ffe89b09304e4437f8ca198dadd/programs/vote/src/vote_instruction.rs#L21 */
    1109             : struct fd_vote_instruction {
    1110             :   uint discriminant;
    1111             :   fd_vote_instruction_inner_t inner;
    1112             : };
    1113             : typedef struct fd_vote_instruction fd_vote_instruction_t;
    1114           0 : #define FD_VOTE_INSTRUCTION_ALIGN alignof(fd_vote_instruction_t)
    1115             : 
    1116             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L158 */
    1117             : /* Encoded Size: Fixed (48 bytes) */
    1118             : struct fd_system_program_instruction_create_account {
    1119             :   ulong lamports;
    1120             :   ulong space;
    1121             :   fd_pubkey_t owner;
    1122             : };
    1123             : typedef struct fd_system_program_instruction_create_account fd_system_program_instruction_create_account_t;
    1124             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_ALIGN alignof(fd_system_program_instruction_create_account_t)
    1125             : 
    1126             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L193 */
    1127             : /* Encoded Size: Dynamic */
    1128             : struct fd_system_program_instruction_create_account_with_seed {
    1129             :   fd_pubkey_t base;
    1130             :   ulong seed_len;
    1131             :   uchar* seed;
    1132             :   ulong lamports;
    1133             :   ulong space;
    1134             :   fd_pubkey_t owner;
    1135             : };
    1136             : typedef struct fd_system_program_instruction_create_account_with_seed fd_system_program_instruction_create_account_with_seed_t;
    1137             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_WITH_SEED_ALIGN alignof(fd_system_program_instruction_create_account_with_seed_t)
    1138             : 
    1139             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L269 */
    1140             : /* Encoded Size: Dynamic */
    1141             : struct fd_system_program_instruction_allocate_with_seed {
    1142             :   fd_pubkey_t base;
    1143             :   ulong seed_len;
    1144             :   uchar* seed;
    1145             :   ulong space;
    1146             :   fd_pubkey_t owner;
    1147             : };
    1148             : typedef struct fd_system_program_instruction_allocate_with_seed fd_system_program_instruction_allocate_with_seed_t;
    1149             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ALLOCATE_WITH_SEED_ALIGN alignof(fd_system_program_instruction_allocate_with_seed_t)
    1150             : 
    1151             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L288 */
    1152             : /* Encoded Size: Dynamic */
    1153             : struct fd_system_program_instruction_assign_with_seed {
    1154             :   fd_pubkey_t base;
    1155             :   ulong seed_len;
    1156             :   uchar* seed;
    1157             :   fd_pubkey_t owner;
    1158             : };
    1159             : typedef struct fd_system_program_instruction_assign_with_seed fd_system_program_instruction_assign_with_seed_t;
    1160             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ASSIGN_WITH_SEED_ALIGN alignof(fd_system_program_instruction_assign_with_seed_t)
    1161             : 
    1162             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L288 */
    1163             : /* Encoded Size: Dynamic */
    1164             : struct fd_system_program_instruction_transfer_with_seed {
    1165             :   ulong lamports;
    1166             :   ulong from_seed_len;
    1167             :   uchar* from_seed;
    1168             :   fd_pubkey_t from_owner;
    1169             : };
    1170             : typedef struct fd_system_program_instruction_transfer_with_seed fd_system_program_instruction_transfer_with_seed_t;
    1171             : #define FD_SYSTEM_PROGRAM_INSTRUCTION_TRANSFER_WITH_SEED_ALIGN alignof(fd_system_program_instruction_transfer_with_seed_t)
    1172             : 
    1173             : union fd_system_program_instruction_inner {
    1174             :   fd_system_program_instruction_create_account_t create_account;
    1175             :   fd_pubkey_t assign;
    1176             :   ulong transfer;
    1177             :   fd_system_program_instruction_create_account_with_seed_t create_account_with_seed;
    1178             :   ulong withdraw_nonce_account;
    1179             :   fd_pubkey_t initialize_nonce_account;
    1180             :   fd_pubkey_t authorize_nonce_account;
    1181             :   ulong allocate;
    1182             :   fd_system_program_instruction_allocate_with_seed_t allocate_with_seed;
    1183             :   fd_system_program_instruction_assign_with_seed_t assign_with_seed;
    1184             :   fd_system_program_instruction_transfer_with_seed_t transfer_with_seed;
    1185             : };
    1186             : typedef union fd_system_program_instruction_inner fd_system_program_instruction_inner_t;
    1187             : 
    1188             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L152 */
    1189             : struct fd_system_program_instruction {
    1190             :   uint discriminant;
    1191             :   fd_system_program_instruction_inner_t inner;
    1192             : };
    1193             : typedef struct fd_system_program_instruction fd_system_program_instruction_t;
    1194           0 : #define FD_SYSTEM_PROGRAM_INSTRUCTION_ALIGN alignof(fd_system_program_instruction_t)
    1195             : 
    1196             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/system_instruction.rs#L16 */
    1197             : struct fd_system_error {
    1198             :   uint discriminant;
    1199             : };
    1200             : typedef struct fd_system_error fd_system_error_t;
    1201             : #define FD_SYSTEM_ERROR_ALIGN alignof(fd_system_error_t)
    1202             : 
    1203             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L169 */
    1204             : /* Encoded Size: Fixed (64 bytes) */
    1205             : struct fd_stake_authorized {
    1206             :   fd_pubkey_t staker;
    1207             :   fd_pubkey_t withdrawer;
    1208             : };
    1209             : typedef struct fd_stake_authorized fd_stake_authorized_t;
    1210             : #define FD_STAKE_AUTHORIZED_ALIGN alignof(fd_stake_authorized_t)
    1211             : 
    1212             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L135 */
    1213             : /* Encoded Size: Fixed (48 bytes) */
    1214             : struct fd_stake_lockup {
    1215             :   long unix_timestamp;
    1216             :   ulong epoch;
    1217             :   fd_pubkey_t custodian;
    1218             : };
    1219             : typedef struct fd_stake_lockup fd_stake_lockup_t;
    1220             : #define FD_STAKE_LOCKUP_ALIGN alignof(fd_stake_lockup_t)
    1221             : 
    1222             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L68 */
    1223             : /* Encoded Size: Fixed (112 bytes) */
    1224             : struct fd_stake_instruction_initialize {
    1225             :   fd_stake_authorized_t authorized;
    1226             :   fd_stake_lockup_t lockup;
    1227             : };
    1228             : typedef struct fd_stake_instruction_initialize fd_stake_instruction_initialize_t;
    1229             : #define FD_STAKE_INSTRUCTION_INITIALIZE_ALIGN alignof(fd_stake_instruction_initialize_t)
    1230             : 
    1231             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L78 */
    1232             : /* Encoded Size: Dynamic */
    1233             : struct fd_stake_lockup_custodian_args {
    1234             :   fd_stake_lockup_t lockup;
    1235             :   fd_sol_sysvar_clock_t clock;
    1236             :   fd_pubkey_t * custodian;
    1237             : };
    1238             : typedef struct fd_stake_lockup_custodian_args fd_stake_lockup_custodian_args_t;
    1239             : #define FD_STAKE_LOCKUP_CUSTODIAN_ARGS_ALIGN alignof(fd_stake_lockup_custodian_args_t)
    1240             : 
    1241             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L117 */
    1242             : struct fd_stake_authorize {
    1243             :   uint discriminant;
    1244             : };
    1245             : typedef struct fd_stake_authorize fd_stake_authorize_t;
    1246             : #define FD_STAKE_AUTHORIZE_ALIGN alignof(fd_stake_authorize_t)
    1247             : 
    1248             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L78 */
    1249             : /* Encoded Size: Fixed (36 bytes) */
    1250             : struct fd_stake_instruction_authorize {
    1251             :   fd_pubkey_t pubkey;
    1252             :   fd_stake_authorize_t stake_authorize;
    1253             : };
    1254             : typedef struct fd_stake_instruction_authorize fd_stake_instruction_authorize_t;
    1255             : #define FD_STAKE_INSTRUCTION_AUTHORIZE_ALIGN alignof(fd_stake_instruction_authorize_t)
    1256             : 
    1257             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L241 */
    1258             : /* Encoded Size: Dynamic */
    1259             : struct fd_authorize_with_seed_args {
    1260             :   fd_pubkey_t new_authorized_pubkey;
    1261             :   fd_stake_authorize_t stake_authorize;
    1262             :   ulong authority_seed_len;
    1263             :   uchar* authority_seed;
    1264             :   fd_pubkey_t authority_owner;
    1265             : };
    1266             : typedef struct fd_authorize_with_seed_args fd_authorize_with_seed_args_t;
    1267             : #define FD_AUTHORIZE_WITH_SEED_ARGS_ALIGN alignof(fd_authorize_with_seed_args_t)
    1268             : 
    1269             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L249 */
    1270             : /* Encoded Size: Dynamic */
    1271             : struct fd_authorize_checked_with_seed_args {
    1272             :   fd_stake_authorize_t stake_authorize;
    1273             :   ulong authority_seed_len;
    1274             :   uchar* authority_seed;
    1275             :   fd_pubkey_t authority_owner;
    1276             : };
    1277             : typedef struct fd_authorize_checked_with_seed_args fd_authorize_checked_with_seed_args_t;
    1278             : #define FD_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN alignof(fd_authorize_checked_with_seed_args_t)
    1279             : 
    1280             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L235 */
    1281             : /* Encoded Size: Dynamic */
    1282             : struct fd_lockup_checked_args {
    1283             :   long* unix_timestamp;
    1284             :   ulong* epoch;
    1285             : };
    1286             : typedef struct fd_lockup_checked_args fd_lockup_checked_args_t;
    1287             : #define FD_LOCKUP_CHECKED_ARGS_ALIGN alignof(fd_lockup_checked_args_t)
    1288             : 
    1289             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/instruction.rs#L228 */
    1290             : /* Encoded Size: Dynamic */
    1291             : struct fd_lockup_args {
    1292             :   long* unix_timestamp;
    1293             :   ulong* epoch;
    1294             :   fd_pubkey_t * custodian;
    1295             : };
    1296             : typedef struct fd_lockup_args fd_lockup_args_t;
    1297             : #define FD_LOCKUP_ARGS_ALIGN alignof(fd_lockup_args_t)
    1298             : 
    1299             : union fd_stake_instruction_inner {
    1300             :   fd_stake_instruction_initialize_t initialize;
    1301             :   fd_stake_instruction_authorize_t authorize;
    1302             :   ulong split;
    1303             :   ulong withdraw;
    1304             :   fd_lockup_args_t set_lockup;
    1305             :   fd_authorize_with_seed_args_t authorize_with_seed;
    1306             :   fd_stake_authorize_t authorize_checked;
    1307             :   fd_authorize_checked_with_seed_args_t authorize_checked_with_seed;
    1308             :   fd_lockup_checked_args_t set_lockup_checked;
    1309             :   ulong move_stake;
    1310             :   ulong move_lamports;
    1311             : };
    1312             : typedef union fd_stake_instruction_inner fd_stake_instruction_inner_t;
    1313             : 
    1314             : /* https://github.com/anza-xyz/agave/blob/cdff19c7807b006dd63429114fb1d9573bf74172/sdk/program/src/stake/instruction.rs#L96 */
    1315             : struct fd_stake_instruction {
    1316             :   uint discriminant;
    1317             :   fd_stake_instruction_inner_t inner;
    1318             : };
    1319             : typedef struct fd_stake_instruction fd_stake_instruction_t;
    1320           0 : #define FD_STAKE_INSTRUCTION_ALIGN alignof(fd_stake_instruction_t)
    1321             : 
    1322             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/stake/state.rs#L248 */
    1323             : /* Encoded Size: Fixed (120 bytes) */
    1324             : struct fd_stake_meta {
    1325             :   ulong rent_exempt_reserve;
    1326             :   fd_stake_authorized_t authorized;
    1327             :   fd_stake_lockup_t lockup;
    1328             : };
    1329             : typedef struct fd_stake_meta fd_stake_meta_t;
    1330             : #define FD_STAKE_META_ALIGN alignof(fd_stake_meta_t)
    1331             : 
    1332             : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/stake_flags.rs#L21 */
    1333             : /* Encoded Size: Fixed (1 bytes) */
    1334             : struct fd_stake_flags {
    1335             :   uchar bits;
    1336             : };
    1337             : typedef struct fd_stake_flags fd_stake_flags_t;
    1338             : #define FD_STAKE_FLAGS_ALIGN alignof(fd_stake_flags_t)
    1339             : 
    1340             : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L135 */
    1341             : /* Encoded Size: Fixed (120 bytes) */
    1342             : struct fd_stake_state_v2_initialized {
    1343             :   fd_stake_meta_t meta;
    1344             : };
    1345             : typedef struct fd_stake_state_v2_initialized fd_stake_state_v2_initialized_t;
    1346             : #define FD_STAKE_STATE_V2_INITIALIZED_ALIGN alignof(fd_stake_state_v2_initialized_t)
    1347             : 
    1348             : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L136 */
    1349             : /* Encoded Size: Fixed (193 bytes) */
    1350             : struct fd_stake_state_v2_stake {
    1351             :   fd_stake_meta_t meta;
    1352             :   fd_stake_t stake;
    1353             :   fd_stake_flags_t stake_flags;
    1354             : };
    1355             : typedef struct fd_stake_state_v2_stake fd_stake_state_v2_stake_t;
    1356             : #define FD_STAKE_STATE_V2_STAKE_ALIGN alignof(fd_stake_state_v2_stake_t)
    1357             : 
    1358             : union fd_stake_state_v2_inner {
    1359             :   fd_stake_state_v2_initialized_t initialized;
    1360             :   fd_stake_state_v2_stake_t stake;
    1361             : };
    1362             : typedef union fd_stake_state_v2_inner fd_stake_state_v2_inner_t;
    1363             : 
    1364             : /* https://github.com/firedancer-io/solana/blob/v1.17/sdk/program/src/stake/state.rs#L132 */
    1365             : struct fd_stake_state_v2 {
    1366             :   uint discriminant;
    1367             :   fd_stake_state_v2_inner_t inner;
    1368             : };
    1369             : typedef struct fd_stake_state_v2 fd_stake_state_v2_t;
    1370           0 : #define FD_STAKE_STATE_V2_ALIGN alignof(fd_stake_state_v2_t)
    1371             : 
    1372             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/current.rs#L17 */
    1373             : /* Encoded Size: Fixed (72 bytes) */
    1374             : struct fd_nonce_data {
    1375             :   fd_pubkey_t authority;
    1376             :   fd_hash_t durable_nonce;
    1377             :   fd_fee_calculator_t fee_calculator;
    1378             : };
    1379             : typedef struct fd_nonce_data fd_nonce_data_t;
    1380             : #define FD_NONCE_DATA_ALIGN alignof(fd_nonce_data_t)
    1381             : 
    1382             : union fd_nonce_state_inner {
    1383             :   fd_nonce_data_t initialized;
    1384             : };
    1385             : typedef union fd_nonce_state_inner fd_nonce_state_inner_t;
    1386             : 
    1387             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/current.rs#L65 */
    1388             : struct fd_nonce_state {
    1389             :   uint discriminant;
    1390             :   fd_nonce_state_inner_t inner;
    1391             : };
    1392             : typedef struct fd_nonce_state fd_nonce_state_t;
    1393             : #define FD_NONCE_STATE_ALIGN alignof(fd_nonce_state_t)
    1394             : 
    1395             : union fd_nonce_state_versions_inner {
    1396             :   fd_nonce_state_t legacy;
    1397             :   fd_nonce_state_t current;
    1398             : };
    1399             : typedef union fd_nonce_state_versions_inner fd_nonce_state_versions_inner_t;
    1400             : 
    1401             : /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/nonce/state/mod.rs#L9 */
    1402             : struct fd_nonce_state_versions {
    1403             :   uint discriminant;
    1404             :   fd_nonce_state_versions_inner_t inner;
    1405             : };
    1406             : typedef struct fd_nonce_state_versions fd_nonce_state_versions_t;
    1407           0 : #define FD_NONCE_STATE_VERSIONS_ALIGN alignof(fd_nonce_state_versions_t)
    1408             : 
    1409             : /* https://github.com/solana-labs/solana/blob/6c520396cd76807f6227a7973f7373b37894251c/sdk/src/compute_budget.rs#L28 */
    1410             : /* Encoded Size: Fixed (8 bytes) */
    1411             : struct fd_compute_budget_program_instruction_request_units_deprecated {
    1412             :   uint units;
    1413             :   uint additional_fee;
    1414             : };
    1415             : typedef struct fd_compute_budget_program_instruction_request_units_deprecated fd_compute_budget_program_instruction_request_units_deprecated_t;
    1416             : #define FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_REQUEST_UNITS_DEPRECATED_ALIGN alignof(fd_compute_budget_program_instruction_request_units_deprecated_t)
    1417             : 
    1418             : union fd_compute_budget_program_instruction_inner {
    1419             :   fd_compute_budget_program_instruction_request_units_deprecated_t request_units_deprecated;
    1420             :   uint request_heap_frame;
    1421             :   uint set_compute_unit_limit;
    1422             :   ulong set_compute_unit_price;
    1423             :   uint set_loaded_accounts_data_size_limit;
    1424             : };
    1425             : typedef union fd_compute_budget_program_instruction_inner fd_compute_budget_program_instruction_inner_t;
    1426             : 
    1427             : /* https://github.com/solana-labs/solana/blob/6c520396cd76807f6227a7973f7373b37894251c/sdk/src/compute_budget.rs#L25 */
    1428             : struct fd_compute_budget_program_instruction {
    1429             :   uint discriminant;
    1430             :   fd_compute_budget_program_instruction_inner_t inner;
    1431             : };
    1432             : typedef struct fd_compute_budget_program_instruction fd_compute_budget_program_instruction_t;
    1433           0 : #define FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_ALIGN alignof(fd_compute_budget_program_instruction_t)
    1434             : 
    1435             : /* https://github.com/solana-labs/solana/blob/a03ae63daff987912c48ee286eb8ee7e8a84bf01/programs/config/src/lib.rs#L32 */
    1436             : /* Encoded Size: Dynamic */
    1437             : struct fd_config_keys {
    1438             :   ushort keys_len;
    1439             :   fd_config_keys_pair_t * keys;
    1440             : };
    1441             : typedef struct fd_config_keys fd_config_keys_t;
    1442           0 : #define FD_CONFIG_KEYS_ALIGN alignof(fd_config_keys_t)
    1443             : 
    1444             : /* Encoded Size: Dynamic */
    1445             : struct fd_bpf_loader_program_instruction_write {
    1446             :   uint offset;
    1447             :   ulong bytes_len;
    1448             :   uchar* bytes;
    1449             : };
    1450             : typedef struct fd_bpf_loader_program_instruction_write fd_bpf_loader_program_instruction_write_t;
    1451             : #define FD_BPF_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_bpf_loader_program_instruction_write_t)
    1452             : 
    1453             : union fd_bpf_loader_program_instruction_inner {
    1454             :   fd_bpf_loader_program_instruction_write_t write;
    1455             : };
    1456             : typedef union fd_bpf_loader_program_instruction_inner fd_bpf_loader_program_instruction_inner_t;
    1457             : 
    1458             : struct fd_bpf_loader_program_instruction {
    1459             :   uint discriminant;
    1460             :   fd_bpf_loader_program_instruction_inner_t inner;
    1461             : };
    1462             : typedef struct fd_bpf_loader_program_instruction fd_bpf_loader_program_instruction_t;
    1463             : #define FD_BPF_LOADER_PROGRAM_INSTRUCTION_ALIGN alignof(fd_bpf_loader_program_instruction_t)
    1464             : 
    1465             : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L21-L27 */
    1466             : /* Encoded Size: Dynamic */
    1467             : struct fd_loader_v4_program_instruction_write {
    1468             :   uint offset;
    1469             :   ulong bytes_len;
    1470             :   uchar* bytes;
    1471             : };
    1472             : typedef struct fd_loader_v4_program_instruction_write fd_loader_v4_program_instruction_write_t;
    1473             : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_loader_v4_program_instruction_write_t)
    1474             : 
    1475             : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L35-L42 */
    1476             : /* Encoded Size: Fixed (12 bytes) */
    1477             : struct fd_loader_v4_program_instruction_copy {
    1478             :   uint destination_offset;
    1479             :   uint source_offset;
    1480             :   uint length;
    1481             : };
    1482             : typedef struct fd_loader_v4_program_instruction_copy fd_loader_v4_program_instruction_copy_t;
    1483             : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_COPY_ALIGN alignof(fd_loader_v4_program_instruction_copy_t)
    1484             : 
    1485             : /* https://github.com/anza-xyz/solana-sdk/blob/loader-v4-interface%40v2.2.1/loader-v4-interface/src/instruction.rs#L57-L60 */
    1486             : /* Encoded Size: Fixed (4 bytes) */
    1487             : struct fd_loader_v4_program_instruction_set_program_length {
    1488             :   uint new_size;
    1489             : };
    1490             : typedef struct fd_loader_v4_program_instruction_set_program_length fd_loader_v4_program_instruction_set_program_length_t;
    1491             : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_SET_PROGRAM_LENGTH_ALIGN alignof(fd_loader_v4_program_instruction_set_program_length_t)
    1492             : 
    1493             : union fd_loader_v4_program_instruction_inner {
    1494             :   fd_loader_v4_program_instruction_write_t write;
    1495             :   fd_loader_v4_program_instruction_copy_t copy;
    1496             :   fd_loader_v4_program_instruction_set_program_length_t set_program_length;
    1497             : };
    1498             : typedef union fd_loader_v4_program_instruction_inner fd_loader_v4_program_instruction_inner_t;
    1499             : 
    1500             : /* https://github.com/anza-xyz/agave/blob/007194391ca8313b2854d523769d0bedf040ef92/sdk/program/src/loader_v4_instruction.rs#L5 */
    1501             : struct fd_loader_v4_program_instruction {
    1502             :   uint discriminant;
    1503             :   fd_loader_v4_program_instruction_inner_t inner;
    1504             : };
    1505             : typedef struct fd_loader_v4_program_instruction fd_loader_v4_program_instruction_t;
    1506           0 : #define FD_LOADER_V4_PROGRAM_INSTRUCTION_ALIGN alignof(fd_loader_v4_program_instruction_t)
    1507             : 
    1508             : /* Encoded Size: Dynamic */
    1509             : struct fd_bpf_upgradeable_loader_program_instruction_write {
    1510             :   uint offset;
    1511             :   ulong bytes_len;
    1512             :   uchar* bytes;
    1513             : };
    1514             : typedef struct fd_bpf_upgradeable_loader_program_instruction_write fd_bpf_upgradeable_loader_program_instruction_write_t;
    1515             : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_write_t)
    1516             : 
    1517             : /* Encoded Size: Fixed (8 bytes) */
    1518             : struct fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len {
    1519             :   ulong max_data_len;
    1520             : };
    1521             : 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;
    1522             : #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)
    1523             : 
    1524             : /* Encoded Size: Fixed (4 bytes) */
    1525             : struct fd_bpf_upgradeable_loader_program_instruction_extend_program {
    1526             :   uint additional_bytes;
    1527             : };
    1528             : typedef struct fd_bpf_upgradeable_loader_program_instruction_extend_program fd_bpf_upgradeable_loader_program_instruction_extend_program_t;
    1529             : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t)
    1530             : 
    1531             : /* Encoded Size: Fixed (4 bytes) */
    1532             : struct fd_bpf_upgradeable_loader_program_instruction_extend_program_checked {
    1533             :   uint additional_bytes;
    1534             : };
    1535             : typedef struct fd_bpf_upgradeable_loader_program_instruction_extend_program_checked fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t;
    1536             : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_CHECKED_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t)
    1537             : 
    1538             : union fd_bpf_upgradeable_loader_program_instruction_inner {
    1539             :   fd_bpf_upgradeable_loader_program_instruction_write_t write;
    1540             :   fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t deploy_with_max_data_len;
    1541             :   fd_bpf_upgradeable_loader_program_instruction_extend_program_t extend_program;
    1542             :   fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t extend_program_checked;
    1543             : };
    1544             : typedef union fd_bpf_upgradeable_loader_program_instruction_inner fd_bpf_upgradeable_loader_program_instruction_inner_t;
    1545             : 
    1546             : struct fd_bpf_upgradeable_loader_program_instruction {
    1547             :   uint discriminant;
    1548             :   fd_bpf_upgradeable_loader_program_instruction_inner_t inner;
    1549             : };
    1550             : typedef struct fd_bpf_upgradeable_loader_program_instruction fd_bpf_upgradeable_loader_program_instruction_t;
    1551           0 : #define FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_ALIGN alignof(fd_bpf_upgradeable_loader_program_instruction_t)
    1552             : 
    1553             : /* Encoded Size: Dynamic */
    1554             : struct fd_bpf_upgradeable_loader_state_buffer {
    1555             :   fd_pubkey_t authority_address;
    1556             :   uchar has_authority_address;
    1557             : };
    1558             : typedef struct fd_bpf_upgradeable_loader_state_buffer fd_bpf_upgradeable_loader_state_buffer_t;
    1559             : #define FD_BPF_UPGRADEABLE_LOADER_STATE_BUFFER_ALIGN alignof(fd_bpf_upgradeable_loader_state_buffer_t)
    1560             : 
    1561             : /* Encoded Size: Fixed (32 bytes) */
    1562             : struct fd_bpf_upgradeable_loader_state_program {
    1563             :   fd_pubkey_t programdata_address;
    1564             : };
    1565             : typedef struct fd_bpf_upgradeable_loader_state_program fd_bpf_upgradeable_loader_state_program_t;
    1566             : #define FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_ALIGN alignof(fd_bpf_upgradeable_loader_state_program_t)
    1567             : 
    1568             : /* Encoded Size: Dynamic */
    1569             : struct fd_bpf_upgradeable_loader_state_program_data {
    1570             :   ulong slot;
    1571             :   fd_pubkey_t upgrade_authority_address;
    1572             :   uchar has_upgrade_authority_address;
    1573             : };
    1574             : typedef struct fd_bpf_upgradeable_loader_state_program_data fd_bpf_upgradeable_loader_state_program_data_t;
    1575             : #define FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_DATA_ALIGN alignof(fd_bpf_upgradeable_loader_state_program_data_t)
    1576             : 
    1577             : union fd_bpf_upgradeable_loader_state_inner {
    1578             :   fd_bpf_upgradeable_loader_state_buffer_t buffer;
    1579             :   fd_bpf_upgradeable_loader_state_program_t program;
    1580             :   fd_bpf_upgradeable_loader_state_program_data_t program_data;
    1581             : };
    1582             : typedef union fd_bpf_upgradeable_loader_state_inner fd_bpf_upgradeable_loader_state_inner_t;
    1583             : 
    1584             : struct fd_bpf_upgradeable_loader_state {
    1585             :   uint discriminant;
    1586             :   fd_bpf_upgradeable_loader_state_inner_t inner;
    1587             : };
    1588             : typedef struct fd_bpf_upgradeable_loader_state fd_bpf_upgradeable_loader_state_t;
    1589           0 : #define FD_BPF_UPGRADEABLE_LOADER_STATE_ALIGN alignof(fd_bpf_upgradeable_loader_state_t)
    1590             : 
    1591             : /* https://github.com/anza-xyz/agave/blob/v2.1.4/sdk/program/src/loader_v4.rs#L33-L43 */
    1592             : /* Encoded Size: Fixed (48 bytes) */
    1593             : struct fd_loader_v4_state {
    1594             :   ulong slot;
    1595             :   fd_pubkey_t authority_address_or_next_version;
    1596             :   ulong status;
    1597             : };
    1598             : typedef struct fd_loader_v4_state fd_loader_v4_state_t;
    1599             : #define FD_LOADER_V4_STATE_ALIGN alignof(fd_loader_v4_state_t)
    1600             : 
    1601             : /* https://github.com/firedancer-io/solana/blob/f4b7c54f9e021b40cfc7cbd32dc12b19dedbe791/ledger/src/blockstore_meta.rs#L178 */
    1602             : /* Encoded Size: Fixed (33 bytes) */
    1603             : struct fd_frozen_hash_status {
    1604             :   fd_hash_t frozen_hash;
    1605             :   uchar is_duplicate_confirmed;
    1606             : };
    1607             : typedef struct fd_frozen_hash_status fd_frozen_hash_status_t;
    1608             : #define FD_FROZEN_HASH_STATUS_ALIGN alignof(fd_frozen_hash_status_t)
    1609             : 
    1610             : union fd_frozen_hash_versioned_inner {
    1611             :   fd_frozen_hash_status_t current;
    1612             : };
    1613             : typedef union fd_frozen_hash_versioned_inner fd_frozen_hash_versioned_inner_t;
    1614             : 
    1615             : /* https://github.com/firedancer-io/solana/blob/f4b7c54f9e021b40cfc7cbd32dc12b19dedbe791/ledger/src/blockstore_meta.rs#L157 */
    1616             : struct fd_frozen_hash_versioned {
    1617             :   uint discriminant;
    1618             :   fd_frozen_hash_versioned_inner_t inner;
    1619             : };
    1620             : typedef struct fd_frozen_hash_versioned fd_frozen_hash_versioned_t;
    1621             : #define FD_FROZEN_HASH_VERSIONED_ALIGN alignof(fd_frozen_hash_versioned_t)
    1622             : 
    1623             : /* Encoded Size: Dynamic */
    1624             : struct fd_lookup_table_meta {
    1625             :   ulong deactivation_slot;
    1626             :   ulong last_extended_slot;
    1627             :   uchar last_extended_slot_start_index;
    1628             :   fd_pubkey_t authority;
    1629             :   uchar has_authority;
    1630             :   ushort _padding;
    1631             : };
    1632             : typedef struct fd_lookup_table_meta fd_lookup_table_meta_t;
    1633             : #define FD_LOOKUP_TABLE_META_ALIGN alignof(fd_lookup_table_meta_t)
    1634             : 
    1635             : /* Encoded Size: Dynamic */
    1636             : struct fd_address_lookup_table {
    1637             :   fd_lookup_table_meta_t meta;
    1638             : };
    1639             : typedef struct fd_address_lookup_table fd_address_lookup_table_t;
    1640             : #define FD_ADDRESS_LOOKUP_TABLE_ALIGN alignof(fd_address_lookup_table_t)
    1641             : 
    1642             : union fd_address_lookup_table_state_inner {
    1643             :   fd_address_lookup_table_t lookup_table;
    1644             : };
    1645             : typedef union fd_address_lookup_table_state_inner fd_address_lookup_table_state_inner_t;
    1646             : 
    1647             : struct fd_address_lookup_table_state {
    1648             :   uint discriminant;
    1649             :   fd_address_lookup_table_state_inner_t inner;
    1650             : };
    1651             : typedef struct fd_address_lookup_table_state fd_address_lookup_table_state_t;
    1652             : #define FD_ADDRESS_LOOKUP_TABLE_STATE_ALIGN alignof(fd_address_lookup_table_state_t)
    1653             : 
    1654             : /* https://github.com/solana-labs/solana/blob/52616cf7aa424a80f770e5ec3f2cd49d1cfeb845/gossip/src/ping_pong.rs#L22 */
    1655             : /* Encoded Size: Fixed (128 bytes) */
    1656             : struct fd_gossip_ping {
    1657             :   fd_pubkey_t from;
    1658             :   fd_hash_t token;
    1659             :   fd_signature_t signature;
    1660             : };
    1661             : typedef struct fd_gossip_ping fd_gossip_ping_t;
    1662             : #define FD_GOSSIP_PING_ALIGN alignof(fd_gossip_ping_t)
    1663             : 
    1664             : /* Encoded Size: Fixed (9 bytes) */
    1665             : struct fd_addrlut_create {
    1666             :   ulong recent_slot;
    1667             :   uchar bump_seed;
    1668             : };
    1669             : typedef struct fd_addrlut_create fd_addrlut_create_t;
    1670             : #define FD_ADDRLUT_CREATE_ALIGN alignof(fd_addrlut_create_t)
    1671             : 
    1672             : /* Encoded Size: Dynamic */
    1673             : struct fd_addrlut_extend {
    1674             :   ulong new_addrs_len;
    1675             :   fd_pubkey_t * new_addrs;
    1676             : };
    1677             : typedef struct fd_addrlut_extend fd_addrlut_extend_t;
    1678             : #define FD_ADDRLUT_EXTEND_ALIGN alignof(fd_addrlut_extend_t)
    1679             : 
    1680             : union fd_addrlut_instruction_inner {
    1681             :   fd_addrlut_create_t create_lut;
    1682             :   fd_addrlut_extend_t extend_lut;
    1683             : };
    1684             : typedef union fd_addrlut_instruction_inner fd_addrlut_instruction_inner_t;
    1685             : 
    1686             : /* https://github.com/solana-labs/solana/blob/fb80288f885a62bcd923f4c9579fd0edeafaff9b/sdk/program/src/address_lookup_table/instruction.rs#L13 */
    1687             : struct fd_addrlut_instruction {
    1688             :   uint discriminant;
    1689             :   fd_addrlut_instruction_inner_t inner;
    1690             : };
    1691             : typedef struct fd_addrlut_instruction fd_addrlut_instruction_t;
    1692           0 : #define FD_ADDRLUT_INSTRUCTION_ALIGN alignof(fd_addrlut_instruction_t)
    1693             : 
    1694             : /* https://github.com/anza-xyz/agave/blob/v2.2.7/core/src/repair/serve_repair.rs#L204-L210 */
    1695             : /* Encoded Size: Fixed (140 bytes) */
    1696             : struct fd_repair_request_header {
    1697             :   fd_signature_t signature;
    1698             :   fd_pubkey_t sender;
    1699             :   fd_pubkey_t recipient;
    1700             :   ulong timestamp;
    1701             :   uint nonce;
    1702             : };
    1703             : typedef struct fd_repair_request_header fd_repair_request_header_t;
    1704             : #define FD_REPAIR_REQUEST_HEADER_ALIGN alignof(fd_repair_request_header_t)
    1705             : 
    1706             : /* Encoded Size: Fixed (156 bytes) */
    1707             : struct fd_repair_window_index {
    1708             :   fd_repair_request_header_t header;
    1709             :   ulong slot;
    1710             :   ulong shred_index;
    1711             : };
    1712             : typedef struct fd_repair_window_index fd_repair_window_index_t;
    1713             : #define FD_REPAIR_WINDOW_INDEX_ALIGN alignof(fd_repair_window_index_t)
    1714             : 
    1715             : /* Encoded Size: Fixed (156 bytes) */
    1716             : struct fd_repair_highest_window_index {
    1717             :   fd_repair_request_header_t header;
    1718             :   ulong slot;
    1719             :   ulong shred_index;
    1720             : };
    1721             : typedef struct fd_repair_highest_window_index fd_repair_highest_window_index_t;
    1722             : #define FD_REPAIR_HIGHEST_WINDOW_INDEX_ALIGN alignof(fd_repair_highest_window_index_t)
    1723             : 
    1724             : /* Encoded Size: Fixed (148 bytes) */
    1725             : struct fd_repair_orphan {
    1726             :   fd_repair_request_header_t header;
    1727             :   ulong slot;
    1728             : };
    1729             : typedef struct fd_repair_orphan fd_repair_orphan_t;
    1730             : #define FD_REPAIR_ORPHAN_ALIGN alignof(fd_repair_orphan_t)
    1731             : 
    1732             : /* Encoded Size: Fixed (148 bytes) */
    1733             : struct fd_repair_ancestor_hashes {
    1734             :   fd_repair_request_header_t header;
    1735             :   ulong slot;
    1736             : };
    1737             : typedef struct fd_repair_ancestor_hashes fd_repair_ancestor_hashes_t;
    1738             : #define FD_REPAIR_ANCESTOR_HASHES_ALIGN alignof(fd_repair_ancestor_hashes_t)
    1739             : 
    1740             : union fd_repair_protocol_inner {
    1741             :   fd_gossip_ping_t pong;
    1742             :   fd_repair_window_index_t window_index;
    1743             :   fd_repair_highest_window_index_t highest_window_index;
    1744             :   fd_repair_orphan_t orphan;
    1745             :   fd_repair_ancestor_hashes_t ancestor_hashes;
    1746             : };
    1747             : typedef union fd_repair_protocol_inner fd_repair_protocol_inner_t;
    1748             : 
    1749             : struct fd_repair_protocol {
    1750             :   uint discriminant;
    1751             :   fd_repair_protocol_inner_t inner;
    1752             : };
    1753             : typedef struct fd_repair_protocol fd_repair_protocol_t;
    1754          18 : #define FD_REPAIR_PROTOCOL_ALIGN alignof(fd_repair_protocol_t)
    1755             : 
    1756             : union fd_repair_response_inner {
    1757             :   fd_gossip_ping_t ping;
    1758             : };
    1759             : typedef union fd_repair_response_inner fd_repair_response_inner_t;
    1760             : 
    1761             : struct fd_repair_response {
    1762             :   uint discriminant;
    1763             :   fd_repair_response_inner_t inner;
    1764             : };
    1765             : typedef struct fd_repair_response fd_repair_response_t;
    1766             : #define FD_REPAIR_RESPONSE_ALIGN alignof(fd_repair_response_t)
    1767             : 
    1768             : union fd_instr_error_enum_inner {
    1769             :   uint custom;
    1770             :   char* borsh_io_error;
    1771             : };
    1772             : typedef union fd_instr_error_enum_inner fd_instr_error_enum_inner_t;
    1773             : 
    1774             : struct fd_instr_error_enum {
    1775             :   uint discriminant;
    1776             :   fd_instr_error_enum_inner_t inner;
    1777             : };
    1778             : typedef struct fd_instr_error_enum fd_instr_error_enum_t;
    1779             : #define FD_INSTR_ERROR_ENUM_ALIGN alignof(fd_instr_error_enum_t)
    1780             : 
    1781             : /* Encoded Size: Dynamic */
    1782             : struct fd_txn_instr_error {
    1783             :   uchar instr_idx;
    1784             :   fd_instr_error_enum_t error;
    1785             : };
    1786             : typedef struct fd_txn_instr_error fd_txn_instr_error_t;
    1787             : #define FD_TXN_INSTR_ERROR_ALIGN alignof(fd_txn_instr_error_t)
    1788             : 
    1789             : union fd_txn_error_enum_inner {
    1790             :   fd_txn_instr_error_t instruction_error;
    1791             :   uchar duplicate_instruction;
    1792             :   uchar insufficient_funds_for_rent;
    1793             :   uchar program_execution_temporarily_restricted;
    1794             : };
    1795             : typedef union fd_txn_error_enum_inner fd_txn_error_enum_inner_t;
    1796             : 
    1797             : struct fd_txn_error_enum {
    1798             :   uint discriminant;
    1799             :   fd_txn_error_enum_inner_t inner;
    1800             : };
    1801             : typedef struct fd_txn_error_enum fd_txn_error_enum_t;
    1802             : #define FD_TXN_ERROR_ENUM_ALIGN alignof(fd_txn_error_enum_t)
    1803             : 
    1804             : union fd_txn_result_inner {
    1805             :   fd_txn_error_enum_t error;
    1806             : };
    1807             : typedef union fd_txn_result_inner fd_txn_result_inner_t;
    1808             : 
    1809             : struct fd_txn_result {
    1810             :   uint discriminant;
    1811             :   fd_txn_result_inner_t inner;
    1812             : };
    1813             : typedef struct fd_txn_result fd_txn_result_t;
    1814             : #define FD_TXN_RESULT_ALIGN alignof(fd_txn_result_t)
    1815             : 
    1816             : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/programs/stake/src/points.rs#L27 */
    1817             : /* Encoded Size: Fixed (25 bytes) */
    1818             : struct fd_calculated_stake_points {
    1819             :   uint128 points;
    1820             :   ulong new_credits_observed;
    1821             :   uchar force_credits_update_with_skipped_reward;
    1822             : };
    1823             : typedef struct fd_calculated_stake_points fd_calculated_stake_points_t;
    1824             : #define FD_CALCULATED_STAKE_POINTS_ALIGN alignof(fd_calculated_stake_points_t)
    1825             : 
    1826             : /* https://github.com/anza-xyz/agave/blob/cbc8320d35358da14d79ebcada4dfb6756ffac79/programs/stake/src/rewards.rs#L24 */
    1827             : /* Encoded Size: Fixed (24 bytes) */
    1828             : struct fd_calculated_stake_rewards {
    1829             :   ulong staker_rewards;
    1830             :   ulong voter_rewards;
    1831             :   ulong new_credits_observed;
    1832             : };
    1833             : typedef struct fd_calculated_stake_rewards fd_calculated_stake_rewards_t;
    1834             : #define FD_CALCULATED_STAKE_REWARDS_ALIGN alignof(fd_calculated_stake_rewards_t)
    1835             : 
    1836             : /* https://github.com/anza-xyz/agave/blob/v2.0.3/ledger/src/blockstore_meta.rs#L150-L156 */
    1837             : /* Encoded Size: Dynamic */
    1838             : struct fd_duplicate_slot_proof {
    1839             :   ulong shred1_len;
    1840             :   uchar* shred1;
    1841             :   ulong shred2_len;
    1842             :   uchar* shred2;
    1843             : };
    1844             : typedef struct fd_duplicate_slot_proof fd_duplicate_slot_proof_t;
    1845             : #define FD_DUPLICATE_SLOT_PROOF_ALIGN alignof(fd_duplicate_slot_proof_t)
    1846             : 
    1847             : /* Encoded Size: Fixed (104 bytes) */
    1848             : struct fd_epoch_info_pair {
    1849             :   fd_pubkey_t account;
    1850             :   fd_stake_t stake;
    1851             : };
    1852             : typedef struct fd_epoch_info_pair fd_epoch_info_pair_t;
    1853             : #define FD_EPOCH_INFO_PAIR_ALIGN alignof(fd_epoch_info_pair_t)
    1854             : 
    1855             : /* https://github.com/anza-xyz/agave/blob/v2.2.0/cost-model/src/transaction_cost.rs#L153-L161 */
    1856             : /* Encoded Size: Fixed (48 bytes) */
    1857             : struct fd_usage_cost_details {
    1858             :   ulong signature_cost;
    1859             :   ulong write_lock_cost;
    1860             :   ulong data_bytes_cost;
    1861             :   ulong programs_execution_cost;
    1862             :   ulong loaded_accounts_data_size_cost;
    1863             :   ulong allocated_accounts_data_size;
    1864             : };
    1865             : typedef struct fd_usage_cost_details fd_usage_cost_details_t;
    1866             : #define FD_USAGE_COST_DETAILS_ALIGN alignof(fd_usage_cost_details_t)
    1867             : 
    1868             : union fd_transaction_cost_inner {
    1869             :   fd_usage_cost_details_t transaction;
    1870             : };
    1871             : typedef union fd_transaction_cost_inner fd_transaction_cost_inner_t;
    1872             : 
    1873             : /* https://github.com/anza-xyz/agave/blob/v2.2.0/cost-model/src/transaction_cost.rs#L20-L23 */
    1874             : struct fd_transaction_cost {
    1875             :   uint discriminant;
    1876             :   fd_transaction_cost_inner_t inner;
    1877             : };
    1878             : typedef struct fd_transaction_cost fd_transaction_cost_t;
    1879             : #define FD_TRANSACTION_COST_ALIGN alignof(fd_transaction_cost_t)
    1880             : 
    1881             : /* Encoded Size: Fixed (16 bytes) */
    1882             : struct fd_rent_paying {
    1883             :   ulong lamports;
    1884             :   ulong data_size;
    1885             : };
    1886             : typedef struct fd_rent_paying fd_rent_paying_t;
    1887             : #define FD_RENT_PAYING_ALIGN alignof(fd_rent_paying_t)
    1888             : 
    1889             : union fd_rent_state_inner {
    1890             :   fd_rent_paying_t rent_paying;
    1891             : };
    1892             : typedef union fd_rent_state_inner fd_rent_state_inner_t;
    1893             : 
    1894             : /* https://github.com/anza-xyz/agave/blob/v2.2.13/svm-rent-collector/src/rent_state.rs#L5-L15 */
    1895             : struct fd_rent_state {
    1896             :   uint discriminant;
    1897             :   fd_rent_state_inner_t inner;
    1898             : };
    1899             : typedef struct fd_rent_state fd_rent_state_t;
    1900             : #define FD_RENT_STATE_ALIGN alignof(fd_rent_state_t)
    1901             : 
    1902             : 
    1903             : FD_PROTOTYPES_BEGIN
    1904             : 
    1905          36 : static inline void fd_hash_new( fd_hash_t * self ) { (void)self; }
    1906             : int fd_hash_encode( fd_hash_t const * self, fd_bincode_encode_ctx_t * ctx );
    1907             : void fd_hash_walk( void * w, fd_hash_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
    1908           0 : static inline ulong fd_hash_size( fd_hash_t const * self ) { (void)self; return sizeof(fd_hash_t); }
    1909           0 : static inline ulong fd_hash_align( void ) { return alignof(fd_hash_t); }
    1910             : int fd_hash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    1911             : void * fd_hash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1912             : 
    1913           0 : static inline void fd_signature_new( fd_signature_t * self ) { (void)self; }
    1914             : int fd_signature_encode( fd_signature_t const * self, fd_bincode_encode_ctx_t * ctx );
    1915             : void fd_signature_walk( void * w, fd_signature_t const * self, fd_types_walk_fn_t fun, const char * name, uint level, uint varint );
    1916           0 : static inline ulong fd_signature_size( fd_signature_t const * self ) { (void)self; return sizeof(fd_signature_t); }
    1917           0 : static inline ulong fd_signature_align( void ) { return alignof(fd_signature_t); }
    1918             : int fd_signature_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    1919             : void * fd_signature_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1920             : 
    1921             : void fd_feature_new( fd_feature_t * self );
    1922             : int fd_feature_encode( fd_feature_t const * self, fd_bincode_encode_ctx_t * ctx );
    1923             : void fd_feature_walk( void * w, fd_feature_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    1924             : ulong fd_feature_size( fd_feature_t const * self );
    1925           0 : static inline ulong fd_feature_align( void ) { return FD_FEATURE_ALIGN; }
    1926             : int fd_feature_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    1927             : void * fd_feature_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1928             : 
    1929           0 : static inline void fd_fee_calculator_new( fd_fee_calculator_t * self ) { fd_memset( self, 0, sizeof(fd_fee_calculator_t) ); }
    1930             : int fd_fee_calculator_encode( fd_fee_calculator_t const * self, fd_bincode_encode_ctx_t * ctx );
    1931             : void fd_fee_calculator_walk( void * w, fd_fee_calculator_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    1932           0 : static inline ulong fd_fee_calculator_size( fd_fee_calculator_t const * self ) { (void)self; return 8UL; }
    1933           0 : static inline ulong fd_fee_calculator_align( void ) { return FD_FEE_CALCULATOR_ALIGN; }
    1934           0 : static inline int fd_fee_calculator_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    1935           0 :   *total_sz += sizeof(fd_fee_calculator_t);
    1936           0 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    1937           0 :   return 0;
    1938           0 : }
    1939             : void * fd_fee_calculator_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1940             : 
    1941          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) ); }
    1942             : int fd_fee_rate_governor_encode( fd_fee_rate_governor_t const * self, fd_bincode_encode_ctx_t * ctx );
    1943             : void fd_fee_rate_governor_walk( void * w, fd_fee_rate_governor_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    1944           0 : static inline ulong fd_fee_rate_governor_size( fd_fee_rate_governor_t const * self ) { (void)self; return 33UL; }
    1945           0 : static inline ulong fd_fee_rate_governor_align( void ) { return FD_FEE_RATE_GOVERNOR_ALIGN; }
    1946           0 : static inline int fd_fee_rate_governor_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    1947           0 :   *total_sz += sizeof(fd_fee_rate_governor_t);
    1948           0 :   if( (ulong)ctx->data + 33UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    1949           0 :   return 0;
    1950           0 : }
    1951             : void * fd_fee_rate_governor_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1952             : 
    1953           0 : static inline void fd_slot_pair_new( fd_slot_pair_t * self ) { fd_memset( self, 0, sizeof(fd_slot_pair_t) ); }
    1954             : int fd_slot_pair_encode( fd_slot_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    1955             : void fd_slot_pair_walk( void * w, fd_slot_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    1956           0 : static inline ulong fd_slot_pair_size( fd_slot_pair_t const * self ) { (void)self; return 16UL; }
    1957           0 : static inline ulong fd_slot_pair_align( void ) { return FD_SLOT_PAIR_ALIGN; }
    1958           0 : static inline int fd_slot_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    1959           0 :   *total_sz += sizeof(fd_slot_pair_t);
    1960           0 :   if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    1961           0 :   return 0;
    1962           0 : }
    1963             : void * fd_slot_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1964             : 
    1965             : void fd_hard_forks_new( fd_hard_forks_t * self );
    1966             : int fd_hard_forks_encode( fd_hard_forks_t const * self, fd_bincode_encode_ctx_t * ctx );
    1967             : void fd_hard_forks_walk( void * w, fd_hard_forks_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    1968             : ulong fd_hard_forks_size( fd_hard_forks_t const * self );
    1969           0 : static inline ulong fd_hard_forks_align( void ) { return FD_HARD_FORKS_ALIGN; }
    1970             : int fd_hard_forks_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    1971             : void * fd_hard_forks_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1972             : void * fd_hard_forks_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    1973             : int fd_hard_forks_encode_global( fd_hard_forks_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    1974             : ulong fd_hard_forks_size_global( fd_hard_forks_global_t const * self );
    1975             : 
    1976          12 : static inline void fd_inflation_new( fd_inflation_t * self ) { fd_memset( self, 0, sizeof(fd_inflation_t) ); }
    1977             : int fd_inflation_encode( fd_inflation_t const * self, fd_bincode_encode_ctx_t * ctx );
    1978             : void fd_inflation_walk( void * w, fd_inflation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    1979           0 : static inline ulong fd_inflation_size( fd_inflation_t const * self ) { (void)self; return 48UL; }
    1980           0 : static inline ulong fd_inflation_align( void ) { return FD_INFLATION_ALIGN; }
    1981           0 : static inline int fd_inflation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    1982           0 :   *total_sz += sizeof(fd_inflation_t);
    1983           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    1984           0 :   return 0;
    1985           0 : }
    1986             : void * fd_inflation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1987             : 
    1988          12 : static inline void fd_rent_new( fd_rent_t * self ) { fd_memset( self, 0, sizeof(fd_rent_t) ); }
    1989             : int fd_rent_encode( fd_rent_t const * self, fd_bincode_encode_ctx_t * ctx );
    1990             : void fd_rent_walk( void * w, fd_rent_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    1991           0 : static inline ulong fd_rent_size( fd_rent_t const * self ) { (void)self; return 17UL; }
    1992           3 : static inline ulong fd_rent_align( void ) { return FD_RENT_ALIGN; }
    1993           3 : static inline int fd_rent_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    1994           3 :   *total_sz += sizeof(fd_rent_t);
    1995           3 :   if( (ulong)ctx->data + 17UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    1996           3 :   return 0;
    1997           3 : }
    1998             : void * fd_rent_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    1999             : 
    2000             : void fd_epoch_schedule_new( fd_epoch_schedule_t * self );
    2001             : int fd_epoch_schedule_encode( fd_epoch_schedule_t const * self, fd_bincode_encode_ctx_t * ctx );
    2002             : void fd_epoch_schedule_walk( void * w, fd_epoch_schedule_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2003           0 : static inline ulong fd_epoch_schedule_size( fd_epoch_schedule_t const * self ) { (void)self; return 33UL; }
    2004           3 : static inline ulong fd_epoch_schedule_align( void ) { return FD_EPOCH_SCHEDULE_ALIGN; }
    2005             : int fd_epoch_schedule_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2006             : void * fd_epoch_schedule_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2007             : 
    2008             : void fd_rent_collector_new( fd_rent_collector_t * self );
    2009             : int fd_rent_collector_encode( fd_rent_collector_t const * self, fd_bincode_encode_ctx_t * ctx );
    2010             : void fd_rent_collector_walk( void * w, fd_rent_collector_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2011           0 : static inline ulong fd_rent_collector_size( fd_rent_collector_t const * self ) { (void)self; return 66UL; }
    2012           0 : static inline ulong fd_rent_collector_align( void ) { return FD_RENT_COLLECTOR_ALIGN; }
    2013             : int fd_rent_collector_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2014             : void * fd_rent_collector_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2015             : 
    2016           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) ); }
    2017             : int fd_stake_history_entry_encode( fd_stake_history_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
    2018             : void fd_stake_history_entry_walk( void * w, fd_stake_history_entry_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2019           0 : static inline ulong fd_stake_history_entry_size( fd_stake_history_entry_t const * self ) { (void)self; return 24UL; }
    2020           0 : static inline ulong fd_stake_history_entry_align( void ) { return FD_STAKE_HISTORY_ENTRY_ALIGN; }
    2021           0 : static inline int fd_stake_history_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2022           0 :   *total_sz += sizeof(fd_stake_history_entry_t);
    2023           0 :   if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2024           0 :   return 0;
    2025           0 : }
    2026             : void * fd_stake_history_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2027             : 
    2028        7680 : static inline void fd_epoch_stake_history_entry_pair_new( fd_epoch_stake_history_entry_pair_t * self ) { fd_memset( self, 0, sizeof(fd_epoch_stake_history_entry_pair_t) ); }
    2029             : int fd_epoch_stake_history_entry_pair_encode( fd_epoch_stake_history_entry_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    2030             : void fd_epoch_stake_history_entry_pair_walk( void * w, fd_epoch_stake_history_entry_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2031           0 : static inline ulong fd_epoch_stake_history_entry_pair_size( fd_epoch_stake_history_entry_pair_t const * self ) { (void)self; return 32UL; }
    2032           0 : static inline ulong fd_epoch_stake_history_entry_pair_align( void ) { return FD_EPOCH_STAKE_HISTORY_ENTRY_PAIR_ALIGN; }
    2033           0 : static inline int fd_epoch_stake_history_entry_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2034           0 :   *total_sz += sizeof(fd_epoch_stake_history_entry_pair_t);
    2035           0 :   if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2036           0 :   return 0;
    2037           0 : }
    2038             : void * fd_epoch_stake_history_entry_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2039             : 
    2040             : void fd_stake_history_new( fd_stake_history_t * self );
    2041             : int fd_stake_history_encode( fd_stake_history_t const * self, fd_bincode_encode_ctx_t * ctx );
    2042             : void fd_stake_history_walk( void * w, fd_stake_history_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2043           0 : static inline ulong fd_stake_history_size( fd_stake_history_t const * self ) { (void)self; return 16392UL; }
    2044           3 : static inline ulong fd_stake_history_align( void ) { return FD_STAKE_HISTORY_ALIGN; }
    2045             : int fd_stake_history_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2046             : void * fd_stake_history_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2047             : 
    2048             : void fd_solana_account_new( fd_solana_account_t * self );
    2049             : int fd_solana_account_encode( fd_solana_account_t const * self, fd_bincode_encode_ctx_t * ctx );
    2050             : void fd_solana_account_walk( void * w, fd_solana_account_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2051             : ulong fd_solana_account_size( fd_solana_account_t const * self );
    2052           0 : static inline ulong fd_solana_account_align( void ) { return FD_SOLANA_ACCOUNT_ALIGN; }
    2053             : int fd_solana_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2054             : void * fd_solana_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2055             : void * fd_solana_account_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2056             : int fd_solana_account_encode_global( fd_solana_account_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2057             : ulong fd_solana_account_size_global( fd_solana_account_global_t const * self );
    2058             : 
    2059           0 : static inline void fd_solana_account_stored_meta_new( fd_solana_account_stored_meta_t * self ) { fd_memset( self, 0, sizeof(fd_solana_account_stored_meta_t) ); }
    2060             : int fd_solana_account_stored_meta_encode( fd_solana_account_stored_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    2061             : void fd_solana_account_stored_meta_walk( void * w, fd_solana_account_stored_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2062           0 : static inline ulong fd_solana_account_stored_meta_size( fd_solana_account_stored_meta_t const * self ) { (void)self; return 48UL; }
    2063           0 : static inline ulong fd_solana_account_stored_meta_align( void ) { return FD_SOLANA_ACCOUNT_STORED_META_ALIGN; }
    2064           0 : static inline int fd_solana_account_stored_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2065           0 :   *total_sz += sizeof(fd_solana_account_stored_meta_t);
    2066           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2067           0 :   return 0;
    2068           0 : }
    2069             : void * fd_solana_account_stored_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2070             : 
    2071             : void fd_solana_account_meta_new( fd_solana_account_meta_t * self );
    2072             : int fd_solana_account_meta_encode( fd_solana_account_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    2073             : void fd_solana_account_meta_walk( void * w, fd_solana_account_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2074           0 : static inline ulong fd_solana_account_meta_size( fd_solana_account_meta_t const * self ) { (void)self; return 52UL; }
    2075           0 : static inline ulong fd_solana_account_meta_align( void ) { return FD_SOLANA_ACCOUNT_META_ALIGN; }
    2076             : int fd_solana_account_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2077             : void * fd_solana_account_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2078             : 
    2079             : void fd_solana_account_hdr_new( fd_solana_account_hdr_t * self );
    2080             : int fd_solana_account_hdr_encode( fd_solana_account_hdr_t const * self, fd_bincode_encode_ctx_t * ctx );
    2081             : void fd_solana_account_hdr_walk( void * w, fd_solana_account_hdr_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2082           0 : static inline ulong fd_solana_account_hdr_size( fd_solana_account_hdr_t const * self ) { (void)self; return 136UL; }
    2083           0 : static inline ulong fd_solana_account_hdr_align( void ) { return FD_SOLANA_ACCOUNT_HDR_ALIGN; }
    2084             : int fd_solana_account_hdr_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2085             : void * fd_solana_account_hdr_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2086             : 
    2087           0 : static inline void fd_delegation_new( fd_delegation_t * self ) { fd_memset( self, 0, sizeof(fd_delegation_t) ); }
    2088             : int fd_delegation_encode( fd_delegation_t const * self, fd_bincode_encode_ctx_t * ctx );
    2089             : void fd_delegation_walk( void * w, fd_delegation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2090           0 : static inline ulong fd_delegation_size( fd_delegation_t const * self ) { (void)self; return 64UL; }
    2091           0 : static inline ulong fd_delegation_align( void ) { return FD_DELEGATION_ALIGN; }
    2092           0 : static inline int fd_delegation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2093           0 :   *total_sz += sizeof(fd_delegation_t);
    2094           0 :   if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2095           0 :   return 0;
    2096           0 : }
    2097             : void * fd_delegation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2098             : 
    2099           0 : static inline void fd_stake_new( fd_stake_t * self ) { fd_memset( self, 0, sizeof(fd_stake_t) ); }
    2100             : int fd_stake_encode( fd_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
    2101             : void fd_stake_walk( void * w, fd_stake_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2102           0 : static inline ulong fd_stake_size( fd_stake_t const * self ) { (void)self; return 72UL; }
    2103           0 : static inline ulong fd_stake_align( void ) { return FD_STAKE_ALIGN; }
    2104           0 : static inline int fd_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2105           0 :   *total_sz += sizeof(fd_stake_t);
    2106           0 :   if( (ulong)ctx->data + 72UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2107           0 :   return 0;
    2108           0 : }
    2109             : void * fd_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2110             : 
    2111           0 : static inline void fd_reward_type_new_disc( fd_reward_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
    2112           0 : static inline void fd_reward_type_new( fd_reward_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    2113             : int fd_reward_type_encode( fd_reward_type_t const * self, fd_bincode_encode_ctx_t * ctx );
    2114             : void fd_reward_type_walk( void * w, fd_reward_type_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2115             : ulong fd_reward_type_size( fd_reward_type_t const * self );
    2116           0 : static inline ulong fd_reward_type_align( void ) { return FD_REWARD_TYPE_ALIGN; }
    2117             : int fd_reward_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2118             : void * fd_reward_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2119             : 
    2120             : FD_FN_PURE uchar fd_reward_type_is_fee( fd_reward_type_t const * self );
    2121             : FD_FN_PURE uchar fd_reward_type_is_rent( fd_reward_type_t const * self );
    2122             : FD_FN_PURE uchar fd_reward_type_is_staking( fd_reward_type_t const * self );
    2123             : FD_FN_PURE uchar fd_reward_type_is_voting( fd_reward_type_t const * self );
    2124             : enum {
    2125             : fd_reward_type_enum_fee = 0,
    2126             : fd_reward_type_enum_rent = 1,
    2127             : fd_reward_type_enum_staking = 2,
    2128             : fd_reward_type_enum_voting = 3,
    2129             : };
    2130             : void fd_reward_info_new( fd_reward_info_t * self );
    2131             : int fd_reward_info_encode( fd_reward_info_t const * self, fd_bincode_encode_ctx_t * ctx );
    2132             : void fd_reward_info_walk( void * w, fd_reward_info_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2133           0 : static inline ulong fd_reward_info_size( fd_reward_info_t const * self ) { (void)self; return 28UL; }
    2134           0 : static inline ulong fd_reward_info_align( void ) { return FD_REWARD_INFO_ALIGN; }
    2135             : int fd_reward_info_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2136             : void * fd_reward_info_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2137             : 
    2138          12 : static inline void fd_rust_duration_new( fd_rust_duration_t * self ) { fd_memset( self, 0, sizeof(fd_rust_duration_t) ); }
    2139             : int fd_rust_duration_encode( fd_rust_duration_t const * self, fd_bincode_encode_ctx_t * ctx );
    2140             : void fd_rust_duration_walk( void * w, fd_rust_duration_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2141           0 : static inline ulong fd_rust_duration_size( fd_rust_duration_t const * self ) { (void)self; return 12UL; }
    2142           0 : static inline ulong fd_rust_duration_align( void ) { return FD_RUST_DURATION_ALIGN; }
    2143           0 : static inline int fd_rust_duration_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2144           0 :   *total_sz += sizeof(fd_rust_duration_t);
    2145           0 :   if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2146           0 :   return 0;
    2147           0 : }
    2148             : void * fd_rust_duration_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2149             : 
    2150             : void fd_poh_config_new( fd_poh_config_t * self );
    2151             : int fd_poh_config_encode( fd_poh_config_t const * self, fd_bincode_encode_ctx_t * ctx );
    2152             : void fd_poh_config_walk( void * w, fd_poh_config_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2153             : ulong fd_poh_config_size( fd_poh_config_t const * self );
    2154           0 : static inline ulong fd_poh_config_align( void ) { return FD_POH_CONFIG_ALIGN; }
    2155             : int fd_poh_config_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2156             : void * fd_poh_config_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2157             : void * fd_poh_config_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2158             : int fd_poh_config_encode_global( fd_poh_config_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2159             : ulong fd_poh_config_size_global( fd_poh_config_global_t const * self );
    2160             : 
    2161             : void fd_string_pubkey_pair_new( fd_string_pubkey_pair_t * self );
    2162             : int fd_string_pubkey_pair_encode( fd_string_pubkey_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    2163             : void fd_string_pubkey_pair_walk( void * w, fd_string_pubkey_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2164             : ulong fd_string_pubkey_pair_size( fd_string_pubkey_pair_t const * self );
    2165           0 : static inline ulong fd_string_pubkey_pair_align( void ) { return FD_STRING_PUBKEY_PAIR_ALIGN; }
    2166             : int fd_string_pubkey_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2167             : void * fd_string_pubkey_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2168             : void * fd_string_pubkey_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2169             : int fd_string_pubkey_pair_encode_global( fd_string_pubkey_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2170             : ulong fd_string_pubkey_pair_size_global( fd_string_pubkey_pair_global_t const * self );
    2171             : 
    2172             : void fd_pubkey_account_pair_new( fd_pubkey_account_pair_t * self );
    2173             : int fd_pubkey_account_pair_encode( fd_pubkey_account_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    2174             : void fd_pubkey_account_pair_walk( void * w, fd_pubkey_account_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2175             : ulong fd_pubkey_account_pair_size( fd_pubkey_account_pair_t const * self );
    2176           0 : static inline ulong fd_pubkey_account_pair_align( void ) { return FD_PUBKEY_ACCOUNT_PAIR_ALIGN; }
    2177             : int fd_pubkey_account_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2178             : void * fd_pubkey_account_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2179             : void * fd_pubkey_account_pair_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2180             : int fd_pubkey_account_pair_encode_global( fd_pubkey_account_pair_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2181             : ulong fd_pubkey_account_pair_size_global( fd_pubkey_account_pair_global_t const * self );
    2182             : 
    2183             : void fd_genesis_solana_new( fd_genesis_solana_t * self );
    2184             : int fd_genesis_solana_encode( fd_genesis_solana_t const * self, fd_bincode_encode_ctx_t * ctx );
    2185             : void fd_genesis_solana_walk( void * w, fd_genesis_solana_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2186             : ulong fd_genesis_solana_size( fd_genesis_solana_t const * self );
    2187           0 : static inline ulong fd_genesis_solana_align( void ) { return FD_GENESIS_SOLANA_ALIGN; }
    2188             : int fd_genesis_solana_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2189             : void * fd_genesis_solana_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2190             : void * fd_genesis_solana_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2191             : int fd_genesis_solana_encode_global( fd_genesis_solana_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2192             : ulong fd_genesis_solana_size_global( fd_genesis_solana_global_t const * self );
    2193             : 
    2194           3 : static inline void fd_sol_sysvar_clock_new( fd_sol_sysvar_clock_t * self ) { fd_memset( self, 0, sizeof(fd_sol_sysvar_clock_t) ); }
    2195             : int fd_sol_sysvar_clock_encode( fd_sol_sysvar_clock_t const * self, fd_bincode_encode_ctx_t * ctx );
    2196             : void fd_sol_sysvar_clock_walk( void * w, fd_sol_sysvar_clock_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2197           0 : static inline ulong fd_sol_sysvar_clock_size( fd_sol_sysvar_clock_t const * self ) { (void)self; return 40UL; }
    2198           3 : static inline ulong fd_sol_sysvar_clock_align( void ) { return FD_SOL_SYSVAR_CLOCK_ALIGN; }
    2199           9 : static inline int fd_sol_sysvar_clock_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2200           9 :   *total_sz += sizeof(fd_sol_sysvar_clock_t);
    2201           9 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2202           6 :   return 0;
    2203           9 : }
    2204             : void * fd_sol_sysvar_clock_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2205             : 
    2206           0 : static inline void fd_sol_sysvar_last_restart_slot_new( fd_sol_sysvar_last_restart_slot_t * self ) { fd_memset( self, 0, sizeof(fd_sol_sysvar_last_restart_slot_t) ); }
    2207             : int fd_sol_sysvar_last_restart_slot_encode( fd_sol_sysvar_last_restart_slot_t const * self, fd_bincode_encode_ctx_t * ctx );
    2208             : void fd_sol_sysvar_last_restart_slot_walk( void * w, fd_sol_sysvar_last_restart_slot_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2209           0 : static inline ulong fd_sol_sysvar_last_restart_slot_size( fd_sol_sysvar_last_restart_slot_t const * self ) { (void)self; return 8UL; }
    2210           3 : static inline ulong fd_sol_sysvar_last_restart_slot_align( void ) { return FD_SOL_SYSVAR_LAST_RESTART_SLOT_ALIGN; }
    2211           3 : static inline int fd_sol_sysvar_last_restart_slot_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2212           3 :   *total_sz += sizeof(fd_sol_sysvar_last_restart_slot_t);
    2213           3 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2214           3 :   return 0;
    2215           3 : }
    2216             : void * fd_sol_sysvar_last_restart_slot_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2217             : 
    2218           0 : static inline void fd_vote_lockout_new( fd_vote_lockout_t * self ) { fd_memset( self, 0, sizeof(fd_vote_lockout_t) ); }
    2219             : int fd_vote_lockout_encode( fd_vote_lockout_t const * self, fd_bincode_encode_ctx_t * ctx );
    2220             : void fd_vote_lockout_walk( void * w, fd_vote_lockout_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2221           0 : static inline ulong fd_vote_lockout_size( fd_vote_lockout_t const * self ) { (void)self; return 12UL; }
    2222           0 : static inline ulong fd_vote_lockout_align( void ) { return FD_VOTE_LOCKOUT_ALIGN; }
    2223           0 : static inline int fd_vote_lockout_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2224           0 :   *total_sz += sizeof(fd_vote_lockout_t);
    2225           0 :   if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2226           0 :   return 0;
    2227           0 : }
    2228             : void * fd_vote_lockout_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2229             : 
    2230             : void fd_lockout_offset_new( fd_lockout_offset_t * self );
    2231             : int fd_lockout_offset_encode( fd_lockout_offset_t const * self, fd_bincode_encode_ctx_t * ctx );
    2232             : void fd_lockout_offset_walk( void * w, fd_lockout_offset_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2233             : ulong fd_lockout_offset_size( fd_lockout_offset_t const * self );
    2234           0 : static inline ulong fd_lockout_offset_align( void ) { return FD_LOCKOUT_OFFSET_ALIGN; }
    2235             : int fd_lockout_offset_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2236             : void * fd_lockout_offset_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2237             : 
    2238          15 : static inline void fd_vote_authorized_voter_new( fd_vote_authorized_voter_t * self ) { fd_memset( self, 0, sizeof(fd_vote_authorized_voter_t) ); }
    2239             : int fd_vote_authorized_voter_encode( fd_vote_authorized_voter_t const * self, fd_bincode_encode_ctx_t * ctx );
    2240             : void fd_vote_authorized_voter_walk( void * w, fd_vote_authorized_voter_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2241           0 : static inline ulong fd_vote_authorized_voter_size( fd_vote_authorized_voter_t const * self ) { (void)self; return 40UL; }
    2242           0 : static inline ulong fd_vote_authorized_voter_align( void ) { return FD_VOTE_AUTHORIZED_VOTER_ALIGN; }
    2243           0 : static inline int fd_vote_authorized_voter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2244           0 :   *total_sz += sizeof(fd_vote_authorized_voter_t);
    2245           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2246           0 :   return 0;
    2247           0 : }
    2248             : void * fd_vote_authorized_voter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2249             : 
    2250         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) ); }
    2251             : int fd_vote_prior_voter_encode( fd_vote_prior_voter_t const * self, fd_bincode_encode_ctx_t * ctx );
    2252             : void fd_vote_prior_voter_walk( void * w, fd_vote_prior_voter_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2253           0 : static inline ulong fd_vote_prior_voter_size( fd_vote_prior_voter_t const * self ) { (void)self; return 48UL; }
    2254           0 : static inline ulong fd_vote_prior_voter_align( void ) { return FD_VOTE_PRIOR_VOTER_ALIGN; }
    2255           0 : static inline int fd_vote_prior_voter_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2256           0 :   *total_sz += sizeof(fd_vote_prior_voter_t);
    2257           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2258           0 :   return 0;
    2259           0 : }
    2260             : void * fd_vote_prior_voter_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2261             : 
    2262           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) ); }
    2263             : 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 );
    2264             : void fd_vote_prior_voter_0_23_5_walk( void * w, fd_vote_prior_voter_0_23_5_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2265           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; }
    2266           0 : static inline ulong fd_vote_prior_voter_0_23_5_align( void ) { return FD_VOTE_PRIOR_VOTER_0_23_5_ALIGN; }
    2267           0 : static inline int fd_vote_prior_voter_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2268           0 :   *total_sz += sizeof(fd_vote_prior_voter_0_23_5_t);
    2269           0 :   if( (ulong)ctx->data + 56UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2270           0 :   return 0;
    2271           0 : }
    2272             : void * fd_vote_prior_voter_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2273             : 
    2274         393 : static inline void fd_vote_epoch_credits_new( fd_vote_epoch_credits_t * self ) { fd_memset( self, 0, sizeof(fd_vote_epoch_credits_t) ); }
    2275             : int fd_vote_epoch_credits_encode( fd_vote_epoch_credits_t const * self, fd_bincode_encode_ctx_t * ctx );
    2276             : void fd_vote_epoch_credits_walk( void * w, fd_vote_epoch_credits_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2277           0 : static inline ulong fd_vote_epoch_credits_size( fd_vote_epoch_credits_t const * self ) { (void)self; return 24UL; }
    2278           0 : static inline ulong fd_vote_epoch_credits_align( void ) { return FD_VOTE_EPOCH_CREDITS_ALIGN; }
    2279           0 : static inline int fd_vote_epoch_credits_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2280           0 :   *total_sz += sizeof(fd_vote_epoch_credits_t);
    2281           0 :   if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2282           0 :   return 0;
    2283           0 : }
    2284             : void * fd_vote_epoch_credits_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2285             : 
    2286          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) ); }
    2287             : int fd_vote_block_timestamp_encode( fd_vote_block_timestamp_t const * self, fd_bincode_encode_ctx_t * ctx );
    2288             : void fd_vote_block_timestamp_walk( void * w, fd_vote_block_timestamp_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2289           0 : static inline ulong fd_vote_block_timestamp_size( fd_vote_block_timestamp_t const * self ) { (void)self; return 16UL; }
    2290           0 : static inline ulong fd_vote_block_timestamp_align( void ) { return FD_VOTE_BLOCK_TIMESTAMP_ALIGN; }
    2291           0 : static inline int fd_vote_block_timestamp_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2292           0 :   *total_sz += sizeof(fd_vote_block_timestamp_t);
    2293           0 :   if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2294           0 :   return 0;
    2295           0 : }
    2296             : void * fd_vote_block_timestamp_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2297             : 
    2298             : void fd_vote_prior_voters_new( fd_vote_prior_voters_t * self );
    2299             : int fd_vote_prior_voters_encode( fd_vote_prior_voters_t const * self, fd_bincode_encode_ctx_t * ctx );
    2300             : void fd_vote_prior_voters_walk( void * w, fd_vote_prior_voters_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2301           0 : static inline ulong fd_vote_prior_voters_size( fd_vote_prior_voters_t const * self ) { (void)self; return 1545UL; }
    2302           0 : static inline ulong fd_vote_prior_voters_align( void ) { return FD_VOTE_PRIOR_VOTERS_ALIGN; }
    2303             : int fd_vote_prior_voters_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2304             : void * fd_vote_prior_voters_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2305             : 
    2306           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) ); }
    2307             : 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 );
    2308             : void fd_vote_prior_voters_0_23_5_walk( void * w, fd_vote_prior_voters_0_23_5_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2309           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; }
    2310           0 : static inline ulong fd_vote_prior_voters_0_23_5_align( void ) { return FD_VOTE_PRIOR_VOTERS_0_23_5_ALIGN; }
    2311           0 : static inline int fd_vote_prior_voters_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2312           0 :   *total_sz += sizeof(fd_vote_prior_voters_0_23_5_t);
    2313           0 :   if( (ulong)ctx->data + 1800UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2314           0 :   return 0;
    2315           0 : }
    2316             : void * fd_vote_prior_voters_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2317             : 
    2318         195 : static inline void fd_landed_vote_new( fd_landed_vote_t * self ) { fd_memset( self, 0, sizeof(fd_landed_vote_t) ); }
    2319             : int fd_landed_vote_encode( fd_landed_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
    2320             : void fd_landed_vote_walk( void * w, fd_landed_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2321           0 : static inline ulong fd_landed_vote_size( fd_landed_vote_t const * self ) { (void)self; return 13UL; }
    2322           0 : static inline ulong fd_landed_vote_align( void ) { return FD_LANDED_VOTE_ALIGN; }
    2323           0 : static inline int fd_landed_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2324           0 :   *total_sz += sizeof(fd_landed_vote_t);
    2325           0 :   if( (ulong)ctx->data + 13UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2326           0 :   return 0;
    2327           0 : }
    2328             : void * fd_landed_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2329             : 
    2330             : void fd_vote_state_0_23_5_new( fd_vote_state_0_23_5_t * self );
    2331             : int fd_vote_state_0_23_5_encode( fd_vote_state_0_23_5_t const * self, fd_bincode_encode_ctx_t * ctx );
    2332             : void fd_vote_state_0_23_5_walk( void * w, fd_vote_state_0_23_5_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2333             : ulong fd_vote_state_0_23_5_size( fd_vote_state_0_23_5_t const * self );
    2334           0 : static inline ulong fd_vote_state_0_23_5_align( void ) { return FD_VOTE_STATE_0_23_5_ALIGN; }
    2335             : int fd_vote_state_0_23_5_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2336             : void * fd_vote_state_0_23_5_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2337             : 
    2338             : void fd_vote_authorized_voters_new( fd_vote_authorized_voters_t * self );
    2339             : int fd_vote_authorized_voters_encode( fd_vote_authorized_voters_t const * self, fd_bincode_encode_ctx_t * ctx );
    2340             : void fd_vote_authorized_voters_walk( void * w, fd_vote_authorized_voters_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2341             : ulong fd_vote_authorized_voters_size( fd_vote_authorized_voters_t const * self );
    2342           0 : static inline ulong fd_vote_authorized_voters_align( void ) { return FD_VOTE_AUTHORIZED_VOTERS_ALIGN; }
    2343             : int fd_vote_authorized_voters_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2344             : void * fd_vote_authorized_voters_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2345             : 
    2346             : void fd_vote_state_1_14_11_new( fd_vote_state_1_14_11_t * self );
    2347             : int fd_vote_state_1_14_11_encode( fd_vote_state_1_14_11_t const * self, fd_bincode_encode_ctx_t * ctx );
    2348             : void fd_vote_state_1_14_11_walk( void * w, fd_vote_state_1_14_11_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2349             : ulong fd_vote_state_1_14_11_size( fd_vote_state_1_14_11_t const * self );
    2350           0 : static inline ulong fd_vote_state_1_14_11_align( void ) { return FD_VOTE_STATE_1_14_11_ALIGN; }
    2351             : int fd_vote_state_1_14_11_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2352             : void * fd_vote_state_1_14_11_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2353             : 
    2354             : void fd_vote_state_new( fd_vote_state_t * self );
    2355             : int fd_vote_state_encode( fd_vote_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    2356             : void fd_vote_state_walk( void * w, fd_vote_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2357             : ulong fd_vote_state_size( fd_vote_state_t const * self );
    2358           0 : static inline ulong fd_vote_state_align( void ) { return FD_VOTE_STATE_ALIGN; }
    2359             : int fd_vote_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2360             : void * fd_vote_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2361             : 
    2362             : void fd_vote_state_versioned_new_disc( fd_vote_state_versioned_t * self, uint discriminant );
    2363             : void fd_vote_state_versioned_new( fd_vote_state_versioned_t * self );
    2364             : int fd_vote_state_versioned_encode( fd_vote_state_versioned_t const * self, fd_bincode_encode_ctx_t * ctx );
    2365             : void fd_vote_state_versioned_walk( void * w, fd_vote_state_versioned_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2366             : ulong fd_vote_state_versioned_size( fd_vote_state_versioned_t const * self );
    2367          33 : static inline ulong fd_vote_state_versioned_align( void ) { return FD_VOTE_STATE_VERSIONED_ALIGN; }
    2368             : int fd_vote_state_versioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2369             : void * fd_vote_state_versioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2370             : 
    2371             : FD_FN_PURE uchar fd_vote_state_versioned_is_v0_23_5( fd_vote_state_versioned_t const * self );
    2372             : FD_FN_PURE uchar fd_vote_state_versioned_is_v1_14_11( fd_vote_state_versioned_t const * self );
    2373             : FD_FN_PURE uchar fd_vote_state_versioned_is_current( fd_vote_state_versioned_t const * self );
    2374             : enum {
    2375             : fd_vote_state_versioned_enum_v0_23_5 = 0,
    2376             : fd_vote_state_versioned_enum_v1_14_11 = 1,
    2377             : fd_vote_state_versioned_enum_current = 2,
    2378             : };
    2379             : void fd_vote_state_update_new( fd_vote_state_update_t * self );
    2380             : int fd_vote_state_update_encode( fd_vote_state_update_t const * self, fd_bincode_encode_ctx_t * ctx );
    2381             : void fd_vote_state_update_walk( void * w, fd_vote_state_update_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2382             : ulong fd_vote_state_update_size( fd_vote_state_update_t const * self );
    2383           0 : static inline ulong fd_vote_state_update_align( void ) { return FD_VOTE_STATE_UPDATE_ALIGN; }
    2384             : int fd_vote_state_update_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2385             : void * fd_vote_state_update_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2386             : 
    2387             : void fd_compact_vote_state_update_new( fd_compact_vote_state_update_t * self );
    2388             : int fd_compact_vote_state_update_encode( fd_compact_vote_state_update_t const * self, fd_bincode_encode_ctx_t * ctx );
    2389             : void fd_compact_vote_state_update_walk( void * w, fd_compact_vote_state_update_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2390             : ulong fd_compact_vote_state_update_size( fd_compact_vote_state_update_t const * self );
    2391           0 : static inline ulong fd_compact_vote_state_update_align( void ) { return FD_COMPACT_VOTE_STATE_UPDATE_ALIGN; }
    2392             : int fd_compact_vote_state_update_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2393             : void * fd_compact_vote_state_update_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2394             : 
    2395             : void fd_compact_vote_state_update_switch_new( fd_compact_vote_state_update_switch_t * self );
    2396             : int fd_compact_vote_state_update_switch_encode( fd_compact_vote_state_update_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
    2397             : void fd_compact_vote_state_update_switch_walk( void * w, fd_compact_vote_state_update_switch_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2398             : ulong fd_compact_vote_state_update_switch_size( fd_compact_vote_state_update_switch_t const * self );
    2399           0 : static inline ulong fd_compact_vote_state_update_switch_align( void ) { return FD_COMPACT_VOTE_STATE_UPDATE_SWITCH_ALIGN; }
    2400             : int fd_compact_vote_state_update_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2401             : void * fd_compact_vote_state_update_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2402             : 
    2403             : void fd_compact_tower_sync_new( fd_compact_tower_sync_t * self );
    2404             : int fd_compact_tower_sync_encode( fd_compact_tower_sync_t const * self, fd_bincode_encode_ctx_t * ctx );
    2405             : void fd_compact_tower_sync_walk( void * w, fd_compact_tower_sync_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2406             : ulong fd_compact_tower_sync_size( fd_compact_tower_sync_t const * self );
    2407           0 : static inline ulong fd_compact_tower_sync_align( void ) { return FD_COMPACT_TOWER_SYNC_ALIGN; }
    2408             : int fd_compact_tower_sync_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2409             : void * fd_compact_tower_sync_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2410             : 
    2411             : void fd_tower_sync_new( fd_tower_sync_t * self );
    2412             : int fd_tower_sync_encode( fd_tower_sync_t const * self, fd_bincode_encode_ctx_t * ctx );
    2413             : void fd_tower_sync_walk( void * w, fd_tower_sync_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2414             : ulong fd_tower_sync_size( fd_tower_sync_t const * self );
    2415           0 : static inline ulong fd_tower_sync_align( void ) { return FD_TOWER_SYNC_ALIGN; }
    2416             : int fd_tower_sync_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2417             : void * fd_tower_sync_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2418             : 
    2419             : void fd_tower_sync_switch_new( fd_tower_sync_switch_t * self );
    2420             : int fd_tower_sync_switch_encode( fd_tower_sync_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
    2421             : void fd_tower_sync_switch_walk( void * w, fd_tower_sync_switch_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2422             : ulong fd_tower_sync_switch_size( fd_tower_sync_switch_t const * self );
    2423           0 : static inline ulong fd_tower_sync_switch_align( void ) { return FD_TOWER_SYNC_SWITCH_ALIGN; }
    2424             : int fd_tower_sync_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2425             : void * fd_tower_sync_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2426             : 
    2427             : void fd_slot_history_new( fd_slot_history_t * self );
    2428             : int fd_slot_history_encode( fd_slot_history_t const * self, fd_bincode_encode_ctx_t * ctx );
    2429             : void fd_slot_history_walk( void * w, fd_slot_history_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2430             : ulong fd_slot_history_size( fd_slot_history_t const * self );
    2431           3 : static inline ulong fd_slot_history_align( void ) { return FD_SLOT_HISTORY_ALIGN; }
    2432             : int fd_slot_history_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2433             : void * fd_slot_history_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2434             : void * fd_slot_history_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2435             : int fd_slot_history_encode_global( fd_slot_history_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2436             : ulong fd_slot_history_size_global( fd_slot_history_global_t const * self );
    2437             : 
    2438           0 : static inline void fd_slot_hash_new( fd_slot_hash_t * self ) { fd_memset( self, 0, sizeof(fd_slot_hash_t) ); }
    2439             : int fd_slot_hash_encode( fd_slot_hash_t const * self, fd_bincode_encode_ctx_t * ctx );
    2440             : void fd_slot_hash_walk( void * w, fd_slot_hash_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2441           0 : static inline ulong fd_slot_hash_size( fd_slot_hash_t const * self ) { (void)self; return 40UL; }
    2442           0 : static inline ulong fd_slot_hash_align( void ) { return FD_SLOT_HASH_ALIGN; }
    2443           0 : static inline int fd_slot_hash_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2444           0 :   *total_sz += sizeof(fd_slot_hash_t);
    2445           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2446           0 :   return 0;
    2447           0 : }
    2448             : void * fd_slot_hash_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2449             : 
    2450             : void fd_slot_hashes_new( fd_slot_hashes_t * self );
    2451             : int fd_slot_hashes_encode( fd_slot_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
    2452             : void fd_slot_hashes_walk( void * w, fd_slot_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2453             : ulong fd_slot_hashes_size( fd_slot_hashes_t const * self );
    2454           3 : static inline ulong fd_slot_hashes_align( void ) { return FD_SLOT_HASHES_ALIGN; }
    2455             : int fd_slot_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2456             : void * fd_slot_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2457             : void * fd_slot_hashes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2458             : int fd_slot_hashes_encode_global( fd_slot_hashes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2459             : ulong fd_slot_hashes_size_global( fd_slot_hashes_global_t const * self );
    2460             : 
    2461       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) ); }
    2462             : int fd_block_block_hash_entry_encode( fd_block_block_hash_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
    2463             : void fd_block_block_hash_entry_walk( void * w, fd_block_block_hash_entry_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2464           0 : static inline ulong fd_block_block_hash_entry_size( fd_block_block_hash_entry_t const * self ) { (void)self; return 40UL; }
    2465           0 : static inline ulong fd_block_block_hash_entry_align( void ) { return FD_BLOCK_BLOCK_HASH_ENTRY_ALIGN; }
    2466           0 : static inline int fd_block_block_hash_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2467           0 :   *total_sz += sizeof(fd_block_block_hash_entry_t);
    2468           0 :   if( (ulong)ctx->data + 40UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2469           0 :   return 0;
    2470           0 : }
    2471             : void * fd_block_block_hash_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2472             : 
    2473             : void fd_recent_block_hashes_new( fd_recent_block_hashes_t * self );
    2474             : int fd_recent_block_hashes_encode( fd_recent_block_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
    2475             : void fd_recent_block_hashes_walk( void * w, fd_recent_block_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2476             : ulong fd_recent_block_hashes_size( fd_recent_block_hashes_t const * self );
    2477           3 : static inline ulong fd_recent_block_hashes_align( void ) { return FD_RECENT_BLOCK_HASHES_ALIGN; }
    2478             : int fd_recent_block_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2479             : void * fd_recent_block_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2480             : void * fd_recent_block_hashes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2481             : int fd_recent_block_hashes_encode_global( fd_recent_block_hashes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2482             : ulong fd_recent_block_hashes_size_global( fd_recent_block_hashes_global_t const * self );
    2483             : 
    2484             : void fd_slot_meta_new( fd_slot_meta_t * self );
    2485             : int fd_slot_meta_encode( fd_slot_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    2486             : void fd_slot_meta_walk( void * w, fd_slot_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2487             : ulong fd_slot_meta_size( fd_slot_meta_t const * self );
    2488           0 : static inline ulong fd_slot_meta_align( void ) { return FD_SLOT_META_ALIGN; }
    2489             : int fd_slot_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2490             : void * fd_slot_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2491             : 
    2492           0 : static inline void fd_clock_timestamp_vote_new( fd_clock_timestamp_vote_t * self ) { fd_memset( self, 0, sizeof(fd_clock_timestamp_vote_t) ); }
    2493             : int fd_clock_timestamp_vote_encode( fd_clock_timestamp_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
    2494             : void fd_clock_timestamp_vote_walk( void * w, fd_clock_timestamp_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2495           0 : static inline ulong fd_clock_timestamp_vote_size( fd_clock_timestamp_vote_t const * self ) { (void)self; return 48UL; }
    2496           0 : static inline ulong fd_clock_timestamp_vote_align( void ) { return FD_CLOCK_TIMESTAMP_VOTE_ALIGN; }
    2497           0 : static inline int fd_clock_timestamp_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2498           0 :   *total_sz += sizeof(fd_clock_timestamp_vote_t);
    2499           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2500           0 :   return 0;
    2501           0 : }
    2502             : void * fd_clock_timestamp_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2503             : 
    2504             : void fd_clock_timestamp_votes_new( fd_clock_timestamp_votes_t * self );
    2505             : int fd_clock_timestamp_votes_encode( fd_clock_timestamp_votes_t const * self, fd_bincode_encode_ctx_t * ctx );
    2506             : void fd_clock_timestamp_votes_walk( void * w, fd_clock_timestamp_votes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2507             : ulong fd_clock_timestamp_votes_size( fd_clock_timestamp_votes_t const * self );
    2508           0 : static inline ulong fd_clock_timestamp_votes_align( void ) { return FD_CLOCK_TIMESTAMP_VOTES_ALIGN; }
    2509             : int fd_clock_timestamp_votes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2510             : void * fd_clock_timestamp_votes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2511             : void * fd_clock_timestamp_votes_decode_global( void * mem, fd_bincode_decode_ctx_t * ctx );
    2512             : int fd_clock_timestamp_votes_encode_global( fd_clock_timestamp_votes_global_t const * self, fd_bincode_encode_ctx_t * ctx );
    2513             : ulong fd_clock_timestamp_votes_size_global( fd_clock_timestamp_votes_global_t const * self );
    2514             : 
    2515           0 : static inline void fd_sysvar_fees_new( fd_sysvar_fees_t * self ) { fd_memset( self, 0, sizeof(fd_sysvar_fees_t) ); }
    2516             : int fd_sysvar_fees_encode( fd_sysvar_fees_t const * self, fd_bincode_encode_ctx_t * ctx );
    2517             : void fd_sysvar_fees_walk( void * w, fd_sysvar_fees_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2518           0 : static inline ulong fd_sysvar_fees_size( fd_sysvar_fees_t const * self ) { (void)self; return 8UL; }
    2519           0 : static inline ulong fd_sysvar_fees_align( void ) { return FD_SYSVAR_FEES_ALIGN; }
    2520           0 : static inline int fd_sysvar_fees_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2521           0 :   *total_sz += sizeof(fd_sysvar_fees_t);
    2522           0 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2523           0 :   return 0;
    2524           0 : }
    2525             : void * fd_sysvar_fees_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2526             : 
    2527             : void fd_sysvar_epoch_rewards_new( fd_sysvar_epoch_rewards_t * self );
    2528             : int fd_sysvar_epoch_rewards_encode( fd_sysvar_epoch_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
    2529             : void fd_sysvar_epoch_rewards_walk( void * w, fd_sysvar_epoch_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2530           0 : static inline ulong fd_sysvar_epoch_rewards_size( fd_sysvar_epoch_rewards_t const * self ) { (void)self; return 81UL; }
    2531           3 : static inline ulong fd_sysvar_epoch_rewards_align( void ) { return FD_SYSVAR_EPOCH_REWARDS_ALIGN; }
    2532             : int fd_sysvar_epoch_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2533             : void * fd_sysvar_epoch_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2534             : 
    2535             : void fd_config_keys_pair_new( fd_config_keys_pair_t * self );
    2536             : int fd_config_keys_pair_encode( fd_config_keys_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    2537             : void fd_config_keys_pair_walk( void * w, fd_config_keys_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2538           0 : static inline ulong fd_config_keys_pair_size( fd_config_keys_pair_t const * self ) { (void)self; return 33UL; }
    2539           0 : static inline ulong fd_config_keys_pair_align( void ) { return FD_CONFIG_KEYS_PAIR_ALIGN; }
    2540             : int fd_config_keys_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2541             : void * fd_config_keys_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2542             : 
    2543             : void fd_stake_config_new( fd_stake_config_t * self );
    2544             : int fd_stake_config_encode( fd_stake_config_t const * self, fd_bincode_encode_ctx_t * ctx );
    2545             : void fd_stake_config_walk( void * w, fd_stake_config_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2546             : ulong fd_stake_config_size( fd_stake_config_t const * self );
    2547           0 : static inline ulong fd_stake_config_align( void ) { return FD_STAKE_CONFIG_ALIGN; }
    2548             : int fd_stake_config_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2549             : void * fd_stake_config_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2550             : 
    2551             : void fd_feature_entry_new( fd_feature_entry_t * self );
    2552             : int fd_feature_entry_encode( fd_feature_entry_t const * self, fd_bincode_encode_ctx_t * ctx );
    2553             : void fd_feature_entry_walk( void * w, fd_feature_entry_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2554             : ulong fd_feature_entry_size( fd_feature_entry_t const * self );
    2555           0 : static inline ulong fd_feature_entry_align( void ) { return FD_FEATURE_ENTRY_ALIGN; }
    2556             : int fd_feature_entry_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2557             : void * fd_feature_entry_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2558             : 
    2559           0 : static inline void fd_cluster_type_new_disc( fd_cluster_type_t * self, uint discriminant ) { self->discriminant = discriminant; }
    2560           0 : static inline void fd_cluster_type_new( fd_cluster_type_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    2561             : int fd_cluster_type_encode( fd_cluster_type_t const * self, fd_bincode_encode_ctx_t * ctx );
    2562             : void fd_cluster_type_walk( void * w, fd_cluster_type_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2563             : ulong fd_cluster_type_size( fd_cluster_type_t const * self );
    2564           0 : static inline ulong fd_cluster_type_align( void ) { return FD_CLUSTER_TYPE_ALIGN; }
    2565             : int fd_cluster_type_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2566             : void * fd_cluster_type_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2567             : 
    2568             : FD_FN_PURE uchar fd_cluster_type_is_Testnet( fd_cluster_type_t const * self );
    2569             : FD_FN_PURE uchar fd_cluster_type_is_MainnetBeta( fd_cluster_type_t const * self );
    2570             : FD_FN_PURE uchar fd_cluster_type_is_Devnet( fd_cluster_type_t const * self );
    2571             : FD_FN_PURE uchar fd_cluster_type_is_Development( fd_cluster_type_t const * self );
    2572             : enum {
    2573             : fd_cluster_type_enum_Testnet = 0,
    2574             : fd_cluster_type_enum_MainnetBeta = 1,
    2575             : fd_cluster_type_enum_Devnet = 2,
    2576             : fd_cluster_type_enum_Development = 3,
    2577             : };
    2578           0 : static inline void fd_cluster_version_new( fd_cluster_version_t * self ) { fd_memset( self, 0, sizeof(fd_cluster_version_t) ); }
    2579             : int fd_cluster_version_encode( fd_cluster_version_t const * self, fd_bincode_encode_ctx_t * ctx );
    2580             : void fd_cluster_version_walk( void * w, fd_cluster_version_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2581           0 : static inline ulong fd_cluster_version_size( fd_cluster_version_t const * self ) { (void)self; return 12UL; }
    2582           0 : static inline ulong fd_cluster_version_align( void ) { return FD_CLUSTER_VERSION_ALIGN; }
    2583           0 : static inline int fd_cluster_version_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2584           0 :   *total_sz += sizeof(fd_cluster_version_t);
    2585           0 :   if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2586           0 :   return 0;
    2587           0 : }
    2588             : void * fd_cluster_version_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2589             : 
    2590           0 : static inline void fd_stake_reward_new( fd_stake_reward_t * self ) { fd_memset( self, 0, sizeof(fd_stake_reward_t) ); }
    2591             : int fd_stake_reward_encode( fd_stake_reward_t const * self, fd_bincode_encode_ctx_t * ctx );
    2592             : void fd_stake_reward_walk( void * w, fd_stake_reward_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2593           0 : static inline ulong fd_stake_reward_size( fd_stake_reward_t const * self ) { (void)self; return 49UL; }
    2594           0 : static inline ulong fd_stake_reward_align( void ) { return FD_STAKE_REWARD_ALIGN; }
    2595           0 : static inline int fd_stake_reward_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2596           0 :   *total_sz += sizeof(fd_stake_reward_t);
    2597           0 :   if( (ulong)ctx->data + 49UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2598           0 :   return 0;
    2599           0 : }
    2600             : void * fd_stake_reward_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2601             : 
    2602           0 : static inline void fd_partitioned_rewards_calculation_new( fd_partitioned_rewards_calculation_t * self ) { fd_memset( self, 0, sizeof(fd_partitioned_rewards_calculation_t) ); }
    2603             : int fd_partitioned_rewards_calculation_encode( fd_partitioned_rewards_calculation_t const * self, fd_bincode_encode_ctx_t * ctx );
    2604             : void fd_partitioned_rewards_calculation_walk( void * w, fd_partitioned_rewards_calculation_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2605           0 : static inline ulong fd_partitioned_rewards_calculation_size( fd_partitioned_rewards_calculation_t const * self ) { (void)self; return 64UL; }
    2606           0 : static inline ulong fd_partitioned_rewards_calculation_align( void ) { return FD_PARTITIONED_REWARDS_CALCULATION_ALIGN; }
    2607           0 : static inline int fd_partitioned_rewards_calculation_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2608           0 :   *total_sz += sizeof(fd_partitioned_rewards_calculation_t);
    2609           0 :   if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2610           0 :   return 0;
    2611           0 : }
    2612             : void * fd_partitioned_rewards_calculation_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2613             : 
    2614           0 : static inline void fd_prev_epoch_inflation_rewards_new( fd_prev_epoch_inflation_rewards_t * self ) { fd_memset( self, 0, sizeof(fd_prev_epoch_inflation_rewards_t) ); }
    2615             : int fd_prev_epoch_inflation_rewards_encode( fd_prev_epoch_inflation_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
    2616             : void fd_prev_epoch_inflation_rewards_walk( void * w, fd_prev_epoch_inflation_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2617           0 : static inline ulong fd_prev_epoch_inflation_rewards_size( fd_prev_epoch_inflation_rewards_t const * self ) { (void)self; return 32UL; }
    2618           0 : static inline ulong fd_prev_epoch_inflation_rewards_align( void ) { return FD_PREV_EPOCH_INFLATION_REWARDS_ALIGN; }
    2619           0 : static inline int fd_prev_epoch_inflation_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2620           0 :   *total_sz += sizeof(fd_prev_epoch_inflation_rewards_t);
    2621           0 :   if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2622           0 :   return 0;
    2623           0 : }
    2624             : void * fd_prev_epoch_inflation_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2625             : 
    2626             : void fd_vote_new( fd_vote_t * self );
    2627             : int fd_vote_encode( fd_vote_t const * self, fd_bincode_encode_ctx_t * ctx );
    2628             : void fd_vote_walk( void * w, fd_vote_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2629             : ulong fd_vote_size( fd_vote_t const * self );
    2630           0 : static inline ulong fd_vote_align( void ) { return FD_VOTE_ALIGN; }
    2631             : int fd_vote_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2632             : void * fd_vote_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2633             : 
    2634           0 : static inline void fd_vote_init_new( fd_vote_init_t * self ) { fd_memset( self, 0, sizeof(fd_vote_init_t) ); }
    2635             : int fd_vote_init_encode( fd_vote_init_t const * self, fd_bincode_encode_ctx_t * ctx );
    2636             : void fd_vote_init_walk( void * w, fd_vote_init_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2637           0 : static inline ulong fd_vote_init_size( fd_vote_init_t const * self ) { (void)self; return 97UL; }
    2638           0 : static inline ulong fd_vote_init_align( void ) { return FD_VOTE_INIT_ALIGN; }
    2639           0 : static inline int fd_vote_init_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2640           0 :   *total_sz += sizeof(fd_vote_init_t);
    2641           0 :   if( (ulong)ctx->data + 97UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2642           0 :   return 0;
    2643           0 : }
    2644             : void * fd_vote_init_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2645             : 
    2646           0 : static inline void fd_vote_authorize_new_disc( fd_vote_authorize_t * self, uint discriminant ) { self->discriminant = discriminant; }
    2647           0 : static inline void fd_vote_authorize_new( fd_vote_authorize_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    2648             : int fd_vote_authorize_encode( fd_vote_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
    2649             : void fd_vote_authorize_walk( void * w, fd_vote_authorize_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2650             : ulong fd_vote_authorize_size( fd_vote_authorize_t const * self );
    2651           0 : static inline ulong fd_vote_authorize_align( void ) { return FD_VOTE_AUTHORIZE_ALIGN; }
    2652             : int fd_vote_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2653             : void * fd_vote_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2654             : 
    2655             : FD_FN_PURE uchar fd_vote_authorize_is_voter( fd_vote_authorize_t const * self );
    2656             : FD_FN_PURE uchar fd_vote_authorize_is_withdrawer( fd_vote_authorize_t const * self );
    2657             : enum {
    2658             : fd_vote_authorize_enum_voter = 0,
    2659             : fd_vote_authorize_enum_withdrawer = 1,
    2660             : };
    2661             : void fd_vote_authorize_pubkey_new( fd_vote_authorize_pubkey_t * self );
    2662             : int fd_vote_authorize_pubkey_encode( fd_vote_authorize_pubkey_t const * self, fd_bincode_encode_ctx_t * ctx );
    2663             : void fd_vote_authorize_pubkey_walk( void * w, fd_vote_authorize_pubkey_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2664           0 : static inline ulong fd_vote_authorize_pubkey_size( fd_vote_authorize_pubkey_t const * self ) { (void)self; return 36UL; }
    2665           0 : static inline ulong fd_vote_authorize_pubkey_align( void ) { return FD_VOTE_AUTHORIZE_PUBKEY_ALIGN; }
    2666             : int fd_vote_authorize_pubkey_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2667             : void * fd_vote_authorize_pubkey_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2668             : 
    2669             : void fd_vote_switch_new( fd_vote_switch_t * self );
    2670             : int fd_vote_switch_encode( fd_vote_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
    2671             : void fd_vote_switch_walk( void * w, fd_vote_switch_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2672             : ulong fd_vote_switch_size( fd_vote_switch_t const * self );
    2673           0 : static inline ulong fd_vote_switch_align( void ) { return FD_VOTE_SWITCH_ALIGN; }
    2674             : int fd_vote_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2675             : void * fd_vote_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2676             : 
    2677             : void fd_update_vote_state_switch_new( fd_update_vote_state_switch_t * self );
    2678             : int fd_update_vote_state_switch_encode( fd_update_vote_state_switch_t const * self, fd_bincode_encode_ctx_t * ctx );
    2679             : void fd_update_vote_state_switch_walk( void * w, fd_update_vote_state_switch_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2680             : ulong fd_update_vote_state_switch_size( fd_update_vote_state_switch_t const * self );
    2681           0 : static inline ulong fd_update_vote_state_switch_align( void ) { return FD_UPDATE_VOTE_STATE_SWITCH_ALIGN; }
    2682             : int fd_update_vote_state_switch_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2683             : void * fd_update_vote_state_switch_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2684             : 
    2685             : void fd_vote_authorize_with_seed_args_new( fd_vote_authorize_with_seed_args_t * self );
    2686             : int fd_vote_authorize_with_seed_args_encode( fd_vote_authorize_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    2687             : void fd_vote_authorize_with_seed_args_walk( void * w, fd_vote_authorize_with_seed_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2688             : ulong fd_vote_authorize_with_seed_args_size( fd_vote_authorize_with_seed_args_t const * self );
    2689           0 : static inline ulong fd_vote_authorize_with_seed_args_align( void ) { return FD_VOTE_AUTHORIZE_WITH_SEED_ARGS_ALIGN; }
    2690             : int fd_vote_authorize_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2691             : void * fd_vote_authorize_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2692             : 
    2693             : void fd_vote_authorize_checked_with_seed_args_new( fd_vote_authorize_checked_with_seed_args_t * self );
    2694             : 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 );
    2695             : void fd_vote_authorize_checked_with_seed_args_walk( void * w, fd_vote_authorize_checked_with_seed_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2696             : ulong fd_vote_authorize_checked_with_seed_args_size( fd_vote_authorize_checked_with_seed_args_t const * self );
    2697           0 : static inline ulong fd_vote_authorize_checked_with_seed_args_align( void ) { return FD_VOTE_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN; }
    2698             : int fd_vote_authorize_checked_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2699             : void * fd_vote_authorize_checked_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2700             : 
    2701             : void fd_vote_instruction_new_disc( fd_vote_instruction_t * self, uint discriminant );
    2702             : void fd_vote_instruction_new( fd_vote_instruction_t * self );
    2703             : int fd_vote_instruction_encode( fd_vote_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    2704             : void fd_vote_instruction_walk( void * w, fd_vote_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2705             : ulong fd_vote_instruction_size( fd_vote_instruction_t const * self );
    2706           0 : static inline ulong fd_vote_instruction_align( void ) { return FD_VOTE_INSTRUCTION_ALIGN; }
    2707             : int fd_vote_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2708             : void * fd_vote_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2709             : 
    2710             : FD_FN_PURE uchar fd_vote_instruction_is_initialize_account( fd_vote_instruction_t const * self );
    2711             : FD_FN_PURE uchar fd_vote_instruction_is_authorize( fd_vote_instruction_t const * self );
    2712             : FD_FN_PURE uchar fd_vote_instruction_is_vote( fd_vote_instruction_t const * self );
    2713             : FD_FN_PURE uchar fd_vote_instruction_is_withdraw( fd_vote_instruction_t const * self );
    2714             : FD_FN_PURE uchar fd_vote_instruction_is_update_validator_identity( fd_vote_instruction_t const * self );
    2715             : FD_FN_PURE uchar fd_vote_instruction_is_update_commission( fd_vote_instruction_t const * self );
    2716             : FD_FN_PURE uchar fd_vote_instruction_is_vote_switch( fd_vote_instruction_t const * self );
    2717             : FD_FN_PURE uchar fd_vote_instruction_is_authorize_checked( fd_vote_instruction_t const * self );
    2718             : FD_FN_PURE uchar fd_vote_instruction_is_update_vote_state( fd_vote_instruction_t const * self );
    2719             : FD_FN_PURE uchar fd_vote_instruction_is_update_vote_state_switch( fd_vote_instruction_t const * self );
    2720             : FD_FN_PURE uchar fd_vote_instruction_is_authorize_with_seed( fd_vote_instruction_t const * self );
    2721             : FD_FN_PURE uchar fd_vote_instruction_is_authorize_checked_with_seed( fd_vote_instruction_t const * self );
    2722             : FD_FN_PURE uchar fd_vote_instruction_is_compact_update_vote_state( fd_vote_instruction_t const * self );
    2723             : FD_FN_PURE uchar fd_vote_instruction_is_compact_update_vote_state_switch( fd_vote_instruction_t const * self );
    2724             : FD_FN_PURE uchar fd_vote_instruction_is_tower_sync( fd_vote_instruction_t const * self );
    2725             : FD_FN_PURE uchar fd_vote_instruction_is_tower_sync_switch( fd_vote_instruction_t const * self );
    2726             : enum {
    2727             : fd_vote_instruction_enum_initialize_account = 0,
    2728             : fd_vote_instruction_enum_authorize = 1,
    2729             : fd_vote_instruction_enum_vote = 2,
    2730             : fd_vote_instruction_enum_withdraw = 3,
    2731             : fd_vote_instruction_enum_update_validator_identity = 4,
    2732             : fd_vote_instruction_enum_update_commission = 5,
    2733             : fd_vote_instruction_enum_vote_switch = 6,
    2734             : fd_vote_instruction_enum_authorize_checked = 7,
    2735             : fd_vote_instruction_enum_update_vote_state = 8,
    2736             : fd_vote_instruction_enum_update_vote_state_switch = 9,
    2737             : fd_vote_instruction_enum_authorize_with_seed = 10,
    2738             : fd_vote_instruction_enum_authorize_checked_with_seed = 11,
    2739             : fd_vote_instruction_enum_compact_update_vote_state = 12,
    2740             : fd_vote_instruction_enum_compact_update_vote_state_switch = 13,
    2741             : fd_vote_instruction_enum_tower_sync = 14,
    2742             : fd_vote_instruction_enum_tower_sync_switch = 15,
    2743             : };
    2744           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) ); }
    2745             : int fd_system_program_instruction_create_account_encode( fd_system_program_instruction_create_account_t const * self, fd_bincode_encode_ctx_t * ctx );
    2746             : void fd_system_program_instruction_create_account_walk( void * w, fd_system_program_instruction_create_account_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2747           0 : static inline ulong fd_system_program_instruction_create_account_size( fd_system_program_instruction_create_account_t const * self ) { (void)self; return 48UL; }
    2748           0 : static inline ulong fd_system_program_instruction_create_account_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_ALIGN; }
    2749           0 : static inline int fd_system_program_instruction_create_account_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2750           0 :   *total_sz += sizeof(fd_system_program_instruction_create_account_t);
    2751           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2752           0 :   return 0;
    2753           0 : }
    2754             : void * fd_system_program_instruction_create_account_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2755             : 
    2756             : void fd_system_program_instruction_create_account_with_seed_new( fd_system_program_instruction_create_account_with_seed_t * self );
    2757             : 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 );
    2758             : void fd_system_program_instruction_create_account_with_seed_walk( void * w, fd_system_program_instruction_create_account_with_seed_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2759             : ulong fd_system_program_instruction_create_account_with_seed_size( fd_system_program_instruction_create_account_with_seed_t const * self );
    2760           0 : static inline ulong fd_system_program_instruction_create_account_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_CREATE_ACCOUNT_WITH_SEED_ALIGN; }
    2761             : int fd_system_program_instruction_create_account_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2762             : void * fd_system_program_instruction_create_account_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2763             : 
    2764             : void fd_system_program_instruction_allocate_with_seed_new( fd_system_program_instruction_allocate_with_seed_t * self );
    2765             : 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 );
    2766             : void fd_system_program_instruction_allocate_with_seed_walk( void * w, fd_system_program_instruction_allocate_with_seed_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2767             : ulong fd_system_program_instruction_allocate_with_seed_size( fd_system_program_instruction_allocate_with_seed_t const * self );
    2768           0 : static inline ulong fd_system_program_instruction_allocate_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ALLOCATE_WITH_SEED_ALIGN; }
    2769             : int fd_system_program_instruction_allocate_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2770             : void * fd_system_program_instruction_allocate_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2771             : 
    2772             : void fd_system_program_instruction_assign_with_seed_new( fd_system_program_instruction_assign_with_seed_t * self );
    2773             : 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 );
    2774             : void fd_system_program_instruction_assign_with_seed_walk( void * w, fd_system_program_instruction_assign_with_seed_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2775             : ulong fd_system_program_instruction_assign_with_seed_size( fd_system_program_instruction_assign_with_seed_t const * self );
    2776           0 : static inline ulong fd_system_program_instruction_assign_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ASSIGN_WITH_SEED_ALIGN; }
    2777             : int fd_system_program_instruction_assign_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2778             : void * fd_system_program_instruction_assign_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2779             : 
    2780             : void fd_system_program_instruction_transfer_with_seed_new( fd_system_program_instruction_transfer_with_seed_t * self );
    2781             : 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 );
    2782             : void fd_system_program_instruction_transfer_with_seed_walk( void * w, fd_system_program_instruction_transfer_with_seed_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2783             : ulong fd_system_program_instruction_transfer_with_seed_size( fd_system_program_instruction_transfer_with_seed_t const * self );
    2784           0 : static inline ulong fd_system_program_instruction_transfer_with_seed_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_TRANSFER_WITH_SEED_ALIGN; }
    2785             : int fd_system_program_instruction_transfer_with_seed_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2786             : void * fd_system_program_instruction_transfer_with_seed_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2787             : 
    2788             : void fd_system_program_instruction_new_disc( fd_system_program_instruction_t * self, uint discriminant );
    2789             : void fd_system_program_instruction_new( fd_system_program_instruction_t * self );
    2790             : int fd_system_program_instruction_encode( fd_system_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    2791             : void fd_system_program_instruction_walk( void * w, fd_system_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2792             : ulong fd_system_program_instruction_size( fd_system_program_instruction_t const * self );
    2793           0 : static inline ulong fd_system_program_instruction_align( void ) { return FD_SYSTEM_PROGRAM_INSTRUCTION_ALIGN; }
    2794             : int fd_system_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2795             : void * fd_system_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2796             : 
    2797             : FD_FN_PURE uchar fd_system_program_instruction_is_create_account( fd_system_program_instruction_t const * self );
    2798             : FD_FN_PURE uchar fd_system_program_instruction_is_assign( fd_system_program_instruction_t const * self );
    2799             : FD_FN_PURE uchar fd_system_program_instruction_is_transfer( fd_system_program_instruction_t const * self );
    2800             : FD_FN_PURE uchar fd_system_program_instruction_is_create_account_with_seed( fd_system_program_instruction_t const * self );
    2801             : FD_FN_PURE uchar fd_system_program_instruction_is_advance_nonce_account( fd_system_program_instruction_t const * self );
    2802             : FD_FN_PURE uchar fd_system_program_instruction_is_withdraw_nonce_account( fd_system_program_instruction_t const * self );
    2803             : FD_FN_PURE uchar fd_system_program_instruction_is_initialize_nonce_account( fd_system_program_instruction_t const * self );
    2804             : FD_FN_PURE uchar fd_system_program_instruction_is_authorize_nonce_account( fd_system_program_instruction_t const * self );
    2805             : FD_FN_PURE uchar fd_system_program_instruction_is_allocate( fd_system_program_instruction_t const * self );
    2806             : FD_FN_PURE uchar fd_system_program_instruction_is_allocate_with_seed( fd_system_program_instruction_t const * self );
    2807             : FD_FN_PURE uchar fd_system_program_instruction_is_assign_with_seed( fd_system_program_instruction_t const * self );
    2808             : FD_FN_PURE uchar fd_system_program_instruction_is_transfer_with_seed( fd_system_program_instruction_t const * self );
    2809             : FD_FN_PURE uchar fd_system_program_instruction_is_upgrade_nonce_account( fd_system_program_instruction_t const * self );
    2810             : enum {
    2811             : fd_system_program_instruction_enum_create_account = 0,
    2812             : fd_system_program_instruction_enum_assign = 1,
    2813             : fd_system_program_instruction_enum_transfer = 2,
    2814             : fd_system_program_instruction_enum_create_account_with_seed = 3,
    2815             : fd_system_program_instruction_enum_advance_nonce_account = 4,
    2816             : fd_system_program_instruction_enum_withdraw_nonce_account = 5,
    2817             : fd_system_program_instruction_enum_initialize_nonce_account = 6,
    2818             : fd_system_program_instruction_enum_authorize_nonce_account = 7,
    2819             : fd_system_program_instruction_enum_allocate = 8,
    2820             : fd_system_program_instruction_enum_allocate_with_seed = 9,
    2821             : fd_system_program_instruction_enum_assign_with_seed = 10,
    2822             : fd_system_program_instruction_enum_transfer_with_seed = 11,
    2823             : fd_system_program_instruction_enum_upgrade_nonce_account = 12,
    2824             : };
    2825           0 : static inline void fd_system_error_new_disc( fd_system_error_t * self, uint discriminant ) { self->discriminant = discriminant; }
    2826           0 : static inline void fd_system_error_new( fd_system_error_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    2827             : int fd_system_error_encode( fd_system_error_t const * self, fd_bincode_encode_ctx_t * ctx );
    2828             : void fd_system_error_walk( void * w, fd_system_error_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2829             : ulong fd_system_error_size( fd_system_error_t const * self );
    2830           0 : static inline ulong fd_system_error_align( void ) { return FD_SYSTEM_ERROR_ALIGN; }
    2831             : int fd_system_error_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2832             : void * fd_system_error_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2833             : 
    2834             : FD_FN_PURE uchar fd_system_error_is_account_already_in_use( fd_system_error_t const * self );
    2835             : FD_FN_PURE uchar fd_system_error_is_result_with_negative_lamports( fd_system_error_t const * self );
    2836             : FD_FN_PURE uchar fd_system_error_is_invalid_program_id( fd_system_error_t const * self );
    2837             : FD_FN_PURE uchar fd_system_error_is_invalid_account_data_length( fd_system_error_t const * self );
    2838             : FD_FN_PURE uchar fd_system_error_is_max_seed_length_exceeded( fd_system_error_t const * self );
    2839             : FD_FN_PURE uchar fd_system_error_is_address_with_seed_mismatch( fd_system_error_t const * self );
    2840             : FD_FN_PURE uchar fd_system_error_is_nonce_no_recent_blockhashes( fd_system_error_t const * self );
    2841             : FD_FN_PURE uchar fd_system_error_is_nonce_blockhash_not_expired( fd_system_error_t const * self );
    2842             : FD_FN_PURE uchar fd_system_error_is_nonce_unexpected_blockhash_value( fd_system_error_t const * self );
    2843             : enum {
    2844             : fd_system_error_enum_account_already_in_use = 0,
    2845             : fd_system_error_enum_result_with_negative_lamports = 1,
    2846             : fd_system_error_enum_invalid_program_id = 2,
    2847             : fd_system_error_enum_invalid_account_data_length = 3,
    2848             : fd_system_error_enum_max_seed_length_exceeded = 4,
    2849             : fd_system_error_enum_address_with_seed_mismatch = 5,
    2850             : fd_system_error_enum_nonce_no_recent_blockhashes = 6,
    2851             : fd_system_error_enum_nonce_blockhash_not_expired = 7,
    2852             : fd_system_error_enum_nonce_unexpected_blockhash_value = 8,
    2853             : };
    2854           0 : static inline void fd_stake_authorized_new( fd_stake_authorized_t * self ) { fd_memset( self, 0, sizeof(fd_stake_authorized_t) ); }
    2855             : int fd_stake_authorized_encode( fd_stake_authorized_t const * self, fd_bincode_encode_ctx_t * ctx );
    2856             : void fd_stake_authorized_walk( void * w, fd_stake_authorized_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2857           0 : static inline ulong fd_stake_authorized_size( fd_stake_authorized_t const * self ) { (void)self; return 64UL; }
    2858           0 : static inline ulong fd_stake_authorized_align( void ) { return FD_STAKE_AUTHORIZED_ALIGN; }
    2859           0 : static inline int fd_stake_authorized_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2860           0 :   *total_sz += sizeof(fd_stake_authorized_t);
    2861           0 :   if( (ulong)ctx->data + 64UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2862           0 :   return 0;
    2863           0 : }
    2864             : void * fd_stake_authorized_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2865             : 
    2866           0 : static inline void fd_stake_lockup_new( fd_stake_lockup_t * self ) { fd_memset( self, 0, sizeof(fd_stake_lockup_t) ); }
    2867             : int fd_stake_lockup_encode( fd_stake_lockup_t const * self, fd_bincode_encode_ctx_t * ctx );
    2868             : void fd_stake_lockup_walk( void * w, fd_stake_lockup_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2869           0 : static inline ulong fd_stake_lockup_size( fd_stake_lockup_t const * self ) { (void)self; return 48UL; }
    2870           0 : static inline ulong fd_stake_lockup_align( void ) { return FD_STAKE_LOCKUP_ALIGN; }
    2871           0 : static inline int fd_stake_lockup_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2872           0 :   *total_sz += sizeof(fd_stake_lockup_t);
    2873           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2874           0 :   return 0;
    2875           0 : }
    2876             : void * fd_stake_lockup_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2877             : 
    2878           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) ); }
    2879             : int fd_stake_instruction_initialize_encode( fd_stake_instruction_initialize_t const * self, fd_bincode_encode_ctx_t * ctx );
    2880             : void fd_stake_instruction_initialize_walk( void * w, fd_stake_instruction_initialize_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2881           0 : static inline ulong fd_stake_instruction_initialize_size( fd_stake_instruction_initialize_t const * self ) { (void)self; return 112UL; }
    2882           0 : static inline ulong fd_stake_instruction_initialize_align( void ) { return FD_STAKE_INSTRUCTION_INITIALIZE_ALIGN; }
    2883           0 : static inline int fd_stake_instruction_initialize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    2884           0 :   *total_sz += sizeof(fd_stake_instruction_initialize_t);
    2885           0 :   if( (ulong)ctx->data + 112UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    2886           0 :   return 0;
    2887           0 : }
    2888             : void * fd_stake_instruction_initialize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2889             : 
    2890             : void fd_stake_lockup_custodian_args_new( fd_stake_lockup_custodian_args_t * self );
    2891             : int fd_stake_lockup_custodian_args_encode( fd_stake_lockup_custodian_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    2892             : void fd_stake_lockup_custodian_args_walk( void * w, fd_stake_lockup_custodian_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2893             : ulong fd_stake_lockup_custodian_args_size( fd_stake_lockup_custodian_args_t const * self );
    2894           0 : static inline ulong fd_stake_lockup_custodian_args_align( void ) { return FD_STAKE_LOCKUP_CUSTODIAN_ARGS_ALIGN; }
    2895             : int fd_stake_lockup_custodian_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2896             : void * fd_stake_lockup_custodian_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2897             : 
    2898           0 : static inline void fd_stake_authorize_new_disc( fd_stake_authorize_t * self, uint discriminant ) { self->discriminant = discriminant; }
    2899           0 : static inline void fd_stake_authorize_new( fd_stake_authorize_t * self ) { self->discriminant = (uint)ULONG_MAX; }
    2900             : int fd_stake_authorize_encode( fd_stake_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
    2901             : void fd_stake_authorize_walk( void * w, fd_stake_authorize_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2902             : ulong fd_stake_authorize_size( fd_stake_authorize_t const * self );
    2903           0 : static inline ulong fd_stake_authorize_align( void ) { return FD_STAKE_AUTHORIZE_ALIGN; }
    2904             : int fd_stake_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2905             : void * fd_stake_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2906             : 
    2907             : FD_FN_PURE uchar fd_stake_authorize_is_staker( fd_stake_authorize_t const * self );
    2908             : FD_FN_PURE uchar fd_stake_authorize_is_withdrawer( fd_stake_authorize_t const * self );
    2909             : enum {
    2910             : fd_stake_authorize_enum_staker = 0,
    2911             : fd_stake_authorize_enum_withdrawer = 1,
    2912             : };
    2913             : void fd_stake_instruction_authorize_new( fd_stake_instruction_authorize_t * self );
    2914             : int fd_stake_instruction_authorize_encode( fd_stake_instruction_authorize_t const * self, fd_bincode_encode_ctx_t * ctx );
    2915             : void fd_stake_instruction_authorize_walk( void * w, fd_stake_instruction_authorize_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2916           0 : static inline ulong fd_stake_instruction_authorize_size( fd_stake_instruction_authorize_t const * self ) { (void)self; return 36UL; }
    2917           0 : static inline ulong fd_stake_instruction_authorize_align( void ) { return FD_STAKE_INSTRUCTION_AUTHORIZE_ALIGN; }
    2918             : int fd_stake_instruction_authorize_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2919             : void * fd_stake_instruction_authorize_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2920             : 
    2921             : void fd_authorize_with_seed_args_new( fd_authorize_with_seed_args_t * self );
    2922             : int fd_authorize_with_seed_args_encode( fd_authorize_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    2923             : void fd_authorize_with_seed_args_walk( void * w, fd_authorize_with_seed_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2924             : ulong fd_authorize_with_seed_args_size( fd_authorize_with_seed_args_t const * self );
    2925           0 : static inline ulong fd_authorize_with_seed_args_align( void ) { return FD_AUTHORIZE_WITH_SEED_ARGS_ALIGN; }
    2926             : int fd_authorize_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2927             : void * fd_authorize_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2928             : 
    2929             : void fd_authorize_checked_with_seed_args_new( fd_authorize_checked_with_seed_args_t * self );
    2930             : int fd_authorize_checked_with_seed_args_encode( fd_authorize_checked_with_seed_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    2931             : void fd_authorize_checked_with_seed_args_walk( void * w, fd_authorize_checked_with_seed_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2932             : ulong fd_authorize_checked_with_seed_args_size( fd_authorize_checked_with_seed_args_t const * self );
    2933           0 : static inline ulong fd_authorize_checked_with_seed_args_align( void ) { return FD_AUTHORIZE_CHECKED_WITH_SEED_ARGS_ALIGN; }
    2934             : int fd_authorize_checked_with_seed_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2935             : void * fd_authorize_checked_with_seed_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2936             : 
    2937             : void fd_lockup_checked_args_new( fd_lockup_checked_args_t * self );
    2938             : int fd_lockup_checked_args_encode( fd_lockup_checked_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    2939             : void fd_lockup_checked_args_walk( void * w, fd_lockup_checked_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2940             : ulong fd_lockup_checked_args_size( fd_lockup_checked_args_t const * self );
    2941           0 : static inline ulong fd_lockup_checked_args_align( void ) { return FD_LOCKUP_CHECKED_ARGS_ALIGN; }
    2942             : int fd_lockup_checked_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2943             : void * fd_lockup_checked_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2944             : 
    2945             : void fd_lockup_args_new( fd_lockup_args_t * self );
    2946             : int fd_lockup_args_encode( fd_lockup_args_t const * self, fd_bincode_encode_ctx_t * ctx );
    2947             : void fd_lockup_args_walk( void * w, fd_lockup_args_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2948             : ulong fd_lockup_args_size( fd_lockup_args_t const * self );
    2949           0 : static inline ulong fd_lockup_args_align( void ) { return FD_LOCKUP_ARGS_ALIGN; }
    2950             : int fd_lockup_args_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2951             : void * fd_lockup_args_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2952             : 
    2953             : void fd_stake_instruction_new_disc( fd_stake_instruction_t * self, uint discriminant );
    2954             : void fd_stake_instruction_new( fd_stake_instruction_t * self );
    2955             : int fd_stake_instruction_encode( fd_stake_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    2956             : void fd_stake_instruction_walk( void * w, fd_stake_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    2957             : ulong fd_stake_instruction_size( fd_stake_instruction_t const * self );
    2958           0 : static inline ulong fd_stake_instruction_align( void ) { return FD_STAKE_INSTRUCTION_ALIGN; }
    2959             : int fd_stake_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    2960             : void * fd_stake_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    2961             : 
    2962             : FD_FN_PURE uchar fd_stake_instruction_is_initialize( fd_stake_instruction_t const * self );
    2963             : FD_FN_PURE uchar fd_stake_instruction_is_authorize( fd_stake_instruction_t const * self );
    2964             : FD_FN_PURE uchar fd_stake_instruction_is_delegate_stake( fd_stake_instruction_t const * self );
    2965             : FD_FN_PURE uchar fd_stake_instruction_is_split( fd_stake_instruction_t const * self );
    2966             : FD_FN_PURE uchar fd_stake_instruction_is_withdraw( fd_stake_instruction_t const * self );
    2967             : FD_FN_PURE uchar fd_stake_instruction_is_deactivate( fd_stake_instruction_t const * self );
    2968             : FD_FN_PURE uchar fd_stake_instruction_is_set_lockup( fd_stake_instruction_t const * self );
    2969             : FD_FN_PURE uchar fd_stake_instruction_is_merge( fd_stake_instruction_t const * self );
    2970             : FD_FN_PURE uchar fd_stake_instruction_is_authorize_with_seed( fd_stake_instruction_t const * self );
    2971             : FD_FN_PURE uchar fd_stake_instruction_is_initialize_checked( fd_stake_instruction_t const * self );
    2972             : FD_FN_PURE uchar fd_stake_instruction_is_authorize_checked( fd_stake_instruction_t const * self );
    2973             : FD_FN_PURE uchar fd_stake_instruction_is_authorize_checked_with_seed( fd_stake_instruction_t const * self );
    2974             : FD_FN_PURE uchar fd_stake_instruction_is_set_lockup_checked( fd_stake_instruction_t const * self );
    2975             : FD_FN_PURE uchar fd_stake_instruction_is_get_minimum_delegation( fd_stake_instruction_t const * self );
    2976             : FD_FN_PURE uchar fd_stake_instruction_is_deactivate_delinquent( fd_stake_instruction_t const * self );
    2977             : FD_FN_PURE uchar fd_stake_instruction_is_redelegate( fd_stake_instruction_t const * self );
    2978             : FD_FN_PURE uchar fd_stake_instruction_is_move_stake( fd_stake_instruction_t const * self );
    2979             : FD_FN_PURE uchar fd_stake_instruction_is_move_lamports( fd_stake_instruction_t const * self );
    2980             : enum {
    2981             : fd_stake_instruction_enum_initialize = 0,
    2982             : fd_stake_instruction_enum_authorize = 1,
    2983             : fd_stake_instruction_enum_delegate_stake = 2,
    2984             : fd_stake_instruction_enum_split = 3,
    2985             : fd_stake_instruction_enum_withdraw = 4,
    2986             : fd_stake_instruction_enum_deactivate = 5,
    2987             : fd_stake_instruction_enum_set_lockup = 6,
    2988             : fd_stake_instruction_enum_merge = 7,
    2989             : fd_stake_instruction_enum_authorize_with_seed = 8,
    2990             : fd_stake_instruction_enum_initialize_checked = 9,
    2991             : fd_stake_instruction_enum_authorize_checked = 10,
    2992             : fd_stake_instruction_enum_authorize_checked_with_seed = 11,
    2993             : fd_stake_instruction_enum_set_lockup_checked = 12,
    2994             : fd_stake_instruction_enum_get_minimum_delegation = 13,
    2995             : fd_stake_instruction_enum_deactivate_delinquent = 14,
    2996             : fd_stake_instruction_enum_redelegate = 15,
    2997             : fd_stake_instruction_enum_move_stake = 16,
    2998             : fd_stake_instruction_enum_move_lamports = 17,
    2999             : };
    3000           0 : static inline void fd_stake_meta_new( fd_stake_meta_t * self ) { fd_memset( self, 0, sizeof(fd_stake_meta_t) ); }
    3001             : int fd_stake_meta_encode( fd_stake_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    3002             : void fd_stake_meta_walk( void * w, fd_stake_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3003           0 : static inline ulong fd_stake_meta_size( fd_stake_meta_t const * self ) { (void)self; return 120UL; }
    3004           0 : static inline ulong fd_stake_meta_align( void ) { return FD_STAKE_META_ALIGN; }
    3005           0 : static inline int fd_stake_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3006           0 :   *total_sz += sizeof(fd_stake_meta_t);
    3007           0 :   if( (ulong)ctx->data + 120UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3008           0 :   return 0;
    3009           0 : }
    3010             : void * fd_stake_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3011             : 
    3012           0 : static inline void fd_stake_flags_new( fd_stake_flags_t * self ) { fd_memset( self, 0, sizeof(fd_stake_flags_t) ); }
    3013             : int fd_stake_flags_encode( fd_stake_flags_t const * self, fd_bincode_encode_ctx_t * ctx );
    3014             : void fd_stake_flags_walk( void * w, fd_stake_flags_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3015           0 : static inline ulong fd_stake_flags_size( fd_stake_flags_t const * self ) { (void)self; return 1UL; }
    3016           0 : static inline ulong fd_stake_flags_align( void ) { return FD_STAKE_FLAGS_ALIGN; }
    3017           0 : static inline int fd_stake_flags_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3018           0 :   *total_sz += sizeof(fd_stake_flags_t);
    3019           0 :   if( (ulong)ctx->data + 1UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3020           0 :   return 0;
    3021           0 : }
    3022             : void * fd_stake_flags_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3023             : 
    3024           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) ); }
    3025             : int fd_stake_state_v2_initialized_encode( fd_stake_state_v2_initialized_t const * self, fd_bincode_encode_ctx_t * ctx );
    3026             : void fd_stake_state_v2_initialized_walk( void * w, fd_stake_state_v2_initialized_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3027           0 : static inline ulong fd_stake_state_v2_initialized_size( fd_stake_state_v2_initialized_t const * self ) { (void)self; return 120UL; }
    3028           0 : static inline ulong fd_stake_state_v2_initialized_align( void ) { return FD_STAKE_STATE_V2_INITIALIZED_ALIGN; }
    3029           0 : static inline int fd_stake_state_v2_initialized_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3030           0 :   *total_sz += sizeof(fd_stake_state_v2_initialized_t);
    3031           0 :   if( (ulong)ctx->data + 120UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3032           0 :   return 0;
    3033           0 : }
    3034             : void * fd_stake_state_v2_initialized_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3035             : 
    3036          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) ); }
    3037             : int fd_stake_state_v2_stake_encode( fd_stake_state_v2_stake_t const * self, fd_bincode_encode_ctx_t * ctx );
    3038             : void fd_stake_state_v2_stake_walk( void * w, fd_stake_state_v2_stake_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3039           0 : static inline ulong fd_stake_state_v2_stake_size( fd_stake_state_v2_stake_t const * self ) { (void)self; return 193UL; }
    3040           0 : static inline ulong fd_stake_state_v2_stake_align( void ) { return FD_STAKE_STATE_V2_STAKE_ALIGN; }
    3041           0 : static inline int fd_stake_state_v2_stake_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3042           0 :   *total_sz += sizeof(fd_stake_state_v2_stake_t);
    3043           0 :   if( (ulong)ctx->data + 193UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3044           0 :   return 0;
    3045           0 : }
    3046             : void * fd_stake_state_v2_stake_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3047             : 
    3048             : void fd_stake_state_v2_new_disc( fd_stake_state_v2_t * self, uint discriminant );
    3049             : void fd_stake_state_v2_new( fd_stake_state_v2_t * self );
    3050             : int fd_stake_state_v2_encode( fd_stake_state_v2_t const * self, fd_bincode_encode_ctx_t * ctx );
    3051             : void fd_stake_state_v2_walk( void * w, fd_stake_state_v2_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3052             : ulong fd_stake_state_v2_size( fd_stake_state_v2_t const * self );
    3053           0 : static inline ulong fd_stake_state_v2_align( void ) { return FD_STAKE_STATE_V2_ALIGN; }
    3054             : int fd_stake_state_v2_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3055             : void * fd_stake_state_v2_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3056             : 
    3057             : FD_FN_PURE uchar fd_stake_state_v2_is_uninitialized( fd_stake_state_v2_t const * self );
    3058             : FD_FN_PURE uchar fd_stake_state_v2_is_initialized( fd_stake_state_v2_t const * self );
    3059             : FD_FN_PURE uchar fd_stake_state_v2_is_stake( fd_stake_state_v2_t const * self );
    3060             : FD_FN_PURE uchar fd_stake_state_v2_is_rewards_pool( fd_stake_state_v2_t const * self );
    3061             : enum {
    3062             : fd_stake_state_v2_enum_uninitialized = 0,
    3063             : fd_stake_state_v2_enum_initialized = 1,
    3064             : fd_stake_state_v2_enum_stake = 2,
    3065             : fd_stake_state_v2_enum_rewards_pool = 3,
    3066             : };
    3067           0 : static inline void fd_nonce_data_new( fd_nonce_data_t * self ) { fd_memset( self, 0, sizeof(fd_nonce_data_t) ); }
    3068             : int fd_nonce_data_encode( fd_nonce_data_t const * self, fd_bincode_encode_ctx_t * ctx );
    3069             : void fd_nonce_data_walk( void * w, fd_nonce_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3070           0 : static inline ulong fd_nonce_data_size( fd_nonce_data_t const * self ) { (void)self; return 72UL; }
    3071           0 : static inline ulong fd_nonce_data_align( void ) { return FD_NONCE_DATA_ALIGN; }
    3072           0 : static inline int fd_nonce_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3073           0 :   *total_sz += sizeof(fd_nonce_data_t);
    3074           0 :   if( (ulong)ctx->data + 72UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3075           0 :   return 0;
    3076           0 : }
    3077             : void * fd_nonce_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3078             : 
    3079             : void fd_nonce_state_new_disc( fd_nonce_state_t * self, uint discriminant );
    3080             : void fd_nonce_state_new( fd_nonce_state_t * self );
    3081             : int fd_nonce_state_encode( fd_nonce_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    3082             : void fd_nonce_state_walk( void * w, fd_nonce_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3083             : ulong fd_nonce_state_size( fd_nonce_state_t const * self );
    3084           0 : static inline ulong fd_nonce_state_align( void ) { return FD_NONCE_STATE_ALIGN; }
    3085             : int fd_nonce_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3086             : void * fd_nonce_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3087             : 
    3088             : FD_FN_PURE uchar fd_nonce_state_is_uninitialized( fd_nonce_state_t const * self );
    3089             : FD_FN_PURE uchar fd_nonce_state_is_initialized( fd_nonce_state_t const * self );
    3090             : enum {
    3091             : fd_nonce_state_enum_uninitialized = 0,
    3092             : fd_nonce_state_enum_initialized = 1,
    3093             : };
    3094             : void fd_nonce_state_versions_new_disc( fd_nonce_state_versions_t * self, uint discriminant );
    3095             : void fd_nonce_state_versions_new( fd_nonce_state_versions_t * self );
    3096             : int fd_nonce_state_versions_encode( fd_nonce_state_versions_t const * self, fd_bincode_encode_ctx_t * ctx );
    3097             : void fd_nonce_state_versions_walk( void * w, fd_nonce_state_versions_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3098             : ulong fd_nonce_state_versions_size( fd_nonce_state_versions_t const * self );
    3099           0 : static inline ulong fd_nonce_state_versions_align( void ) { return FD_NONCE_STATE_VERSIONS_ALIGN; }
    3100             : int fd_nonce_state_versions_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3101             : void * fd_nonce_state_versions_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3102             : 
    3103             : FD_FN_PURE uchar fd_nonce_state_versions_is_legacy( fd_nonce_state_versions_t const * self );
    3104             : FD_FN_PURE uchar fd_nonce_state_versions_is_current( fd_nonce_state_versions_t const * self );
    3105             : enum {
    3106             : fd_nonce_state_versions_enum_legacy = 0,
    3107             : fd_nonce_state_versions_enum_current = 1,
    3108             : };
    3109           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) ); }
    3110             : 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 );
    3111             : void fd_compute_budget_program_instruction_request_units_deprecated_walk( void * w, fd_compute_budget_program_instruction_request_units_deprecated_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3112           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; }
    3113           0 : static inline ulong fd_compute_budget_program_instruction_request_units_deprecated_align( void ) { return FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_REQUEST_UNITS_DEPRECATED_ALIGN; }
    3114           0 : static inline int fd_compute_budget_program_instruction_request_units_deprecated_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3115           0 :   *total_sz += sizeof(fd_compute_budget_program_instruction_request_units_deprecated_t);
    3116           0 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3117           0 :   return 0;
    3118           0 : }
    3119             : void * fd_compute_budget_program_instruction_request_units_deprecated_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3120             : 
    3121             : void fd_compute_budget_program_instruction_new_disc( fd_compute_budget_program_instruction_t * self, uint discriminant );
    3122             : void fd_compute_budget_program_instruction_new( fd_compute_budget_program_instruction_t * self );
    3123             : int fd_compute_budget_program_instruction_encode( fd_compute_budget_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    3124             : void fd_compute_budget_program_instruction_walk( void * w, fd_compute_budget_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3125             : ulong fd_compute_budget_program_instruction_size( fd_compute_budget_program_instruction_t const * self );
    3126           0 : static inline ulong fd_compute_budget_program_instruction_align( void ) { return FD_COMPUTE_BUDGET_PROGRAM_INSTRUCTION_ALIGN; }
    3127             : int fd_compute_budget_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3128             : void * fd_compute_budget_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3129             : 
    3130             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_request_units_deprecated( fd_compute_budget_program_instruction_t const * self );
    3131             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_request_heap_frame( fd_compute_budget_program_instruction_t const * self );
    3132             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_compute_unit_limit( fd_compute_budget_program_instruction_t const * self );
    3133             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_compute_unit_price( fd_compute_budget_program_instruction_t const * self );
    3134             : FD_FN_PURE uchar fd_compute_budget_program_instruction_is_set_loaded_accounts_data_size_limit( fd_compute_budget_program_instruction_t const * self );
    3135             : enum {
    3136             : fd_compute_budget_program_instruction_enum_request_units_deprecated = 0,
    3137             : fd_compute_budget_program_instruction_enum_request_heap_frame = 1,
    3138             : fd_compute_budget_program_instruction_enum_set_compute_unit_limit = 2,
    3139             : fd_compute_budget_program_instruction_enum_set_compute_unit_price = 3,
    3140             : fd_compute_budget_program_instruction_enum_set_loaded_accounts_data_size_limit = 4,
    3141             : };
    3142             : void fd_config_keys_new( fd_config_keys_t * self );
    3143             : int fd_config_keys_encode( fd_config_keys_t const * self, fd_bincode_encode_ctx_t * ctx );
    3144             : void fd_config_keys_walk( void * w, fd_config_keys_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3145             : ulong fd_config_keys_size( fd_config_keys_t const * self );
    3146           0 : static inline ulong fd_config_keys_align( void ) { return FD_CONFIG_KEYS_ALIGN; }
    3147             : int fd_config_keys_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3148             : void * fd_config_keys_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3149             : 
    3150             : void fd_bpf_loader_program_instruction_write_new( fd_bpf_loader_program_instruction_write_t * self );
    3151             : int fd_bpf_loader_program_instruction_write_encode( fd_bpf_loader_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
    3152             : void fd_bpf_loader_program_instruction_write_walk( void * w, fd_bpf_loader_program_instruction_write_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3153             : ulong fd_bpf_loader_program_instruction_write_size( fd_bpf_loader_program_instruction_write_t const * self );
    3154           0 : static inline ulong fd_bpf_loader_program_instruction_write_align( void ) { return FD_BPF_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
    3155             : int fd_bpf_loader_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3156             : void * fd_bpf_loader_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3157             : 
    3158             : void fd_bpf_loader_program_instruction_new_disc( fd_bpf_loader_program_instruction_t * self, uint discriminant );
    3159             : void fd_bpf_loader_program_instruction_new( fd_bpf_loader_program_instruction_t * self );
    3160             : int fd_bpf_loader_program_instruction_encode( fd_bpf_loader_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    3161             : void fd_bpf_loader_program_instruction_walk( void * w, fd_bpf_loader_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3162             : ulong fd_bpf_loader_program_instruction_size( fd_bpf_loader_program_instruction_t const * self );
    3163           0 : static inline ulong fd_bpf_loader_program_instruction_align( void ) { return FD_BPF_LOADER_PROGRAM_INSTRUCTION_ALIGN; }
    3164             : int fd_bpf_loader_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3165             : void * fd_bpf_loader_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3166             : 
    3167             : FD_FN_PURE uchar fd_bpf_loader_program_instruction_is_write( fd_bpf_loader_program_instruction_t const * self );
    3168             : FD_FN_PURE uchar fd_bpf_loader_program_instruction_is_finalize( fd_bpf_loader_program_instruction_t const * self );
    3169             : enum {
    3170             : fd_bpf_loader_program_instruction_enum_write = 0,
    3171             : fd_bpf_loader_program_instruction_enum_finalize = 1,
    3172             : };
    3173             : void fd_loader_v4_program_instruction_write_new( fd_loader_v4_program_instruction_write_t * self );
    3174             : int fd_loader_v4_program_instruction_write_encode( fd_loader_v4_program_instruction_write_t const * self, fd_bincode_encode_ctx_t * ctx );
    3175             : void fd_loader_v4_program_instruction_write_walk( void * w, fd_loader_v4_program_instruction_write_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3176             : ulong fd_loader_v4_program_instruction_write_size( fd_loader_v4_program_instruction_write_t const * self );
    3177           0 : static inline ulong fd_loader_v4_program_instruction_write_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
    3178             : int fd_loader_v4_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3179             : void * fd_loader_v4_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3180             : 
    3181           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) ); }
    3182             : int fd_loader_v4_program_instruction_copy_encode( fd_loader_v4_program_instruction_copy_t const * self, fd_bincode_encode_ctx_t * ctx );
    3183             : void fd_loader_v4_program_instruction_copy_walk( void * w, fd_loader_v4_program_instruction_copy_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3184           0 : static inline ulong fd_loader_v4_program_instruction_copy_size( fd_loader_v4_program_instruction_copy_t const * self ) { (void)self; return 12UL; }
    3185           0 : static inline ulong fd_loader_v4_program_instruction_copy_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_COPY_ALIGN; }
    3186           0 : static inline int fd_loader_v4_program_instruction_copy_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3187           0 :   *total_sz += sizeof(fd_loader_v4_program_instruction_copy_t);
    3188           0 :   if( (ulong)ctx->data + 12UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3189           0 :   return 0;
    3190           0 : }
    3191             : void * fd_loader_v4_program_instruction_copy_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3192             : 
    3193           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) ); }
    3194             : 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 );
    3195             : void fd_loader_v4_program_instruction_set_program_length_walk( void * w, fd_loader_v4_program_instruction_set_program_length_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3196           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; }
    3197           0 : static inline ulong fd_loader_v4_program_instruction_set_program_length_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_SET_PROGRAM_LENGTH_ALIGN; }
    3198           0 : static inline int fd_loader_v4_program_instruction_set_program_length_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3199           0 :   *total_sz += sizeof(fd_loader_v4_program_instruction_set_program_length_t);
    3200           0 :   if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3201           0 :   return 0;
    3202           0 : }
    3203             : void * fd_loader_v4_program_instruction_set_program_length_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3204             : 
    3205             : void fd_loader_v4_program_instruction_new_disc( fd_loader_v4_program_instruction_t * self, uint discriminant );
    3206             : void fd_loader_v4_program_instruction_new( fd_loader_v4_program_instruction_t * self );
    3207             : int fd_loader_v4_program_instruction_encode( fd_loader_v4_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    3208             : void fd_loader_v4_program_instruction_walk( void * w, fd_loader_v4_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3209             : ulong fd_loader_v4_program_instruction_size( fd_loader_v4_program_instruction_t const * self );
    3210           0 : static inline ulong fd_loader_v4_program_instruction_align( void ) { return FD_LOADER_V4_PROGRAM_INSTRUCTION_ALIGN; }
    3211             : int fd_loader_v4_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3212             : void * fd_loader_v4_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3213             : 
    3214             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_write( fd_loader_v4_program_instruction_t const * self );
    3215             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_copy( fd_loader_v4_program_instruction_t const * self );
    3216             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_set_program_length( fd_loader_v4_program_instruction_t const * self );
    3217             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_deploy( fd_loader_v4_program_instruction_t const * self );
    3218             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_retract( fd_loader_v4_program_instruction_t const * self );
    3219             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_transfer_authority( fd_loader_v4_program_instruction_t const * self );
    3220             : FD_FN_PURE uchar fd_loader_v4_program_instruction_is_finalize( fd_loader_v4_program_instruction_t const * self );
    3221             : enum {
    3222             : fd_loader_v4_program_instruction_enum_write = 0,
    3223             : fd_loader_v4_program_instruction_enum_copy = 1,
    3224             : fd_loader_v4_program_instruction_enum_set_program_length = 2,
    3225             : fd_loader_v4_program_instruction_enum_deploy = 3,
    3226             : fd_loader_v4_program_instruction_enum_retract = 4,
    3227             : fd_loader_v4_program_instruction_enum_transfer_authority = 5,
    3228             : fd_loader_v4_program_instruction_enum_finalize = 6,
    3229             : };
    3230             : void fd_bpf_upgradeable_loader_program_instruction_write_new( fd_bpf_upgradeable_loader_program_instruction_write_t * self );
    3231             : 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 );
    3232             : void fd_bpf_upgradeable_loader_program_instruction_write_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_write_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3233             : ulong fd_bpf_upgradeable_loader_program_instruction_write_size( fd_bpf_upgradeable_loader_program_instruction_write_t const * self );
    3234           0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_write_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_WRITE_ALIGN; }
    3235             : int fd_bpf_upgradeable_loader_program_instruction_write_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3236             : void * fd_bpf_upgradeable_loader_program_instruction_write_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3237             : 
    3238           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) ); }
    3239             : 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 );
    3240             : void fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3241           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; }
    3242           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; }
    3243           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 ) {
    3244           0 :   *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_t);
    3245           0 :   if( (ulong)ctx->data + 8UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3246           0 :   return 0;
    3247           0 : }
    3248             : void * fd_bpf_upgradeable_loader_program_instruction_deploy_with_max_data_len_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3249             : 
    3250           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) ); }
    3251             : 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 );
    3252             : void fd_bpf_upgradeable_loader_program_instruction_extend_program_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_extend_program_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3253           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; }
    3254           0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_extend_program_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_EXTEND_PROGRAM_ALIGN; }
    3255           0 : static inline int fd_bpf_upgradeable_loader_program_instruction_extend_program_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3256           0 :   *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_t);
    3257           0 :   if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3258           0 :   return 0;
    3259           0 : }
    3260             : void * fd_bpf_upgradeable_loader_program_instruction_extend_program_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3261             : 
    3262           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) ); }
    3263             : 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 );
    3264             : void fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3265           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; }
    3266           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; }
    3267           0 : static inline int fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3268           0 :   *total_sz += sizeof(fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_t);
    3269           0 :   if( (ulong)ctx->data + 4UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3270           0 :   return 0;
    3271           0 : }
    3272             : void * fd_bpf_upgradeable_loader_program_instruction_extend_program_checked_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3273             : 
    3274             : void fd_bpf_upgradeable_loader_program_instruction_new_disc( fd_bpf_upgradeable_loader_program_instruction_t * self, uint discriminant );
    3275             : void fd_bpf_upgradeable_loader_program_instruction_new( fd_bpf_upgradeable_loader_program_instruction_t * self );
    3276             : int fd_bpf_upgradeable_loader_program_instruction_encode( fd_bpf_upgradeable_loader_program_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    3277             : void fd_bpf_upgradeable_loader_program_instruction_walk( void * w, fd_bpf_upgradeable_loader_program_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3278             : ulong fd_bpf_upgradeable_loader_program_instruction_size( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3279           0 : static inline ulong fd_bpf_upgradeable_loader_program_instruction_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_PROGRAM_INSTRUCTION_ALIGN; }
    3280             : int fd_bpf_upgradeable_loader_program_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3281             : void * fd_bpf_upgradeable_loader_program_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3282             : 
    3283             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_initialize_buffer( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3284             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_write( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3285             : 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 );
    3286             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_upgrade( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3287             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_set_authority( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3288             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_close( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3289             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_extend_program( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3290             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_set_authority_checked( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3291             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_migrate( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3292             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_program_instruction_is_extend_program_checked( fd_bpf_upgradeable_loader_program_instruction_t const * self );
    3293             : enum {
    3294             : fd_bpf_upgradeable_loader_program_instruction_enum_initialize_buffer = 0,
    3295             : fd_bpf_upgradeable_loader_program_instruction_enum_write = 1,
    3296             : fd_bpf_upgradeable_loader_program_instruction_enum_deploy_with_max_data_len = 2,
    3297             : fd_bpf_upgradeable_loader_program_instruction_enum_upgrade = 3,
    3298             : fd_bpf_upgradeable_loader_program_instruction_enum_set_authority = 4,
    3299             : fd_bpf_upgradeable_loader_program_instruction_enum_close = 5,
    3300             : fd_bpf_upgradeable_loader_program_instruction_enum_extend_program = 6,
    3301             : fd_bpf_upgradeable_loader_program_instruction_enum_set_authority_checked = 7,
    3302             : fd_bpf_upgradeable_loader_program_instruction_enum_migrate = 8,
    3303             : fd_bpf_upgradeable_loader_program_instruction_enum_extend_program_checked = 9,
    3304             : };
    3305             : void fd_bpf_upgradeable_loader_state_buffer_new( fd_bpf_upgradeable_loader_state_buffer_t * self );
    3306             : int fd_bpf_upgradeable_loader_state_buffer_encode( fd_bpf_upgradeable_loader_state_buffer_t const * self, fd_bincode_encode_ctx_t * ctx );
    3307             : void fd_bpf_upgradeable_loader_state_buffer_walk( void * w, fd_bpf_upgradeable_loader_state_buffer_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3308             : ulong fd_bpf_upgradeable_loader_state_buffer_size( fd_bpf_upgradeable_loader_state_buffer_t const * self );
    3309           0 : static inline ulong fd_bpf_upgradeable_loader_state_buffer_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_BUFFER_ALIGN; }
    3310             : int fd_bpf_upgradeable_loader_state_buffer_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3311             : void * fd_bpf_upgradeable_loader_state_buffer_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3312             : 
    3313           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) ); }
    3314             : int fd_bpf_upgradeable_loader_state_program_encode( fd_bpf_upgradeable_loader_state_program_t const * self, fd_bincode_encode_ctx_t * ctx );
    3315             : void fd_bpf_upgradeable_loader_state_program_walk( void * w, fd_bpf_upgradeable_loader_state_program_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3316           0 : static inline ulong fd_bpf_upgradeable_loader_state_program_size( fd_bpf_upgradeable_loader_state_program_t const * self ) { (void)self; return 32UL; }
    3317           0 : static inline ulong fd_bpf_upgradeable_loader_state_program_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_ALIGN; }
    3318           0 : static inline int fd_bpf_upgradeable_loader_state_program_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3319           0 :   *total_sz += sizeof(fd_bpf_upgradeable_loader_state_program_t);
    3320           0 :   if( (ulong)ctx->data + 32UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3321           0 :   return 0;
    3322           0 : }
    3323             : void * fd_bpf_upgradeable_loader_state_program_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3324             : 
    3325             : void fd_bpf_upgradeable_loader_state_program_data_new( fd_bpf_upgradeable_loader_state_program_data_t * self );
    3326             : 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 );
    3327             : void fd_bpf_upgradeable_loader_state_program_data_walk( void * w, fd_bpf_upgradeable_loader_state_program_data_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3328             : ulong fd_bpf_upgradeable_loader_state_program_data_size( fd_bpf_upgradeable_loader_state_program_data_t const * self );
    3329           0 : static inline ulong fd_bpf_upgradeable_loader_state_program_data_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_PROGRAM_DATA_ALIGN; }
    3330             : int fd_bpf_upgradeable_loader_state_program_data_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3331             : void * fd_bpf_upgradeable_loader_state_program_data_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3332             : 
    3333             : void fd_bpf_upgradeable_loader_state_new_disc( fd_bpf_upgradeable_loader_state_t * self, uint discriminant );
    3334             : void fd_bpf_upgradeable_loader_state_new( fd_bpf_upgradeable_loader_state_t * self );
    3335             : int fd_bpf_upgradeable_loader_state_encode( fd_bpf_upgradeable_loader_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    3336             : void fd_bpf_upgradeable_loader_state_walk( void * w, fd_bpf_upgradeable_loader_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3337             : ulong fd_bpf_upgradeable_loader_state_size( fd_bpf_upgradeable_loader_state_t const * self );
    3338           0 : static inline ulong fd_bpf_upgradeable_loader_state_align( void ) { return FD_BPF_UPGRADEABLE_LOADER_STATE_ALIGN; }
    3339             : int fd_bpf_upgradeable_loader_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3340             : void * fd_bpf_upgradeable_loader_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3341             : 
    3342             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_uninitialized( fd_bpf_upgradeable_loader_state_t const * self );
    3343             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_buffer( fd_bpf_upgradeable_loader_state_t const * self );
    3344             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_program( fd_bpf_upgradeable_loader_state_t const * self );
    3345             : FD_FN_PURE uchar fd_bpf_upgradeable_loader_state_is_program_data( fd_bpf_upgradeable_loader_state_t const * self );
    3346             : enum {
    3347             : fd_bpf_upgradeable_loader_state_enum_uninitialized = 0,
    3348             : fd_bpf_upgradeable_loader_state_enum_buffer = 1,
    3349             : fd_bpf_upgradeable_loader_state_enum_program = 2,
    3350             : fd_bpf_upgradeable_loader_state_enum_program_data = 3,
    3351             : };
    3352           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) ); }
    3353             : int fd_loader_v4_state_encode( fd_loader_v4_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    3354             : void fd_loader_v4_state_walk( void * w, fd_loader_v4_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3355           0 : static inline ulong fd_loader_v4_state_size( fd_loader_v4_state_t const * self ) { (void)self; return 48UL; }
    3356           0 : static inline ulong fd_loader_v4_state_align( void ) { return FD_LOADER_V4_STATE_ALIGN; }
    3357           0 : static inline int fd_loader_v4_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3358           0 :   *total_sz += sizeof(fd_loader_v4_state_t);
    3359           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3360           0 :   return 0;
    3361           0 : }
    3362             : void * fd_loader_v4_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3363             : 
    3364             : void fd_frozen_hash_status_new( fd_frozen_hash_status_t * self );
    3365             : int fd_frozen_hash_status_encode( fd_frozen_hash_status_t const * self, fd_bincode_encode_ctx_t * ctx );
    3366             : void fd_frozen_hash_status_walk( void * w, fd_frozen_hash_status_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3367           0 : static inline ulong fd_frozen_hash_status_size( fd_frozen_hash_status_t const * self ) { (void)self; return 33UL; }
    3368           0 : static inline ulong fd_frozen_hash_status_align( void ) { return FD_FROZEN_HASH_STATUS_ALIGN; }
    3369             : int fd_frozen_hash_status_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3370             : void * fd_frozen_hash_status_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3371             : 
    3372             : void fd_frozen_hash_versioned_new_disc( fd_frozen_hash_versioned_t * self, uint discriminant );
    3373             : void fd_frozen_hash_versioned_new( fd_frozen_hash_versioned_t * self );
    3374             : int fd_frozen_hash_versioned_encode( fd_frozen_hash_versioned_t const * self, fd_bincode_encode_ctx_t * ctx );
    3375             : void fd_frozen_hash_versioned_walk( void * w, fd_frozen_hash_versioned_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3376             : ulong fd_frozen_hash_versioned_size( fd_frozen_hash_versioned_t const * self );
    3377           0 : static inline ulong fd_frozen_hash_versioned_align( void ) { return FD_FROZEN_HASH_VERSIONED_ALIGN; }
    3378             : int fd_frozen_hash_versioned_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3379             : void * fd_frozen_hash_versioned_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3380             : 
    3381             : FD_FN_PURE uchar fd_frozen_hash_versioned_is_current( fd_frozen_hash_versioned_t const * self );
    3382             : enum {
    3383             : fd_frozen_hash_versioned_enum_current = 0,
    3384             : };
    3385             : void fd_lookup_table_meta_new( fd_lookup_table_meta_t * self );
    3386             : int fd_lookup_table_meta_encode( fd_lookup_table_meta_t const * self, fd_bincode_encode_ctx_t * ctx );
    3387             : void fd_lookup_table_meta_walk( void * w, fd_lookup_table_meta_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3388             : ulong fd_lookup_table_meta_size( fd_lookup_table_meta_t const * self );
    3389           0 : static inline ulong fd_lookup_table_meta_align( void ) { return FD_LOOKUP_TABLE_META_ALIGN; }
    3390             : int fd_lookup_table_meta_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3391             : void * fd_lookup_table_meta_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3392             : 
    3393             : void fd_address_lookup_table_new( fd_address_lookup_table_t * self );
    3394             : int fd_address_lookup_table_encode( fd_address_lookup_table_t const * self, fd_bincode_encode_ctx_t * ctx );
    3395             : void fd_address_lookup_table_walk( void * w, fd_address_lookup_table_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3396             : ulong fd_address_lookup_table_size( fd_address_lookup_table_t const * self );
    3397           0 : static inline ulong fd_address_lookup_table_align( void ) { return FD_ADDRESS_LOOKUP_TABLE_ALIGN; }
    3398             : int fd_address_lookup_table_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3399             : void * fd_address_lookup_table_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3400             : 
    3401             : void fd_address_lookup_table_state_new_disc( fd_address_lookup_table_state_t * self, uint discriminant );
    3402             : void fd_address_lookup_table_state_new( fd_address_lookup_table_state_t * self );
    3403             : int fd_address_lookup_table_state_encode( fd_address_lookup_table_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    3404             : void fd_address_lookup_table_state_walk( void * w, fd_address_lookup_table_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3405             : ulong fd_address_lookup_table_state_size( fd_address_lookup_table_state_t const * self );
    3406           0 : static inline ulong fd_address_lookup_table_state_align( void ) { return FD_ADDRESS_LOOKUP_TABLE_STATE_ALIGN; }
    3407             : int fd_address_lookup_table_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3408             : void * fd_address_lookup_table_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3409             : 
    3410             : FD_FN_PURE uchar fd_address_lookup_table_state_is_uninitialized( fd_address_lookup_table_state_t const * self );
    3411             : FD_FN_PURE uchar fd_address_lookup_table_state_is_lookup_table( fd_address_lookup_table_state_t const * self );
    3412             : enum {
    3413             : fd_address_lookup_table_state_enum_uninitialized = 0,
    3414             : fd_address_lookup_table_state_enum_lookup_table = 1,
    3415             : };
    3416           0 : static inline void fd_gossip_ping_new( fd_gossip_ping_t * self ) { fd_memset( self, 0, sizeof(fd_gossip_ping_t) ); }
    3417             : int fd_gossip_ping_encode( fd_gossip_ping_t const * self, fd_bincode_encode_ctx_t * ctx );
    3418             : void fd_gossip_ping_walk( void * w, fd_gossip_ping_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3419           0 : static inline ulong fd_gossip_ping_size( fd_gossip_ping_t const * self ) { (void)self; return 128UL; }
    3420           0 : static inline ulong fd_gossip_ping_align( void ) { return FD_GOSSIP_PING_ALIGN; }
    3421           0 : static inline int fd_gossip_ping_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3422           0 :   *total_sz += sizeof(fd_gossip_ping_t);
    3423           0 :   if( (ulong)ctx->data + 128UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3424           0 :   return 0;
    3425           0 : }
    3426             : void * fd_gossip_ping_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3427             : 
    3428           0 : static inline void fd_addrlut_create_new( fd_addrlut_create_t * self ) { fd_memset( self, 0, sizeof(fd_addrlut_create_t) ); }
    3429             : int fd_addrlut_create_encode( fd_addrlut_create_t const * self, fd_bincode_encode_ctx_t * ctx );
    3430             : void fd_addrlut_create_walk( void * w, fd_addrlut_create_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3431           0 : static inline ulong fd_addrlut_create_size( fd_addrlut_create_t const * self ) { (void)self; return 9UL; }
    3432           0 : static inline ulong fd_addrlut_create_align( void ) { return FD_ADDRLUT_CREATE_ALIGN; }
    3433           0 : static inline int fd_addrlut_create_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3434           0 :   *total_sz += sizeof(fd_addrlut_create_t);
    3435           0 :   if( (ulong)ctx->data + 9UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3436           0 :   return 0;
    3437           0 : }
    3438             : void * fd_addrlut_create_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3439             : 
    3440             : void fd_addrlut_extend_new( fd_addrlut_extend_t * self );
    3441             : int fd_addrlut_extend_encode( fd_addrlut_extend_t const * self, fd_bincode_encode_ctx_t * ctx );
    3442             : void fd_addrlut_extend_walk( void * w, fd_addrlut_extend_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3443             : ulong fd_addrlut_extend_size( fd_addrlut_extend_t const * self );
    3444           0 : static inline ulong fd_addrlut_extend_align( void ) { return FD_ADDRLUT_EXTEND_ALIGN; }
    3445             : int fd_addrlut_extend_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3446             : void * fd_addrlut_extend_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3447             : 
    3448             : void fd_addrlut_instruction_new_disc( fd_addrlut_instruction_t * self, uint discriminant );
    3449             : void fd_addrlut_instruction_new( fd_addrlut_instruction_t * self );
    3450             : int fd_addrlut_instruction_encode( fd_addrlut_instruction_t const * self, fd_bincode_encode_ctx_t * ctx );
    3451             : void fd_addrlut_instruction_walk( void * w, fd_addrlut_instruction_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3452             : ulong fd_addrlut_instruction_size( fd_addrlut_instruction_t const * self );
    3453           0 : static inline ulong fd_addrlut_instruction_align( void ) { return FD_ADDRLUT_INSTRUCTION_ALIGN; }
    3454             : int fd_addrlut_instruction_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3455             : void * fd_addrlut_instruction_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3456             : 
    3457             : FD_FN_PURE uchar fd_addrlut_instruction_is_create_lut( fd_addrlut_instruction_t const * self );
    3458             : FD_FN_PURE uchar fd_addrlut_instruction_is_freeze_lut( fd_addrlut_instruction_t const * self );
    3459             : FD_FN_PURE uchar fd_addrlut_instruction_is_extend_lut( fd_addrlut_instruction_t const * self );
    3460             : FD_FN_PURE uchar fd_addrlut_instruction_is_deactivate_lut( fd_addrlut_instruction_t const * self );
    3461             : FD_FN_PURE uchar fd_addrlut_instruction_is_close_lut( fd_addrlut_instruction_t const * self );
    3462             : enum {
    3463             : fd_addrlut_instruction_enum_create_lut = 0,
    3464             : fd_addrlut_instruction_enum_freeze_lut = 1,
    3465             : fd_addrlut_instruction_enum_extend_lut = 2,
    3466             : fd_addrlut_instruction_enum_deactivate_lut = 3,
    3467             : fd_addrlut_instruction_enum_close_lut = 4,
    3468             : };
    3469           0 : static inline void fd_repair_request_header_new( fd_repair_request_header_t * self ) { fd_memset( self, 0, sizeof(fd_repair_request_header_t) ); }
    3470             : int fd_repair_request_header_encode( fd_repair_request_header_t const * self, fd_bincode_encode_ctx_t * ctx );
    3471             : void fd_repair_request_header_walk( void * w, fd_repair_request_header_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3472           0 : static inline ulong fd_repair_request_header_size( fd_repair_request_header_t const * self ) { (void)self; return 140UL; }
    3473           0 : static inline ulong fd_repair_request_header_align( void ) { return FD_REPAIR_REQUEST_HEADER_ALIGN; }
    3474           0 : static inline int fd_repair_request_header_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3475           0 :   *total_sz += sizeof(fd_repair_request_header_t);
    3476           0 :   if( (ulong)ctx->data + 140UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3477           0 :   return 0;
    3478           0 : }
    3479             : void * fd_repair_request_header_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3480             : 
    3481           0 : static inline void fd_repair_window_index_new( fd_repair_window_index_t * self ) { fd_memset( self, 0, sizeof(fd_repair_window_index_t) ); }
    3482             : int fd_repair_window_index_encode( fd_repair_window_index_t const * self, fd_bincode_encode_ctx_t * ctx );
    3483             : void fd_repair_window_index_walk( void * w, fd_repair_window_index_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3484           0 : static inline ulong fd_repair_window_index_size( fd_repair_window_index_t const * self ) { (void)self; return 156UL; }
    3485           0 : static inline ulong fd_repair_window_index_align( void ) { return FD_REPAIR_WINDOW_INDEX_ALIGN; }
    3486           0 : static inline int fd_repair_window_index_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3487           0 :   *total_sz += sizeof(fd_repair_window_index_t);
    3488           0 :   if( (ulong)ctx->data + 156UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3489           0 :   return 0;
    3490           0 : }
    3491             : void * fd_repair_window_index_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3492             : 
    3493           0 : static inline void fd_repair_highest_window_index_new( fd_repair_highest_window_index_t * self ) { fd_memset( self, 0, sizeof(fd_repair_highest_window_index_t) ); }
    3494             : int fd_repair_highest_window_index_encode( fd_repair_highest_window_index_t const * self, fd_bincode_encode_ctx_t * ctx );
    3495             : void fd_repair_highest_window_index_walk( void * w, fd_repair_highest_window_index_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3496           0 : static inline ulong fd_repair_highest_window_index_size( fd_repair_highest_window_index_t const * self ) { (void)self; return 156UL; }
    3497           0 : static inline ulong fd_repair_highest_window_index_align( void ) { return FD_REPAIR_HIGHEST_WINDOW_INDEX_ALIGN; }
    3498           0 : static inline int fd_repair_highest_window_index_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3499           0 :   *total_sz += sizeof(fd_repair_highest_window_index_t);
    3500           0 :   if( (ulong)ctx->data + 156UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3501           0 :   return 0;
    3502           0 : }
    3503             : void * fd_repair_highest_window_index_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3504             : 
    3505           0 : static inline void fd_repair_orphan_new( fd_repair_orphan_t * self ) { fd_memset( self, 0, sizeof(fd_repair_orphan_t) ); }
    3506             : int fd_repair_orphan_encode( fd_repair_orphan_t const * self, fd_bincode_encode_ctx_t * ctx );
    3507             : void fd_repair_orphan_walk( void * w, fd_repair_orphan_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3508           0 : static inline ulong fd_repair_orphan_size( fd_repair_orphan_t const * self ) { (void)self; return 148UL; }
    3509           0 : static inline ulong fd_repair_orphan_align( void ) { return FD_REPAIR_ORPHAN_ALIGN; }
    3510           0 : static inline int fd_repair_orphan_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3511           0 :   *total_sz += sizeof(fd_repair_orphan_t);
    3512           0 :   if( (ulong)ctx->data + 148UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3513           0 :   return 0;
    3514           0 : }
    3515             : void * fd_repair_orphan_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3516             : 
    3517           0 : static inline void fd_repair_ancestor_hashes_new( fd_repair_ancestor_hashes_t * self ) { fd_memset( self, 0, sizeof(fd_repair_ancestor_hashes_t) ); }
    3518             : int fd_repair_ancestor_hashes_encode( fd_repair_ancestor_hashes_t const * self, fd_bincode_encode_ctx_t * ctx );
    3519             : void fd_repair_ancestor_hashes_walk( void * w, fd_repair_ancestor_hashes_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3520           0 : static inline ulong fd_repair_ancestor_hashes_size( fd_repair_ancestor_hashes_t const * self ) { (void)self; return 148UL; }
    3521           0 : static inline ulong fd_repair_ancestor_hashes_align( void ) { return FD_REPAIR_ANCESTOR_HASHES_ALIGN; }
    3522           0 : static inline int fd_repair_ancestor_hashes_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3523           0 :   *total_sz += sizeof(fd_repair_ancestor_hashes_t);
    3524           0 :   if( (ulong)ctx->data + 148UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3525           0 :   return 0;
    3526           0 : }
    3527             : void * fd_repair_ancestor_hashes_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3528             : 
    3529             : void fd_repair_protocol_new_disc( fd_repair_protocol_t * self, uint discriminant );
    3530             : void fd_repair_protocol_new( fd_repair_protocol_t * self );
    3531             : int fd_repair_protocol_encode( fd_repair_protocol_t const * self, fd_bincode_encode_ctx_t * ctx );
    3532             : void fd_repair_protocol_walk( void * w, fd_repair_protocol_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3533             : ulong fd_repair_protocol_size( fd_repair_protocol_t const * self );
    3534          18 : static inline ulong fd_repair_protocol_align( void ) { return FD_REPAIR_PROTOCOL_ALIGN; }
    3535             : int fd_repair_protocol_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3536             : void * fd_repair_protocol_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3537             : 
    3538             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyWindowIndex( fd_repair_protocol_t const * self );
    3539             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyHighestWindowIndex( fd_repair_protocol_t const * self );
    3540             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyOrphan( fd_repair_protocol_t const * self );
    3541             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyWindowIndexWithNonce( fd_repair_protocol_t const * self );
    3542             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyHighestWindowIndexWithNonce( fd_repair_protocol_t const * self );
    3543             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyOrphanWithNonce( fd_repair_protocol_t const * self );
    3544             : FD_FN_PURE uchar fd_repair_protocol_is_LegacyAncestorHashes( fd_repair_protocol_t const * self );
    3545             : FD_FN_PURE uchar fd_repair_protocol_is_pong( fd_repair_protocol_t const * self );
    3546             : FD_FN_PURE uchar fd_repair_protocol_is_window_index( fd_repair_protocol_t const * self );
    3547             : FD_FN_PURE uchar fd_repair_protocol_is_highest_window_index( fd_repair_protocol_t const * self );
    3548             : FD_FN_PURE uchar fd_repair_protocol_is_orphan( fd_repair_protocol_t const * self );
    3549             : FD_FN_PURE uchar fd_repair_protocol_is_ancestor_hashes( fd_repair_protocol_t const * self );
    3550             : enum {
    3551             : fd_repair_protocol_enum_LegacyWindowIndex = 0,
    3552             : fd_repair_protocol_enum_LegacyHighestWindowIndex = 1,
    3553             : fd_repair_protocol_enum_LegacyOrphan = 2,
    3554             : fd_repair_protocol_enum_LegacyWindowIndexWithNonce = 3,
    3555             : fd_repair_protocol_enum_LegacyHighestWindowIndexWithNonce = 4,
    3556             : fd_repair_protocol_enum_LegacyOrphanWithNonce = 5,
    3557             : fd_repair_protocol_enum_LegacyAncestorHashes = 6,
    3558             : fd_repair_protocol_enum_pong = 7,
    3559             : fd_repair_protocol_enum_window_index = 8,
    3560             : fd_repair_protocol_enum_highest_window_index = 9,
    3561             : fd_repair_protocol_enum_orphan = 10,
    3562             : fd_repair_protocol_enum_ancestor_hashes = 11,
    3563             : };
    3564             : void fd_repair_response_new_disc( fd_repair_response_t * self, uint discriminant );
    3565             : void fd_repair_response_new( fd_repair_response_t * self );
    3566             : int fd_repair_response_encode( fd_repair_response_t const * self, fd_bincode_encode_ctx_t * ctx );
    3567             : void fd_repair_response_walk( void * w, fd_repair_response_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3568             : ulong fd_repair_response_size( fd_repair_response_t const * self );
    3569           0 : static inline ulong fd_repair_response_align( void ) { return FD_REPAIR_RESPONSE_ALIGN; }
    3570             : int fd_repair_response_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3571             : void * fd_repair_response_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3572             : 
    3573             : FD_FN_PURE uchar fd_repair_response_is_ping( fd_repair_response_t const * self );
    3574             : enum {
    3575             : fd_repair_response_enum_ping = 0,
    3576             : };
    3577             : void fd_instr_error_enum_new_disc( fd_instr_error_enum_t * self, uint discriminant );
    3578             : void fd_instr_error_enum_new( fd_instr_error_enum_t * self );
    3579             : int fd_instr_error_enum_encode( fd_instr_error_enum_t const * self, fd_bincode_encode_ctx_t * ctx );
    3580             : void fd_instr_error_enum_walk( void * w, fd_instr_error_enum_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3581             : ulong fd_instr_error_enum_size( fd_instr_error_enum_t const * self );
    3582           0 : static inline ulong fd_instr_error_enum_align( void ) { return FD_INSTR_ERROR_ENUM_ALIGN; }
    3583             : int fd_instr_error_enum_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3584             : void * fd_instr_error_enum_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3585             : 
    3586             : FD_FN_PURE uchar fd_instr_error_enum_is_generic_error( fd_instr_error_enum_t const * self );
    3587             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_argument( fd_instr_error_enum_t const * self );
    3588             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_instruction_data( fd_instr_error_enum_t const * self );
    3589             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_account_data( fd_instr_error_enum_t const * self );
    3590             : FD_FN_PURE uchar fd_instr_error_enum_is_account_data_too_small( fd_instr_error_enum_t const * self );
    3591             : FD_FN_PURE uchar fd_instr_error_enum_is_insufficient_funds( fd_instr_error_enum_t const * self );
    3592             : FD_FN_PURE uchar fd_instr_error_enum_is_incorrect_program_id( fd_instr_error_enum_t const * self );
    3593             : FD_FN_PURE uchar fd_instr_error_enum_is_missing_required_signature( fd_instr_error_enum_t const * self );
    3594             : FD_FN_PURE uchar fd_instr_error_enum_is_account_already_initialized( fd_instr_error_enum_t const * self );
    3595             : FD_FN_PURE uchar fd_instr_error_enum_is_uninitialized_account( fd_instr_error_enum_t const * self );
    3596             : FD_FN_PURE uchar fd_instr_error_enum_is_unbalanced_instruction( fd_instr_error_enum_t const * self );
    3597             : FD_FN_PURE uchar fd_instr_error_enum_is_modified_program_id( fd_instr_error_enum_t const * self );
    3598             : FD_FN_PURE uchar fd_instr_error_enum_is_external_account_lamport_spend( fd_instr_error_enum_t const * self );
    3599             : FD_FN_PURE uchar fd_instr_error_enum_is_external_account_data_modified( fd_instr_error_enum_t const * self );
    3600             : FD_FN_PURE uchar fd_instr_error_enum_is_readonly_lamport_change( fd_instr_error_enum_t const * self );
    3601             : FD_FN_PURE uchar fd_instr_error_enum_is_readonly_data_modified( fd_instr_error_enum_t const * self );
    3602             : FD_FN_PURE uchar fd_instr_error_enum_is_duplicate_account_index( fd_instr_error_enum_t const * self );
    3603             : FD_FN_PURE uchar fd_instr_error_enum_is_executable_modified( fd_instr_error_enum_t const * self );
    3604             : FD_FN_PURE uchar fd_instr_error_enum_is_rent_epoch_modified( fd_instr_error_enum_t const * self );
    3605             : FD_FN_PURE uchar fd_instr_error_enum_is_not_enough_account_keys( fd_instr_error_enum_t const * self );
    3606             : FD_FN_PURE uchar fd_instr_error_enum_is_account_data_size_changed( fd_instr_error_enum_t const * self );
    3607             : FD_FN_PURE uchar fd_instr_error_enum_is_account_not_executable( fd_instr_error_enum_t const * self );
    3608             : FD_FN_PURE uchar fd_instr_error_enum_is_account_borrow_failed( fd_instr_error_enum_t const * self );
    3609             : FD_FN_PURE uchar fd_instr_error_enum_is_account_borrow_outstanding( fd_instr_error_enum_t const * self );
    3610             : FD_FN_PURE uchar fd_instr_error_enum_is_duplicate_account_out_of_sync( fd_instr_error_enum_t const * self );
    3611             : FD_FN_PURE uchar fd_instr_error_enum_is_custom( fd_instr_error_enum_t const * self );
    3612             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_error( fd_instr_error_enum_t const * self );
    3613             : FD_FN_PURE uchar fd_instr_error_enum_is_executable_data_modified( fd_instr_error_enum_t const * self );
    3614             : FD_FN_PURE uchar fd_instr_error_enum_is_executable_lamport_change( fd_instr_error_enum_t const * self );
    3615             : FD_FN_PURE uchar fd_instr_error_enum_is_executable_account_not_rent_exempt( fd_instr_error_enum_t const * self );
    3616             : FD_FN_PURE uchar fd_instr_error_enum_is_unsupported_program_id( fd_instr_error_enum_t const * self );
    3617             : FD_FN_PURE uchar fd_instr_error_enum_is_call_depth( fd_instr_error_enum_t const * self );
    3618             : FD_FN_PURE uchar fd_instr_error_enum_is_missing_account( fd_instr_error_enum_t const * self );
    3619             : FD_FN_PURE uchar fd_instr_error_enum_is_reentrancy_not_allowed( fd_instr_error_enum_t const * self );
    3620             : FD_FN_PURE uchar fd_instr_error_enum_is_max_seed_length_exceeded( fd_instr_error_enum_t const * self );
    3621             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_seeds( fd_instr_error_enum_t const * self );
    3622             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_realloc( fd_instr_error_enum_t const * self );
    3623             : FD_FN_PURE uchar fd_instr_error_enum_is_computational_budget_exceeded( fd_instr_error_enum_t const * self );
    3624             : FD_FN_PURE uchar fd_instr_error_enum_is_privilege_escalation( fd_instr_error_enum_t const * self );
    3625             : FD_FN_PURE uchar fd_instr_error_enum_is_program_environment_setup_failure( fd_instr_error_enum_t const * self );
    3626             : FD_FN_PURE uchar fd_instr_error_enum_is_program_failed_to_complete( fd_instr_error_enum_t const * self );
    3627             : FD_FN_PURE uchar fd_instr_error_enum_is_program_failed_to_compile( fd_instr_error_enum_t const * self );
    3628             : FD_FN_PURE uchar fd_instr_error_enum_is_immutable( fd_instr_error_enum_t const * self );
    3629             : FD_FN_PURE uchar fd_instr_error_enum_is_incorrect_authority( fd_instr_error_enum_t const * self );
    3630             : FD_FN_PURE uchar fd_instr_error_enum_is_borsh_io_error( fd_instr_error_enum_t const * self );
    3631             : FD_FN_PURE uchar fd_instr_error_enum_is_account_not_rent_exempt( fd_instr_error_enum_t const * self );
    3632             : FD_FN_PURE uchar fd_instr_error_enum_is_invalid_account_owner( fd_instr_error_enum_t const * self );
    3633             : FD_FN_PURE uchar fd_instr_error_enum_is_arithmetic_overflow( fd_instr_error_enum_t const * self );
    3634             : FD_FN_PURE uchar fd_instr_error_enum_is_unsupported_sysvar( fd_instr_error_enum_t const * self );
    3635             : FD_FN_PURE uchar fd_instr_error_enum_is_illegal_owner( fd_instr_error_enum_t const * self );
    3636             : FD_FN_PURE uchar fd_instr_error_enum_is_max_accounts_data_allocations_exceeded( fd_instr_error_enum_t const * self );
    3637             : FD_FN_PURE uchar fd_instr_error_enum_is_max_accounts_exceeded( fd_instr_error_enum_t const * self );
    3638             : FD_FN_PURE uchar fd_instr_error_enum_is_max_instruction_trace_length_exceeded( fd_instr_error_enum_t const * self );
    3639             : FD_FN_PURE uchar fd_instr_error_enum_is_builtin_programs_must_consume_compute_units( fd_instr_error_enum_t const * self );
    3640             : enum {
    3641             : fd_instr_error_enum_enum_generic_error = 0,
    3642             : fd_instr_error_enum_enum_invalid_argument = 1,
    3643             : fd_instr_error_enum_enum_invalid_instruction_data = 2,
    3644             : fd_instr_error_enum_enum_invalid_account_data = 3,
    3645             : fd_instr_error_enum_enum_account_data_too_small = 4,
    3646             : fd_instr_error_enum_enum_insufficient_funds = 5,
    3647             : fd_instr_error_enum_enum_incorrect_program_id = 6,
    3648             : fd_instr_error_enum_enum_missing_required_signature = 7,
    3649             : fd_instr_error_enum_enum_account_already_initialized = 8,
    3650             : fd_instr_error_enum_enum_uninitialized_account = 9,
    3651             : fd_instr_error_enum_enum_unbalanced_instruction = 10,
    3652             : fd_instr_error_enum_enum_modified_program_id = 11,
    3653             : fd_instr_error_enum_enum_external_account_lamport_spend = 12,
    3654             : fd_instr_error_enum_enum_external_account_data_modified = 13,
    3655             : fd_instr_error_enum_enum_readonly_lamport_change = 14,
    3656             : fd_instr_error_enum_enum_readonly_data_modified = 15,
    3657             : fd_instr_error_enum_enum_duplicate_account_index = 16,
    3658             : fd_instr_error_enum_enum_executable_modified = 17,
    3659             : fd_instr_error_enum_enum_rent_epoch_modified = 18,
    3660             : fd_instr_error_enum_enum_not_enough_account_keys = 19,
    3661             : fd_instr_error_enum_enum_account_data_size_changed = 20,
    3662             : fd_instr_error_enum_enum_account_not_executable = 21,
    3663             : fd_instr_error_enum_enum_account_borrow_failed = 22,
    3664             : fd_instr_error_enum_enum_account_borrow_outstanding = 23,
    3665             : fd_instr_error_enum_enum_duplicate_account_out_of_sync = 24,
    3666             : fd_instr_error_enum_enum_custom = 25,
    3667             : fd_instr_error_enum_enum_invalid_error = 26,
    3668             : fd_instr_error_enum_enum_executable_data_modified = 27,
    3669             : fd_instr_error_enum_enum_executable_lamport_change = 28,
    3670             : fd_instr_error_enum_enum_executable_account_not_rent_exempt = 29,
    3671             : fd_instr_error_enum_enum_unsupported_program_id = 30,
    3672             : fd_instr_error_enum_enum_call_depth = 31,
    3673             : fd_instr_error_enum_enum_missing_account = 32,
    3674             : fd_instr_error_enum_enum_reentrancy_not_allowed = 33,
    3675             : fd_instr_error_enum_enum_max_seed_length_exceeded = 34,
    3676             : fd_instr_error_enum_enum_invalid_seeds = 35,
    3677             : fd_instr_error_enum_enum_invalid_realloc = 36,
    3678             : fd_instr_error_enum_enum_computational_budget_exceeded = 37,
    3679             : fd_instr_error_enum_enum_privilege_escalation = 38,
    3680             : fd_instr_error_enum_enum_program_environment_setup_failure = 39,
    3681             : fd_instr_error_enum_enum_program_failed_to_complete = 40,
    3682             : fd_instr_error_enum_enum_program_failed_to_compile = 41,
    3683             : fd_instr_error_enum_enum_immutable = 42,
    3684             : fd_instr_error_enum_enum_incorrect_authority = 43,
    3685             : fd_instr_error_enum_enum_borsh_io_error = 44,
    3686             : fd_instr_error_enum_enum_account_not_rent_exempt = 45,
    3687             : fd_instr_error_enum_enum_invalid_account_owner = 46,
    3688             : fd_instr_error_enum_enum_arithmetic_overflow = 47,
    3689             : fd_instr_error_enum_enum_unsupported_sysvar = 48,
    3690             : fd_instr_error_enum_enum_illegal_owner = 49,
    3691             : fd_instr_error_enum_enum_max_accounts_data_allocations_exceeded = 50,
    3692             : fd_instr_error_enum_enum_max_accounts_exceeded = 51,
    3693             : fd_instr_error_enum_enum_max_instruction_trace_length_exceeded = 52,
    3694             : fd_instr_error_enum_enum_builtin_programs_must_consume_compute_units = 53,
    3695             : };
    3696             : void fd_txn_instr_error_new( fd_txn_instr_error_t * self );
    3697             : int fd_txn_instr_error_encode( fd_txn_instr_error_t const * self, fd_bincode_encode_ctx_t * ctx );
    3698             : void fd_txn_instr_error_walk( void * w, fd_txn_instr_error_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3699             : ulong fd_txn_instr_error_size( fd_txn_instr_error_t const * self );
    3700           0 : static inline ulong fd_txn_instr_error_align( void ) { return FD_TXN_INSTR_ERROR_ALIGN; }
    3701             : int fd_txn_instr_error_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3702             : void * fd_txn_instr_error_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3703             : 
    3704             : void fd_txn_error_enum_new_disc( fd_txn_error_enum_t * self, uint discriminant );
    3705             : void fd_txn_error_enum_new( fd_txn_error_enum_t * self );
    3706             : int fd_txn_error_enum_encode( fd_txn_error_enum_t const * self, fd_bincode_encode_ctx_t * ctx );
    3707             : void fd_txn_error_enum_walk( void * w, fd_txn_error_enum_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3708             : ulong fd_txn_error_enum_size( fd_txn_error_enum_t const * self );
    3709           0 : static inline ulong fd_txn_error_enum_align( void ) { return FD_TXN_ERROR_ENUM_ALIGN; }
    3710             : int fd_txn_error_enum_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3711             : void * fd_txn_error_enum_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3712             : 
    3713             : FD_FN_PURE uchar fd_txn_error_enum_is_account_in_use( fd_txn_error_enum_t const * self );
    3714             : FD_FN_PURE uchar fd_txn_error_enum_is_account_loaded_twice( fd_txn_error_enum_t const * self );
    3715             : FD_FN_PURE uchar fd_txn_error_enum_is_account_not_found( fd_txn_error_enum_t const * self );
    3716             : FD_FN_PURE uchar fd_txn_error_enum_is_program_account_not_found( fd_txn_error_enum_t const * self );
    3717             : FD_FN_PURE uchar fd_txn_error_enum_is_insufficient_funds_for_fee( fd_txn_error_enum_t const * self );
    3718             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_account_for_fee( fd_txn_error_enum_t const * self );
    3719             : FD_FN_PURE uchar fd_txn_error_enum_is_already_processed( fd_txn_error_enum_t const * self );
    3720             : FD_FN_PURE uchar fd_txn_error_enum_is_blockhash_not_found( fd_txn_error_enum_t const * self );
    3721             : FD_FN_PURE uchar fd_txn_error_enum_is_instruction_error( fd_txn_error_enum_t const * self );
    3722             : FD_FN_PURE uchar fd_txn_error_enum_is_call_chain_too_deep( fd_txn_error_enum_t const * self );
    3723             : FD_FN_PURE uchar fd_txn_error_enum_is_missing_signature_for_fee( fd_txn_error_enum_t const * self );
    3724             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_account_index( fd_txn_error_enum_t const * self );
    3725             : FD_FN_PURE uchar fd_txn_error_enum_is_signature_failure( fd_txn_error_enum_t const * self );
    3726             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_program_for_execution( fd_txn_error_enum_t const * self );
    3727             : FD_FN_PURE uchar fd_txn_error_enum_is_sanitize_failure( fd_txn_error_enum_t const * self );
    3728             : FD_FN_PURE uchar fd_txn_error_enum_is_cluster_maintenance( fd_txn_error_enum_t const * self );
    3729             : FD_FN_PURE uchar fd_txn_error_enum_is_account_borrow_outstanding( fd_txn_error_enum_t const * self );
    3730             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_block_cost_limit( fd_txn_error_enum_t const * self );
    3731             : FD_FN_PURE uchar fd_txn_error_enum_is_unsupported_version( fd_txn_error_enum_t const * self );
    3732             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_writable_account( fd_txn_error_enum_t const * self );
    3733             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_account_cost_limit( fd_txn_error_enum_t const * self );
    3734             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_account_data_block_limit( fd_txn_error_enum_t const * self );
    3735             : FD_FN_PURE uchar fd_txn_error_enum_is_too_many_account_locks( fd_txn_error_enum_t const * self );
    3736             : FD_FN_PURE uchar fd_txn_error_enum_is_address_lookup_table_not_found( fd_txn_error_enum_t const * self );
    3737             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_owner( fd_txn_error_enum_t const * self );
    3738             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_data( fd_txn_error_enum_t const * self );
    3739             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_address_lookup_table_index( fd_txn_error_enum_t const * self );
    3740             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_rent_paying_account( fd_txn_error_enum_t const * self );
    3741             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_max_vote_cost_limit( fd_txn_error_enum_t const * self );
    3742             : FD_FN_PURE uchar fd_txn_error_enum_is_would_exceed_account_data_total_limit( fd_txn_error_enum_t const * self );
    3743             : FD_FN_PURE uchar fd_txn_error_enum_is_duplicate_instruction( fd_txn_error_enum_t const * self );
    3744             : FD_FN_PURE uchar fd_txn_error_enum_is_insufficient_funds_for_rent( fd_txn_error_enum_t const * self );
    3745             : FD_FN_PURE uchar fd_txn_error_enum_is_max_loaded_accounts_data_size_exceeded( fd_txn_error_enum_t const * self );
    3746             : FD_FN_PURE uchar fd_txn_error_enum_is_invalid_loaded_accounts_data_size_limit( fd_txn_error_enum_t const * self );
    3747             : FD_FN_PURE uchar fd_txn_error_enum_is_resanitization_needed( fd_txn_error_enum_t const * self );
    3748             : FD_FN_PURE uchar fd_txn_error_enum_is_program_execution_temporarily_restricted( fd_txn_error_enum_t const * self );
    3749             : FD_FN_PURE uchar fd_txn_error_enum_is_unbalanced_transaction( fd_txn_error_enum_t const * self );
    3750             : enum {
    3751             : fd_txn_error_enum_enum_account_in_use = 0,
    3752             : fd_txn_error_enum_enum_account_loaded_twice = 1,
    3753             : fd_txn_error_enum_enum_account_not_found = 2,
    3754             : fd_txn_error_enum_enum_program_account_not_found = 3,
    3755             : fd_txn_error_enum_enum_insufficient_funds_for_fee = 4,
    3756             : fd_txn_error_enum_enum_invalid_account_for_fee = 5,
    3757             : fd_txn_error_enum_enum_already_processed = 6,
    3758             : fd_txn_error_enum_enum_blockhash_not_found = 7,
    3759             : fd_txn_error_enum_enum_instruction_error = 8,
    3760             : fd_txn_error_enum_enum_call_chain_too_deep = 9,
    3761             : fd_txn_error_enum_enum_missing_signature_for_fee = 10,
    3762             : fd_txn_error_enum_enum_invalid_account_index = 11,
    3763             : fd_txn_error_enum_enum_signature_failure = 12,
    3764             : fd_txn_error_enum_enum_invalid_program_for_execution = 13,
    3765             : fd_txn_error_enum_enum_sanitize_failure = 14,
    3766             : fd_txn_error_enum_enum_cluster_maintenance = 15,
    3767             : fd_txn_error_enum_enum_account_borrow_outstanding = 16,
    3768             : fd_txn_error_enum_enum_would_exceed_max_block_cost_limit = 17,
    3769             : fd_txn_error_enum_enum_unsupported_version = 18,
    3770             : fd_txn_error_enum_enum_invalid_writable_account = 19,
    3771             : fd_txn_error_enum_enum_would_exceed_max_account_cost_limit = 20,
    3772             : fd_txn_error_enum_enum_would_exceed_account_data_block_limit = 21,
    3773             : fd_txn_error_enum_enum_too_many_account_locks = 22,
    3774             : fd_txn_error_enum_enum_address_lookup_table_not_found = 23,
    3775             : fd_txn_error_enum_enum_invalid_address_lookup_table_owner = 24,
    3776             : fd_txn_error_enum_enum_invalid_address_lookup_table_data = 25,
    3777             : fd_txn_error_enum_enum_invalid_address_lookup_table_index = 26,
    3778             : fd_txn_error_enum_enum_invalid_rent_paying_account = 27,
    3779             : fd_txn_error_enum_enum_would_exceed_max_vote_cost_limit = 28,
    3780             : fd_txn_error_enum_enum_would_exceed_account_data_total_limit = 29,
    3781             : fd_txn_error_enum_enum_duplicate_instruction = 30,
    3782             : fd_txn_error_enum_enum_insufficient_funds_for_rent = 31,
    3783             : fd_txn_error_enum_enum_max_loaded_accounts_data_size_exceeded = 32,
    3784             : fd_txn_error_enum_enum_invalid_loaded_accounts_data_size_limit = 33,
    3785             : fd_txn_error_enum_enum_resanitization_needed = 34,
    3786             : fd_txn_error_enum_enum_program_execution_temporarily_restricted = 35,
    3787             : fd_txn_error_enum_enum_unbalanced_transaction = 36,
    3788             : };
    3789             : void fd_txn_result_new_disc( fd_txn_result_t * self, uint discriminant );
    3790             : void fd_txn_result_new( fd_txn_result_t * self );
    3791             : int fd_txn_result_encode( fd_txn_result_t const * self, fd_bincode_encode_ctx_t * ctx );
    3792             : void fd_txn_result_walk( void * w, fd_txn_result_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3793             : ulong fd_txn_result_size( fd_txn_result_t const * self );
    3794           0 : static inline ulong fd_txn_result_align( void ) { return FD_TXN_RESULT_ALIGN; }
    3795             : int fd_txn_result_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3796             : void * fd_txn_result_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3797             : 
    3798             : FD_FN_PURE uchar fd_txn_result_is_ok( fd_txn_result_t const * self );
    3799             : FD_FN_PURE uchar fd_txn_result_is_error( fd_txn_result_t const * self );
    3800             : enum {
    3801             : fd_txn_result_enum_ok = 0,
    3802             : fd_txn_result_enum_error = 1,
    3803             : };
    3804           0 : static inline void fd_calculated_stake_points_new( fd_calculated_stake_points_t * self ) { fd_memset( self, 0, sizeof(fd_calculated_stake_points_t) ); }
    3805             : int fd_calculated_stake_points_encode( fd_calculated_stake_points_t const * self, fd_bincode_encode_ctx_t * ctx );
    3806             : void fd_calculated_stake_points_walk( void * w, fd_calculated_stake_points_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3807           0 : static inline ulong fd_calculated_stake_points_size( fd_calculated_stake_points_t const * self ) { (void)self; return 25UL; }
    3808           0 : static inline ulong fd_calculated_stake_points_align( void ) { return FD_CALCULATED_STAKE_POINTS_ALIGN; }
    3809           0 : static inline int fd_calculated_stake_points_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3810           0 :   *total_sz += sizeof(fd_calculated_stake_points_t);
    3811           0 :   if( (ulong)ctx->data + 25UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3812           0 :   return 0;
    3813           0 : }
    3814             : void * fd_calculated_stake_points_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3815             : 
    3816           0 : static inline void fd_calculated_stake_rewards_new( fd_calculated_stake_rewards_t * self ) { fd_memset( self, 0, sizeof(fd_calculated_stake_rewards_t) ); }
    3817             : int fd_calculated_stake_rewards_encode( fd_calculated_stake_rewards_t const * self, fd_bincode_encode_ctx_t * ctx );
    3818             : void fd_calculated_stake_rewards_walk( void * w, fd_calculated_stake_rewards_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3819           0 : static inline ulong fd_calculated_stake_rewards_size( fd_calculated_stake_rewards_t const * self ) { (void)self; return 24UL; }
    3820           0 : static inline ulong fd_calculated_stake_rewards_align( void ) { return FD_CALCULATED_STAKE_REWARDS_ALIGN; }
    3821           0 : static inline int fd_calculated_stake_rewards_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3822           0 :   *total_sz += sizeof(fd_calculated_stake_rewards_t);
    3823           0 :   if( (ulong)ctx->data + 24UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3824           0 :   return 0;
    3825           0 : }
    3826             : void * fd_calculated_stake_rewards_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3827             : 
    3828             : void fd_duplicate_slot_proof_new( fd_duplicate_slot_proof_t * self );
    3829             : int fd_duplicate_slot_proof_encode( fd_duplicate_slot_proof_t const * self, fd_bincode_encode_ctx_t * ctx );
    3830             : void fd_duplicate_slot_proof_walk( void * w, fd_duplicate_slot_proof_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3831             : ulong fd_duplicate_slot_proof_size( fd_duplicate_slot_proof_t const * self );
    3832           0 : static inline ulong fd_duplicate_slot_proof_align( void ) { return FD_DUPLICATE_SLOT_PROOF_ALIGN; }
    3833             : int fd_duplicate_slot_proof_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3834             : void * fd_duplicate_slot_proof_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3835             : 
    3836           0 : static inline void fd_epoch_info_pair_new( fd_epoch_info_pair_t * self ) { fd_memset( self, 0, sizeof(fd_epoch_info_pair_t) ); }
    3837             : int fd_epoch_info_pair_encode( fd_epoch_info_pair_t const * self, fd_bincode_encode_ctx_t * ctx );
    3838             : void fd_epoch_info_pair_walk( void * w, fd_epoch_info_pair_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3839           0 : static inline ulong fd_epoch_info_pair_size( fd_epoch_info_pair_t const * self ) { (void)self; return 104UL; }
    3840           0 : static inline ulong fd_epoch_info_pair_align( void ) { return FD_EPOCH_INFO_PAIR_ALIGN; }
    3841           0 : static inline int fd_epoch_info_pair_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3842           0 :   *total_sz += sizeof(fd_epoch_info_pair_t);
    3843           0 :   if( (ulong)ctx->data + 104UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3844           0 :   return 0;
    3845           0 : }
    3846             : void * fd_epoch_info_pair_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3847             : 
    3848           0 : static inline void fd_usage_cost_details_new( fd_usage_cost_details_t * self ) { fd_memset( self, 0, sizeof(fd_usage_cost_details_t) ); }
    3849             : int fd_usage_cost_details_encode( fd_usage_cost_details_t const * self, fd_bincode_encode_ctx_t * ctx );
    3850             : void fd_usage_cost_details_walk( void * w, fd_usage_cost_details_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3851           0 : static inline ulong fd_usage_cost_details_size( fd_usage_cost_details_t const * self ) { (void)self; return 48UL; }
    3852           0 : static inline ulong fd_usage_cost_details_align( void ) { return FD_USAGE_COST_DETAILS_ALIGN; }
    3853           0 : static inline int fd_usage_cost_details_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3854           0 :   *total_sz += sizeof(fd_usage_cost_details_t);
    3855           0 :   if( (ulong)ctx->data + 48UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3856           0 :   return 0;
    3857           0 : }
    3858             : void * fd_usage_cost_details_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3859             : 
    3860             : void fd_transaction_cost_new_disc( fd_transaction_cost_t * self, uint discriminant );
    3861             : void fd_transaction_cost_new( fd_transaction_cost_t * self );
    3862             : int fd_transaction_cost_encode( fd_transaction_cost_t const * self, fd_bincode_encode_ctx_t * ctx );
    3863             : void fd_transaction_cost_walk( void * w, fd_transaction_cost_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3864             : ulong fd_transaction_cost_size( fd_transaction_cost_t const * self );
    3865           0 : static inline ulong fd_transaction_cost_align( void ) { return FD_TRANSACTION_COST_ALIGN; }
    3866             : int fd_transaction_cost_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3867             : void * fd_transaction_cost_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3868             : 
    3869             : FD_FN_PURE uchar fd_transaction_cost_is_simple_vote( fd_transaction_cost_t const * self );
    3870             : FD_FN_PURE uchar fd_transaction_cost_is_transaction( fd_transaction_cost_t const * self );
    3871             : enum {
    3872             : fd_transaction_cost_enum_simple_vote = 0,
    3873             : fd_transaction_cost_enum_transaction = 1,
    3874             : };
    3875           0 : static inline void fd_rent_paying_new( fd_rent_paying_t * self ) { fd_memset( self, 0, sizeof(fd_rent_paying_t) ); }
    3876             : int fd_rent_paying_encode( fd_rent_paying_t const * self, fd_bincode_encode_ctx_t * ctx );
    3877             : void fd_rent_paying_walk( void * w, fd_rent_paying_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3878           0 : static inline ulong fd_rent_paying_size( fd_rent_paying_t const * self ) { (void)self; return 16UL; }
    3879           0 : static inline ulong fd_rent_paying_align( void ) { return FD_RENT_PAYING_ALIGN; }
    3880           0 : static inline int fd_rent_paying_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz ) {
    3881           0 :   *total_sz += sizeof(fd_rent_paying_t);
    3882           0 :   if( (ulong)ctx->data + 16UL > (ulong)ctx->dataend ) { return FD_BINCODE_ERR_OVERFLOW; };
    3883           0 :   return 0;
    3884           0 : }
    3885             : void * fd_rent_paying_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3886             : 
    3887             : void fd_rent_state_new_disc( fd_rent_state_t * self, uint discriminant );
    3888             : void fd_rent_state_new( fd_rent_state_t * self );
    3889             : int fd_rent_state_encode( fd_rent_state_t const * self, fd_bincode_encode_ctx_t * ctx );
    3890             : void fd_rent_state_walk( void * w, fd_rent_state_t const * self, fd_types_walk_fn_t fun, const char *name, uint level, uint varint );
    3891             : ulong fd_rent_state_size( fd_rent_state_t const * self );
    3892           0 : static inline ulong fd_rent_state_align( void ) { return FD_RENT_STATE_ALIGN; }
    3893             : int fd_rent_state_decode_footprint( fd_bincode_decode_ctx_t * ctx, ulong * total_sz );
    3894             : void * fd_rent_state_decode( void * mem, fd_bincode_decode_ctx_t * ctx );
    3895             : 
    3896             : FD_FN_PURE uchar fd_rent_state_is_uninitialized( fd_rent_state_t const * self );
    3897             : FD_FN_PURE uchar fd_rent_state_is_rent_paying( fd_rent_state_t const * self );
    3898             : FD_FN_PURE uchar fd_rent_state_is_rent_exempt( fd_rent_state_t const * self );
    3899             : enum {
    3900             : fd_rent_state_enum_uninitialized = 0,
    3901             : fd_rent_state_enum_rent_paying = 1,
    3902             : fd_rent_state_enum_rent_exempt = 2,
    3903             : };
    3904             : FD_PROTOTYPES_END
    3905             : 
    3906             : #endif // HEADER_FD_RUNTIME_TYPES

Generated by: LCOV version 1.14